import { MessageHandler, RequestHandler, Subscription, Transport } from "./transport.js"; interface ZeroMQTransportConfig { nodeId: string; rpcPort: number; pubPort: number; bindAddress?: string; curveKeyPair?: { publicKey: string; secretKey: string; }; } export declare class ZeroMQTransport implements Transport { private readonly nodeId; private readonly rpcAddress; private readonly pubAddress; private readonly bindAddress; private readonly log; private curveKeyPair?; private rpcSocket?; private pubSocket?; private subSocket?; private dealerConnections; private pendingRequests; private subscriptions; private peerAddresses; private requestHandler?; private messageHandler?; constructor(config: ZeroMQTransportConfig); getNodeId(): string; connect(): Promise; rotateCurveKeys(newKeyPair: { publicKey: string; secretKey: string; }): Promise; disconnect(): Promise; updatePeers(peers: Array<[nodeId: string, address: string]>): void; request(nodeId: string, message: any, timeout: number): Promise; send(nodeId: string, message: any): Promise; publish(topic: string, message: any): Promise; subscribe(topic: string, handler: MessageHandler): Promise; onRequest(handler: RequestHandler): void; onMessage(handler: MessageHandler): void; private runRpcLoop; private runSubLoop; private handleDealerResponse; private getOrCreateConnection; private sendMessage; private handleRouterMessage; } export {}; //# sourceMappingURL=zeromq_transport.d.ts.map