interface Browser {
    execute: <R>(command: string, ...args: unknown[]) => Promise<R>;
}
export declare class ClientBridge<T extends Record<string, (...args: any[]) => any>> {
    private _browser;
    private _script;
    private _namespace;
    static create<T extends Record<string, (...args: any[]) => any>>(browser: Browser, namespace: string, opts: {
        needsCompatLib?: boolean;
    }): Promise<ClientBridge<T>>;
    constructor(browser: Browser, script: string, namespace: string);
    call<K extends keyof T>(name: K, args: Parameters<T[K]>): Promise<ReturnType<T[K]>>;
    private _callCommand;
    private _clientMethodCommand;
    private _guardClientCall;
    private _inject;
}
export {};
