import Phaser from "phaser";
import { BaseConfig } from "../types";
import { BaseScene } from "../game";
import { BaseContainer } from "../types";
export declare class Container<T extends BaseConfig = BaseConfig> extends BaseContainer<T> {
    protected _id: string;
    protected _type?: string;
    protected _bounds?: Phaser.Geom.Rectangle;
    protected _hitArea?: Phaser.Geom.Rectangle | Phaser.Geom.Circle;
    protected _config?: T;
    scene: BaseScene;
    protected _bg?: Phaser.GameObjects.Image | Phaser.GameObjects.RenderTexture;
    constructor(scene: BaseScene, baseConfig?: T, type?: string);
    reDraw(config?: T): void;
    clear(): void;
    protected initializeEvents(): void;
    updateConfig(config?: T): void;
    setEventInteractive(): void;
    findChild(id: string, gameObject?: Phaser.GameObjects.GameObject): Phaser.GameObjects.GameObject | undefined;
    enableDrag(): void;
    disableDrag(): void;
    onDrag(pointer: Phaser.Input.Pointer, dragX: number, dragY: number): void;
    onDragEnd(pointer: Phaser.Input.Pointer, dragX: number, dragY: number): void;
    onDestroy(): void;
    private getClampedPosition;
    onDragUpdate(pointer: Phaser.Input.Pointer, dragX: number, dragY: number): void;
    onDragEndUpdate(pointer: Phaser.Input.Pointer, dragX: number, dragY: number): void;
    get id(): string;
    set id(id: string);
    RefreshBounds(): void;
    private cacheBounds;
    get Width(): number;
    get Height(): number;
    get RealWidth(): number;
    get RealHeight(): number;
    get RealSize(): {
        width: number;
        height: number;
    };
    get Top(): number;
    get Left(): number;
    get Right(): number;
    get Bottom(): number;
    get CenterX(): number;
    get CenterY(): number;
    get X(): number;
    get Y(): number;
    get Type(): string;
    set Type(type: string);
    get padding(): {
        left: number;
        right: number;
        top: number;
        bottom: number;
    };
    addChild(child: Phaser.GameObjects.GameObject): void;
    addChildAt(child: Phaser.GameObjects.GameObject, index?: number): void;
    setChildren(childConfigs?: BaseConfig[]): void;
    drawBackground(config?: BaseConfig): void;
    drawBorderLine?: Phaser.GameObjects.Rectangle | Phaser.GameObjects.Arc;
    debugDrawBorderLine(color?: number): void;
    private createDebugBorderLine;
    debugHitArea(): void;
    debug(color?: number): void;
    destroy(fromScene?: boolean): void;
}
//# sourceMappingURL=Container.d.ts.map