import { Constructor } from '../../../../../types/GlobalTypes';
import { RootManagerNode } from '../../Root';
import { Camera, PerspectiveCamera } from 'three';
export declare function _defaultDummyPerspectiveCamera(): PerspectiveCamera;
export declare function RootMainCameraParamConfig<TBase extends Constructor>(Base: TBase): {
    new (...args: any[]): {
        /** @param path to the main camera object that will be used when the scene loads outside of the editor */
        mainCameraPath: import("../../../utils/params/ParamsConfig").ParamTemplate<import("../../../../index_all").ParamType.STRING>;
    };
} & TBase;
export declare class RootMainCameraController {
    protected node: RootManagerNode;
    constructor(node: RootManagerNode);
    setCamera(object: Camera): void;
    setCameraPath(path: string): void;
    mainCameraPathParam(): import("../../../../index_all").StringParam;
    rawCameraPath(): string;
    cameraPath(): Promise<string>;
    private _cameraPathSync;
    cameraSync(): Camera | undefined;
    dummyPerspectiveCamera(): PerspectiveCamera;
    cameraSyncOrDummy(): Camera | undefined;
    camera(): Promise<Camera | undefined>;
    cameraCreatorNode(): Promise<import("../../../_Base").BaseNodeType | null>;
}
