import * as plugins from './smartvpn.plugins.js';
import type { TVpnTransportOptions } from './smartvpn.interfaces.js';
import type { TCommandMap } from '@push.rocks/smartrust';
/**
 * Shared bridge wrapper around smartrust RustBridge.
 * Supports stdio mode (dev: spawn child process) and socket mode (production: connect to running daemon).
 */
export declare class VpnBridge<TCommands extends TCommandMap> extends plugins.events.EventEmitter {
    private bridge;
    private transportOptions;
    private mode;
    constructor(options: {
        transport: TVpnTransportOptions;
        mode: 'client' | 'server';
        binaryName?: string;
    });
    /**
     * Start the bridge: spawn in stdio mode or connect in socket mode.
     */
    start(): Promise<boolean>;
    /**
     * Stop the bridge. In socket mode, closes the socket (daemon stays alive).
     * In stdio mode, kills the child process.
     */
    stop(): void;
    /**
     * Send a typed command to the daemon.
     */
    sendCommand<K extends string & keyof TCommands>(method: K, params: TCommands[K]['params']): Promise<TCommands[K]['result']>;
    /**
     * Whether the bridge is currently running/connected.
     */
    get running(): boolean;
}
