import { GLTF } from "three/examples/jsm/loaders/GLTFLoader";
import { DecryptOptions } from "./decrypt";
export type LoaderOptions = {
    decoderPath: string;
    decoderType: "js" | "wasm";
    cache: boolean;
    expires: number;
};
/**
 * 加载模型
 */
declare class ModelLoader {
    private loading;
    private $dracoLoader;
    private queue;
    private maxParallel;
    private loadingParallel;
    private store;
    private decoderPath;
    private decoderType;
    private decrypt;
    private expires;
    private cacheEnabled;
    constructor(options: LoaderOptions, decryptOptions: DecryptOptions);
    dispose(): void;
    /**
     * 清空缓存
     * @returns
     */
    clear(url?: string | string[]): Promise<void> | Promise<any[]>;
    private get dracoLoader();
    /**
     * 执行回调列表
     * @param url 目标资源
     * @param res 获取的数据：正确的数据 或者 加载失败的错误数据
     * @param index 成功：index = 0, 失败：index = 1
     * @private
     */
    private invokeLoaded;
    /**
     * 加载模型
     * @param url
     * @param process
     */
    loadModel(url: string, process?: (percent: number) => void): Promise<GLTF>;
    /**
     * 只加载 mapping 数据
     * @param url
     */
    loadMapping(url: string): Promise<any>;
    /**
     * 加载普通的资源
     * @param url
     * @param process
     * @param responseType
     */
    load<T>(url: string, process?: (percent: number) => void, responseType?: string): Promise<T>;
}
export default ModelLoader;
