import { EventDeliver } from 'event-deliver'; import { Link } from "./link"; import { Message } from "./message/message"; import { Quotable, Sendable } from "./message"; import { Group, Member, MemberInfo, GroupInfo } from "./group"; import { Friend, FriendInfo, User } from "./friend"; import { EventMap, MessageRet } from "./event"; export declare class Client extends EventDeliver { #private; uin: number; link: Link; readonly gl: Map; readonly gml: Map>; readonly fl: Map; options: Client.Options; info?: Client.Self; reconnect_times: number; deleteMsg(message_id: string): Promise; getStrangerInfo(user_id: number): Promise; getFriendList(): Promise; getGroupList(): Promise; getGroupMemberList(group_id: number): Promise; getMsg(message_id: string): Promise>; constructor(uin: number, options?: Client.Options | string); login(password?: string): Promise; start(): Promise; sendPrivateMsg(user_id: number, message: Sendable, source?: Quotable): Promise; sendGroupMsg(group_id: number, message: Sendable, source?: Quotable): Promise; em(name: string, data: any): void; stop(): void; } export interface AllEventMap extends EventMap, LifeCycle { } export interface LifeCycle { connect(): void; error(e: Error): void; close(e: Error): void; } export interface Client { pickFriend(this: Client, user_id: number, strict?: boolean): Friend; pickGroup(this: Client, group_id: number, strict?: boolean): Group; pickMember(this: Client, group_id: number, member_id: number, strict?: boolean): Member; pickUser(this: Client, user_id: number, strict?: boolean): User; before(event: E, listener: EventMap[E], prepend?: boolean): EventDeliver.Dispose; before(event: S & Exclude, listener: EventDeliver.Listener, prepend?: boolean): EventDeliver.Dispose; after(event: E, listener: EventMap[E], prepend?: boolean): EventDeliver.Dispose; after(event: S & Exclude, listener: EventDeliver.Listener, prepend?: boolean): EventDeliver.Dispose; on(event: E, listener: EventMap[E], prepend?: boolean): EventDeliver.Dispose; on(event: S & Exclude, listener: EventDeliver.Listener, prepend?: boolean): EventDeliver.Dispose; addListener(event: E, listener: EventMap[E], prepend?: boolean): EventDeliver.Dispose; addListener(event: S & Exclude, listener: EventDeliver.Listener, prepend?: boolean): EventDeliver.Dispose; prependListener(event: E, listener: EventMap[E], append?: boolean): EventDeliver.Dispose; prependListener(event: S & Exclude, listener: EventDeliver.Listener, append?: boolean): EventDeliver.Dispose; once(event: E, listener: EventMap[E], prepend?: boolean): EventDeliver.Dispose; once(event: S & Exclude, listener: EventDeliver.Listener, prepend?: boolean): EventDeliver.Dispose; addOnceListener(event: E, listener: EventMap[E], prepend?: boolean): EventDeliver.Dispose; addOnceListener(event: S & Exclude, listener: EventDeliver.Listener, prepend?: boolean): EventDeliver.Dispose; prependOnceListener(event: E, listener: EventMap[E], append?: boolean): EventDeliver.Dispose; prependOnceListener(event: S & Exclude, listener: EventDeliver.Listener, append?: boolean): EventDeliver.Dispose; before(event: E, listener: EventMap[E], prepend?: boolean): EventDeliver.Dispose; before(event: S & Exclude, listener: EventDeliver.Listener, prepend?: boolean): EventDeliver.Dispose; after(event: E, listener: EventMap[E], prepend?: boolean): EventDeliver.Dispose; after(event: S & Exclude, listener: EventDeliver.Listener, prepend?: boolean): EventDeliver.Dispose; off(event?: E, listener?: EventMap[E]): boolean; off(event?: S & Exclude, listener?: EventDeliver.Listener): boolean; removeListener(event?: E, listener?: EventMap[E]): boolean; removeListener(event?: S & Exclude, listener?: EventDeliver.Listener): boolean; emit(event: E, ...args: EventMap[E] extends ((...args: infer P) => any) ? P : never[]): void; emit(event: S & Exclude, ...args: Parameters): void; emitSync(event: E, ...args: EventMap[E] extends ((...args: infer P) => any) ? P : never[]): void; emitSync(event: S & Exclude, ...args: Parameters): void; bail(event: E, ...args: EventMap[E] extends ((...args: infer P) => any) ? P : never[]): Promise; bail(event: S & Exclude, ...args: Parameters): Promise; bailSync(event: E, ...args: EventMap[E] extends ((...args: infer P) => any) ? P : never[]): Promise; bailSync(event: S & Exclude, ...args: Parameters): Promise; } export declare namespace Client { interface Self { user_id: string; } interface Options { remote_url: string; access_token?: string; reconnect_interval?: number; max_reconnect_count?: number; } const defaultOptions: Omit; }