import { Box3, Plane, Scene, Texture } from 'three';
import SpeckleDepthMaterial from '../materials/SpeckleDepthMaterial';
import { BaseSpecklePass, SpecklePass } from './SpecklePass';
import { ShadowcatcherConfig } from '../ShadowcatcherConfig';
export declare class ShadowcatcherPass extends BaseSpecklePass implements SpecklePass {
    private readonly levels;
    private readonly debugCamera;
    private renderTargets;
    private tempTargets;
    private outputTarget;
    private camera;
    private scene;
    private _needsUpdate;
    private fsQuad;
    private blendMaterial;
    private depthMaterial;
    private vBlurMaterial;
    private hBlurMaterial;
    private blurStdDev;
    private blurRadius;
    private prevBlurStdDev;
    private prevBlurRadius;
    private cameraHelper;
    onBeforeRender: () => void;
    onAfterRender: () => void;
    get displayName(): string;
    get outputTexture(): Texture;
    set needsUpdate(value: boolean);
    get drawDepthMaterial(): SpeckleDepthMaterial;
    constructor();
    update(scene: Scene): void;
    render(renderer: any, writeBuffer: any, readBuffer: any): void;
    updateClippingPlanes(planes: Plane[]): void;
    setOutputSize(width: number, height: number): void;
    setWeights(weights: {
        x: number;
        y: number;
        z: number;
        w: number;
    }): void;
    updateCamera(planeBox: Box3, near: number, far: number): void;
    updateConfig(config: ShadowcatcherConfig): void;
    setSize(width: number, height: number): void;
}
