/**
 * @ignore
 */
export class ShadowRenderer {
    static createShadowCamera(device: any, shadowType: any, type: any, face: any): import("../camera.js").Camera;
    static setShadowCameraSettings(shadowCam: any, device: any, shadowType: any, type: any, isClustered: any): void;
    /**
     * @param {import('./renderer.js').Renderer} renderer - The renderer.
     * @param {import('../lighting/light-texture-atlas.js').LightTextureAtlas} lightTextureAtlas - The
     * shadow map atlas.
     */
    constructor(renderer: import("./renderer.js").Renderer, lightTextureAtlas: import("../lighting/light-texture-atlas.js").LightTextureAtlas);
    /**
     * A cache of shadow passes. First index is looked up by light type, second by shadow type.
     *
     * @type {import('../shader-pass.js').ShaderPassInfo[][]}
     * @private
     */
    private shadowPassCache;
    device: import("../../index.js").GraphicsDevice;
    /** @type {import('./renderer.js').Renderer} */
    renderer: import("./renderer.js").Renderer;
    /** @type {import('../lighting/light-texture-atlas.js').LightTextureAtlas} */
    lightTextureAtlas: import("../lighting/light-texture-atlas.js").LightTextureAtlas;
    polygonOffsetId: import("../../index.js").ScopeId;
    polygonOffset: Float32Array<ArrayBuffer>;
    sourceId: import("../../index.js").ScopeId;
    pixelOffsetId: import("../../index.js").ScopeId;
    weightId: import("../../index.js").ScopeId;
    blurVsmShaderCode: any[];
    blurPackedVsmShaderCode: string[];
    blurVsmShader: {}[];
    blurPackedVsmShader: {}[];
    blurVsmWeights: {};
    shadowMapLightRadiusId: import("../../index.js").ScopeId;
    viewUniformFormat: UniformBufferFormat;
    viewBindGroupFormat: BindGroupFormat;
    blendStateWrite: BlendState;
    blendStateNoWrite: BlendState;
    _cullShadowCastersInternal(meshInstances: any, visible: any, camera: any): void;
    /**
     * Culls the list of shadow casters used by the light by the camera, storing visible mesh
     * instances in the specified array.
     * @param {import('../composition/layer-composition.js').LayerComposition} comp - The layer
     * composition used as a source of shadow casters, if those are not provided directly.
     * @param {import('../light.js').Light} light - The light.
     * @param {import('../mesh-instance.js').MeshInstance[]} visible - The array to store visible
     * mesh instances in.
     * @param {import('../camera.js').Camera} camera - The camera.
     * @param {import('../mesh-instance.js').MeshInstance[]} [casters] - Optional array of mesh
     * instances to use as casters.
     * @ignore
     */
    cullShadowCasters(comp: import("../composition/layer-composition.js").LayerComposition, light: import("../light.js").Light, visible: import("../mesh-instance.js").MeshInstance[], camera: import("../camera.js").Camera, casters?: import("../mesh-instance.js").MeshInstance[]): void;
    setupRenderState(device: any, light: any): void;
    dispatchUniforms(light: any, shadowCam: any, lightRenderData: any, face: any): void;
    /**
     * @param {import('../light.js').Light} light - The light.
     * @returns {number} Index of shadow pass info.
     */
    getShadowPass(light: import("../light.js").Light): number;
    /**
     * @param {import('../mesh-instance.js').MeshInstance[]} visibleCasters - Visible mesh
     * instances.
     * @param {import('../light.js').Light} light - The light.
     */
    submitCasters(visibleCasters: import("../mesh-instance.js").MeshInstance[], light: import("../light.js").Light): void;
    needsShadowRendering(light: any): any;
    getLightRenderData(light: any, camera: any, face: any): any;
    setupRenderPass(renderPass: any, shadowCamera: any, clearRenderTarget: any): void;
    prepareFace(light: any, camera: any, face: any): any;
    renderFace(light: any, camera: any, face: any, clear: any, insideRenderPass?: boolean): void;
    render(light: any, camera: any, insideRenderPass?: boolean): void;
    renderVsm(light: any, camera: any): void;
    getVsmBlurShader(isVsm8: any, blurMode: any, filterSize: any): any;
    applyVsmBlur(light: any, camera: any): void;
    initViewBindGroupFormat(): void;
    frameUpdate(): void;
}
import { UniformBufferFormat } from '../../platform/graphics/uniform-buffer-format.js';
import { BindGroupFormat } from '../../platform/graphics/bind-group-format.js';
import { BlendState } from '../../platform/graphics/blend-state.js';
