export type DistanceFogProps = {
    density: number;
    fogStart: number;
    fogRange: number;
    fogColor: [number, number, number];
};
/**
 * Distance Fog Effect - uses the depth buffer to apply fog based on
 * camera-to-fragment distance. The raw depth buffer values are linearized
 * using the camera's near/far planes (extracted from the viewport projection
 * matrix) so that the fog gradient is perceptually uniform with distance.
 */
export declare class DeckDistanceFogEffect {
    id: string;
    props: DistanceFogProps;
    module: {
        readonly name: "distanceFog";
        readonly fs: "uniform distanceFogUniforms {\n  float density;\n  float fogStart;\n  float fogRange;\n  float nearPlane;\n  float farPlane;\n  vec3 fogColor;\n} distanceFog;\n";
        readonly uniformTypes: {
            readonly density: "f32";
            readonly fogStart: "f32";
            readonly fogRange: "f32";
            readonly nearPlane: "f32";
            readonly farPlane: "f32";
            readonly fogColor: "vec3<f32>";
        };
        readonly defaultUniforms: {
            readonly density: 0.5;
            readonly fogStart: 0.3;
            readonly fogRange: 0.5;
            readonly nearPlane: 0.1;
            readonly farPlane: 1000;
            readonly fogColor: readonly [217, 222, 230];
        };
        readonly propTypes: {
            readonly density: {
                readonly value: 0.5;
                readonly min: 0;
                readonly max: 1;
            };
            readonly fogStart: {
                readonly value: 0.3;
                readonly min: 0;
                readonly max: 1;
            };
            readonly fogRange: {
                readonly value: 0.5;
                readonly min: 0.01;
                readonly max: 1;
            };
            readonly fogColor: {
                readonly value: readonly [217, 222, 230];
            };
            readonly nearPlane: {
                readonly value: 0.1;
                readonly private: true;
            };
            readonly farPlane: {
                readonly value: 1000;
                readonly private: true;
            };
        };
    };
    private model;
    constructor(props?: Partial<DistanceFogProps>);
    setup({ device }: {
        device: any;
    }): void;
    setProps(props: Partial<DistanceFogProps>): void;
    preRender(): void;
    postRender(params: any): any;
    cleanup(): void;
}
