lib-wechat
Version:
103 lines (102 loc) • 2.78 kB
TypeScript
/// <reference types="node" />
/// <reference types="node" />
import { EventEmitter } from 'events';
import { AxiosInstance } from "axios";
import { Dict, LogLevel } from "../types";
import { Sex, Status } from "../core/constanst";
import { Contact } from "../entries/contact";
export declare class BaseClient extends EventEmitter {
config: BaseClient.Config;
uin: number;
info: BaseClient.Info;
avatar: string;
status: Status;
data_dir: string;
private lastSyncTime;
private syncPollingId;
private syncErrorCount;
private checkPollingId;
private retryPollingId;
cookie: Dict<string>;
session: BaseClient.Session;
request: AxiosInstance;
get token(): BaseClient.Token;
set token(token: BaseClient.Token);
constructor(config: BaseClient.Config);
private initRequest;
private genQrcode;
private getUUID;
queryQrcodeStatus(): any;
qrcodeLogin(): Promise<string>;
/** 首次登录 */
login(): Promise<string | void>;
logout(): Promise<string>;
addFriend(user_id: string, message?: string): Promise<void>;
getBaseRequest(): {
Uin: number;
Sid: string;
Skey: string;
DeviceID: string;
};
init(): Promise<void>;
uploadMedia(file: string | Buffer, filename: string, user_id: string): Promise<{
name: string;
size: number;
ext: string;
mediatype: string;
mediaId: any;
}>;
private chunkMediaForms;
getAvatar(avatar: string): Promise<{
data: any;
type: any;
}>;
batchGetContact(contactIds: string[]): Promise<void>;
em(event: string, payload: Dict): void;
getContact(): Promise<Contact.OriginalInfo[]>;
private syncCheck;
private sync;
private updateSyncKey;
notifyMobile(to?: string): Promise<void>;
private syncPolling;
private checkPolling;
}
export declare namespace BaseClient {
interface Config {
base_url?: string;
timeout?: number;
data_dir?: string;
log_level?: LogLevel;
}
interface Token {
session: Session;
cookie: Dict<string>;
base_url: string;
info: Info;
}
interface Info {
uin: number;
username: string;
nickname: string;
avatar: string;
remark: string;
sex: Sex;
}
interface OriginalInfo {
Uin: number;
UserName: string;
NickName: string;
HeadImgUrl: string;
RemarkName: string;
Sex: number;
}
interface Session {
uuid?: string;
skey?: string;
sid?: string;
syncKey?: string;
passTicket?: string;
formatedSyncKey?: string;
webwxDataTicket?: string;
}
}