import { Color, Matrix4, MeshBasicMaterial, MeshDepthMaterial, Object3D, OrthographicCamera, PerspectiveCamera, Scene, ShaderMaterial, Vector2, WebGLRenderer, WebGLRenderTarget } from "three";
import { Pass } from "three/examples/jsm/postprocessing/Pass";
/**
 * @author spidersharma / http://eduperiment.com/
 */
export declare class OutlinePass extends Pass {
    renderScene: Scene;
    renderCamera: OrthographicCamera | PerspectiveCamera;
    resolution: Vector2;
    selectedObjects: Object3D[];
    renderObjects: Object3D[];
    visibleEdgeColor: Color;
    hiddenEdgeColor: Color;
    edgeGlow: number;
    usePatternTexture: boolean;
    edgeThickness: number;
    edgeStrength: number;
    downSampleRatio: number;
    pulsePeriod: number;
    maskBufferMaterial: MeshBasicMaterial;
    renderTargetMaskBuffer: WebGLRenderTarget;
    depthMaterial: MeshDepthMaterial;
    prepareMaskMaterial: ShaderMaterial;
    renderTargetDepthBuffer: WebGLRenderTarget;
    renderTargetMaskDownSampleBuffer: WebGLRenderTarget;
    renderTargetBlurBuffer1: WebGLRenderTarget;
    renderTargetBlurBuffer2: WebGLRenderTarget;
    edgeDetectionMaterial: ShaderMaterial;
    renderTargetEdgeBuffer1: WebGLRenderTarget;
    renderTargetEdgeBuffer2: WebGLRenderTarget;
    separableBlurMaterial1: ShaderMaterial;
    separableBlurMaterial2: ShaderMaterial;
    overlayMaterial: ShaderMaterial;
    copyUniforms: {
        [x: string]: {
            value: any;
        };
    };
    materialCopy: ShaderMaterial;
    oldClearColor: Color;
    oldClearAlpha: number;
    fsQuad: Pass.FullScreenQuad;
    tempPulseColor1: Color;
    tempPulseColor2: Color;
    textureMatrix: Matrix4;
    patternTexture: any;
    constructor(renderScene: Scene, renderCamera: OrthographicCamera | PerspectiveCamera, resolution?: Vector2, selectedObjects?: Object3D[]);
    dispose(): void;
    setSize(width: number, height: number): void;
    changeVisibilityOfSelectedObjects(bVisible: any): void;
    changeVisibilityOfNonSelectedObjects(bVisible: any): void;
    updateTextureMatrix(): void;
    render(renderer: WebGLRenderer, writeBuffer: WebGLRenderTarget, readBuffer: WebGLRenderTarget, deltaTime: number, maskActive: boolean): void;
    getPrepareMaskMaterial(): ShaderMaterial;
    getEdgeDetectionMaterial(): ShaderMaterial;
    getSeperableBlurMaterial(maxRadius: number): ShaderMaterial;
    getOverlayMaterial(): ShaderMaterial;
    static BlurDirectionX: Vector2;
    static BlurDirectionY: Vector2;
}
//# sourceMappingURL=OutlinePass.d.ts.map