/// import { PadLocalClient } from "../PadLocalClient"; import { EventEmitter } from "events"; import { Bytes } from "../utils/ByteUtils"; import { LongLinkMessage, WeChatLongLinkRequest } from "../proto/padlocal_pb"; import VError from "verror"; import { Host } from "../utils/Host"; export declare type WeChatLongLinkProxyEvent = "heartbeat" | "message-push" | "push" | "status"; export declare class WeChatLongLinkProxy extends EventEmitter { private static readonly REQUEST_TIMEOUT; private static readonly CONNECT_TIMEOUT; private static readonly SOCKET_TIMEOUT; private static readonly HEART_BEAT_INTERVAL; private _heartBeatTimer?; private _hostList?; private _status; private _socket?; private _socketConnectTimeout?; private _id?; private readonly _instanceId; private _socketPromise?; private _reconnectDelayTimer?; private readonly _reconnectStrategy; private readonly _requestCallbackMap; private readonly _serialExecutor; private _streamCallback?; private readonly _client; emit(event: "heartbeat", detail: HeartBeatEventPayload): boolean; emit(event: "message-push"): boolean; emit(event: "push", detail: Array): boolean; emit(event: "status", detail: StatusEventPayload): boolean; constructor(client: PadLocalClient); updateHostList(hostList: Array): boolean; reconnect(): Promise; /** * disconnect long link */ shutdown(clearHost?: boolean): void; isConnected(): boolean; isIdle(): boolean; getId(): string | undefined; makeSureConnected(): Promise; sendStreamData(data: Bytes, streamCallback?: LongLinkStreamCallback): void; sendRequest(longLinkRequest: WeChatLongLinkRequest): Promise; private _updateStatus; private _resetHeartBeatTimer; private _startHeartbeat; private _stopHeartbeat; private _clearReconnectTimer; private _notifyRequestCallback; private _notifyAllRequestCallbackWithError; private _destroyLongLink; private _onSocketError; private _tryReconnect; private _connect; private _onSocketData; private _adjustHostQuality; private _currentHost; } export declare enum Status { IDLE = 0, CONNECTING = 1, HALF_CONNECTED = 2, CONNECTED = 3, STOP = 4, ERROR = 5 } export interface StatusEventPayload { newStatus: Status; oldStatus: Status; } export interface HeartBeatEventPayload { heartBeatSeq: number; } export declare class IOError extends VError { } export interface LongLinkStreamCallback { onStreamData(data: Bytes): Promise; }