UNPKG

ntqq

Version:
118 lines (117 loc) 4.04 kB
import { FileElem, PrivateMessage, Quotable, Sendable } from "../message"; import { Contactable } from "../internal"; import { pb } from "../core"; import { Client } from "../client"; import { Gender } from "../common"; import { MessageRet } from "../events"; export interface User { /** 撤回消息 */ recallMsg(time: number): Promise<boolean>; } /** 用户 */ export declare class User extends Contactable { readonly uin: number; /** `this.uin`的别名 */ get user_id(): number; get is_friend(): boolean; static as(this: Client, uid: number): User; protected constructor(c: Client, uin: number); /** 返回作为好友的实例 */ asFriend(strict?: boolean): import("./friend").Friend; /** 返回作为某群群员的实例 */ asMember(gid: number, strict?: boolean): import("./groupMember").GroupMember; /** * 获取头像url * @param size 头像大小,默认`0` * @returns 头像的url地址 */ getAvatarUrl(size?: 0 | 40 | 100 | 140): string; getAddFriendSetting(): Promise<void>; /** * 点赞,支持陌生人点赞 * @param times 点赞次数,默认1次 */ thumbUp(times?: number): Promise<void>; /** 查看资料 */ getSimpleInfo(): Promise<void>; /** * 获取`time`往前的`cnt`条聊天记录 * @param time 默认当前时间,为时间戳的分钟数(`Date.now() / 1000`) * @param cnt 聊天记录条数,默认`20`,超过`20`按`20`处理 * @returns 私聊消息列表,服务器记录不足`cnt`条则返回能获取到的最多消息记录 */ getChatHistory(time?: number, cnt?: number): Promise<PrivateMessage[]>; /** * 标记`time`之前为已读 * @param time 默认当前时间,为时间戳的分钟数(`Date.now() / 1000`) */ markRead(time?: number): Promise<void>; private _getRouting; /** * 发送一条消息 * @param content 消息内容 * @param source 引用回复的消息 */ sendMsg(content: Sendable, source?: Quotable): Promise<MessageRet>; protected _sendMsg(proto3: pb.Encodable, brief: string, file?: boolean): Promise<{ user_id: number; seq: number; time: number; }>; /** * 回添双向好友 * @param seq 申请消息序号 * @param remark 好友备注 */ addFriendBack(seq: number, remark?: string): Promise<boolean>; /** * 处理好友申请 * @param seq 申请消息序号 * @param yes 是否同意 * @param remark 好友备注 * @param block 是否屏蔽来自此用户的申请 */ setFriendReq(seq: number, yes?: boolean, remark?: string, block?: boolean): Promise<boolean>; /** * 处理入群申请 * @param gid 群号 * @param seq 申请消息序号 * @param yes 是否同意 * @param reason 若拒绝,拒绝的原因 * @param block 是否屏蔽来自此用户的申请 */ setGroupReq(gid: number, seq: number, yes?: boolean, reason?: string, block?: boolean): Promise<boolean>; /** * 处理群邀请 * @param gid 群号 * @param seq 申请消息序号 * @param yes 是否同意 * @param block 是否屏蔽来自此群的邀请 */ setGroupInvite(gid: number, seq: number, yes?: boolean, block?: boolean): Promise<boolean>; /** * 获取文件信息 * @param fid 文件id */ getFileInfo(fid: string): Promise<Omit<FileElem, "type"> & Record<"url", string>>; /** * 获取离线文件下载地址 * @param fid 文件id */ getFileUrl(fid: string): Promise<string>; } export declare class UserMap<K = string | symbol, T extends User.Info = any> extends Map<K, T> { getByUid(uid: string): T | undefined; } export declare namespace User { interface Info { /** 用户qq */ user_id: number; /** uid */ uid: string; /** 昵称 */ nickname: string; /** 性别 */ sex?: Gender; } }