/**
 * @module vim-loader/materials
 */
import * as THREE from 'three';
/** Outline Material based on edge detection. */
export declare class OutlineMaterial {
    material: THREE.ShaderMaterial;
    private _camera;
    private _resolution;
    private _precision;
    private _antialias;
    constructor(options?: Partial<{
        sceneBuffer: THREE.Texture;
        resolution: THREE.Vector2;
        precision: number;
        antialias: boolean;
        camera: THREE.PerspectiveCamera | THREE.OrthographicCamera;
    }>);
    /**
     * Enable antialiasing for the outline.
     * This is actually applied in the rendering composer.
     */
    get antialias(): boolean;
    set antialias(value: boolean);
    /**
     * Precision of the outline. This is used to scale the resolution of the outline.
     */
    get precision(): number;
    set precision(value: number);
    /**
     * Resolution of the outline. This should match the resolution of screen.
     */
    get resolution(): THREE.Vector2;
    set resolution(value: THREE.Vector2);
    /**
     * Camera used to render the outline.
     */
    get camera(): THREE.PerspectiveCamera | THREE.OrthographicCamera | undefined;
    set camera(value: THREE.PerspectiveCamera | THREE.OrthographicCamera | undefined);
    /**
     * Blur of the outline. This is used to smooth the outline.
     */
    get strokeBlur(): number;
    set strokeBlur(value: number);
    /**
     * Bias of the outline. This is used to control the strength of the outline.
     */
    get strokeBias(): number;
    set strokeBias(value: number);
    /**
     * Multiplier of the outline. This is used to control the strength of the outline.
     */
    get strokeMultiplier(): number;
    set strokeMultiplier(value: number);
    /**
     * Color of the outline.
     */
    get color(): THREE.Color;
    set color(value: THREE.Color);
    /**
     * Scene buffer used to render the outline.
     */
    get sceneBuffer(): THREE.Texture;
    set sceneBuffer(value: THREE.Texture);
    /**
     * Depth buffer used to render the outline.
     */
    get depthBuffer(): THREE.Texture;
    set depthBuffer(value: THREE.Texture);
    /**
     * Dispose of the outline material.
     */
    dispose(): void;
}
/**
 * This material =computes outline using the depth buffer and combines it with the scene buffer to create a final scene.
 */
export declare function createOutlineMaterial(): THREE.ShaderMaterial;
