import { type Matrix3d, ThreeMfModel, ThreeMfObject } from "./3mf.js"; import { type I3mfBaseMaterials, type I3mfModel, type I3mfObject, type I3mfTriangle, type I3mfVertex, type ST_ResourceID, type ST_ResourceIndex, type ST_Unit, ST_ObjectType } from "./3mf.interfaces.js"; import { type I3mfDocument, type I3mfContentType, type I3mfRelationship } from "./3mf.opc.interfaces.js"; import { type I3mfRGBAColor, type I3mfVertexData } from "./3mf.types.js"; export type VertexHandler = (vertex: I3mfVertex) => I3mfVertex; export type TriangleHandler = (triangle: I3mfTriangle) => I3mfTriangle; /** */ export declare class ThreeMfObjectBuilder { /** * */ protected _object: ThreeMfObject; /** * * @param id * @param type */ constructor(id: ST_ResourceID, type: ST_ObjectType); /** * * @param name * @returns */ withName(name: string): ThreeMfObjectBuilder; /** * * @param thumbnail * @returns */ withThumbnail(thumbnail: string): ThreeMfObjectBuilder; /** * * @param id * @param index * @returns */ withProperty(id: ST_ResourceIndex, index?: number): ThreeMfObjectBuilder; /** * * @returns */ build(): I3mfObject; /** * * @param id * @param type */ reset(id: ST_ResourceID, type: ST_ObjectType): void; } /** * */ export declare class ThreeMfComponentsBuilder extends ThreeMfObjectBuilder { /** * * @param id * @param type */ constructor(id: ST_ResourceID, type?: ST_ObjectType); /** * * @param id * @param t * @returns */ withComponent(id: ST_ResourceID, t?: Matrix3d): ThreeMfComponentsBuilder; } /** * */ export declare class ThreeMfMeshBuilder extends ThreeMfObjectBuilder { /** * */ _vh?: VertexHandler; /** * */ _th?: TriangleHandler; /** * * @param id */ constructor(id: ST_ResourceID); /** * * @param vertex * @param triangle * @returns */ withPostProcessHandlers(vertex: VertexHandler, triangle?: TriangleHandler): ThreeMfMeshBuilder; /** * * @param data * @returns */ withData(data: I3mfVertexData): ThreeMfMeshBuilder; /** * * @param id * @param i * @returns */ withMaterial(id: ST_ResourceID, i: number): ThreeMfMeshBuilder; /** * * @param data * @returns */ private _buildMesh; private _buildVertices; private _buildTriangle; } /** * */ export declare class ThreeMfMaterialBuilder { private _m; constructor(id: ST_ResourceID); /** * * @param name * @param color * @returns */ withColor(name: string, color: I3mfRGBAColor): ThreeMfMaterialBuilder; /** * * @returns */ build(): I3mfBaseMaterials; private _rgbaToHex; } /** * */ export declare class ThreeMfModelBuilder { /** * */ static KnownMetaSet: Set; /** * */ _model: ThreeMfModel; /** * */ _objects: Map; /** * * @param name * @param value * @param preserve * @param type * @returns */ withMetaData(name: string, value: string, preserve?: boolean, type?: string): ThreeMfModelBuilder; /** * * @param material * @returns */ withMaterial(material: I3mfBaseMaterials | ThreeMfMaterialBuilder): ThreeMfModelBuilder; /** * * @param object * @returns */ withMesh(object: I3mfObject | ThreeMfMeshBuilder): ThreeMfModelBuilder; /** * * @param components * @returns */ withComponents(components: I3mfObject | ThreeMfComponentsBuilder): ThreeMfModelBuilder; /** * * @param objectid * @param transform * @param partnumber * @returns */ withBuild(objectid: ST_ResourceID, transform?: Matrix3d, partnumber?: string): ThreeMfModelBuilder; /** * * @param unit * @returns */ withUnit(unit: ST_Unit): ThreeMfModelBuilder; /** * * @returns */ reset(): ThreeMfModelBuilder; /** * * @returns */ build(): ThreeMfModel; } /** * */ export declare class ThreeMfDocumentBuilder { private _cts?; private _rs?; private _m?; /** * * @param type * @returns */ withContentType(type: I3mfContentType): ThreeMfDocumentBuilder; /** * * @param rel * @returns */ withRelationship(rel: I3mfRelationship): ThreeMfDocumentBuilder; /** * * @param m * @returns */ withModel(m: I3mfModel | ThreeMfModelBuilder): ThreeMfDocumentBuilder; build(): I3mfDocument; }