///
import { EventEmitter } from 'node:events';
import { DingtalkClient } from '../index';
import { IncomingMessage } from '../robots';
import { type SubscriptionData, type SubscriptionItem } from './subscription';
export interface StreamClientOptions {
/**
* 订阅的事件
*/
subscriptions?: SubscriptionItem[];
/**
* ping 服务器的默认间隔
*
* @defaultValue 8 * 1000
*/
keepAliveIntervalInMilliseconds?: number;
}
export declare class StreamClient extends EventEmitter {
#private;
protected client: DingtalkClient;
constructor(client: DingtalkClient, options?: StreamClientOptions);
connect(): Promise;
isConnecting(): boolean;
disconnect(): void;
sendGraphAPIResponse(messageId: string, value: GraphAPIResponse): void;
onImMessage(callback: (message: IncomingMessage) => void): void;
protected handleSystem(message: SubscriptionData): void;
protected handleCallback(event: SubscriptionData): void;
protected handleEvent(event: SubscriptionData): void;
protected getEndpoint(): Promise;
protected enableHeartbeat(): void;
protected disableHeartbeat(): void;
authHeaders(): Promise<{
'access-token': string;
}>;
protected defaultHeaders(): Promise<{
'access-token': string;
Accept: string;
'Content-Type': string;
}>;
}
export interface GraphAPIResponse {
response: {
statusLine: {
code?: number;
reasonPhrase?: string;
};
headers: {
[key: string]: string;
};
body: string;
};
}