node-nim
Version:
NetEase IM nodejs wrapper based on NetEase IM C++ SDK
254 lines (253 loc) • 9.43 kB
TypeScript
import EventEmitter from 'eventemitter3';
import { V2NIMChatroomMessage, V2NIMChatroomMember, V2NIMChatroomInfo, V2NIMSendChatroomMessageParams, V2NIMSendChatroomMessageResult, V2NIMChatroomMemberQueryOption, V2NIMChatroomMemberListResult, V2NIMChatroomMessageListOption, V2NIMChatroomMemberRoleUpdateParams, V2NIMChatroomUpdateParams, V2NIMAntispamConfig, V2NIMChatroomSelfMemberUpdateParams, V2NIMChatroomTagTempChatBannedParams, V2NIMChatroomTagMemberOption, V2NIMChatroomLocationConfig, V2NIMChatroomTagsUpdateParams, V2NIMChatroomTagMessageOption } from 'ts/v2_def/v2_nim_struct_def';
import { V2NIMChatroomMemberRole } from 'ts/v2_def/v2_nim_enum_def';
export declare interface V2NIMChatroomListener {
/** 收到新消息 */
receiveMessages: [V2NIMChatroomMessage[]];
/** 聊天室成员进入 */
chatroomMemberEnter: [V2NIMChatroomMember];
/** 聊天室成员退出 */
chatroomMemberExit: [string];
/** 聊天室成员角色变更 */
chatroomMemberRoleUpdated: [V2NIMChatroomMemberRole, V2NIMChatroomMember];
/** 聊天室成员信息更新 */
chatroomMemberInfoUpdated: [V2NIMChatroomMember];
/** 自己的禁言状态变更 */
selfChatBannedUpdated: [boolean];
/** 自己的临时禁言状态变更 */
selfTempChatBannedUpdated: [boolean, number];
/** 聊天室信息更新 */
chatroomInfoUpdated: [V2NIMChatroomInfo];
/** 聊天室禁言状态更新 */
chatroomChatBannedUpdated: [boolean];
/** 消息撤回回调 */
messageRevokedNotification: [string, number];
/** 角色标签更新 */
chatroomTagsUpdated: [string[]];
/** 本端发送消息状态回调 */
sendMessage: [V2NIMChatroomMessage];
}
/** @brief 聊天室服务 */
export declare class V2NIMChatroomService extends EventEmitter<V2NIMChatroomListener> {
instance: any;
constructor(instanceId: number);
/**
* @brief 发送消息
* @param message 需要发送的消息体
* @param params 发送消息相关配置参数
* @returns void
* @example
* ```javascript
* const message = V2NIMChatroomMessageCreator.createTextMessage('Hello NTES IM')
* await chatroomService.sendMessage(message, {})
* ```
*/
sendMessage(message: V2NIMChatroomMessage, params: V2NIMSendChatroomMessageParams): Promise<V2NIMSendChatroomMessageResult>;
/**
* @brief 取消上传消息附件
* @param message 要取消上传的文件消息
* @returns void
* @example
* ```javascript
* await chatroomService.cancelMessageAttachmentUpload(message)
* ```
*/
cancelMessageAttachmentUpload(message: V2NIMChatroomMessage): Promise<void>;
/**
* @brief 查询聊天室成员列表
* @param queryOption 查询选项
* @returns V2NIMChatroomMemberListResult
* @example
* ```javascript
* const result = await chatroomService.getMemberListByOption({
* limit: 10
* })
* console.log(result)
* ```
*/
getMemberListByOption(queryOption: V2NIMChatroomMemberQueryOption): Promise<V2NIMChatroomMemberListResult>;
/**
* @brief 查询聊天室消息列表
* @param option 查询选项
* @returns Array<V2NIMChatroomMessage>
* @example
* ```javascript
* const result = await chatroomService.getMessageList({
* limit: 10
* })
* console.log(result)
* ```
*/
getMessageList(option: V2NIMChatroomMessageListOption): Promise<Array<V2NIMChatroomMessage>>;
/**
* @brief 更新聊天室成员角色
* @param accountId 聊天室成员 id
* @param upadateParams 更新参数
* @returns void
* @example
* ```javascript
* await chatroomService.updateMemberRole('accountId', {
* memberRole: 2
* })
* ```
*/
updateMemberRole(accountId: string, upadateParams: V2NIMChatroomMemberRoleUpdateParams): Promise<void>;
/**
* @brief 设置聊天室成员黑名单状态
* @param accountId 聊天室成员 id
* @param blocked 黑名单状态
* @param notificationExtension 通知扩展字段
* @returns void
* @example
* ```javascript
* await chatroomService.setMemberBlockedStatus('accountId', true, 'your notification extension')
* ```
*/
setMemberBlockedStatus(accountId: string, blocked: boolean, notificationExtension: string): Promise<void>;
/**
* @brief 设置聊天室成员禁言状态
* @param accountId 聊天室成员 id
* @param chatBanned 禁言状态
* @param notificationExtension 通知扩展字段
* @returns void
* @example
* ```javascript
* await chatroomService.setMemberChatBannedStatus('accountId', true, 'your notification extension')
* ```
*/
setMemberChatBannedStatus(accountId: string, chatBanned: boolean, notificationExtension: string): Promise<void>;
/**
* @brief 设置聊天室成员临时禁言状态
* @param accountId 聊天室成员 id
* @param tempChatBannedDuration 临时禁言时长, 单位秒, 0 表示取消临时禁言
* @param notificationEnabled 是否发送通知
* @param notificationExtension 通知扩展字段
* @returns void
* @example
* ```javascript
* await chatroomService.setMemberTempChatBanned('accountId', 10, true, 'your notification extension')
* ```
*/
setMemberTempChatBanned(accountId: string, tempChatBannedDuration: number, notificationEnabled: boolean, notificationExtension: string): Promise<void>;
/**
* @brief 更新聊天室信息
* @param updateParams 更新参数
* @param antispamConfig 反垃圾配置
* @returns void
* @example
* ```javascript
* await chatroomService.updateChatroomInfo({
* roomName: 'new room name'
* }, {})
* ```
*/
updateChatroomInfo(updateParams: V2NIMChatroomUpdateParams, antispamConfig: V2NIMAntispamConfig): Promise<void>;
/**
* @brief 更新自己在聊天室的成员信息
* @param updateParams 更新参数
* @param antispamConfig 反垃圾配置
* @returns void
* @example
* ```javascript
* await chatroomService.updateSelfMemberInfo({
* roomNick: 'new room nickname'
* }, {})
* ```
*/
updateSelfMemberInfo(updateParams: V2NIMChatroomSelfMemberUpdateParams, antispamConfig: V2NIMAntispamConfig): Promise<void>;
/**
* @param accountIds 账号列表
* @returns Array<V2NIMChatroomMember>
* @example
* ```javascript
* const result = await chatroomService.getMemberByIds(['accountId1', 'accountId2'])
* console.log(result)
* ```
*/
getMemberByIds(accountIds: Array<string>): Promise<Array<V2NIMChatroomMember>>;
/**
* @brief 踢出聊天室成员
* @param accountId 聊天室成员 id
* @param notificationExtension 通知扩展字段
* @returns void
* @example
* ```javascript
* await chatroomService.kickMember('accountId', 'your notification extension')
* ```
*/
kickMember(accountId: string, notificationExtension: string): Promise<void>;
/**
* @brief 按聊天室标签临时禁言
* @param params 设置标签禁言的参数
* @returns void
* @example
* ```javascript
* await chatroomService.setTempChatBannedByTag({
* targetTag: 'tag',
* duration: 10
* })
* ```
*/
setTempChatBannedByTag(params: V2NIMChatroomTagTempChatBannedParams): Promise<void>;
/**
* @brief 根据标签查询成员列表
* @param option 查询成员列表的参数
* @returns V2NIMChatroomMemberListResult
* @example
* ```javascript
* const result = await chatroomService.getMemberListByTag({
* tag: 'tag',
* limit: 10
* })
* ```
*/
getMemberListByTag(option: V2NIMChatroomTagMemberOption): Promise<V2NIMChatroomMemberListResult>;
/**
* @brief 查询某个标签下的成员人数
* @param tag 标签
* @returns number
* @example
* ```javascript
* const count = await chatroomService.getMemberCountByTag('tag')
* ```
*/
getMemberCountByTag(tag: string): Promise<number>;
/**
* @brief 更新坐标信息
* @param locationConfig 坐标信息
* @returns void
* @example
* ```javascript
* await chatroomService.updateChatroomLocationInfo({
* latitude: 30.5,
* longitude: 120.5
* })
* ```
*/
updateChatroomLocationInfo(locationConfig: V2NIMChatroomLocationConfig): Promise<void>;
/**
* @brief 更新聊天室 tag 信息
* @param updateParams tag 更新的参数
* @returns void
* @example
* ```javascript
* await chatroomService.updateChatroomTags({
* tags: ['tag1', 'tag2']
* })
* ```
*/
updateChatroomTags(updateParams: V2NIMChatroomTagsUpdateParams): Promise<void>;
/**
* @brief 根据标签查询消息列表
* @param messageOption 查询参数
* @returns Array<V2NIMChatroomMessage>
* @example
* ```javascript
* const result = await chatroomService.getMessageListByTag({
* tags: ['tag1', 'tag2'],
* limit: 10
* })
* ```
*/
getMessageListByTag(messageOption: V2NIMChatroomTagMessageOption): Promise<Array<V2NIMChatroomMessage>>;
}