/**
 * Command map for the rustnetwork IPC binary.
 * Each key maps to { params, result } defining the typed IPC protocol.
 */
type TNetworkCommands = {
    healthPing: {
        params: Record<string, never>;
        result: {
            pong: boolean;
        };
    };
    ping: {
        params: {
            host: string;
            count?: number;
            timeoutMs?: number;
        };
        result: {
            alive: boolean;
            times: (number | null)[];
            min: number | null;
            max: number | null;
            avg: number | null;
            stddev: number | null;
            packetLoss: number;
        };
    };
    traceroute: {
        params: {
            host: string;
            maxHops?: number;
            timeoutMs?: number;
        };
        result: {
            hops: Array<{
                ttl: number;
                ip: string;
                rtt: number | null;
            }>;
        };
    };
    tcpPortCheck: {
        params: {
            host: string;
            port: number;
            timeoutMs?: number;
        };
        result: {
            isOpen: boolean;
            latencyMs: number | null;
        };
    };
    isLocalPortFree: {
        params: {
            port: number;
        };
        result: {
            free: boolean;
        };
    };
    defaultGateway: {
        params: Record<string, never>;
        result: {
            interfaceName: string;
            addresses: Array<{
                family: string;
                address: string;
            }>;
        };
    };
};
/**
 * Singleton bridge to the rustnetwork binary.
 * Manages the IPC lifecycle for network diagnostics operations.
 */
export declare class RustNetworkBridge {
    private static instance;
    static getInstance(): RustNetworkBridge;
    private bridge;
    private constructor();
    /**
     * Spawn the Rust binary and wait for it to be ready.
     */
    start(): Promise<void>;
    /**
     * Kill the Rust binary.
     */
    stop(): Promise<void>;
    /**
     * Ensure the bridge is running before sending a command.
     */
    private ensureRunning;
    ping(host: string, count?: number, timeoutMs?: number): Promise<TNetworkCommands['ping']['result']>;
    traceroute(host: string, maxHops?: number, timeoutMs?: number): Promise<TNetworkCommands['traceroute']['result']>;
    tcpPortCheck(host: string, port: number, timeoutMs?: number): Promise<TNetworkCommands['tcpPortCheck']['result']>;
    isLocalPortFree(port: number): Promise<TNetworkCommands['isLocalPortFree']['result']>;
    defaultGateway(): Promise<TNetworkCommands['defaultGateway']['result']>;
    healthPing(): Promise<TNetworkCommands['healthPing']['result']>;
}
export {};
