import { GodRaysVolumetricAcceptedLightType } from './utils/AcceptedLightType';
import { DepthPackingStrategies, Texture, PerspectiveCamera, WebGLRenderer, WebGLRenderTarget } from 'three';
import { Disposable, Pass } from 'postprocessing';
import { GodraysPassParams } from './utils/GodRaysPassParams';
export declare class GodraysPass extends Pass implements Disposable {
    private props;
    private godraysRenderTarget;
    private illumPass;
    private compositorPass;
    /**
     * Constructs a new GodraysPass.  Casts godrays from a point light source.  Add to your scene's composer like this:
     *
     * ```ts
     * import { EffectComposer, RenderPass } from 'postprocessing';
     * import { GodraysPass } from 'three-good-godrays';
     *
     * const composer = new EffectComposer(renderer);
     * const renderPass = new RenderPass(scene, camera);
     * renderPass.renderToScreen = false;
     * composer.addPass(renderPass);
     *
     * const godraysPass = new GodraysPass(pointLight, camera);
     * godraysPass.renderToScreen = true;
     * composer.addPass(godraysPass);
     *
     * function animate() {
     *   composer.render(scene, camera);
     * }
     * ```
     *
     * @param light The light source to use for the godrays.
     * @param camera The camera used to render the scene.
     * @param partialParams The parameters to use for the godrays effect.  Will use default values for any parameters not specified.
     */
    constructor(light: GodRaysVolumetricAcceptedLightType, camera: PerspectiveCamera, partialParams?: Partial<GodraysPassParams>);
    setLight(light: GodRaysVolumetricAcceptedLightType): void;
    /**
     * Updates the parameters used for the godrays effect.  Will use default values for any parameters not specified.
     */
    setParams(partialParams: Partial<GodraysPassParams>): void;
    render(renderer: WebGLRenderer, inputBuffer: WebGLRenderTarget, outputBuffer: WebGLRenderTarget, _deltaTime?: number | undefined, _stencilTest?: boolean | undefined): void;
    setDepthTexture(depthTexture: Texture, depthPacking?: DepthPackingStrategies | undefined): void;
    setSize(width: number, height: number): void;
    dispose(): void;
}
