import { CamerasController } from './utils/CamerasController';
import { Cooker } from './utils/Cooker';
import { CookController } from './utils/CookController';
import { CoreGraph } from '../../core/graph/CoreGraph';
import { CorePerformance } from '../../core/performance/CorePerformance';
import { DispatchController } from './utils/DispatchController';
import { ExpressionsController } from './utils/ExpressionsController';
import { LifeCycleController } from './utils/LifeCycleController';
import { LoadingController } from './utils/LoadingController';
import { MissingReferencesController } from './utils/MissingReferencesController';
import { NodesController } from './utils/NodesController';
import { SceneEventsDispatcher } from './utils/events/EventsDispatcher';
import { ObjectsController } from './utils/ObjectsController';
import { ReferencesController } from './utils/ReferencesController';
import { TimeController } from './utils/TimeController';
import { UniformsController } from './utils/UniformsController';
import { ViewersRegister } from './utils/ViewersRegister';
import { WebGLController } from './utils/WebGLController';
import { Scene } from 'three/src/scenes/Scene';
import { SceneAssetsController } from './utils/AssetsController';
import { BaseNodeType } from '../nodes/_Base';
export declare class PolyScene {
    protected _threejsScene: Scene;
    threejsScene(): Scene;
    _uuid: string;
    setUuid(uuid: string): string;
    get uuid(): string;
    _name: string | undefined;
    setName(name: string): string;
    name(): string | undefined;
    protected _cameras_controller: CamerasController;
    get camerasController(): CamerasController;
    masterCameraNode(): import("../nodes/obj/_BaseCamera").BaseCameraObjNodeType | null;
    private _cooker;
    get cooker(): Cooker;
    private _assets_controller;
    get assets(): SceneAssetsController;
    readonly cookController: CookController;
    waitForCooksCompleted(): Promise<void>;
    private _dispatch_controller;
    get dispatchController(): DispatchController;
    private _events_dispatcher;
    get eventsDispatcher(): SceneEventsDispatcher;
    private _graph;
    get graph(): CoreGraph;
    private _lifecycle_controller;
    get lifecycleController(): LifeCycleController;
    private _loading_controller;
    get loadingController(): LoadingController;
    private _missing_expression_references_controller;
    get missingExpressionReferencesController(): MissingReferencesController;
    private _expressions_controller;
    get expressionsController(): ExpressionsController;
    protected _nodes_controller: NodesController;
    get nodesController(): NodesController;
    nodesByType(type: string): BaseNodeType[];
    protected _objects_controller: ObjectsController;
    get objectsController(): ObjectsController;
    findObjectByMask(mask: string): import("three").Object3D | undefined;
    objectsByMask(mask: string): import("three").Object3D[];
    protected _references_controller: ReferencesController;
    get referencesController(): ReferencesController;
    protected _performance: CorePerformance | undefined;
    get performance(): CorePerformance;
    protected _viewers_register: ViewersRegister | undefined;
    get viewersRegister(): ViewersRegister;
    protected _time_controller: TimeController;
    get timeController(): TimeController;
    setFrame(frame: number): void;
    frame(): number;
    time(): number;
    frameRange(): import("../../types/GlobalTypes").Number2;
    play(): void;
    pause(): void;
    private _serializer;
    private get serializer();
    toJSON(): {
        nodes_by_graph_node_id: import("../../types/GlobalTypes").PolyDictionary<object>;
        params_by_graph_node_id: import("../../types/GlobalTypes").PolyDictionary<object>;
    };
    private _read_only;
    private _read_only_requester;
    markAsReadOnly(requester: BaseNodeType): void;
    readOnly(): boolean;
    readOnlyRequester(): BaseNodeType | undefined;
    private _uniforms_controller;
    get uniforms_controller(): UniformsController;
    private _webgl_controller;
    get webgl_controller(): WebGLController;
    constructor();
    batchUpdates(callback: () => void): void;
    node(path: string): BaseNodeType | import("../nodes/manager/ObjectsManager").ObjectsManagerNode | null;
    root(): import("../nodes/manager/ObjectsManager").ObjectsManagerNode;
}
