import * as THREE from 'three';
type RuntimeRefs = {
    scene: THREE.Scene | null;
    camera: THREE.PerspectiveCamera | null;
    renderer: THREE.WebGLRenderer | null;
    width: number;
    height: number;
};
export declare class BackgroundManager {
    private scene;
    private camera;
    private renderer;
    private width;
    private height;
    private bgScene;
    private bgCamera;
    private videoElement;
    private videoTexture;
    private videoMesh;
    setRuntimeRefs({ scene, camera, renderer, width, height }: RuntimeRefs): void;
    renderBackground(): void;
    prepareFrame(): void;
    setBackground(bg?: string): void;
    setVideoBackground(videoURL: string): void;
    loadCubeBackground(imageURLs: string[]): void;
    updateBackgroundSize(bgTexture: THREE.Texture, bgMesh: THREE.Mesh): void;
    setBackgroundColorOrGradient(colorOrGradient: string): void;
    destroy(): void;
    private loadSingleBackground;
    private setGradientBackground;
    private updateVideoMesh;
}
export {};
//# sourceMappingURL=BackgroundManager.d.ts.map