import { Pass, type Resizable } from 'postprocessing';
import * as THREE from 'three';
import type { GodraysPassParams } from './index';
export declare const GODRAYS_RESOLUTION_SCALE: number;
export interface GodraysIllumPassProps {
    light: THREE.PointLight | THREE.DirectionalLight;
    camera: THREE.PerspectiveCamera;
}
export declare class GodraysIllumPass extends Pass implements Resizable {
    private material;
    private shadowMapSet;
    private props;
    private lastParams;
    private lightWorldPos;
    constructor(props: GodraysIllumPassProps, params: GodraysPassParams);
    setSize(width: number, height: number): void;
    render(renderer: THREE.WebGLRenderer, _inputBuffer: THREE.WebGLRenderTarget, outputBuffer: THREE.WebGLRenderTarget, _deltaTime?: number | undefined, _stencilTest?: boolean | undefined): void;
    setDepthTexture(depthTexture: THREE.Texture, depthPacking?: THREE.DepthPackingStrategies | undefined): void;
    private updateLightParams;
    updateUniforms({ light, camera }: GodraysIllumPassProps, params: GodraysPassParams): void;
}
