import type { ModelConfig } from "../game/playableGame.js"; import { type MaterialAsset, type MaterialAssignment, type MaterialSelector } from "../material/materialAsset.js"; import type { EditorDocument } from "./types.js"; /** Validate and copy a material asset at the editor boundary. */ export declare function parseEditorMaterialAsset(value: unknown): MaterialAsset; /** * Read named assignments from authored marker metadata without inferring whole-model overrides. * @capability authored-material-slots read validated material assignments from editor marker metadata */ export declare function authoredMaterialAssignments(meta: Record | undefined): MaterialAssignment[]; /** Compare selector meaning independently of serialized property order. @internal */ export declare function sameMaterialSelector(a: MaterialSelector, b: MaterialSelector): boolean; /** Apply authored references; document assets and selectors override model defaults of the same identity. */ export declare function modelWithAuthoredMaterials(model: ModelConfig | undefined, document: Pick, instanceId: string): ModelConfig | undefined;