import { Camera, Scene, ShaderMaterial, Texture } from 'three';
import { Pass } from 'three/examples/jsm/postprocessing/Pass.js';
import { InputDepthTextureUniform, InputNormalsTextureUniform, SpeckleProgressivePass } from './SpecklePass';
/**
 * SAO implementation inspired from bhouston previous SAO work
 */
export interface StaticAoPassParams {
    intensity?: number;
    kernelRadius?: number;
    kernelSize?: number;
    bias?: number;
    minDistance?: number;
    maxDistance?: number;
}
export declare const DefaultStaticAoPassParams: {
    intensity: number;
    kernelRadius: number;
    kernelSize: number;
    bias: number;
    minDistance: number;
    maxDistance: number;
};
export declare class StaticAOPass extends Pass implements SpeckleProgressivePass {
    aoMaterial: ShaderMaterial;
    private accumulateMaterial;
    private _generationBuffer;
    private _accumulationBuffer;
    private params;
    private fsQuad;
    private frameIndex;
    private accumulationFrames;
    private kernels;
    private noiseTextures;
    setTexture(uName: InputDepthTextureUniform | InputNormalsTextureUniform, texture: Texture): void;
    get outputTexture(): Texture;
    get displayName(): string;
    constructor();
    setParams(params: unknown): void;
    setFrameIndex(index: number): void;
    setAccumulationFrames(frames: number): void;
    update(scene: Scene, camera: Camera): void;
    render(renderer: any, writeBuffer: any, readBuffer: any): void;
    private renderFrame;
    setSize(width: number, height: number): void;
    private generateSampleKernel;
    private generateRandomKernelRotations;
}
