import { IDisposable } from "../../Interfaces/IDisposable";
import { Nullable } from "../../types";
export type EnvironmentNode = BABYLON.AbstractMesh | BABYLON.Material | BABYLON.BaseTexture | BABYLON.Light;
export declare class EnvironmentManager implements IDisposable {
    private _originalSceneClearColor;
    private _originalCameraAutoRotate;
    private _zkScene;
    private _scene;
    private _sceneHelper;
    private _environmentHelper;
    private _shadowLight;
    private _isHologram;
    get scene(): BABYLON.Scene;
    get isHologram(): boolean;
    set isHologram(value: boolean);
    constructor(zkScene: Zakeke.Scene, scene: BABYLON.Scene, isHologram?: boolean);
    dispose(): void;
    update(): void;
    configureSkybox(): void;
    private removeOldSkybox;
    private createSkybox;
    getSkyboxMesh(): Nullable<BABYLON.AbstractMesh>;
    getSkyboxMaterial(): Nullable<BABYLON.PBRMaterial | BABYLON.StandardMaterial>;
    getSkyboxTexture(): Nullable<BABYLON.BaseTexture>;
    update_OLD(): void;
    private configureScene;
    private configureEnvironment;
    private buildEnvironmentHelperOptions;
    private createShadowLight;
    private configureCamera;
    private sanityCheck;
    getSceneConfig(): Nullable<Zakeke.SceneConfig>;
    getGeneralConfig(): Nullable<Zakeke.SceneGeneralConfig>;
    getEnvironmentConfig(): Nullable<Zakeke.SceneEnvironmentConfig>;
    getSkyboxConfig(): Nullable<Zakeke.SceneSkyboxConfig>;
    getGroundConfig(): Nullable<Zakeke.SceneGroundConfig>;
    getCameraConfig(): Nullable<Zakeke.SceneCameraConfig>;
    isValidHexColor(hexColor: string): boolean;
    getEnvironmentSceneNodes(): EnvironmentNode[];
    isEnvironmentNode(node: EnvironmentNode): boolean;
    private setDoNotSerialize;
    private reset;
}
