import * as THREE from 'three'; export declare class Draco { decoderPath: string; private decoderPending; private decoderConfig; private workerLimit; private workerNextTaskID; private workerSourceURL; private workerPool; constructor(); setDecoderPath(decoderPath: string): void; setDecoderConfig(config: any): this; setWorkerLimit(workerLimit: number): this; decodeDracoFile(buffer: ArrayBuffer, callback: (geometry: THREE.BufferGeometry) => void, attributeIDs: Record, attributeTypes: Record): void; decodeGeometry(buffer: ArrayBuffer, taskConfig?: { attributeIDs: Record; attributeTypes: Record; useUniqueIDs: boolean; }): Promise; _createGeometry(geometryData: any): THREE.BufferGeometry; _initDecoder(): Promise; _getWorker(taskID: number, taskCost: number): Promise; _releaseTask(worker: Worker, taskID: number): void; dispose(): this; } export declare const draco: Draco;