import { AViewerPluginEventMap, AViewerPluginSync, ThreeViewer } from '../../viewer';
import { IRenderTarget } from '../../rendering';
import { ICamera } from '../../core';
export interface VirtualCamerasPluginEventMap extends AViewerPluginEventMap {
    preRenderCamera: {
        camera: VirtualCamera;
    };
    preBlitCamera: {
        camera: VirtualCamera;
        readBuffer: WebGLTexture;
    };
    postRenderCamera: {
        camera: VirtualCamera;
    };
}
export interface VirtualCamera {
    camera: ICamera;
    target: IRenderTarget;
    enabled: boolean;
}
export declare class VirtualCamerasPlugin extends AViewerPluginSync<VirtualCamerasPluginEventMap> {
    static readonly PluginType = "VirtualCamerasPlugin";
    enabled: boolean;
    toJSON: any;
    constructor(enabled?: boolean);
    cameras: VirtualCamera[];
    protected _viewerListeners: {
        preRender: () => void;
    };
    private _objectExtension;
    onAdded(viewer: ThreeViewer): void;
    onRemove(viewer: ThreeViewer): void;
    addCamera(camera: ICamera, target?: IRenderTarget, addTargetPreview?: boolean): VirtualCamera;
    removeCamera(camera: ICamera): boolean;
}
//# sourceMappingURL=../../src/plugins/rendering/VirtualCamerasPlugin.d.ts.map