import { NTGroupMemberRole } from './group'; import { ActionBarElement, ArkElement, AvRecordElement, CalendarElement, FaceBubbleElement, FaceElement, FileElement, GiphyElement, GrayTipElement, MarketFaceElement, PicElement, PttElement, RecommendedMsgElement, ReplyElement, ShareLocationElement, StructLongMsgElement, TaskTopMsgElement, TextElement, TofuRecordElement, VideoElement, YoloGameResultElement } from './element'; /** * 表示对等方的信息 */ export interface Peer { chatType: ChatType; peerUid: string; guildId?: string; } /** * 表示被踢下线的信息 */ export interface KickedOffLineInfo { appId: number; instanceId: number; sameDevice: boolean; tipsDesc: string; tipsTitle: string; kickedType: number; securityKickedType: number; } /** * 获取文件列表的参数 */ export interface GetFileListParam { sortType: number; fileCount: number; startIndex: number; sortOrder: number; showOnlinedocFolder: number; folderId?: string; } /** * 消息元素类型枚举 */ export enum ElementType { UNKNOWN = 0, TEXT = 1, PIC = 2, FILE = 3, PTT = 4, VIDEO = 5, FACE = 6, REPLY = 7, GreyTip = 8,// “小灰条”,包括拍一拍 (Poke)、撤回提示等 WALLET = 9, ARK = 10, MFACE = 11, LIVEGIFT = 12, STRUCTLONGMSG = 13, MARKDOWN = 14, GIPHY = 15, MULTIFORWARD = 16, INLINEKEYBOARD = 17, INTEXTGIFT = 18, CALENDAR = 19, YOLOGAMERESULT = 20, AVRECORD = 21, FEED = 22, TOFURECORD = 23,// tofu record?? 在线文件的id是这个 ACEBUBBLE = 24, ACTIVITY = 25, TOFU = 26, FACEBUBBLE = 27, SHARELOCATION = 28, TASKTOPMSG = 29, ONLINEFOLDER = 30,// 在线文件夹 RECOMMENDEDMSG = 43, ACTIONBAR = 44 } /** * 消息类型枚举 */ export enum NTMsgType { KMSGTYPEARKSTRUCT = 11, KMSGTYPEFACEBUBBLE = 24, KMSGTYPEFILE = 3, KMSGTYPEGIFT = 14, KMSGTYPEGIPHY = 13, KMSGTYPEGRAYTIPS = 5, KMSGTYPEMIX = 2, KMSGTYPEMULTIMSGFORWARD = 8, KMSGTYPENULL = 1, KMSGTYPEONLINEFILE = 21, KMSGTYPEONLINEFOLDER = 27, KMSGTYPEPROLOGUE = 29, KMSGTYPEPTT = 6, KMSGTYPEREPLY = 9, KMSGTYPESHARELOCATION = 25, KMSGTYPESTRUCT = 4, KMSGTYPESTRUCTLONGMSG = 12, KMSGTYPETEXTGIFT = 15, KMSGTYPEUNKNOWN = 0, KMSGTYPEVIDEO = 7, KMSGTYPEWALLET = 10 } /** * 图片类型枚举 */ export enum PicType { NEWPIC_APNG = 2001, NEWPIC_BMP = 1005, NEWPIC_GIF = 2000, NEWPIC_JPEG = 1000, NEWPIC_PNG = 1001, NEWPIC_PROGERSSIV_JPEG = 1003, NEWPIC_SHARPP = 1004, NEWPIC_WEBP = 1002 } /** * 图片子类型枚举 */ export enum PicSubType { KNORMAL = 0, KCUSTOM = 1, KHOT = 2, KDIPPERCHART = 3, KSMART = 4, KSPACE = 5, KUNKNOW = 6, KRELATED = 7 } /** * 消息AT类型枚举 */ export enum NTMsgAtType { ATTYPEALL = 1, ATTYPECATEGORY = 512, ATTYPECHANNEL = 16, ATTYPEME = 4, ATTYPEONE = 2, ATTYPEONLINE = 64, ATTYPEROLE = 8, ATTYPESUMMON = 32, ATTYPESUMMONONLINE = 128, ATTYPESUMMONROLE = 256, ATTYPEUNKNOWN = 0 } /** * 消息元素接口 */ export interface MessageElement { elementType: ElementType; elementId: string; extBufForUI?: string; textElement?: TextElement; faceElement?: FaceElement; marketFaceElement?: MarketFaceElement; replyElement?: ReplyElement; picElement?: PicElement; pttElement?: PttElement; videoElement?: VideoElement; grayTipElement?: GrayTipElement; arkElement?: ArkElement; fileElement?: FileElement; liveGiftElement?: null; markdownElement?: MarkdownElement; structLongMsgElement?: StructLongMsgElement; multiForwardMsgElement?: MultiForwardMsgElement; giphyElement?: GiphyElement; walletElement?: null; inlineKeyboardElement?: InlineKeyboardElement; textGiftElement?: null; calendarElement?: CalendarElement; yoloGameResultElement?: YoloGameResultElement; avRecordElement?: AvRecordElement; structMsgElement?: null; faceBubbleElement?: FaceBubbleElement; shareLocationElement?: ShareLocationElement; tofuRecordElement?: TofuRecordElement; taskTopMsgElement?: TaskTopMsgElement; recommendedMsgElement?: RecommendedMsgElement; actionBarElement?: ActionBarElement; } /** * 消息来源类型枚举 */ export enum MsgSourceType { K_DOWN_SOURCETYPE_AIOINNER = 1, K_DOWN_SOURCETYPE_BIGSCREEN = 2, K_DOWN_SOURCETYPE_HISTORY = 3, K_DOWN_SOURCETYPE_UNKNOWN = 0 } /** * 聊天类型枚举 */ export enum ChatType { KCHATTYPEADELIE = 42, KCHATTYPEBUDDYNOTIFY = 5, KCHATTYPEC2C = 1, KCHATTYPECIRCLE = 113, KCHATTYPEDATALINE = 8, KCHATTYPEDATALINEMQQ = 134, KCHATTYPEDISC = 3, KCHATTYPEFAV = 41, KCHATTYPEGAMEMESSAGE = 105, KCHATTYPEGAMEMESSAGEFOLDER = 116, KCHATTYPEGROUP = 2, KCHATTYPEGROUPBLESS = 133, KCHATTYPEGROUPGUILD = 9, KCHATTYPEGROUPHELPER = 7, KCHATTYPEGROUPNOTIFY = 6, KCHATTYPEGUILD = 4, KCHATTYPEGUILDMETA = 16, KCHATTYPEMATCHFRIEND = 104, KCHATTYPEMATCHFRIENDFOLDER = 109, KCHATTYPENEARBY = 106, KCHATTYPENEARBYASSISTANT = 107, KCHATTYPENEARBYFOLDER = 110, KCHATTYPENEARBYHELLOFOLDER = 112, KCHATTYPENEARBYINTERACT = 108, KCHATTYPEQQNOTIFY = 132, KCHATTYPERELATEACCOUNT = 131, KCHATTYPESERVICEASSISTANT = 118, KCHATTYPESERVICEASSISTANTSUB = 201, KCHATTYPESQUAREPUBLIC = 115, KCHATTYPESUBSCRIBEFOLDER = 30, KCHATTYPETEMPADDRESSBOOK = 111, KCHATTYPETEMPBUSSINESSCRM = 102, KCHATTYPETEMPC2CFROMGROUP = 100, KCHATTYPETEMPC2CFROMUNKNOWN = 99, KCHATTYPETEMPFRIENDVERIFY = 101, KCHATTYPETEMPNEARBYPRO = 119, KCHATTYPETEMPPUBLICACCOUNT = 103, KCHATTYPETEMPWPA = 117, KCHATTYPEUNKNOWN = 0, KCHATTYPEWEIYUN = 40 } /** * 灰色提示元素子类型枚举 */ export enum NTGrayTipElementSubTypeV2 { GRAYTIP_ELEMENT_SUBTYPE_AIOOP = 15, GRAYTIP_ELEMENT_SUBTYPE_BLOCK = 14, GRAYTIP_ELEMENT_SUBTYPE_BUDDY = 5, GRAYTIP_ELEMENT_SUBTYPE_BUDDYNOTIFY = 9, GRAYTIP_ELEMENT_SUBTYPE_EMOJIREPLY = 3, GRAYTIP_ELEMENT_SUBTYPE_ESSENCE = 7, GRAYTIP_ELEMENT_SUBTYPE_FEED = 6, GRAYTIP_ELEMENT_SUBTYPE_FEEDCHANNELMSG = 11, GRAYTIP_ELEMENT_SUBTYPE_FILE = 10, GRAYTIP_ELEMENT_SUBTYPE_GROUP = 4, GRAYTIP_ELEMENT_SUBTYPE_GROUPNOTIFY = 8, GRAYTIP_ELEMENT_SUBTYPE_JSON = 17, GRAYTIP_ELEMENT_SUBTYPE_LOCALMSG = 13, GRAYTIP_ELEMENT_SUBTYPE_PROCLAMATION = 2, GRAYTIP_ELEMENT_SUBTYPE_REVOKE = 1, GRAYTIP_ELEMENT_SUBTYPE_UNKNOWN = 0, GRAYTIP_ELEMENT_SUBTYPE_WALLET = 16, GRAYTIP_ELEMENT_SUBTYPE_XMLMSG = 12 } /** * Poke 类型枚举 */ export enum PokeType { POKE_TYPE_APPROVE = 3, POKE_TYPE_GIVING_HEART = 2, POKE_TYPE_GREAT_MOVE = 6, POKE_TYPE_HEART_BREAK = 4, POKE_TYPE_HI_TOGETHER = 5, POKE_TYPE_POKE = 1, POKE_TYPE_POKE_OLD = 0, POKE_TYPE_VAS_POKE = 126 } /** * 表情索引枚举 */ export enum FaceIndex { DICE = 358, RPS = 359 } /** * 视频类型枚举 */ export enum NTVideoType { VIDEO_FORMAT_AFS = 7, VIDEO_FORMAT_AVI = 1, VIDEO_FORMAT_MKV = 4, VIDEO_FORMAT_MOD = 9, VIDEO_FORMAT_MOV = 8, VIDEO_FORMAT_MP4 = 2, VIDEO_FORMAT_MTS = 11, VIDEO_FORMAT_RM = 6, VIDEO_FORMAT_RMVB = 5, VIDEO_FORMAT_TS = 10, VIDEO_FORMAT_WMV = 3 } /** * 闪传图标 */ export interface FlashTransferIcon { spec: number; url: string; } /** * 闪传文件信息 */ export interface FlashTransferInfo { filesetId: string; name: string; fileSize: string; thnumbnail: { id: string; urls: FlashTransferIcon[]; localCachePath: string; }; } /** * Markdown元素接口 */ export interface MarkdownElement { content: string; style?: {}; processMsg?: string; mdSummary?: string; mdExtType?: number; mdExtInfo?: { flashTransferInfo: FlashTransferInfo; }; } /** * 内联键盘按钮接口 */ export interface InlineKeyboardElementRowButton { id: string; label: string; visitedLabel: string; style: 1; type: 2; clickLimit: 0; unsupportTips: string; data: string; atBotShowChannelList: boolean; permissionType: number; specifyRoleIds: []; specifyTinyids: []; isReply: false; anchor: 0; enter: false; subscribeDataTemplateIds: []; } /** * 内联键盘元素接口 */ export interface InlineKeyboardElement { rows: [ { buttons: InlineKeyboardElementRowButton[]; } ]; botAppid: string; } /** * Aio操作灰色提示元素接口 */ export interface TipAioOpGrayTipElement { operateType: number; peerUid: string; fromGrpCodeOfTmpChat: string; } /** * 群提示元素类型枚举 */ export enum TipGroupElementType { KUNKNOWN = 0, KMEMBERADD = 1, KDISBANDED = 2, KQUITTE = 3, KCREATED = 4, KGROUPNAMEMODIFIED = 5, KBLOCK = 6, KUNBLOCK = 7, KSHUTUP = 8, KBERECYCLED = 9, KDISBANDORBERECYCLED = 10 } /** * 群加入ShowType */ export enum MemberAddShowType { K_OTHER_ADD = 0, K_OTHER_ADD_BY_OTHER_QRCODE = 2, K_OTHER_ADD_BY_YOUR_QRCODE = 3, K_OTHER_INVITE_OTHER = 5, K_OTHER_INVITE_YOU = 6, K_YOU_ADD = 1, K_YOU_ADD_BY_OTHER_QRCODE = 4, K_YOU_ALREADY_MEMBER = 8, K_YOU_INVITE_OTHER = 7 } /** * 群提示元素成员角色枚举 */ export enum NTGroupGrayElementRole { KOTHER = 0, KMEMBER = 1, KADMIN = 2 } /** * 群灰色提示成员接口 * */ export interface NTGroupGrayMember { serialVersionUID: string; uid: string; name: string; } /** * 群灰色提示邀请者和被邀请者接口 * * */ export interface NTGroupGrayInviterAndInvite { invited: NTGroupGrayMember; inviter: NTGroupGrayMember; serialVersionUID: string; } /** * 群提示元素接口 */ export interface TipGroupElement { type: TipGroupElementType; role: NTGroupGrayElementRole; groupName: string; memberUid: string; memberNick: string; memberRemark: string; adminUid: string; adminNick: string; adminRemark: string; createGroup: null; memberAdd?: { showType: MemberAddShowType; otherAdd: NTGroupGrayMember; otherAddByOtherQRCode: NTGroupGrayInviterAndInvite; otherAddByYourQRCode: NTGroupGrayMember; youAddByOtherQRCode: NTGroupGrayMember; otherInviteOther: NTGroupGrayInviterAndInvite; otherInviteYou: NTGroupGrayMember; youInviteOther: NTGroupGrayMember; }; shutUp?: { curTime: string; duration: string; admin: { uid: string; card: string; name: string; role: NTGroupMemberRole; }; member: { uid: string; card: string; name: string; role: NTGroupMemberRole; }; }; } /** * 多条转发消息元素接口 */ export interface MultiForwardMsgElement { xmlContent: string; resId: string; fileName: string; } /** * 发送状态类型枚举 */ export enum SendStatusType { KSEND_STATUS_FAILED = 0, KSEND_STATUS_SENDING = 1, KSEND_STATUS_SUCCESS = 2, KSEND_STATUS_SUCCESS_NOSEQ = 3 } /** * 原始消息接口 */ export interface RawMessage { parentMsgPeer: Peer; parentMsgIdList: string[]; id?: number; guildId: string; msgRandom: string; msgId: string; msgTime: string; msgSeq: string; msgType: NTMsgType; subMsgType: number; senderUid: string; senderUin: string; peerUid: string; peerUin: string; remark?: string; peerName: string; sendNickName: string; sendRemarkName: string; sendMemberName?: string; chatType: ChatType; sendStatus?: SendStatusType; recallTime: string; records: RawMessage[]; emojiLikesList?: Array<{ emojiId: string; emojiType: string; likesCnt: string; isClicked: string; }>; elements: MessageElement[]; sourceType: MsgSourceType; isOnlineMsg: boolean; clientSeq?: string; } /** * 查询消息参数接口 */ export interface QueryMsgsParams { chatInfo: Peer & { privilegeFlag?: number; }; filterMsgType: Array<{ type: NTMsgType; subType: Array; }>; filterSendersUid: string[]; filterMsgFromTime: string; filterMsgToTime: string; pageLimit: number; isReverseOrder: boolean; isIncludeCurrent: boolean; } /** * 临时聊天信息API接口 */ export interface TmpChatInfoApi { errMsg: string; result: number; tmpChatInfo?: TmpChatInfo; } /** * 临时聊天信息接口 */ export interface TmpChatInfo { chatType: number; fromNick: string; groupCode: string; peerUid: string; sessionType: number; sig: string; } /** * 消息请求类型接口 */ export interface MsgReqType { peer: Peer; byType: number; msgId: string; msgSeq: string; msgTime: string; clientSeq: string; cnt: number; queryOrder: boolean; includeSelf: boolean; includeDeleteMsg: boolean; extraCnt: number; } /** * 表情类型枚举 */ export enum FaceType { Unknown = 0, OldFace = 1,// 老表情 Normal = 2,// 常规表情 AniSticke = 3,// 动画贴纸 Lottie = 4,// 新格式表情 Poke = 5 }