import { WebSocket, type ClientOptions, type RawData } from "ws"; interface ReverseWebSocketLogger { info(message: string): void; warn(message: string): void; error(message: string, error?: unknown): void; } export interface ReverseWebSocketOptions { url: string; headers?: Record; logger: ReverseWebSocketLogger; reconnectDelayMs?: number; onOpen?(): void; onMessage(data: RawData): void | Promise; createSocket?(url: string, options: ClientOptions): WebSocket; } /** * 管理一条反向 WebSocket 的完整生命周期。 * * 协议层只负责解释报文;该会话统一处理无限重连、旧连接隔离与停止清理, * 防止协议停止后被遗留定时器重新拉起。 */ export declare class ReverseWebSocketSession { private readonly options; private socket?; private reconnectTimer?; private generation; private stopped; constructor(options: ReverseWebSocketOptions); start(): void; stop(): void; send(data: string): void; private connect; private scheduleReconnect; } export {};