///
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 {};