import { BloomEffect, EffectComposer, EffectPass, ToneMappingEffect } from "postprocessing";
import { Scene, WebGLRenderer } from "three";
import { CameraManager } from "../camera/CameraManager";
import { LocalController } from "../character/LocalController";
import type { Composer } from "../rendering/composer";
import { BrightnessContrastSaturation } from "../rendering/post-effects/bright-contrast-sat";
import { GaussGrainEffect } from "../rendering/post-effects/gauss-grain";
import { PostProcessingManager } from "../rendering/PostProcessingManager";
import { TimeManager } from "../time/TimeManager";
export declare class TweakPane {
    private holderElement;
    private renderer;
    private scene;
    private composer;
    private postProcessingEnabled;
    private gui;
    private renderStatsFolder;
    private rendererFolder;
    private postProcessingFolder;
    private postProcessingSettingsFolder;
    private toneMappingFolder;
    private ssaoFolder;
    private bcsFolder;
    private bloomAndGrainFolder;
    private character;
    private environment;
    private camera;
    private characterControls;
    private export;
    private saveVisibilityInLocalStorage;
    guiVisible: boolean;
    private tweakPaneWrapper;
    private eventHandlerCollection;
    constructor(holderElement: HTMLElement, renderer: WebGLRenderer, scene: Scene, composer: Composer, postProcessingEnabled: boolean | undefined);
    private processKey;
    setupRenderPane(composer: EffectComposer, n8aopass: any, toneMappingEffect: ToneMappingEffect, toneMappingPass: EffectPass, brightnessContrastSaturation: typeof BrightnessContrastSaturation, bloomEffect: BloomEffect, gaussGrainEffect: typeof GaussGrainEffect, hasLighting: boolean, updateSunValues: () => void, setHDR: () => void, setSkyboxAzimuthalAngle: (azimuthalAngle: number) => void, setSkyboxPolarAngle: (azimuthalAngle: number) => void, setAmbientLight: () => void, setFog: () => void, setSkyShaderValues: () => void): void;
    dispose(): void;
    setupCamPane(cameraManager: CameraManager): void;
    setupCharacterController(localController: LocalController): void;
    setupPostProcessingPane(postProcessingManager: PostProcessingManager): void;
    updateStats(timeManager: TimeManager): void;
    updateCameraData(cameraManager: CameraManager): void;
    updateCharacterData(localController: LocalController): void;
    private formatDateForFilename;
    private downloadSettingsAsJSON;
    private importSettingsFromJSON;
    private toggleGUI;
}
