import { FileLoader, LoadingManager, type Object3D, type WebGPURenderer } from 'three/webgpu'; import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'; import { FBXLoader } from 'three/addons/loaders/FBXLoader.js'; import { OBJLoader } from 'three/addons/loaders/OBJLoader.js'; import { STLLoader } from 'three/addons/loaders/STLLoader.js'; import { DRACOLoader } from 'three/addons/loaders/DRACOLoader.js'; import { KTX2Loader } from 'three/addons/loaders/KTX2Loader.js'; import { SBMXLoader } from './SBMXLoader'; import { SBMLoader } from './SBMLoader'; import type { InteractionEventMap } from '../interactions'; export interface LoadParameters { persistent?: boolean; signal?: AbortSignal; } export declare class ModelLoaderManager { private static CACHE_NAME; static fileLoader: FileLoader; static dracoLoader: DRACOLoader; static ktx2Loader: KTX2Loader; static gltfLoader: GLTFLoader; static sbmxLoader: SBMXLoader; static sbmLoader: SBMLoader; static fbxLoader: FBXLoader; static objLoader: OBJLoader; static stlLoader: STLLoader; private static decodeWorkerClient; /** * Routes supported static glTF/GLB/SBMX models through a dedicated decoder * Worker. ModelLoaderManager owns the supplied Worker and terminates it when * replaced or cleared. The returned disposer only clears this specific * Worker, so a late owner cleanup cannot terminate a newer replacement. */ static setDecodeWorker(worker: Worker | null): () => void; static get decodeWorkerEnabled(): boolean; static setLoadingManager(loadingManager: LoadingManager): void; /** * Set the renderer to enable KTX2 support and other renderer-dependent features. */ static setRenderer(renderer: WebGPURenderer): Promise; /** * Configure Draco decoder path. */ static setDracoPath(path: string): void; /** * Configure KTX2 transcoder path. */ static setKTX2Path(path: string): void; static loadAsync(url: string, parameters?: LoadParameters): Promise>; private static configureGltfLoader; private static createParseLoadingManager; private static loadSourceBuffer; private static throwIfAborted; }