import { BrsValue, ValueKind, BrsInvalid, BrsBoolean } from "../BrsType";
import { BrsComponent } from "./BrsComponent";
import { BrsType } from "..";
import { Int32 } from "../Int32";
import { RoBitmap } from "./RoBitmap";
import { RoScreen } from "./RoScreen";
import { BrsCanvas, BrsCanvasContext2D, BrsDraw2D, BrsImageData, Circle, Rect } from "../interfaces/IfDraw2D";
export declare class RoRegion extends BrsComponent implements BrsValue, BrsDraw2D {
    readonly kind = ValueKind.Object;
    private readonly valid;
    private alphaEnable;
    private bitmap;
    private collisionType;
    private translationX;
    private translationY;
    private time;
    private wrap;
    private collisionCircle;
    private collisionRect;
    x: number;
    y: number;
    width: number;
    height: number;
    scaleMode: number;
    constructor(bitmap: RoBitmap | RoScreen, x: Int32, y: Int32, width: Int32, height: Int32);
    isValid(): boolean;
    applyOffset(x: number, y: number, width: number, height: number): void;
    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;
    getCanvas(): BrsCanvas;
    getContext(): BrsCanvasContext2D;
    getRgbaCanvas(rgba: number): BrsCanvas;
    setCanvasAlpha(alphaEnable: boolean): void;
    getCanvasAlpha(): boolean;
    getPosX(): number;
    getPosY(): number;
    getTransX(): number;
    getTransY(): number;
    getImageWidth(): number;
    getImageHeight(): number;
    getCollCircle(): Circle;
    getCollRect(): Rect;
    getCollType(): number;
    getImageData(): BrsImageData;
    getWrapValue(): boolean;
    getAnimaTime(): number;
    getSourceBitmap(): RoBitmap | RoScreen;
    makeDirty(): void;
    finishDraw(): void;
    toString(parent?: BrsType): string;
    equalTo(other: BrsType): BrsBoolean;
    dispose(): void;
    /** Returns a newly created copy of the region as a new roRegion object */
    private readonly copy;
    /** Returns the roBitmap object of the bitmap this region refers to	 */
    private readonly getBitmap;
    /** Gets the type of region to be used for collision tests with the sprite */
    private readonly getCollisionType;
    /** Returns the height of the region */
    private readonly getHeight;
    /** Returns the pretranslation x value */
    private readonly getPretranslationX;
    /** Returns the pretranslation y value */
    private readonly getPretranslationY;
    /** Returns the scaling mode of the region */
    private readonly getScaleMode;
    /** Returns the "frame hold time" in milliseconds */
    private readonly getTime;
    /** Returns the width of the region */
    private readonly getWidth;
    /** Returns true if the region can be wrapped */
    private readonly getWrap;
    /** Returns the x coordinate of the region in its bitmap */
    private readonly getX;
    /** Returns the y coordinate of the region in its bitmap */
    private readonly getY;
    /** Adds the passed parameters x,y, w, and h to the values of those roRegion fields. */
    private readonly offset;
    /** Initializes the fields of the region with the values of the fields in the srcRegion */
    private readonly set;
    /** Sets the type of region to be used for collision tests with the sprite */
    private readonly setCollisionType;
    /** Sets the collision circle used for type 2 collision tests. */
    private readonly setCollisionCircle;
    /** Sets the collision rectangle used for type 1 collision tests. */
    private readonly setCollisionRectangle;
    /** Set the pretranslation for DrawObject, DrawRotatedObject and DrawScaledObject */
    private readonly setPretranslation;
    /** Sets the scaling mode of the region  */
    private readonly setScaleMode;
    /** Returns the "frame hold time" in milliseconds  */
    private readonly setTime;
    /** If true, any part of region that goes beyond the bounds of its bitmap "wraps" to the other side of the bitmap and is rendered there. */
    private readonly setWrap;
}
export declare function createRegion(bitmap: RoBitmap | RoScreen, x: Int32, y: Int32, width: Int32, height: Int32): BrsInvalid | RoRegion;
