import { Material, Texture } from 'three'; interface MeshFeaturesExtension { featureIds: Array<{ featureCount: number; propertyTable?: number; nullFeatureId?: number; label?: string; attribute?: number; texture?: { index: number; texCoord?: number; channels?: number[]; }; }>; } interface StructuralMetadataExtension { schema: { id?: string; name?: string; description?: string; version?: string; classes?: Record; }>; enums?: Record; }>; }; propertyTables?: Array<{ name?: string; class: string; count: number; properties?: Record; }>; propertyTextures?: Array<{ name?: string; class: string; properties?: Record; }>; propertyAttributes?: Array<{ name?: string; class: string; properties?: Record; }>; } export interface PrimitiveExtensions { EXT_mesh_features?: MeshFeaturesExtension; EXT_structural_metadata?: { propertyTextures?: number[]; propertyAttributes?: number[]; }; } export interface GLTFWorkerData { textures?: Array<{ image?: { array: Uint8Array; width: number; height: number; }; }>; materials?: Array<{ pbrMetallicRoughness?: { baseColorFactor?: number[]; baseColorTexture?: { index: number; }; metallicFactor?: number; roughnessFactor?: number; metallicRoughnessTexture?: { index: number; }; }; normalTexture?: { index: number; scale?: number; }; occlusionTexture?: { index: number; }; emissiveTexture?: { index: number; }; emissiveFactor?: number[]; doubleSided?: boolean; alphaMode?: string; alphaCutoff?: number; }>; meshes?: Record; }>; scenes: Array<{ nodes: Array; }>; json?: { extensionsUsed?: string[]; extensions?: { EXT_structural_metadata?: StructuralMetadataExtension; [key: string]: any; }; meshes?: Array<{ primitives: Array<{ extensions?: PrimitiveExtensions; }>; }>; [key: string]: any; }; structuralMetadata?: { schema: StructuralMetadataExtension["schema"]; propertyTables: StructuralMetadataExtension["propertyTables"]; buffers: Array; }; } export interface InstanceData { count: number; TRANSLATION?: Float32Array; ROTATION?: Float32Array; SCALE?: Float32Array; } export interface GLTFNodeData { name?: string; mesh: number; matrix?: number[]; translation?: number[]; rotation?: number[]; scale?: number[]; children?: GLTFNodeData[]; instanceData?: InstanceData; } export type MaterialBuilder = (matData: unknown, textureMap: Map) => Material; export {}; //# sourceMappingURL=types.d.ts.map