declare class IfcConverter {
    private module?;
    private metaDataGlobal?;
    private handleGLTFclb?;
    private handleMetaDataClb?;
    private GLTFs;
    private constructor();
    private init;
    static create(inputOptions?: string): Promise<IfcConverter>;
    loadModel(data: string, loadOptions?: any): void;
    registerProgressCallback(progressCallback: (progress: number) => void): void;
    registerProgressTextCallback(progressTextCallback: (progressText: string) => void): void;
    registerGltfChunkDoneCallback(handleGLTFclb: (gltf: string) => Promise<void>): void;
    registerMetaDataCompleteCallback(handleMetaDataClb: (metaData: {
        [key: string]: any;
    }) => Promise<void>): void;
    registerGltfCompleteCallback(gltfCompleteCallback: () => void): void;
    static getDefaultInputOptions(): string;
    static getDefaultLoadOptions(): {
        maxFileSizeInMegaBytes: number;
    };
    metaDataCompleteCallback(): Promise<void>;
    gltfChunkDoneCallback(): Promise<void>;
}

declare class IfcWasmConverterLoader {
    static instance: IfcWasmConverterLoader;
    private module;
    private constructor();
    static getInstance(userUrlPrefix?: string): Promise<IfcWasmConverterLoader>;
    static getModule(userUrlPrefix?: string): Promise<any>;
}

interface WasmModule {
    init(): Promise<void>;
    loadModel(data: string, loadOptions: {
        [key: string]: number;
    }): Promise<void>;
    clearLoadedModel(): Promise<void>;
    getGeometry(): Promise<string>;
    initGetInChunks(): Promise<void>;
    getChunk(): Promise<Uint8Array>;
    loadMetaData(): Promise<void>;
    getMetaData(): Promise<Uint8Array>;
    convertChunkToGltf(): Promise<string>;
    clearGeometry(): Promise<void>;
    setFileContent(content: Uint8Array): Promise<void>;
    clearFileContent(): Promise<void>;
    setInputOptions(options: string): Promise<void>;
    setMetaDataCompleteCallback(callback: () => void): Promise<void>;
    setProgressCallback(callback: (progress: number) => void): Promise<void>;
    setProgressTextCallback(callback: (text: string) => void): Promise<void>;
    setGeometryLoadedCallback(callback: () => void): Promise<void>;
    setGltfChunkDoneCallback(callback: () => void): Promise<void>;
    setGltfCompleteCallback(callback: () => void): Promise<void>;
}

declare function ifc2gltf(ifcData: string, params?: {
    remote?: boolean;
    urlPath?: string;
    progressCallback?: ((progress: number) => void);
    progressTextCallback?: ((progressText: string) => void);
    inputOptions?: string;
}): Promise<{
    gltf: string;
    metaData: {
        [key: string]: any;
    };
}>;

export { IfcConverter, IfcWasmConverterLoader, ifc2gltf };
export type { WasmModule };
