import { IViewerPluginSync } from '../../viewer';
import { SimpleEventDispatcher } from 'ts-browser-helpers';
/**
 * Loads the MeshOpt Decoder module from [meshoptimizer](https://github.com/zeux/meshoptimizer) library at runtime from a customisable cdn url.
 * The loaded module is set in window.MeshoptDecoder and then used by {@link GLTFLoader2} to decode files using [EXT_meshopt_compression](https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Vendor/EXT_meshopt_compression/README.md) extension
 *
 * The plugin name includes GLTF, but its not really GLTF specific, it can be used to decode any meshopt compressed files.
 */
export declare class GLTFMeshOptDecodePlugin extends SimpleEventDispatcher<'initialized'> implements IViewerPluginSync {
    readonly rootNode: HTMLHeadElement;
    ['constructor']: typeof GLTFMeshOptDecodePlugin;
    static readonly PluginType = "GLTFMeshOptDecodePlugin";
    enabled: boolean;
    toJSON: any;
    constructor(initialize?: boolean, rootNode?: HTMLHeadElement);
    get initialized(): boolean;
    /**
     * Path to the meshopt decoder library, default uses unpkg cdn
     */
    static DECODER_URL: string;
    protected _script?: HTMLScriptElement;
    protected _initializing?: Promise<void>;
    initialize(): Promise<void>;
    dispose(): void;
    onAdded(): void;
    onRemove(): void;
}
declare global {
    interface Window {
        MeshoptDecoder?: any;
    }
}
//# sourceMappingURL=../../src/plugins/import/GLTFMeshOptDecodePlugin.d.ts.map