import { WebGLRenderer } from 'three';
import { OnProgressUpdateCallback } from '../../nodes/manager/utils/Scene/LoadProgress';
import { PolyScene } from '../../scene/PolyScene';
import { BaseViewerType } from '../../viewers/_Base';
import { SceneJsonExporterData } from '../json/export/Scene';
import { ConfigureSceneCallback, SerializerOptions } from '../json/import/Scene';
export interface LoadSceneOptions {
    onProgress?: OnProgressUpdateCallback;
}
export type LoadScene = (options: LoadSceneOptions) => void;
interface ImportCommonOptions extends LoadSceneOptions {
    domElement?: HTMLElement | string;
    sceneName: string;
    configureScene?: ConfigureSceneCallback;
    assetUrls?: string[];
}
export interface SceneDataImportOptions extends ImportCommonOptions {
    sceneData: SceneJsonExporterData;
    autoPlay?: boolean;
    createViewer?: boolean;
    renderer?: WebGLRenderer;
    cameraMaskOverride?: string;
    serializers?: SerializerOptions;
}
export type LoadSceneData = (options: SceneDataImportOptions) => void;
export interface SceneDataImportOptionsOnly {
    sceneData: SceneJsonExporterData;
}
export interface SceneLoadReturnData {
    scene: PolyScene;
    viewer: BaseViewerType | undefined;
}
export declare class ScenePlayerImporter {
    private options;
    private _scene;
    private _viewer;
    private _onLoadCompleteCalled;
    private _onCameraCreatorNodeLoadedResolve;
    private _progress;
    constructor(options: SceneDataImportOptions);
    static loadSceneData(options: SceneDataImportOptions): Promise<SceneLoadReturnData>;
    private _onLoadComplete;
    private _viewerMarkedAsReady;
    private _markViewerAsReady;
    private _sceneMarkedAsReady;
    private _markSceneAsReady;
    private _onNodesCookProgress;
    private _watchNodesProgress;
    loadScene(options?: SerializerOptions): Promise<PolyScene>;
    private _domElement;
    private _dispatchEvent;
    protected _debug(arg0: any): void;
    protected _debug2(arg0: any, arg1: any): void;
    protected static _debug(arg0: any): void;
    protected static _debug2(arg0: any, arg1: any): void;
}
export {};
