import { Sprite, Texture, type Scene } from 'three';
import type { ThreeRendererType } from '../display/types.js';
import { OrthographicProjection } from './OrthographicProjection.js';
import { Stage2D } from './Stage2D.js';
export type Canvas2DStageFitType = 'contain' | 'cover';
export declare class Canvas2DStage {
    #private;
    readonly renderer: ThreeRendererType;
    get fit(): Canvas2DStageFitType;
    set fit(value: Canvas2DStageFitType);
    readonly canvas: HTMLCanvasElement;
    get width(): number;
    get height(): number;
    readonly projection: OrthographicProjection;
    readonly stage: Stage2D;
    get scene(): Scene;
    readonly sprite: Sprite;
    texture?: Texture;
    needsUpdate: boolean;
    constructor(renderer: ThreeRendererType, ...args: [width: number, height: number] | [width: number, height: number, fit: Canvas2DStageFitType] | [canvas: HTMLCanvasElement] | [canvas: HTMLCanvasElement, fit: Canvas2DStageFitType]);
    private makeTexture;
    private updateTexture;
    setContainerSize(width: number, height: number): void;
    setCanvasSize(width: number, height: number): void;
    render(): void;
    private dispatchEvent;
}
//# sourceMappingURL=Canvas2DStage.d.ts.map