export type GatewayFrame = { error?: { code?: string; details?: Record; message?: string; retryable?: boolean; }; id?: string; ok?: boolean; payload?: Record; type?: string; }; export type GatewaySocket = { close(): void; send(payload: string): void }; export function assertReadySuspensionResponse( response: Record, now?: number, ): Record; export function assertGatewaySuspendingError(response: GatewayFrame): void; export function assertSuspendedProbes( health: Record, readiness: Record, ): void; export function responseError(method: string, response: GatewayFrame): Error; export function runGatewayNetworkClient( options: { token: string; url: string; timeoutMs?: number }, deps?: { delay?: (ms: number) => Promise; onceFrame?: ( ws: GatewaySocket, predicate: (message: GatewayFrame) => boolean, timeoutMs?: number, ) => Promise; openSocket?: (url: string, timeoutMs?: number) => Promise; protocolVersion?: number; stdout?: (message: string) => void; }, ): Promise;