import { BaseEvent, EventDispatcher } from 'three';
import { IMaterial, IObject3D, ITexture } from '../core';
import { BlobExt, ExportFileOptions, IAssetExporter, IExporter } from './IExporter';
import { IRenderTarget } from '../rendering';
/**
 * Asset Exporter
 *
 * Utility class to export objects, materials, textures, render targets, etc.
 * Used in {@link AssetManager} to export assets.
 * @category Asset Manager
 */
export declare class AssetExporter extends EventDispatcher<BaseEvent, 'exporterCreate' | 'exportFile'> implements IAssetExporter {
    readonly exporters: IExporter[];
    addExporter(...exporters: IExporter[]): void;
    removeExporter(...exporters: IExporter[]): void;
    getExporter(...ext: string[]): IExporter | undefined;
    constructor();
    exportObject(obj?: IObject3D | IMaterial | ITexture | IRenderTarget, options?: ExportFileOptions): Promise<BlobExt | undefined>;
    private _exportFile;
    private _createParser;
    private _cachedParsers;
    private _getParser;
    processBeforeExport(obj: IObject3D | IMaterial | ITexture | IRenderTarget, options?: ExportFileOptions): Promise<{
        obj: any;
        ext: string;
        typeExt?: string;
        blob?: BlobExt;
    } | undefined>;
    dispose(): void;
}
//# sourceMappingURL=AssetExporter.d.ts.map