import type { Texture } from '@luma.gl/core';
import type { NumberArray2, NumberArray16 } from '@math.gl/core';
export type PBRSceneBindings = {
    pbr_transmissionFramebufferSampler?: Texture | null;
};
export type PBRSceneUniforms = {
    exposure?: number;
    toneMapMode?: number;
    environmentIntensity?: number;
    environmentRotation?: number;
    framebufferSize?: NumberArray2;
    viewMatrix?: NumberArray16;
    projectionMatrix?: NumberArray16;
};
export type PBRSceneProps = PBRSceneBindings & PBRSceneUniforms;
export declare const pbrScene: {
    readonly name: "pbrScene";
    readonly bindingLayout: readonly [{
        readonly name: "pbrScene";
        readonly group: 1;
    }, {
        readonly name: "pbr_transmissionFramebufferSampler";
        readonly group: 1;
    }];
    readonly source: "struct pbrSceneUniforms {\n  exposure: f32,\n  toneMapMode: i32,\n  environmentIntensity: f32,\n  environmentRotation: f32,\n  framebufferSize: vec2<f32>,\n  viewMatrix: mat4x4<f32>,\n  projectionMatrix: mat4x4<f32>\n};\n\n@group(1) @binding(auto) var<uniform> pbrScene: pbrSceneUniforms;\n\n#ifdef USE_TRANSMISSION_FRAMEBUFFER\n@group(1) @binding(auto) var pbr_transmissionFramebufferSampler: texture_2d<f32>;\n@group(1) @binding(auto) var pbr_transmissionFramebufferSamplerSampler: sampler;\n#endif\n";
    readonly vs: "layout(std140) uniform pbrSceneUniforms {\n  float exposure;\n  int toneMapMode;\n  float environmentIntensity;\n  float environmentRotation;\n  vec2 framebufferSize;\n  mat4 viewMatrix;\n  mat4 projectionMatrix;\n} pbrScene;\n\n#ifdef USE_TRANSMISSION_FRAMEBUFFER\nuniform sampler2D pbr_transmissionFramebufferSampler;\n#endif\n";
    readonly fs: "layout(std140) uniform pbrSceneUniforms {\n  float exposure;\n  int toneMapMode;\n  float environmentIntensity;\n  float environmentRotation;\n  vec2 framebufferSize;\n  mat4 viewMatrix;\n  mat4 projectionMatrix;\n} pbrScene;\n\n#ifdef USE_TRANSMISSION_FRAMEBUFFER\nuniform sampler2D pbr_transmissionFramebufferSampler;\n#endif\n";
    readonly getUniforms: (props: PBRSceneProps) => PBRSceneProps;
    readonly uniformTypes: {
        readonly exposure: "f32";
        readonly toneMapMode: "i32";
        readonly environmentIntensity: "f32";
        readonly environmentRotation: "f32";
        readonly framebufferSize: "vec2<f32>";
        readonly viewMatrix: "mat4x4<f32>";
        readonly projectionMatrix: "mat4x4<f32>";
    };
    readonly defaultUniforms: Required<PBRSceneUniforms>;
};
//# sourceMappingURL=pbr-scene.d.ts.map