import { Pass, type Resizable } from 'postprocessing';
import * as THREE from 'three';
import type { PerspectiveCamera } from 'three';
import type { GodraysPassParams } from './index';
interface GodraysCompositorMaterialProps {
    godrays: THREE.Texture;
    edgeStrength: number;
    edgeRadius: number;
    color: THREE.Color;
    camera: THREE.PerspectiveCamera;
    gammaCorrection: boolean;
}
export declare class GodraysCompositorMaterial extends THREE.ShaderMaterial implements Resizable {
    constructor({ godrays, edgeStrength, edgeRadius, color, camera, gammaCorrection, }: GodraysCompositorMaterialProps);
    updateUniforms(edgeStrength: number, edgeRadius: number, color: THREE.Color, gammaCorrection: boolean, near: number, far: number): void;
    setSize(width: number, height: number): void;
}
export declare class GodraysCompositorPass extends Pass {
    sceneCamera: PerspectiveCamera;
    private depthCopyRenderTexture;
    private depthTextureCopyPass;
    constructor(props: GodraysCompositorMaterialProps);
    updateUniforms(params: GodraysPassParams): void;
    render(renderer: THREE.WebGLRenderer, inputBuffer: THREE.WebGLRenderTarget, outputBuffer: THREE.WebGLRenderTarget | null, _deltaTime?: number | undefined, _stencilTest?: boolean | undefined): void;
    setDepthTexture(depthTexture: THREE.Texture, depthPacking?: THREE.DepthPackingStrategies | undefined): void;
    setSize(width: number, height: number): void;
}
export {};
