import { NodeJSONShadersData, NodeJSONFunctionBodiesData } from './../../json/export/Node';
import { PolyDictionary } from '../../../../types/GlobalTypes';
import { NodeJsonExporterData, NodeJsonExporterUIData } from '../../json/export/Node';
import { SceneJsonExporterData, SceneJsonExporterDataProperties } from '../../json/export/Scene';
export type ManifestNodesData = PolyDictionary<string>;
export type NodeJSONShadersTimestampData = PolyDictionary<PolyDictionary<string>>;
export type JsFunctionBodyDataTimestampData = PolyDictionary<string>;
export interface ManifestContent {
    properties: string;
    root: string;
    nodes: ManifestNodesData;
    shaders: NodeJSONShadersTimestampData;
    jsFunctionBodies: JsFunctionBodyDataTimestampData;
}
type ProgressCallback = (ratio: number) => void;
interface ImportData {
    sceneName?: string;
    urlPrefix?: string;
    manifest: ManifestContent;
    editorMode?: boolean;
    onProgress?: ProgressCallback;
}
export interface SceneDataElements {
    root: NodeJsonExporterData;
    properties: SceneJsonExporterDataProperties;
    ui?: NodeJsonExporterUIData;
    shaders?: NodeJSONShadersData;
    jsFunctionBodies?: NodeJSONFunctionBodiesData;
}
export declare class SceneDataManifestImporter {
    static importSceneData(importData: ImportData): Promise<SceneJsonExporterData>;
    static assemble(assembleData: SceneDataElements, manifestNodes: string[], jsonByName: PolyDictionary<object>): Promise<SceneJsonExporterData>;
    private static _insertChildData;
}
export {};
