export type Ping = ["ping", number]; export type Pong = ["pong", number]; export declare class Rtt { private pingponger; constructor(pingponger: Pingponger); get on(): import("@e280/stz").Sub<[number]>; get latest(): number; get average(): number; } export declare class Pingponger { #private; options: { timeout: number; send: (p: Ping | Pong) => void; }; onRtt: import("@e280/stz").Sub<[number]>; constructor(options: { timeout: number; send: (p: Ping | Pong) => void; }); get latestRtt(): number; get averageRtt(): number; ping(): Promise; recv([kind, id]: Ping | Pong): void; /** start an ongoing heartbeat */ heartbeat(onTimeout?: (error: any) => void): () => void; }