export type SurfaceFogProps = {
    density: number;
    /** Fog ceiling elevation in meters. Geometry below this gets fog. */
    height: number;
    /** Vertical transition zone in meters above the ceiling. */
    thickness: number;
    fogColor: [number, number, number];
};
/**
 * Surface Fog Effect — elevation-based ground-level fog.
 *
 * Uses deck.gl's pixelUnprojectionMatrix to reconstruct the common-space
 * position of each fragment from the depth buffer.  The Z component of
 * that position corresponds to the fragment's real-world elevation
 * (scaled by distanceScales.unitsPerMeter).  Fog is applied to all
 * fragments whose elevation is below the user-configured height (meters),
 * with a smooth transition zone controlled by thickness (meters).
 */
export declare class DeckSurfaceFogEffect {
    id: string;
    props: SurfaceFogProps;
    module: {
        readonly name: "surfaceFog";
        readonly fs: "uniform surfaceFogUniforms {\n  float density;\n  float fogHeight;\n  float fogThickness;\n  vec3 fogColor;\n  vec4 invCol0;\n  vec4 invCol1;\n  vec4 invCol2;\n  vec4 invCol3;\n  float viewportWidth;\n  float viewportHeight;\n} surfaceFog;\n";
        readonly uniformTypes: {
            readonly density: "f32";
            readonly fogHeight: "f32";
            readonly fogThickness: "f32";
            readonly fogColor: "vec3<f32>";
            readonly invCol0: "vec4<f32>";
            readonly invCol1: "vec4<f32>";
            readonly invCol2: "vec4<f32>";
            readonly invCol3: "vec4<f32>";
            readonly viewportWidth: "f32";
            readonly viewportHeight: "f32";
        };
        readonly defaultUniforms: {
            readonly density: 0.6;
            readonly fogHeight: 0;
            readonly fogThickness: 0;
            readonly fogColor: readonly [230, 235, 242];
            readonly invCol0: readonly [1, 0, 0, 0];
            readonly invCol1: readonly [0, 1, 0, 0];
            readonly invCol2: readonly [0, 0, 1, 0];
            readonly invCol3: readonly [0, 0, 0, 1];
            readonly viewportWidth: 1;
            readonly viewportHeight: 1;
        };
        readonly propTypes: {
            readonly density: {
                readonly value: 0.6;
                readonly min: 0;
                readonly max: 1;
            };
            readonly height: {
                readonly value: 100;
                readonly min: 0;
                readonly max: 3000;
            };
            readonly thickness: {
                readonly value: 200;
                readonly min: 0;
                readonly max: 1000;
            };
            readonly fogColor: {
                readonly value: readonly [230, 235, 242];
            };
            readonly fogHeight: {
                readonly value: 0;
                readonly private: true;
            };
            readonly fogThickness: {
                readonly value: 0;
                readonly private: true;
            };
            readonly invCol0: {
                readonly value: readonly [1, 0, 0, 0];
                readonly private: true;
            };
            readonly invCol1: {
                readonly value: readonly [0, 1, 0, 0];
                readonly private: true;
            };
            readonly invCol2: {
                readonly value: readonly [0, 0, 1, 0];
                readonly private: true;
            };
            readonly invCol3: {
                readonly value: readonly [0, 0, 0, 1];
                readonly private: true;
            };
            readonly viewportWidth: {
                readonly value: 1;
                readonly private: true;
            };
            readonly viewportHeight: {
                readonly value: 1;
                readonly private: true;
            };
        };
    };
    private model;
    constructor(props?: Partial<SurfaceFogProps>);
    setup({ device }: {
        device: any;
    }): void;
    setProps(props: Partial<SurfaceFogProps>): void;
    preRender(): void;
    postRender(params: any): any;
    cleanup(): void;
}
