import { IFs } from 'memfs-browser';
import { WASI } from '@tybys/wasm-util';
import { FontSplitProps } from '../interface';
export * from '../interface.js';
export * from '../createAPI.js';
export declare class APIInterface {
    key: string;
    constructor(key?: string);
    fs: IFs;
    init(fs?: IFs): Promise<void>;
    setConfig(config: FontSplitProps | ArrayBuffer): Promise<void>;
    callback(): Promise<({
        name: string;
        data: Uint8Array<ArrayBufferLike>;
    } | undefined)[]>;
}
export declare function fontSplit(input: FontSplitProps | ArrayBuffer, loadWasm: (imports: any) => Promise<WebAssembly.WebAssemblyInstantiatedSource>, options?: {
    key?: string;
    logger: (str: string, type: 'log' | 'error') => void;
    fs?: IFs;
}): Promise<({
    name: string;
    data: Uint8Array<ArrayBufferLike>;
} | undefined)[]>;
export declare function createWasi(api: APIInterface, options: {
    key?: string;
    logger: (str: string, type: 'log' | 'error') => void;
    fs?: IFs;
} | undefined): {
    imports: {
        wasi_snapshot_preview1: Record<string, any>;
        env: {
            pthread_mutex_init: () => number;
            pthread_mutex_lock: () => number;
            pthread_mutex_unlock: () => number;
            pthread_mutex_destroy: () => number;
        };
    };
    wasi: WASI;
};
export declare class StaticWasm {
    wasmBuffer: Promise<ArrayBuffer>;
    url: string;
    constructor(url: string | Uint8Array);
    WasiHandle: (imports: any) => Promise<WebAssembly.WebAssemblyInstantiatedSource>;
}
