import { BrsValue, ValueKind, BrsInvalid, BrsBoolean } from "../BrsType";
import { BrsComponent } from "./BrsComponent";
import { BrsType } from "..";
import { Int32 } from "../Int32";
import { BrsCanvas, BrsCanvasContext2D, BrsDraw2D } from "../interfaces/IfDraw2D";
export declare class RoScreen extends BrsComponent implements BrsValue, BrsDraw2D {
    readonly kind = ValueKind.Object;
    readonly x: number;
    readonly y: number;
    readonly width: number;
    readonly height: number;
    private readonly doubleBuffer;
    private readonly maxMs;
    private readonly valid;
    private alphaEnable;
    private currentBuffer;
    private lastBuffer;
    private canvas;
    private context;
    private port?;
    private isDirty;
    private lastMessage;
    scaleMode: number;
    constructor(doubleBuffer?: BrsBoolean, width?: Int32, height?: Int32);
    createDisplayBuffer(): void;
    getCanvas(): BrsCanvas;
    getRgbaCanvas(_: number): BrsCanvas;
    getContext(): BrsCanvasContext2D;
    clearCanvas(rgba: number): void;
    drawImage(object: BrsComponent, x: number, y: number, scaleX?: number, scaleY?: number, rgba?: number): boolean;
    drawImageToContext(image: BrsCanvas, x: number, y: number): boolean;
    setCanvasAlpha(enable: boolean): BrsInvalid;
    getCanvasAlpha(): boolean;
    toString(parent?: BrsType): string;
    equalTo(other: BrsType): BrsBoolean;
    makeDirty(): void;
    finishDraw(): void;
    dispose(): void;
    isValid(): boolean;
    private getNewEvents;
    /** If the screen is double buffered, SwapBuffers swaps the back buffer with the front buffer */
    private readonly swapBuffers;
}
export declare function createScreen(doubleBuffer?: BrsBoolean, width?: Int32, height?: Int32): BrsInvalid | RoScreen;
