export type LogLevel = "error" | "warn" | "info" | "debug";
export interface LogEvent {
    level: LogLevel;
    message: string;
}
export type OnLog = (event: LogEvent) => void;
export interface RosieModule {
    ccall: (name: string, returnType: "string" | "number" | null, argTypes: Array<"string" | "number">, args: Array<string | number | null>, opts?: {
        async?: boolean;
    }) => unknown;
    cwrap: (name: string, returnType: "string" | "number" | null, argTypes: Array<"string" | "number">, opts?: {
        async?: boolean;
    }) => (...args: Array<string | number | null>) => unknown;
    _free: (ptr: number) => void;
    UTF8ToString: (ptr: number) => string;
    HEAPU8?: Uint8Array;
    /** Slot the C log bridge calls into; set per-API-call. */
    __rosieLog__?: ((level: number, message: string) => void) | null;
}
export declare function loadModule(onLog?: OnLog): Promise<RosieModule>;
export declare function callApi<T>(mod: RosieModule, fn: string, args?: Array<string | number>): Promise<T>;
//# sourceMappingURL=wasm-loader.d.ts.map