import { Loader, LoadingManager, BufferGeometry } from 'three'

export class DRACOLoader extends Loader {
  constructor(manager?: LoadingManager)

  load(
    url: string,
    onLoad: (geometry: BufferGeometry) => void,
    onProgress?: (event: ProgressEvent) => void,
    onError?: (event: ErrorEvent) => void,
  ): void
  loadAsync(url: string, onProgress?: (event: ProgressEvent) => void): Promise<BufferGeometry>
  setDecoderPath(path: string): DRACOLoader
  setDecoderConfig(config: object): DRACOLoader
  setWorkerLimit(workerLimit: number): DRACOLoader
  preload(): DRACOLoader
  dispose(): DRACOLoader
}
