import Rpc from 'librpc-web-mod';
import BaseRpcDriver from './BaseRpcDriver';
import type { RpcDriverConstructorArgs } from './BaseRpcDriver';
import type { PluginDefinition } from '../PluginLoader';
interface WebWorkerRpcDriverConstructorArgs extends RpcDriverConstructorArgs {
    makeWorkerInstance: () => Worker;
}
interface Options {
    statusCallback?: (arg0: unknown) => void;
    rpcDriverClassName: string;
}
declare class WebWorkerHandle extends Rpc.Client {
    destroy(): void;
    call(funcName: string, args: Record<string, unknown>, opts: Options): Promise<unknown>;
}
export default class WebWorkerRpcDriver extends BaseRpcDriver {
    workerBootConfiguration: {
        plugins: PluginDefinition[];
        windowHref: string;
    };
    name: string;
    makeWorkerInstance: () => Worker;
    constructor(args: WebWorkerRpcDriverConstructorArgs, workerBootConfiguration: {
        plugins: PluginDefinition[];
        windowHref: string;
    });
    makeWorker(): Promise<WebWorkerHandle>;
}
export {};
