declare type ReqMessage = { type: "ping"; body: any; }; declare type RetryMessage = { type: "retry"; body: { id: string; indexes: number[]; }; }; declare type SuccessMessage = { type: "success"; body: any; }; declare type FailureMessage = { type: "failure"; body: { errorMessage: string; errorType: string; stackTrace: any[]; }; }; declare type BigMessage = { type: "big"; body: { bucket: string; key: string; }; }; declare type RequestMessage = { type: "request"; body: any; }; export declare type Message = ReqMessage | RetryMessage | BigMessage | RequestMessage | SuccessMessage | FailureMessage; declare type RequestHandler = (message: RequestMessage["body"]) => Promise; export declare class Server { private peers; private readonly socket; private pinger?; private handleRequest?; private bucket?; constructor(); start(bucket: string): Promise; stop(): void; addPeer(addr: Address): PeerEntry; ping(): Promise; onRequest(cb: RequestHandler): void; private handleMessage; private send; private sendCache; private encode; private windows; private decode; } declare type PeerEntry = { addr: Address; lastSeen: number; }; declare type Address = { host: string; port: number; }; export {};