import type { ThreeRendererType } from '../display/types.js';
import type { IStageRenderer, StageParentType, StageType } from './IStageRenderer.js';
interface StageItem {
    stage: StageType;
    width: number;
    height: number;
}
export declare class StageRenderer implements IStageRenderer {
    #private;
    readonly isStageRenderer = true;
    name: string;
    width: number;
    height: number;
    pixelRatio: number;
    readonly stages: StageItem[];
    set renderOrder(order: string | undefined);
    protected onRenderOrderChanged(): void;
    get renderOrder(): string;
    get renderOrderArray(): string[];
    get parent(): StageParentType | undefined;
    set parent(parent: StageParentType | undefined);
    constructor();
    attach(parent: StageParentType): void;
    detach(): void;
    resize(width: number, height: number, pixelRatio?: number): void;
    protected onResizeRenderer(_width: number, _height: number, _pixelRatio: number): void;
    protected resizeStage(stage: StageItem, width: number, height: number): void;
    renderFrame(renderer: ThreeRendererType, now: number, deltaTime: number, frameNo: number): void;
    getOrderedStages(): StageItem[];
    hasStage(stage: StageType): boolean;
    addStage(stage: StageType): void;
    removeStage(stage: StageType): void;
}
export {};
//# sourceMappingURL=StageRenderer.d.ts.map