import type { LoadingManager, Object3D } from 'three/webgpu'; import { type DecodedGltfModelPacket, type ModelDecodeRequestOptions } from '../worker/modelDecodeProtocol'; type DecodeLoadingManager = Pick; export interface ModelDecodeWorkerClientOptions { onFatal?(error: ModelDecodeWorkerUnavailableError): void; } export interface ModelDecodeWorkerLoadOptions extends ModelDecodeRequestOptions { signal?: AbortSignal; loadingManager?: DecodeLoadingManager; } export declare class ModelDecodeWorkerUnavailableError extends Error { name: string; constructor(message: string, options?: ErrorOptions); } /** * Reuses transferred bitmap identities so equal textures keep one batch key. * The lookup is an LRU: evicting an entry drops only this client's strong * reference; existing Three.js textures continue to own and use the bitmap. */ export declare function reuseDecodedImageContent(packet: DecodedGltfModelPacket, imagesByContent: Map, maxEntries?: number): string[]; /** Render-Worker side client for the acknowledged model decoder Worker. */ export declare class ModelDecodeWorkerClient { #private; readonly worker: Worker; constructor(worker: Worker, options?: ModelDecodeWorkerClientOptions); get disposed(): boolean; supports(url: string): boolean; loadAsync(url: string, options?: ModelDecodeWorkerLoadOptions): Promise; dispose(): void; } export {};