export declare const PEER_LINK_BACKOFF: { readonly floorMs: 1000; readonly capMs: 30000; readonly stableMs: 60000; }; export declare const LONG_OUTAGE_ATTEMPTS = 20; export declare const LONG_OUTAGE_MS: number; export declare const PEER_LINK_SILENCE_HEARTBEATS = 3; export declare const peerLinkSilenceMs: (heartbeatMs: number) => number; export declare const PEER_UNAUTHORIZED = 1008; export declare const PEER_TRY_AGAIN = 1013; export interface SocketLike { readonly readyState: number; addEventListener(type: "close", listener: (event: { readonly code?: number; }) => void): void; addEventListener(type: "open" | "error" | "message", listener: () => void): void; send(data: string): void; close(code?: number, reason?: string): void; } export interface PeerDialSpec { readonly open: (signal: AbortSignal) => Promise<{ readonly socket: S; readonly said?: string; } | undefined>; readonly hello: () => Promise> | Record; readonly attach: (socket: S) => void; readonly backoff: { readonly next: (heldMs: number) => number; readonly reset: () => void; }; readonly silenceMs: number; readonly log: (message: string) => void; readonly revoked: () => void; } export type PeerLinkState = "open" | "connecting" | "closed"; export interface PeerOutage { readonly failures: number; readonly since: number; } export interface PeerLink { readonly done: Promise; readonly stop: (reason?: string) => void; readonly state: () => PeerLinkState; readonly outage: () => PeerOutage | undefined; readonly retryNow: () => void; } export declare const dialPeer: (spec: PeerDialSpec) => PeerLink; //# sourceMappingURL=peer-dial.d.ts.map