declare module "three/examples/jsm/controls/OrbitControls.js" {
  import { Camera, EventDispatcher, Vector3 } from "three";

  export class OrbitControls extends EventDispatcher {
    constructor(object: Camera, domElement?: HTMLElement);
    target: Vector3;
    enableDamping: boolean;
    minDistance: number;
    maxDistance: number;
    update(): void;
    dispose(): void;
  }
}

declare module "three/examples/jsm/loaders/GLTFLoader.js" {
  import { LoadingManager, Object3D } from "three";

  export type GLTF = {
    scene: Object3D;
  };

  export class GLTFLoader {
    constructor(manager?: LoadingManager);
    loadAsync(url: string): Promise<GLTF>;
  }
}
