import type { RenderMaterial, ViralutionElement } from "../../entities/base-elements";
import type { ViralViewerState } from "../../entities/base-elements";
import type { ViralutionInformation } from "../../entities/data";
import type { SpatialTreeNode } from "../../components/data-manager/ifc-spatial-tree";
import type { EditorSceneState } from "../../components/editor/persistence/editor-persistence-types";
export interface SceneSnapshotEnvelope {
    version: number;
    timestamp: string;
    name?: string;
    viewerState: ViralViewerState;
    models: SerializedBIMModel[];
    editorState?: EditorSceneState;
}
export interface SerializedBufferElement {
    buffer: Float32Array;
    normals?: Float32Array;
    elementId: string;
    localMaterialIndex: number;
    instances?: {
        elementId: string;
        transform: number[];
    }[];
}
export interface SerializedBIMModel {
    modelId: number;
    materials: RenderMaterial[];
    elements: ViralutionElement[];
    bufferElements?: SerializedBufferElement[];
    properties: ViralutionInformation | null;
    spatialTree: SpatialTreeNode | null;
}
export declare const SCENE_SNAPSHOT_VERSION = 1;
export interface SaveSceneProgress {
    step: string;
    percent: number;
    detail?: string;
}
