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 ModelCacheMode } from './modelPersistentCache'; import type { InteractionEventMap } from '../interactions'; export interface LoadParameters { persistent?: boolean; cacheMode?: ModelCacheMode; cacheKey?: string; signal?: AbortSignal; } export type { ModelCacheMode } from './modelPersistentCache'; export declare class ModelLoaderManager { 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 getMemoryCacheKey(url: string, persistent: boolean, cacheMode?: ModelCacheMode, cacheKey?: string): string; static clearPersistentCache(): Promise; static deletePersistentCache(url: string, options?: Pick): Promise; static loadAsync(url: string, parameters?: LoadParameters): Promise>; private static loadRegularModel; private static configureGltfLoader; private static createParseLoadingManager; private static rootResourceOptions; private static cacheUseFor; private static dependencyResourceOptions; private static loadManagedResource; private static prepareExternalGltfResources; private static loadSourceBuffer; private static throwIfAborted; }