import { Light, Camera, WebGLRenderer, Mesh, WebGLRenderTarget } from 'three';
import { LightMapControllerParams } from './lightMap/Common';
import { RenderTargetPair } from './lightMap/RenderTargetPair';
export declare class LightMapController {
    private renderer;
    private objectTargets;
    private lights;
    private _scene;
    private renderFlippedUvs;
    private nonFlippedRenderTargetPair;
    private flippedRenderTargetPair;
    private lightMapMaterial;
    private blurMaterial;
    private blurPlane;
    private renderTargetsCombineMaterial;
    private renderTargetsCombinePlane;
    private finalRenderTarget;
    private _params;
    constructor(renderer: WebGLRenderer);
    private setSize;
    renderTargetPair(): RenderTargetPair;
    textureRenderTarget(): WebGLRenderTarget<import("three").Texture>;
    setParams(params: LightMapControllerParams): void;
    setState(objects: Mesh[], lights: Light[]): void;
    private _clearScene;
    private _setObjects;
    private _setLights;
    private _objectStateByObject;
    private _previousRenderTarget;
    private _lightHierarchyStateByLight;
    private _lightMatrixStateByLight;
    private _saveLightHierarchyState;
    private _t;
    private _q;
    private _s;
    private _saveLightMatrixState;
    private _saveObjectsState;
    private _moveLights;
    restoreState(): void;
    private _invertObjects;
    private _restoreObjectsState;
    private _restoreLightsState;
    runUpdates(camera: Camera): void;
    private _clear;
    private _update;
}
