import { Scene, WebGLRenderer } from "three";
import { CameraManager } from "../camera/CameraManager";
import { Sun } from "../sun/Sun";
import { TimeManager } from "../time/TimeManager";
import { TweakPane } from "../tweakpane/TweakPane";
type ComposerContructorArgs = {
    scene: Scene;
    cameraManager: CameraManager;
    spawnSun: boolean;
    environmentConfiguration?: EnvironmentConfiguration;
    postProcessingEnabled?: boolean;
};
export type EnvironmentConfiguration = {
    groundPlane?: boolean;
    skybox?: {
        intensity?: number;
        blurriness?: number;
        azimuthalAngle?: number;
        polarAngle?: number;
    } & ({
        hdrJpgUrl: string;
    } | {
        hdrUrl: string;
    });
    envMap?: {
        intensity?: number;
    };
    sun?: {
        intensity?: number;
        polarAngle?: number;
        azimuthalAngle?: number;
    };
    fog?: {
        fogNear?: number;
        fogFar?: number;
        fogColor?: {
            r: number;
            g: number;
            b: number;
        };
    };
    postProcessing?: {
        bloomIntensity?: number;
    };
    ambientLight?: {
        intensity?: number;
    };
};
export declare class Composer {
    private width;
    private height;
    private resizeListener;
    private readonly scene;
    postPostScene: Scene;
    private readonly cameraManager;
    readonly renderer: WebGLRenderer;
    private postProcessingManager;
    private currentCamera;
    private ambientLight;
    private environmentConfiguration?;
    private skyboxState;
    sun: Sun | null;
    spawnSun: boolean;
    private sky;
    private skyCubeCamera;
    private skyRenderTarget;
    private currentAzimuthalAngle;
    private currentPolarAngle;
    private targetAzimuthalAngle;
    private targetPolarAngle;
    private currentIntensity;
    private targetIntensity;
    private readonly lerpSpeed;
    private postProcessingEnabled;
    constructor({ scene, cameraManager, spawnSun, environmentConfiguration, postProcessingEnabled, }: ComposerContructorArgs);
    private setupSkyShader;
    updateEnvironmentConfiguration(environmentConfiguration: EnvironmentConfiguration): void;
    setupTweakPane(tweakPane: TweakPane): void;
    dispose(): void;
    fitContainer(): void;
    render(timeManager: TimeManager): void;
    private hasHDR;
    updateSkyboxRotation(): void;
    private loadHDRJPG;
    private loadHDRi;
    useHDRJPG(url: string): void;
    useHDRI(url: string): void;
    setHDRIFromFile(): void;
    setFog(): void;
    setAmbientLight(): void;
    updateSkyShaderValues(): void;
    updateSunValues(): void;
    updateSun(): void;
    private lerp;
    private lerpAngle;
    private updateSkyShaderValuesWithLerpedAngles;
    private updateFogValues;
    private updateSkyboxAndEnvValues;
    private updateBloomValues;
    private updateAmbientLightValues;
    togglePostProcessing(enabled: boolean): void;
    private applyEnvMap;
}
export {};
