import {Loader} from 'three' import {IAssetImporter} from './IAssetImporter' import {IDisposable, ValOrFunc} from 'ts-browser-helpers' import {ImportAddOptions} from './AssetManager' export interface ILoader extends Loader, Partial { importOptions?: ImportAddOptions loadAsync(url: string, onProgress?: (event: ProgressEvent) => void): Promise; /** * Transform after load, like convert geometry to mesh, etc. for reference see {@link DRACOLoader2} or {@link PLYLoadPlugin} * @param res - result of load * @param options */ transform?(res: T, options: ImportAddOptions): T2|Promise } export interface IImporter { ext: ValOrFunc; mime: string[]; root: boolean; extensions?: any[]; // extra plugins/extensions for this importer, like for gltf loader. ctor: (assetImporter: IAssetImporter)=>ILoader|undefined; }