/// import { EventEmitter } from 'events'; import { Contract, Message, Room } from './user'; export declare enum MsgType { 'text' = 1, 'image' = 2, 'file' = 3, 'audio' = 4 } interface BaseSendMsgType { conversationId: string; msgtype: keyof typeof MsgType; } interface IText { content: string; } interface IImage { img_url?: string; media_id: string; } interface SendTextMsgType extends BaseSendMsgType { msgtype: 'text'; text: IText; } interface IAudio { media_id: string; duration: string; } interface SendAudioMsgType extends BaseSendMsgType { msgtype: 'audio'; audio: IAudio; } interface SendImageMsgType extends BaseSendMsgType { msgtype: 'image'; image: IImage; } declare type Msg = SendTextMsgType | SendImageMsgType | SendAudioMsgType; declare enum ScanState { Cancel = 0, Waiting = 1, Scanned = 2, Confirmed = 3 } interface DingRobotOptions { name?: string; } export declare class DingRobot extends EventEmitter { /** * dingbot singleton * @param options */ static instance(options?: DingRobotOptions): DingRobot; private static globalInstance; readonly id: string; Message: Message; Contract: Contract; Room: Room; private io; constructor(options?: DingRobotOptions); on(event: 'scan', listener: string | ((this: DingRobot, scanStatus: ScanState, data?: string) => void)): this; on(event: 'message', listener: string | ((this: DingRobot, message: MessageModel) => void)): this; on(event: 'open', listener: string): this; on(event: 'close', listener: string): this; on(event: 'login', listener: string | object): this; on(event: never, listener: never): never; emit(event: 'scan', qrcode: string, status: ScanState, data?: string): boolean; emit(event: 'message', msg: BaseMessageModel): boolean; emit(event: 'open', data: string): boolean; emit(event: 'close', data: string): boolean; emit(event: 'login', data: string | object): boolean; emit(event: 'error', err: Error): boolean; emit(event: never, listener: never): never; version(): string; private initPuppet; say(sayMsg: Msg): Promise; start(): Promise; } export {};