using Minint.Core.Models;

namespace Minint.Core.Services;

public interface ICompositor
{
    /// <summary>
    /// Composites all visible layers of <paramref name="document"/> into a flat RGBA buffer.
    /// Result is packed as ARGB (0xAARRGGBB) per pixel, row-major, length = width * height.
    /// Layers are blended bottom-to-top with alpha compositing.
    /// </summary>
    uint[] Composite(MinintDocument document, int width, int height);
}
