import { BufferGeometry, Texture, WebGLRenderer } from "three"; import type { KTX2LoaderWorkerConfig } from "three/examples/jsm/loaders/KTX2Loader.js"; type GLTFLoaderWorkerOptions = { debug?: boolean; }; type WorkerLoadResult = { url: string; geometries: Array<{ geometry: BufferGeometry; meshIndex: number; primitiveIndex: number; extensions: Record; }>; textures: Array<{ texture: Texture; textureIndex: number; extensions: Record; }>; }; export declare function getWorker(opts?: GLTFLoaderWorkerOptions): Promise; export type { GLTFLoaderWorker, GLTFLoaderWorkerOptions, WorkerLoadResult }; /** @internal */ export type GLTFLoaderWorker_Message = { type: 'init'; } | { type: 'load'; url: string; dracoDecoderPath: string; ktx2TranscoderPath: string; ktx2LoaderConfig: KTX2LoaderWorkerConfig; } | { type: "loaded-gltf"; result: WorkerLoadResult; }; declare class GLTFLoaderWorker { private readonly worker; static createWorker(opts: GLTFLoaderWorkerOptions): Promise; private _running; private _webglRenderer; load(url: string | URL, opts?: { renderer?: WebGLRenderer; }): Promise; private _debug; private constructor(); }