import { WebGLRenderer, Mesh, Scene, Vector2, WebGLRenderTarget } from 'three';
import { PolyScene } from '../../engine/scene/PolyScene';
interface ContactShadowOptions {
    scene: PolyScene;
    mesh: Mesh;
    dist: number;
    renderTargetSize: Vector2;
    darkness: number;
    blur: number;
    tblur2: boolean;
    blur2: number;
    renderAllObjects: boolean;
    objectsMask: string;
    showHelper: boolean;
}
export declare class ContactShadowController {
    protected _options: ContactShadowOptions;
    private _shadowCamera;
    private _planeMaterial;
    private _depthMaterial;
    private _darknessUniform;
    readonly renderTarget: WebGLRenderTarget;
    private _coreRenderBlur;
    private _emptyOnBeforeRender;
    private _helper;
    private _initialVisibilityState;
    private _includedObjects;
    private _mesh;
    private _scene;
    constructor(_options: ContactShadowOptions);
    renderShadow(renderer: WebGLRenderer, scene: Scene): void;
    private _createMaterials;
    private _createDepthCamera;
    /**
     *
     * VISIBILITY
     *
     */
    private _initVisibility;
    private _restoreVisibility;
}
export {};
