node-nim
Version:
NetEase IM nodejs wrapper based on NetEase IM C++ SDK
570 lines (569 loc) • 22 kB
TypeScript
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<V2NIMMessage>];
/** 点对点已读回执 */
receiveP2PMessageReadReceipts: [Array<V2NIMP2PMessageReadReceipt>];
/** 群已读回执 */
receiveTeamMessageReadReceipts: [Array<V2NIMTeamMessageReadReceipt>];
/** 消息撤回通知 */
messageRevokeNotifications: [Array<V2NIMMessageRevokeNotification>];
/** 消息 pin 状态通知 */
messagePinNotification: [V2NIMMessagePinNotification];
/** 消息快捷评论通知 */
messageQuickCommentNotification: [V2NIMMessageQuickCommentNotification];
/** 消息被删除通知 */
messageDeletedNotifications: [Array<V2NIMMessageDeletedNotification>];
/** 清空会话历史消息通知 */
clearHistoryNotifications: [Array<V2NIMClearHistoryNotification>];
/** 本端发送消息状态回调 */
sendMessage: [V2NIMMessage];
/** 本端更新消息状态回调 */
receiveMessagesModified: [Array<V2NIMMessage>];
}
/** @brief 消息服务 */
export declare class V2NIMMessageService extends EventEmitter<V2NIMMessageListener> {
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<V2NIMSendMessageResult>;
/**
* @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<V2NIMSendMessageResult>;
/**
* @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<V2NIMModifyMessageResult>;
/**
* @brief 撤回消息
* @param message 要撤回的消息
* @param params 撤回参数
* @returns void
* @example
* ```javascript
* await v2.messageService.revokeMessage(message, {})
* ```
*/
revokeMessage(message: V2NIMMessage, params: V2NIMMessageRevokeParams): Promise<void>;
/**
* @brief 查询消息
* @param option 查询消息配置选项
* @returns Array<V2NIMMessage>
* @example
* ```javascript
* const messages = await v2.messageService.getMessageList({
* conversationId: 'conversationId'
* })
* ```
*/
getMessageList(option: V2NIMMessageListOption): Promise<Array<V2NIMMessage>>;
/**
* @brief 查询消息
* @param option 查询消息配置选项
* @returns V2NIMMessageListResult
* @since v10.9.0
* @example
* ```javascript
* const result = await v2.messageService.getMessageListEx({
* conversationId: 'conversationId'
* })
*/
getMessageListEx(option: V2NIMMessageListOption): Promise<V2NIMMessageListResult>;
/**
* 查询云端消息,默认不入库
* @param option 查询消息配置选项
* @returns V2NIMMessageListResult
* @since v10.9.1
* @example
* ```javascript
* const result = await v2.messageService.getCloudMessageList({
* conversationId: 'conversationId'
* })
* ```
*/
getCloudMessageList(option: V2NIMCloudMessageListOption): Promise<V2NIMMessageListResult>;
/**
* @brief 根据 ID 列表查询消息
* @param messageClientIds 消息客户端 ID 列表
* @returns Array<V2NIMMessage>
* @example
* ```javascript
* const messages = await v2.messageService.getMessageListByIds(messageClientIds)
* ```
*/
getMessageListByIds(messageClientIds: Array<string>): Promise<Array<V2NIMMessage>>;
/**
* @brief 根据消息引用列表查询消息
* @param messageRefers 消息引用列表
* @returns Array<V2NIMMessage>
* @example
* ```javascript
* const messages = await v2.messageService.getMessageListByRefers(messageRefers)
* ```
*/
getMessageListByRefers(messageRefers: Array<V2NIMMessageRefer>): Promise<Array<V2NIMMessage>>;
/**
* @brief 查询 thread 聊天云端消息列表
* @param threadMessageListOption threadMessageListOption 消息查询选项
* @returns V2NIMThreadMessageListResult
* @example
* ```javascript
* const result = await v2.messageService.getThreadMessageList(threadMessageListOption)
* ```
*/
getThreadMessageList(threadMessageListOption: V2NIMThreadMessageListOption): Promise<V2NIMThreadMessageListResult>;
/**
* @brief 查询 thread 聊天本地消息列表
* @param messageRefer 消息查询选项
* @returns V2NIMThreadMessageListResult
* @example
* ```javascript
* const result = await v2.messageService.getLocalThreadMessageList(messageRefer)
* ```
*/
getLocalThreadMessageList(messageRefer: V2NIMMessageRefer): Promise<V2NIMThreadMessageListResult>;
/**
* @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<void>;
/**
* @brief 批量删除消息
* @param messages 需要删除的消息列表
* @param serverExtension 服务器扩展字段
* @param onlyDeleteLocal 是否只删除本地消息
* @returns void
* @example
* ```javascript
* await v2.messageService.deleteMessages(messages, 'serverExtension', true)
* ```
*/
deleteMessages(messages: Array<V2NIMMessage>, serverExtension: string, onlyDeleteLocal: boolean): Promise<void>;
/**
* @brief 清空历史消息
* @param option 清空历史消息配置选项
* @returns void
* @example
* ```javascript
* await v2.messageService.clearHistoryMessage(option)
* ```
*/
clearHistoryMessage(option: V2NIMClearHistoryMessageOption): Promise<void>;
/**
* @brief 清空本地消息
* @param params 清空本地消息配置选项
* @returns void
* @example
* ```javascript
* await v2.messageService.clearLocalMessage(params)
* ```
*/
clearLocalMessage(params: V2NIMClearLocalMessageParams): Promise<void>;
/**
* @brief 更新消息本地扩展
* @param message 要更新的消息
* @param localExtension 本地扩展字段
* @returns V2NIMMessage
* @example
* ```javascript
* const message = await v2.messageService.updateMessageLocalExtension(message, 'localExtension')
* ```
*/
updateMessageLocalExtension(message: V2NIMMessage, localExtension: string): Promise<V2NIMMessage>;
/**
* @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<V2NIMMessage>;
/**
* @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<V2NIMMessage>;
/**
* @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<V2NIMMessage>;
/**
* @brief PIN 消息
* @param message 要 PIN 的消息
* @param serverExtension 扩展字段
* @returns void
* @example
* ```javascript
* await v2.messageService.pinMessage(message, 'serverExtension')
* ```
*/
pinMessage(message: V2NIMMessage, serverExtension: string): Promise<void>;
/**
* @brief 取消 PIN 消息
* @param messageRefer 要取消 PIN 的消息引用
* @param serverExtension 扩展字段
* @returns void
* @example
* ```javascript
* await v2.messageService.unpinMessage(messageRefer, 'serverExtension')
* ```
*/
unpinMessage(messageRefer: V2NIMMessageRefer, serverExtension: string): Promise<void>;
/**
* @brief 更新 PIN 消息
* @param message 要更新的 PIN 消息
* @param serverExtension 扩展字段
* @returns void
* @example
* ```javascript
* await v2.messageService.updatePinMessage(message, 'serverExtension')
* ```
*/
updatePinMessage(message: V2NIMMessage, serverExtension: string): Promise<void>;
/**
* @brief 获取 PIN 消息列表
* @param conversationId 会话 ID
* @returns Array<V2NIMMessagePin>
* @example
* ```javascript
* const result = await v2.messageService.getPinnedMessageList(conversationId)
* ```
*/
getPinnedMessageList(conversationId: string): Promise<Array<V2NIMMessagePin>>;
/**
* @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<void>;
/**
* @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<void>;
/**
* @brief 获取快捷评论列表
* @param messages 要获取快捷评论的消息列表
* @returns Map<string, Array<V2NIMMessageQuickComment>>
* @example
* ```javascript
* const result = await v2.messageService.getQuickCommentList(messages)
* ```
*/
getQuickCommentList(messages: Array<V2NIMMessage>): Promise<Map<string, Array<V2NIMMessageQuickComment>>>;
/**
* @brief 添加收藏
* @param params 添加收藏相关参数
* @returns V2NIMCollection
* @example
* ```javascript
* const result = await v2.messageService.addCollection(params)
* ```
*/
addCollection(params: V2NIMAddCollectionParams): Promise<V2NIMCollection>;
/**
* @brief 移除收藏
* @param collections 要移除的收藏列表
* @returns number
* @example
* ```javascript
* const count = await v2.messageService.removeCollections(collections)
* ```
*/
removeCollections(collections: Array<V2NIMCollection>): Promise<number>;
/**
* @brief 更新收藏扩展字段
* @param collection 要更新的收藏
* @param serverExtension 服务器扩展字段, 传空表示删除扩展字段
* @returns V2NIMCollection
* @example
* ```javascript
* const result = await v2.messageService.updateCollectionExtension(collection, 'serverExtension')
* ```
*/
updateCollectionExtension(collection: V2NIMCollection, serverExtension: string): Promise<V2NIMCollection>;
/**
* @brief 分页获取收藏列表
* @param option 获取收藏列表查询参数
* @returns Array<V2NIMCollection>
* @example
* ```javascript
* const result = await v2.messageService.getCollectionListByOption(option)
* ```
*/
getCollectionListByOption(option: V2NIMCollectionOption): Promise<Array<V2NIMCollection>>;
/**
* @brief 分页获取收藏列表
* @param option 获取收藏列表查询参数
* @returns V2NIMCollectionListResult
* @example
* ```javascript
* const result = await v2.messageService.getCollectionListExByOption(option)
* ```
*/
getCollectionListExByOption(option: V2NIMCollectionOption): Promise<V2NIMCollectionListResult>;
/**
* @brief 发送 P2P 消息已读回执
* @param message 要发送已读回执的消息
* @returns void
* @example
* ```javascript
* await v2.messageService.sendP2PMessageReceipt(message)
* ```
*/
sendP2PMessageReceipt(message: V2NIMMessage): Promise<void>;
/**
* @brief 查询 P2P 消息已读回执状态
* @param conversationId 会话 ID
* @returns V2NIMP2PMessageReadReceipt
* @example
* ```javascript
* const result = await v2.messageService.getP2PMessageReceipt(conversationId)
* ```
*/
getP2PMessageReceipt(conversationId: string): Promise<V2NIMP2PMessageReadReceipt>;
/**
* @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<V2NIMMessage>): Promise<void>;
/**
* @brief 获取群消息已读回执状态
* @param messages 要查询的消息列表
* @returns Array<V2NIMTeamMessageReadReceipt>
* @example
* ```javascript
* const result = await v2.messageService.getTeamMessageReceipts(messages)
* ```
*/
getTeamMessageReceipts(messages: Array<V2NIMMessage>): Promise<Array<V2NIMTeamMessageReadReceipt>>;
/**
* @brief 获取群消息已读回执详情
* @param message 要查询的消息
* @param memberAccountIds 指定的账号列表, 为空表示查询全部
* @returns V2NIMTeamMessageReadReceiptDetail
* @example
* ```javascript
* const result = await v2.messageService.getTeamMessageReceiptDetail(message, memberAccountIds)
* ```
*/
getTeamMessageReceiptDetail(message: V2NIMMessage, memberAccountIds: Array<string>): Promise<V2NIMTeamMessageReadReceiptDetail>;
/**
* @brief 语音转文字
* @param params 语音转文字参数
* @returns string
* @example
* ```javascript
* const result = await v2.messageService.voiceToText(params)
* ```
*/
voiceToText(params: V2NIMVoiceToTextParams): Promise<string>;
/**
* @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<V2NIMTextTranslationResult>;
/**
* @brief 取消文件消息附件上传
* @param message 要取消上传的文件消息
* @returns void
* @example
* ```javascript
* await v2.messageService.cancelMessageAttachmentUpload(message)
* ```
*/
cancelMessageAttachmentUpload(message: V2NIMMessage): Promise<void>;
/**
* @brief 搜索云端消息
* @param params 消息检索参数
* @returns Array<V2NIMMessage>
* @example
* ```javascript
* const result = await v2.messageService.searchCloudMessages(params)
* ```
*/
searchCloudMessages(params: V2NIMMessageSearchParams): Promise<Array<V2NIMMessage>>;
/**
* @brief 搜索云端消息,支持多个关键字、消息子类型查询
* @param params 消息检索参数
* @returns Promise<V2NIMMessageSearchResult>
* @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<V2NIMMessageSearchResult>;
/**
* @brief 搜索本地消息
* @param params 消息检索参数
* @returns V2NIMMessageSearchResult
* @example
* ```javascript
* const result = await v2.messageService.searchLocalMessages({
* keywordList: ['keyword1', 'keyword2'],
* })
* ```
*/
searchLocalMessages(params: V2NIMMessageSearchExParams): Promise<V2NIMMessageSearchResult>;
/**
* @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<void>;
/**
* @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<void>;
/**
* @brief 清除漫游消息
* @param conversationIds 会话 ID 列表
* @returns void
* @since v10.9.30
* @example
* ```javascript
* await v2.messageService.clearRoamingMessage(['conversationId1', 'conversationId2'])
* ```
*/
clearRoamingMessage(conversationIds: Array<string>): Promise<void>;
/**
* @brief 安装消息过滤器,全局唯一,只能注册一个。一旦注册该过滤器,所有消息均经过该过滤器,返回 true 表示将消息过滤,返回 false 表示不过滤消息
* @param filter 消息过滤器
* @returns void
* @since v10.8.30
* @example
* ```javascript
* v2.messageService.setMessageFilter({
* shouldIgnore: (message) => {
* // 过滤消息
* }
* })
*/
setMessageFilter(filter: V2NIMMessageFilter): void;
}