import { InstantiatedEntries, NodeMaterial, Texture } from '../runtime';
import { Base } from '../base/Base';
import { App } from '../core/App';
import { ResOptions } from './ResOptions';
import { ResCacheData } from './ResCacheData';
import '@babylonjs/core/Materials/Textures';
import { ParticleData } from '../effect/ParticleData';
/**
 * 资源池
 */
export declare class ResPool extends Base {
    /**
     * 资源列表
     */
    readonly resList: ResOptions[];
    /**
     * 缓存
     */
    _cache: Map<string, ResCacheData>;
    /**
     * 加载中的资源列表
     */
    private _loadingList;
    private _assetContainerAdded;
    /**
     * 实例化一个资源池对象
     * @param app 应用
     */
    constructor(app: App);
    /**
     * 加载指定资源
     * @param id 编号
     */
    _loadRes(info: ResOptions): Promise<void>;
    /**
     * 获取指定资源
     * @param id 编号
     * @param optimized 是否优化网格
     * @param archiveGrid 是否包含档案格
     */
    getRes(id: string, optimized?: boolean, archiveGrid?: boolean): Promise<Texture | any | InstantiatedEntries | NodeMaterial | undefined>;
    /**
     * 判断指定编号的的资源是否已缓存
     * @param id 编号
     */
    isCached(id: string): boolean;
    /**
     * 获取资源信息
     * @param index 索引或资源编号
     */
    getResInfo(index: number | string): ResOptions;
    /**
     * 获取资源编号
     * @param index 索引
     */
    getResId(index: number): string | undefined;
    /**
     * 获取资源索引
     * @param id 编号
     */
    getResIndex(id: string): number | undefined;
    getDefaultParticleData(id: string): Promise<ParticleData>;
}
