export type TClientDnsCommands = { resolve: { params: IResolveParams; result: IResolveResult; }; ping: { params: Record; result: { pong: boolean; }; }; }; export interface IResolveParams { name: string; recordType: string; protocol: 'udp' | 'doh'; serverAddr?: string; dohUrl?: string; timeoutMs?: number; } export interface IClientDnsAnswer { name: string; type: string; ttl: number; value: string; } export interface IResolveResult { answers: IClientDnsAnswer[]; adFlag: boolean; rcode: number; } /** * Bridge to the Rust DNS client binary via smartrust IPC. */ export declare class RustDnsClientBridge { private bridge; private spawnPromise; constructor(); /** * Lazily spawn the Rust binary. Only spawns once, caches the promise. */ ensureSpawned(): Promise; /** * Resolve a DNS query through the Rust binary. */ resolve(name: string, recordType: string, protocol: 'udp' | 'doh', serverAddr?: string, dohUrl?: string, timeoutMs?: number): Promise; /** * Ping the Rust binary for health check. */ ping(): Promise; /** * Kill the Rust process. */ kill(): void; /** * Whether the bridge is running. */ get running(): boolean; }