import { V2NIMMessage, V2NIMSendMessageParams, V2NIMSendMessageResult, V2NIMMessageRevokeParams, V2NIMMessageListOption, V2NIMMessageRefer, V2NIMThreadMessageListOption, V2NIMThreadMessageListResult, V2NIMClearHistoryMessageOption, V2NIMMessagePin, V2NIMMessageQuickCommentPushConfig, V2NIMMessageQuickComment, V2NIMAddCollectionParams, V2NIMCollection, V2NIMCollectionOption, V2NIMCollectionListResult, V2NIMP2PMessageReadReceipt, V2NIMTeamMessageReadReceipt, V2NIMTeamMessageReadReceiptDetail, V2NIMVoiceToTextParams, V2NIMTextTranslateParams, V2NIMTextTranslationResult, V2NIMMessageSearchParams, V2NIMClearHistoryNotification, V2NIMMessageDeletedNotification, V2NIMMessagePinNotification, V2NIMMessageQuickCommentNotification, V2NIMMessageRevokeNotification, V2NIMModifyMessageParams, V2NIMModifyMessageResult, V2NIMMessageSearchExParams, V2NIMMessageSearchResult, V2NIMMessageAIStreamStopParams, V2NIMMessageAIRegenParams, V2NIMMessageFilter, V2NIMMessageListResult, V2NIMUpdateLocalMessageParams, V2NIMMessageInsertParams, V2NIMCloudMessageListOption, V2NIMClearLocalMessageParams } from '../v2_def/v2_nim_struct_def'; import { EventEmitter } from 'eventemitter3'; import { V2NIMProgressCallback } from '../v2_def/v2_nim_callback_def'; export declare interface V2NIMMessageListener { /** 收到一条新消息 */ receiveMessages: [Array]; /** 点对点已读回执 */ receiveP2PMessageReadReceipts: [Array]; /** 群已读回执 */ receiveTeamMessageReadReceipts: [Array]; /** 消息撤回通知 */ messageRevokeNotifications: [Array]; /** 消息 pin 状态通知 */ messagePinNotification: [V2NIMMessagePinNotification]; /** 消息快捷评论通知 */ messageQuickCommentNotification: [V2NIMMessageQuickCommentNotification]; /** 消息被删除通知 */ messageDeletedNotifications: [Array]; /** 清空会话历史消息通知 */ clearHistoryNotifications: [Array]; /** 本端发送消息状态回调 */ sendMessage: [V2NIMMessage]; /** 本端更新消息状态回调 */ receiveMessagesModified: [Array]; } /** @brief 消息服务 */ export declare class V2NIMMessageService extends EventEmitter { instance: any; constructor(); /** * @brief 发送消息 * @param message 要发送的消息 * @param conversationId 发送目标会话 * @returns V2NIMSendMessageResult * @example * ```javascript * const message = v2.messageCreator.createTextMessage('Hello NTES IM') * const result = await v2.messageService.sendMessage(message, conversationId, params, progressCallback) * ``` */ sendMessage(message: V2NIMMessage, conversationId: string, params: V2NIMSendMessageParams, progressCallback: V2NIMProgressCallback): Promise; /** * @param message 要发送的消息 * @param replyMessage 被回复的消息 * @param params 发送参数 * @param progressCallback 发送进度回调 * @returns V2NIMSendMessageResult * @example * ```javascript * const replyMessage = v2.messageCreator.createTextMessage('Hello NTES IM') * const result = await v2.messageService.replyMessage(message, replyMessage, params, progressCallback) * ``` */ replyMessage(message: V2NIMMessage, replyMessage: V2NIMMessage, params: V2NIMSendMessageParams, progressCallback: V2NIMProgressCallback): Promise; /** * @brief 更新消息 * @param message 要更新的消息 * @param params 发送参数 * @returns V2NIMModifyMessageResult * @example * ```javascript * const result = await v2.messageService.modifyMessage(message, { * text: 'Hello NTES IM' * }) * ``` */ modifyMessage(message: V2NIMMessage, params: V2NIMModifyMessageParams): Promise; /** * @brief 撤回消息 * @param message 要撤回的消息 * @param params 撤回参数 * @returns void * @example * ```javascript * await v2.messageService.revokeMessage(message, {}) * ``` */ revokeMessage(message: V2NIMMessage, params: V2NIMMessageRevokeParams): Promise; /** * @brief 查询消息 * @param option 查询消息配置选项 * @returns Array * @example * ```javascript * const messages = await v2.messageService.getMessageList({ * conversationId: 'conversationId' * }) * ``` */ getMessageList(option: V2NIMMessageListOption): Promise>; /** * @brief 查询消息 * @param option 查询消息配置选项 * @returns V2NIMMessageListResult * @since v10.9.0 * @example * ```javascript * const result = await v2.messageService.getMessageListEx({ * conversationId: 'conversationId' * }) */ getMessageListEx(option: V2NIMMessageListOption): Promise; /** * 查询云端消息,默认不入库 * @param option 查询消息配置选项 * @returns V2NIMMessageListResult * @since v10.9.1 * @example * ```javascript * const result = await v2.messageService.getCloudMessageList({ * conversationId: 'conversationId' * }) * ``` */ getCloudMessageList(option: V2NIMCloudMessageListOption): Promise; /** * @brief 根据 ID 列表查询消息 * @param messageClientIds 消息客户端 ID 列表 * @returns Array * @example * ```javascript * const messages = await v2.messageService.getMessageListByIds(messageClientIds) * ``` */ getMessageListByIds(messageClientIds: Array): Promise>; /** * @brief 根据消息引用列表查询消息 * @param messageRefers 消息引用列表 * @returns Array * @example * ```javascript * const messages = await v2.messageService.getMessageListByRefers(messageRefers) * ``` */ getMessageListByRefers(messageRefers: Array): Promise>; /** * @brief 查询 thread 聊天云端消息列表 * @param threadMessageListOption threadMessageListOption 消息查询选项 * @returns V2NIMThreadMessageListResult * @example * ```javascript * const result = await v2.messageService.getThreadMessageList(threadMessageListOption) * ``` */ getThreadMessageList(threadMessageListOption: V2NIMThreadMessageListOption): Promise; /** * @brief 查询 thread 聊天本地消息列表 * @param messageRefer 消息查询选项 * @returns V2NIMThreadMessageListResult * @example * ```javascript * const result = await v2.messageService.getLocalThreadMessageList(messageRefer) * ``` */ getLocalThreadMessageList(messageRefer: V2NIMMessageRefer): Promise; /** * @brief 删除消息 * @param message 需要删除的消息 * @param serverExtension 服务器扩展字段 * @param onlyDeleteLocal 是否只删除本地消息 * @returns void * @example * ```javascript * await v2.messageService.deleteMessage(message, 'serverExtension', true) * ``` */ deleteMessage(message: V2NIMMessage, serverExtension: string, onlyDeleteLocal: boolean): Promise; /** * @brief 批量删除消息 * @param messages 需要删除的消息列表 * @param serverExtension 服务器扩展字段 * @param onlyDeleteLocal 是否只删除本地消息 * @returns void * @example * ```javascript * await v2.messageService.deleteMessages(messages, 'serverExtension', true) * ``` */ deleteMessages(messages: Array, serverExtension: string, onlyDeleteLocal: boolean): Promise; /** * @brief 清空历史消息 * @param option 清空历史消息配置选项 * @returns void * @example * ```javascript * await v2.messageService.clearHistoryMessage(option) * ``` */ clearHistoryMessage(option: V2NIMClearHistoryMessageOption): Promise; /** * @brief 清空本地消息 * @param params 清空本地消息配置选项 * @returns void * @example * ```javascript * await v2.messageService.clearLocalMessage(params) * ``` */ clearLocalMessage(params: V2NIMClearLocalMessageParams): Promise; /** * @brief 更新消息本地扩展 * @param message 要更新的消息 * @param localExtension 本地扩展字段 * @returns V2NIMMessage * @example * ```javascript * const message = await v2.messageService.updateMessageLocalExtension(message, 'localExtension') * ``` */ updateMessageLocalExtension(message: V2NIMMessage, localExtension: string): Promise; /** * @brief 插入本地消息 * @param message 要插入的消息 * @param conversationId 会话 ID * @param senderId 发送者 ID, 传空表示当前用户 * @param createTime 消息创建时间, 0 表示使用当前时间 * @returns V2NIMMessage * @example * ```javascript * const message = await v2.messageService.insertMessageToLocal(message, conversationId, senderId, createTime) * ``` */ insertMessageToLocal(message: V2NIMMessage, conversationId: string, senderId: string, createTime: number): Promise; /** * @brief 插入本地消息(扩展版本) * @param message 要插入的消息 * @param params 插入参数,包含 conversationId、senderId、createTime、lastMessageUpdateEnabled * @returns V2NIMMessage 插入后的完整消息对象 * @since v10.9.75 * @example * ```javascript * const insertedMessage = await v2.messageService.insertMessageToLocalEx(message, { * conversationId: 'p2p|account1|account2', * senderId: 'account1', * createTime: Date.now(), * lastMessageUpdateEnabled: false // 不更新会话最后一条消息 * }) * ``` */ insertMessageToLocalEx(message: V2NIMMessage, params: V2NIMMessageInsertParams): Promise; /** * @brief 更新本地消息 * @param message 要更新的消息 * @param params 更新参数 * @returns V2NIMMessage * @since v10.9.0 * @example * ```javascript * const message = await v2.messageService.updateLocalMessage(message, { * text: 'Hello NTES IM' * }) */ updateLocalMessage(message: V2NIMMessage, params: V2NIMUpdateLocalMessageParams): Promise; /** * @brief PIN 消息 * @param message 要 PIN 的消息 * @param serverExtension 扩展字段 * @returns void * @example * ```javascript * await v2.messageService.pinMessage(message, 'serverExtension') * ``` */ pinMessage(message: V2NIMMessage, serverExtension: string): Promise; /** * @brief 取消 PIN 消息 * @param messageRefer 要取消 PIN 的消息引用 * @param serverExtension 扩展字段 * @returns void * @example * ```javascript * await v2.messageService.unpinMessage(messageRefer, 'serverExtension') * ``` */ unpinMessage(messageRefer: V2NIMMessageRefer, serverExtension: string): Promise; /** * @brief 更新 PIN 消息 * @param message 要更新的 PIN 消息 * @param serverExtension 扩展字段 * @returns void * @example * ```javascript * await v2.messageService.updatePinMessage(message, 'serverExtension') * ``` */ updatePinMessage(message: V2NIMMessage, serverExtension: string): Promise; /** * @brief 获取 PIN 消息列表 * @param conversationId 会话 ID * @returns Array * @example * ```javascript * const result = await v2.messageService.getPinnedMessageList(conversationId) * ``` */ getPinnedMessageList(conversationId: string): Promise>; /** * @brief 添加快捷评论 * @param message 要添加快捷评论的消息 * @param index 快捷评论索引 * @param serverExtension 服务器扩展字段 * @param pushConfig 推送配置 * @returns void * @example * ```javascript * await v2.messageService.addQuickComment(message, index, 'serverExtension', pushConfig) * ``` */ addQuickComment(message: V2NIMMessage, index: string, serverExtension: string, pushConfig: V2NIMMessageQuickCommentPushConfig): Promise; /** * @brief 移除快捷评论 * @param messageRefer 要移除快捷评论的消息引用 * @param index 快捷评论索引 * @param serverExtension 服务器扩展字段 * @returns void * @example * ```javascript * await v2.messageService.removeQuickComment(messageRefer, index, 'serverExtension') * ``` */ removeQuickComment(messageRefer: V2NIMMessageRefer, index: number, serverExtension: string): Promise; /** * @brief 获取快捷评论列表 * @param messages 要获取快捷评论的消息列表 * @returns Map> * @example * ```javascript * const result = await v2.messageService.getQuickCommentList(messages) * ``` */ getQuickCommentList(messages: Array): Promise>>; /** * @brief 添加收藏 * @param params 添加收藏相关参数 * @returns V2NIMCollection * @example * ```javascript * const result = await v2.messageService.addCollection(params) * ``` */ addCollection(params: V2NIMAddCollectionParams): Promise; /** * @brief 移除收藏 * @param collections 要移除的收藏列表 * @returns number * @example * ```javascript * const count = await v2.messageService.removeCollections(collections) * ``` */ removeCollections(collections: Array): Promise; /** * @brief 更新收藏扩展字段 * @param collection 要更新的收藏 * @param serverExtension 服务器扩展字段, 传空表示删除扩展字段 * @returns V2NIMCollection * @example * ```javascript * const result = await v2.messageService.updateCollectionExtension(collection, 'serverExtension') * ``` */ updateCollectionExtension(collection: V2NIMCollection, serverExtension: string): Promise; /** * @brief 分页获取收藏列表 * @param option 获取收藏列表查询参数 * @returns Array * @example * ```javascript * const result = await v2.messageService.getCollectionListByOption(option) * ``` */ getCollectionListByOption(option: V2NIMCollectionOption): Promise>; /** * @brief 分页获取收藏列表 * @param option 获取收藏列表查询参数 * @returns V2NIMCollectionListResult * @example * ```javascript * const result = await v2.messageService.getCollectionListExByOption(option) * ``` */ getCollectionListExByOption(option: V2NIMCollectionOption): Promise; /** * @brief 发送 P2P 消息已读回执 * @param message 要发送已读回执的消息 * @returns void * @example * ```javascript * await v2.messageService.sendP2PMessageReceipt(message) * ``` */ sendP2PMessageReceipt(message: V2NIMMessage): Promise; /** * @brief 查询 P2P 消息已读回执状态 * @param conversationId 会话 ID * @returns V2NIMP2PMessageReadReceipt * @example * ```javascript * const result = await v2.messageService.getP2PMessageReceipt(conversationId) * ``` */ getP2PMessageReceipt(conversationId: string): Promise; /** * @brief 查询 P2P 消息对方是否已读 * @param message 要查询的消息 * @returns boolean 是否已读 * @example * ```javascript * const result = v2.messageService.isPeerRead(message) * ``` */ isPeerRead(message: V2NIMMessage): boolean; /** * @brief 发送群消息已读回执 * @param messages 要发送已读回执的消息列表 * @returns void * @example * ```javascript * await v2.messageService.sendTeamMessageReceipts(messages) * ``` */ sendTeamMessageReceipts(messages: Array): Promise; /** * @brief 获取群消息已读回执状态 * @param messages 要查询的消息列表 * @returns Array * @example * ```javascript * const result = await v2.messageService.getTeamMessageReceipts(messages) * ``` */ getTeamMessageReceipts(messages: Array): Promise>; /** * @brief 获取群消息已读回执详情 * @param message 要查询的消息 * @param memberAccountIds 指定的账号列表, 为空表示查询全部 * @returns V2NIMTeamMessageReadReceiptDetail * @example * ```javascript * const result = await v2.messageService.getTeamMessageReceiptDetail(message, memberAccountIds) * ``` */ getTeamMessageReceiptDetail(message: V2NIMMessage, memberAccountIds: Array): Promise; /** * @brief 语音转文字 * @param params 语音转文字参数 * @returns string * @example * ```javascript * const result = await v2.messageService.voiceToText(params) * ``` */ voiceToText(params: V2NIMVoiceToTextParams): Promise; /** * @brief 文本翻译 * @param params 文本翻译参数 * @returns V2NIMTextTranslationResult * @since v10.9.75 * @example * ```javascript * const result = await v2.messageService.translateText({ * text: 'Hello', * targetLanguage: 'zh' * }) * ``` */ translateText(params: V2NIMTextTranslateParams): Promise; /** * @brief 取消文件消息附件上传 * @param message 要取消上传的文件消息 * @returns void * @example * ```javascript * await v2.messageService.cancelMessageAttachmentUpload(message) * ``` */ cancelMessageAttachmentUpload(message: V2NIMMessage): Promise; /** * @brief 搜索云端消息 * @param params 消息检索参数 * @returns Array * @example * ```javascript * const result = await v2.messageService.searchCloudMessages(params) * ``` */ searchCloudMessages(params: V2NIMMessageSearchParams): Promise>; /** * @brief 搜索云端消息,支持多个关键字、消息子类型查询 * @param params 消息检索参数 * @returns Promise * @since v10.8.30 * @example * ```javascript * const result = await v2.messageService.searchCloudMessagesEx({ * keywordList: ['keyword1', 'keyword2'], * messageTypes: [0, 1, 2], * messageSubtypes: [1, 2], * limit: 10 * }) * ``` */ searchCloudMessagesEx(params: V2NIMMessageSearchExParams): Promise; /** * @brief 搜索本地消息 * @param params 消息检索参数 * @returns V2NIMMessageSearchResult * @example * ```javascript * const result = await v2.messageService.searchLocalMessages({ * keywordList: ['keyword1', 'keyword2'], * }) * ``` */ searchLocalMessages(params: V2NIMMessageSearchExParams): Promise; /** * @brief 停止 AI 消息流 * @param message 要停止的消息 * @param params 停止参数 * @return void * @since v10.8.30 * @example * ```javascript * await v2.messageService.stopAIStreamMessage(message, { * operationType: 0 * }) * ``` */ stopAIStreamMessage(message: V2NIMMessage, params: V2NIMMessageAIStreamStopParams): Promise; /** * @brief 重新生成 AI 消息 * @param message 要重新生成的消息 * @param params 重新生成参数 * @return void * @since v10.8.30 * @example * ```javascript * await v2.messageService.regenAIMessage(message, { * operationType: 0 * }) * ``` */ regenAIMessage(message: V2NIMMessage, params: V2NIMMessageAIRegenParams): Promise; /** * @brief 清除漫游消息 * @param conversationIds 会话 ID 列表 * @returns void * @since v10.9.30 * @example * ```javascript * await v2.messageService.clearRoamingMessage(['conversationId1', 'conversationId2']) * ``` */ clearRoamingMessage(conversationIds: Array): Promise; /** * @brief 安装消息过滤器,全局唯一,只能注册一个。一旦注册该过滤器,所有消息均经过该过滤器,返回 true 表示将消息过滤,返回 false 表示不过滤消息 * @param filter 消息过滤器 * @returns void * @since v10.8.30 * @example * ```javascript * v2.messageService.setMessageFilter({ * shouldIgnore: (message) => { * // 过滤消息 * } * }) */ setMessageFilter(filter: V2NIMMessageFilter): void; }