import { BrsValue, ValueKind, BrsBoolean } from "../BrsType";
import { BrsComponent } from "./BrsComponent";
import { BrsType } from "..";
import { RoSprite } from "./RoSprite";
import { BrsCanvasContext2D } from "../interfaces/IfDraw2D";
export declare class RoCompositor extends BrsComponent implements BrsValue {
    readonly kind = ValueKind.Object;
    readonly sprites: Map<number, RoSprite[]>;
    readonly animations: RoSprite[];
    private readonly canvas;
    private readonly context;
    private destBitmap?;
    private rgbaBackground?;
    private spriteId;
    private previousSpriteDraws;
    constructor();
    setSpriteZ(id: number, currentZ: number, newZ: number): void;
    setSpriteLayer(sprite: RoSprite, z: number): void;
    removeSprite(id: number, animation: boolean): void;
    getCanvasAlpha(): boolean;
    getContext(): BrsCanvasContext2D;
    checkCollision(source: RoSprite, multiple: boolean): BrsType;
    clearPreviousSpriteDraws(): void;
    drawSprites(): void;
    toString(_parent?: BrsType): string;
    equalTo(_other: BrsType): BrsBoolean;
    dispose(): void;
    /** Set the destBitmap (roBitmap or roScreen) and the background color */
    private readonly setDrawTo;
    /** Create a new sprite, using an roRegion to define the sprite's bitmap. */
    private readonly newSprite;
    /** Create a new sprite that consists of a sequence of frames to be animated. The frames are defined by the regionArray which is an roArray of roRegions. */
    private readonly newAnimatedSprite;
    /** Duration is the number of ms since the last call. Moves all animated sprites. Sprites will not animate unless you call this function regularly  */
    private readonly animationTick;
    /** Draw any dirty sprites (that is, whatever is new or has changed since the last Draw). */
    private readonly draw;
    /** Redraw all sprites even if not dirty. */
    private readonly drawAll;
}
