import type { Model } from './model'; import type { Resources } from './resources'; import type { BuildItem } from './build'; import type { Texture2D, Texture2DGroup, ColorGroup, CompositeMaterials, MultiProperties, PBSpecularDisplayProperties, PBMetallicDisplayProperties, PBSpecularTextureDisplayProperties, PBMetallicTextureDisplayProperties, TranslucentDisplayProperties } from './materials-extension/types'; /** * JSON structure for serializing a 3MF document */ export interface DocumentJSON { model: Model; resources: { baseMaterials: Array<{ id: number; materials: Array<{ name: string; displayColor: string; }>; }>; objects: Array<{ id: number; type: string; name?: string; partnumber?: string; thumbnail?: string; pid?: number; pindex?: number; hasMesh: boolean; hasComponents: boolean; uuid?: string; }>; textures: Texture2D[]; texture2DGroups: Texture2DGroup[]; colorGroups: ColorGroup[]; compositeMaterials: CompositeMaterials[]; multiProperties: MultiProperties[]; displayProperties: (PBSpecularDisplayProperties | PBMetallicDisplayProperties | PBSpecularTextureDisplayProperties | PBMetallicTextureDisplayProperties | TranslucentDisplayProperties)[]; }; build: Array<{ objectId: number; transform: string; partnumber?: string; path?: string; uuid?: string; }>; } /** * In-memory representation of a parsed 3MF document, with serialization hooks */ export declare class ThreeMFDocument { model: Model; resources: Resources; build: BuildItem[]; constructor(model: Model, resources: Resources, build: BuildItem[]); /** * Serialize the document to a JSON-friendly structure */ toJSON(): DocumentJSON; /** * Reconstruct a ThreeMFDocument from serialized JSON */ static fromJSON(json: DocumentJSON): ThreeMFDocument; } //# sourceMappingURL=document.d.ts.map