import { type ManagedClientP2PSmokeResult, type NodeRawTcpP2PConnectSocketEvent, type RawTcpP2PConnectAttempt } from '../edge/reachability'; export type LocalManagedClientP2PSocketMode = 'deterministic-injection' | 'real-tcp-listener'; export interface LocalManagedClientP2PPlan { bucket: number; boundary: number; rendezvousTimeSeconds: number; ports: number[]; } export interface LocalManagedClientP2PE2ESmokeOptions { nodeName?: string; clientId?: string; baseStorageDomain?: string; resourcePath?: string; targetBody?: string; p2pHost?: string; advertiseClientHost?: boolean; advertiseNodeHost?: boolean; routeWaitTimeoutMs?: number; pollIntervalMs?: number; connectTimeoutMs?: number; requestTimeoutMs?: number; socketMode?: LocalManagedClientP2PSocketMode; } export interface LocalManagedClientP2PE2ESmokeResult { smokeOk: boolean; nodeId: string; apiBaseUrl: string; targetBaseUrl: string; resourceUrl: string; plan: LocalManagedClientP2PPlan; clientPlan: LocalManagedClientP2PPlan; nodePlan: LocalManagedClientP2PPlan; smoke: ManagedClientP2PSmokeResult; p2pAttempts: { client: RawTcpP2PConnectAttempt[]; node: RawTcpP2PConnectAttempt[]; }; connectorEvents: { client: LocalManagedClientP2PConnectorEvent[]; node: LocalManagedClientP2PConnectorEvent[]; }; targetRequests: Array<{ method: string; url: string; headers: Record; }>; evidence: { routeDiscovery: 'p2p-route-published'; signaling: 'repository-backed-api'; dataPlane: 'deterministic-socket-injection' | 'real-local-tcp-listener'; canonicalFetch: 'xpod-p2p-http/1'; clientAddress: 'explicit-host' | 'signal-observed'; nodeAddress: 'explicit-host' | 'signal-observed'; }; caveats: string[]; } export interface LocalManagedClientP2PConnectorEvent { type: NodeRawTcpP2PConnectSocketEvent['type']; localPort?: number; remotePort: number; message?: string; } export declare function runLocalManagedClientP2PE2ESmoke(options?: LocalManagedClientP2PE2ESmokeOptions): Promise;