import EventEmitter from 'events'; import { DWClientConfig, DWClientDownStream } from '../interface'; declare enum EventAck { SUCCESS = "SUCCESS", LATER = "LATER" } interface EventAckData { status: EventAck; message?: string; } interface GraphAPIResponse { response: { statusLine: { code?: number; reasonPhrase?: string; }; headers: { [key: string]: string; }; body: string; }; } export declare class DingStreamClient extends EventEmitter { debug: boolean; connected: boolean; registered: boolean; reconnecting: boolean; private userDisconnect; private reconnectBaseInterval; private reconnectMaxInterval; private reconnectAttempts; private heartbeat_interval; private heartbeatIntervalId?; private reconnectTimerId?; private isConnecting; /** accessToken 缓存 */ private _cachedAccessToken; private _accessTokenExpireAt; private _tokenRefreshing; private sslopts; readonly config: DWClientConfig; private socket?; private dw_url?; private isAlive; private onEventReceived; constructor(opts: { clientId: string; clientSecret: string; ua?: string; keepAlive?: boolean; debug?: boolean; }); getConfig(): { clientId: string; clientSecret: string; keepAlive?: boolean; debug?: boolean; ua?: string; endpoint?: string; access_token?: string; autoReconnect?: boolean; subscriptions: Array<{ type: string; topic: string; }>; }; printDebug(msg: object | string): void; registerAllEventListener(onEventReceived: (v: DWClientDownStream) => EventAckData): this; registerCallbackListener(eventId: string, callback: (v: DWClientDownStream) => void): this; getAccessToken(): Promise; getEndpoint(): Promise; private cleanup; private scheduleReconnect; _connect(): Promise; connect(): Promise; disconnect(): void; heartbeat(): void; onDownStream(data: string): void; onSystem(downstream: DWClientDownStream): void; onEvent(message: DWClientDownStream): void; onCallback(message: DWClientDownStream): void; send(messageId: string, value: any): void; /** * 消息响应,避免服务端重试. * stream模式下,服务端推送消息到client后,会监听client响应,如果消息长时间未响应会在一定时间内(60s)重试推消息,可以通过此方法返回消息响应,避免多次接收服务端消息。 * @param messageId * @param result * @memberof DWClient * @example * ```javascript * client.socketResponse(res.headers.messageId, result.data); * ``` */ socketCallBackResponse(messageId: string, result: any): void; sendGraphAPIResponse(messageId: string, value: GraphAPIResponse): void; } export {};