import { type EventizedObject } from '@spearwolf/eventize';
import { type Camera, type Node, Scene, type WebGPURenderer } from 'three/webgpu';
import type { IPassProvider } from './IPassProvider.js';
import type { IProjection } from './IProjection.js';
import type { IRenderable } from './IRenderable.js';
import type { IStage } from './IStage.js';
export interface Stage2D extends EventizedObject {
}
export declare class Stage2D implements IStage, IRenderable, IPassProvider {
    #private;
    isStage2D: boolean;
    scene: Scene;
    needsUpdate: boolean;
    get name(): string;
    set name(name: string);
    get containerWidth(): number;
    get containerHeight(): number;
    get width(): number;
    get height(): number;
    get projection(): IProjection | undefined;
    set projection(projection: IProjection | undefined);
    get camera(): Camera | undefined;
    set camera(camera: Camera | undefined);
    constructor(projection?: IProjection, scene?: Scene);
    resize(containerWidth: number, containerHeight: number): void;
    updateProjection(forceUpdate?: boolean): void;
    isFirstFrame: boolean;
    updateFrame(now: number, deltaTime: number, frameNo: number): void;
    renderTo(renderer: WebGPURenderer): void;
    asPassNode(_renderer: WebGPURenderer): Node;
}
//# sourceMappingURL=Stage2D.d.ts.map