import { Camera, Scene, Texture } from 'three';
import { Pass } from 'three/examples/jsm/postprocessing/Pass.js';
import { InputDepthTextureUniform, InputNormalsTextureUniform, SpecklePass } from './SpecklePass';
export declare enum NormalsType {
    DEFAULT = 0,
    IMPROVED = 1,
    ACCURATE = 2
}
export declare enum DynamicAOOutputType {
    RECONSTRUCTED_NORMALS = 0,
    AO = 1,
    AO_BLURRED = 2
}
export interface DynamicAOPassParams {
    intensity: number;
    scale: number;
    kernelRadius: number;
    bias: number;
    normalsType: NormalsType;
    blurEnabled: boolean;
    blurRadius: number;
    blurStdDev: number;
    blurDepthCutoff: number;
}
export declare const DefaultDynamicAOPassParams: {
    intensity: number;
    scale: number;
    kernelRadius: number;
    bias: number;
    normalsType: NormalsType;
    blurEnabled: boolean;
    blurRadius: number;
    blurStdDev: number;
    blurDepthCutoff: number;
};
export declare class DynamicSAOPass extends Pass implements SpecklePass {
    private params;
    private colorBuffer;
    private saoMaterial;
    private vBlurMaterial;
    private hBlurMaterial;
    private saoRenderTarget;
    private blurIntermediateRenderTarget;
    private fsQuad;
    private _outputType;
    private outputScale;
    private prevStdDev;
    private prevNumSamples;
    get displayName(): string;
    get outputTexture(): Texture;
    constructor();
    setParams(params: unknown): void;
    setOutputType(type: DynamicAOOutputType): void;
    setTexture(uName: InputDepthTextureUniform | InputNormalsTextureUniform, texture: Texture): void;
    update(scene: Scene, camera: Camera): void;
    render(renderer: any): void;
    setSize(inputWidth: number, inputHeight: number): void;
}
