ntqq
Version:
QQ protocol for NodeJS!
103 lines (102 loc) • 3.77 kB
TypeScript
import { FriendDecreaseEvent, FriendIncreaseEvent, FriendPokeEvent, FriendRecallEvent, FriendRequestEvent, GroupInviteEvent, PrivateMessageEvent } from "../events";
import { User } from "./user";
type Client = import("../client").Client;
/** 私聊消息事件 */
export interface PrivateMessageEventMap {
"message"(event: PrivateMessageEvent): void;
/** 好友的消息 */
"message.friend"(event: PrivateMessageEvent): void;
/** 群临时对话 */
"message.group"(event: PrivateMessageEvent): void;
/** 其他途径 */
"message.other"(event: PrivateMessageEvent): void;
/** 我的设备 */
"message.self"(event: PrivateMessageEvent): void;
}
/** 好友通知事件 */
export interface FriendNoticeEventMap {
"notice"(event: FriendIncreaseEvent | FriendDecreaseEvent | FriendRecallEvent | FriendPokeEvent): void;
/** 新增好友 */
"notice.increase"(event: FriendIncreaseEvent): void;
/** 好友减少 */
"notice.decrease"(event: FriendDecreaseEvent): void;
/** 撤回消息 */
"notice.recall"(event: FriendRecallEvent): void;
/** 戳一戳 */
"notice.poke"(event: FriendPokeEvent): void;
}
/** 好友申请事件 */
export interface FriendRequestEventMap {
"request"(event: FriendRequestEvent): void;
/** 群邀请 */
"request.invite"(event: GroupInviteEvent): void;
/** 添加好友 */
"request.add"(event: FriendRequestEvent): void;
/** 单向好友 */
"request.single"(event: FriendRequestEvent): void;
}
/** 所有的好友事件 */
export interface FriendEventMap extends PrivateMessageEventMap, FriendNoticeEventMap, FriendRequestEventMap {
}
/** 好友 */
export declare class Friend extends User {
private _info?;
uid: string;
static as(this: Client, uin: number, strict?: boolean): Friend;
/** 好友资料 */
get info(): Friend.Info | undefined;
/** 昵称 */
get nickname(): string | undefined;
/** 性别 */
get sex(): import("../common").Gender | undefined;
/** 备注 */
get remark(): string | undefined;
/** 分组id */
get class_id(): number | undefined;
protected constructor(c: Client, uin: number, _info?: Friend.Info | undefined);
/** 设置备注 */
setRemark(remark: string): Promise<void>;
/** 设置分组(注意:如果分组id不存在也会成功) */
setClass(id: number): Promise<void>;
/** 戳一戳 */
poke(self?: boolean): Promise<boolean>;
/**
* 删除好友
* @param block 屏蔽此好友的申请,默认为`true`
*/
delete(block?: boolean): Promise<void>;
/**
* 发送离线文件
* @param file `string`表示从该本地文件路径获取,`Buffer`表示直接发送这段内容
* @param filename 对方看到的文件名,`file`为`Buffer`时,若留空则自动以md5命名
* @param callback 监控上传进度的回调函数,拥有一个"百分比进度"的参数
* @returns 文件id(撤回时使用)
*/
sendFile(file: string | Buffer | Uint8Array, filename?: string, callback?: (percentage: string) => void): Promise<string>;
/**
* 撤回离线文件
* @param fid 文件id
*/
recallFile(fid: string): Promise<boolean>;
/**
* 转发离线文件
* @param fid 文件fid
* @param group_id 群号,转发群文件时填写
* @returns 转发成功后新文件的id
*/
forwardFile(fid: string, group_id?: number): Promise<string>;
/**
* 查找机器人与这个人的共群
* @returns
*/
searchSameGroup(): Promise<any>;
}
export declare namespace Friend {
interface Info extends User.Info {
/** 备注 */
remark: string;
/** 分组id */
class_id: number;
}
}
export {};