import { PolyScene } from '../PolyScene';
import { Camera, Object3D } from 'three';
import { CoreGraphNode } from '../../../core/graph/CoreGraphNode';
import { CreateViewerOptions } from '../../viewers/_Base';
type OnCameraObjectsUpdated = () => void;
interface MainCameraOptions {
    cameraMaskOverride?: string;
    findAnyCamera?: boolean;
    printCameraNotFoundError?: boolean;
}
export declare class SceneCamerasController {
    private scene;
    private _coreGraphNode;
    constructor(scene: PolyScene);
    coreGraphNode(): CoreGraphNode;
    dispose(): void;
    private _cameraObjectsRecentlyUpdated;
    updateFromChangeInObject(object: Object3D): void;
    cameraObjects(target: Array<Camera>): Camera[];
    private _cameraObjects;
    cameraObjectsRecentlyUpdated(): Camera[];
    setMainCamera(camera: Camera): void;
    setMainCameraPath(path: string): void;
    mainCameraPath(): string;
    private _errorMessageDisplayed;
    mainCamera(options?: MainCameraOptions): Promise<Camera | null>;
    private _findAnyCameraObject;
    createMainViewer(options?: CreateViewerOptions): Promise<import("../../viewers/_Base").TypedViewer<Camera> | undefined>;
    private _onCameraObjectsUpdatedCallbacks;
    onCameraObjectsUpdated(callback: OnCameraObjectsUpdated): void;
    removeOnCameraObjectsUpdated(callback: OnCameraObjectsUpdated): void;
}
export {};
