import { EventEmitter } from 'node:events'; import { type ClientToBroker } from '../runtime/broker-protocol.js'; import { type Transport } from './transport.js'; export declare class SocketTransport extends EventEmitter implements Transport { private readonly nodeId; private socket; private decoder; private closeEmitted; /** One redial fault line per reconnect EPISODE, not per attempt — see * {@link recordSocketFault}. */ private redialFaultRecorded; constructor(nodeId: string); /** The broker binds `viewSocketPath(id)` — resolve it the same way. */ get socketPath(): string; private recordSocketFault; connect(): void; /** Re-establish the socket after a broker exit, on the SAME stable * `view.sock` path. Installs a FRESH FrameDecoder (a half-frame from the * dead stream must not corrupt the new one). */ redial(): Promise; send(frame: ClientToBroker): void; destroy(): void; private onData; private onError; private onClose; /** Emit `error` only when a listener exists — a bare EventEmitter `error` * with no listener throws, and this transport must never throw uncaught. */ private emitError; }