import * as PIXI from "pixi.js";
import { Camera, ICameraConfig } from "../../camera/camera";
import { ICameraController } from "../../camera/controller/interfaces";
import { P3DCameraProcessor } from "../../core/camera-processor";
import { App } from "../../core/app";
import * as DisplayUtils from "../../utils/display";
import { BaseContainer } from "./base-container";
export interface IRoomOptions {
    camera: {
        class: new (room: BaseRoom, viewport?: PIXI.Rectangle, config?: ICameraConfig) => Camera;
        config: ICameraConfig;
        controllers: Array<new (appContext: App) => ICameraController>;
        viewport?: PIXI.Rectangle;
    };
    autosize: DisplayUtils.RatioFitTypes;
}
export declare class BaseRoom<C extends App = any> extends BaseContainer<C> {
    readonly camera: Camera;
    readonly roomBound: PIXI.Rectangle;
    protected _roomBound: PIXI.Rectangle;
    protected _cameraProcessor: P3DCameraProcessor;
    protected _camera: Camera;
    protected _autosize: DisplayUtils.RatioFitTypes;
    private _sonarResize;
    constructor(appContext: C, options: IRoomOptions);
    recalculateCameraPOV(): void;
    setViewport(width: number, height: number): void;
    setSize(width: number, height: number): void;
    destroy(): void;
    protected resetScaleFactor(): void;
    private _resizeSonarHandler;
}
//# sourceMappingURL=base-room.d.ts.map