import type { GLTFLoaderOptions } from './gltf.js'; import type { LoadedModel } from '../types.js'; /** Loads one model format into the normalized `LoadedModel` shape. */ export type ModelLoader = (url: string, options?: GLTFLoaderOptions) => Promise; /** File-extension → loader dispatch table. Ships with `glb`/`gltf`; extend it to add formats to {@link loadModel}. */ export declare const FORMAT_LOADERS: Record; /** An owned model cache — prefer this over the module-global {@link loadModel} so lifetime and invalidation are yours. */ export interface ModelCache { load(src: string, options?: GLTFLoaderOptions): Promise; clear(): void; } /** * Create an owned, URL-keyed model cache. `load` dispatches on file * extension via {@link FORMAT_LOADERS} and dedupes concurrent and repeat * loads of the same URL by caching the promise. * * @returns A {@link ModelCache}; `clear()` empties the cache. * @remarks Loads of an unknown extension reject. Clone the returned scene * per instance if you need independent transforms. */ export declare function createModelCache(): ModelCache; /** Load a model through the shared module-global cache. Same contract as {@link ModelCache.load}. */ export declare function loadModel(src: string, options?: GLTFLoaderOptions): Promise; /** Empty the shared module-global model cache used by {@link loadModel}. */ export declare function clearModelCache(): void; //# sourceMappingURL=model-registry.d.ts.map