import * as plugins from '../../plugins.js';
import type { IRouteConfig } from './models/route-types.js';
/**
 * Bridge between TypeScript SmartProxy and the Rust binary.
 * Wraps @push.rocks/smartrust's RustBridge with type-safe command definitions.
 */
export declare class RustProxyBridge extends plugins.EventEmitter {
    private bridge;
    constructor();
    /**
     * Spawn the Rust binary in management mode.
     * Returns true if the binary was found and spawned successfully.
     */
    spawn(): Promise<boolean>;
    /**
     * Kill the Rust process and clean up.
     */
    kill(): void;
    /**
     * Whether the bridge is currently running.
     */
    get running(): boolean;
    startProxy(config: any): Promise<void>;
    stopProxy(): Promise<void>;
    updateRoutes(routes: IRouteConfig[]): Promise<void>;
    getMetrics(): Promise<any>;
    getStatistics(): Promise<any>;
    provisionCertificate(routeName: string): Promise<void>;
    renewCertificate(routeName: string): Promise<void>;
    getCertificateStatus(routeName: string): Promise<any>;
    getListeningPorts(): Promise<number[]>;
    getNftablesStatus(): Promise<any>;
    setSocketHandlerRelay(socketPath: string): Promise<void>;
    addListeningPort(port: number): Promise<void>;
    removeListeningPort(port: number): Promise<void>;
    loadCertificate(domain: string, cert: string, key: string, ca?: string): Promise<void>;
    setDatagramHandlerRelay(socketPath: string): Promise<void>;
}
