import { Object3D } from "three"; import { type GLTF } from "three/examples/jsm/loaders/GLTFLoader.js"; import { SerializationContext } from "./engine_serialization_core.js"; import { Context } from "./engine_setup.js"; import type { IComponent, SourceIdentifier, UIDProvider } from "./engine_types.js"; import { NEEDLE_components } from "./extensions/NEEDLE_components.js"; export declare function writeBuiltinComponentData(comp: IComponent, context: SerializationContext): object | null; /** * The ONE component-creation core, shared by the glTF loader (NEEDLE_components * extension, below) and the project-document evaluator (defs — engine_project_document): * construct the component from its serialized data and attach it DORMANT. Deserialization * and awake are the CALLER's phase (the loader queues deserialization for pre-setup, the * evaluator already runs inside pre-setup and deserializes immediately). Every * creation-time side effect lives here so the two paths cannot drift. */ export declare function createComponentFromSerializedData(obj: Object3D, type: new () => unknown, compData: { name: string; guid?: string; }, serializationContext: SerializationContext): IComponent; export declare function createBuiltinComponents(context: Context, gltfId: SourceIdentifier, gltf: GLTF & { children?: Array; }, seed?: number | null | UIDProvider, extension?: NEEDLE_components): Promise;