ntqq
Version:
QQ protocol for NodeJS!
168 lines (167 loc) • 4.56 kB
TypeScript
import { Forwardable, Quotable, Sendable, MessageElem } from "./elements";
import { Parser } from './parser';
import * as pb from '../core/protobuf';
import { GroupRole } from '../common';
export declare function rand2uuid(rand: number): bigint;
export declare function uuid2rand(uuid: bigint): number;
/** 匿名情报 */
export interface Anonymous {
/** 是否可以匿名发言 */
enable: boolean;
flag: string;
id: number;
id2: number;
name: string;
expire_time: number;
color: string;
}
/** 频道发消息的返回值 */
export interface GuildMessageRet {
seq: number;
rand: number;
time: number;
}
export declare abstract class Message implements Quotable, Forwardable {
protected readonly parsed: Parser;
post_type: "message";
message: Sendable;
rand: number;
seq: number;
time: number;
user_id: number;
uid: string;
font: string;
raw_message: string;
source?: Quotable;
get mentions(): (number | "all")[];
static deserialize(serialized: Buffer): PrivateMessage;
protected constructor(proto: pb.Proto);
toString(): string;
}
export declare class PrivateMessage extends Message {
message_type: "private";
sub_type: "friend" | "group" | "temp" | "self";
/** 发送方账号 */
from_id: number;
/** 接收方账号 */
to_id: number;
/** 是否为自动回复 */
auto_reply: boolean;
/** 发送方信息 */
sender: {
group_id: undefined;
/** 账号 */
user_id: number;
/** 昵称 */
nickname: string;
};
constructor(proto: pb.Proto);
}
export declare class TempMessage extends Message {
message_type: "private";
sub_type: "friend" | "group" | "temp" | "self";
group_id: number;
group_name: string;
/** 匿名信息,{@link sub_type} 为`"anonymous"`时该属性有效 */
anonymous: Anonymous | null;
/** 发送方账号 */
from_id: number;
/** 接收方账号 */
to_id: number;
/** 是否为自动回复 */
auto_reply: boolean;
/** 发送方信息 */
sender: {
/** 账号 */
user_id: number;
/** 昵称 */
nickname: string;
card: string;
/** 群号,当消息来自群聊时有效 */
group_id: number | undefined;
};
constructor(proto: pb.Proto);
}
export declare class GroupMessage extends Message {
message_type: "group";
sub_type: "friend" | "group" | "temp" | "self";
group_id: number;
group_name: string;
atme: boolean;
atall: boolean;
/** 发送方信息 */
sender: {
/** 账号 */
user_id: number;
/** 昵称 */
nickname: string;
/** subId */
sub_id: string;
/** 名片 */
card: string;
/** 等级 */
level: number;
/** 权限 */
role: GroupRole;
/** 头衔 */
title: string;
};
constructor(proto: pb.Proto);
}
/** 一条转发消息 */
export declare class ForwardMessage implements Forwardable {
protected proto: pb.Proto;
private parsed;
/** 账号 */
user_id: number;
/** 昵称 */
nickname: string;
/** 若转自群聊,则表示群号 */
group_id?: number;
/** 发送时间 */
time: number;
/** 发送序号 */
seq: number;
/** 消息内容 */
message: Sendable;
raw_message: string;
/** 反序列化一条转发消息 */
static deserialize(serialized: Buffer): ForwardMessage;
constructor(proto: pb.Proto);
/** 将转发消息序列化保存 */
serialize(): Buffer;
/** 以适合人类阅读的形式输出 */
toString(): string;
/** @deprecated 转换为CQ码 */
toCqcode(): string;
}
/** 频道消息事件 */
export declare class GuildMessageEvent {
/** 频道id */
guild_id: string;
/** 频道名 */
guild_name: string;
/** 子频道id */
channel_id: string;
/** 子频道名 */
channel_name: string;
post_type: 'message';
detail_type: string;
/** 消息序号(同一子频道中一般顺序递增) */
seq: number;
rand: number;
time: number;
/** 消息内容 */
message: MessageElem[];
raw_message: string;
/** 发送方信息 */
sender: {
/** 账号 */
tiny_id: string;
/** 昵称 */
nickname: string;
};
constructor(proto: pb.Proto);
/** 暂时仅支持发送: 文本、AT、表情 */
reply: (content: Sendable) => Promise<GuildMessageRet>;
}