node-nim
Version:
NetEase IM nodejs wrapper based on NetEase IM C++ SDK
130 lines (129 loc) • 4.68 kB
TypeScript
import { V2NIMDndConfig } from '../v2_def/v2_nim_struct_def';
import { EventEmitter } from 'eventemitter3';
import { V2NIMP2PMessageMuteMode, V2NIMTeamMessageMuteMode, V2NIMTeamType } from '../v2_def/v2_nim_enum_def';
export declare interface V2NIMSettingListener {
/** 群组消息免打扰回调 */
teamMessageMuteModeChanged: [string, V2NIMTeamType, V2NIMTeamMessageMuteMode];
/** 点对点消息免打扰回调 */
p2pMessageMuteModeChanged: [string, V2NIMP2PMessageMuteMode];
/** 当桌面端在线时,移动端是否需要推送配置 @since v10.9.0 */
pushMobileOnDesktopOnline: [boolean];
}
/** @brief 设置服务 */
export declare class V2NIMSettingService extends EventEmitter<V2NIMSettingListener> {
instance: any;
constructor();
/**
* @brief 获取会话消息免打扰状态
* @param conversationId 会话 ID
* @returns boolean 会话消息免打扰状态
* @example
* ```javascript
* const status = v2.settingService.getConversationMuteStatus(conversationId)
* ```
*/
getConversationMuteStatus(conversationId: string): boolean;
/**
* @brief 设置群消息免打扰模式
* @param teamId 群组 ID
* @param teamType 群组类型
* @param muteMode 免打扰模式
* @returns void
* @example
* ```javascript
* await v2.settingService.setTeamMessageMuteMode(teamId, teamType, muteMode)
* ```
*/
setTeamMessageMuteMode(teamId: string, teamType: V2NIMTeamType, muteMode: V2NIMTeamMessageMuteMode): Promise<void>;
/**
* @brief 获取群消息免打扰模式
* @param teamId 群组 ID
* @param teamType 群组类型
* @returns V2NIMTeamMessageMuteMode 群消息免打扰模式
* @example
* ```javascript
* const muteMode = v2.settingService.getTeamMessageMuteMode(teamId, teamType)
* ```
*/
getTeamMessageMuteMode(teamId: string, teamType: V2NIMTeamType): V2NIMTeamMessageMuteMode;
/**
* @brief 获取我所在的所有群消息免打扰模式
* @param teamType 群组类型
* @returns Map<string, V2NIMTeamMessageMuteMode> 所有群消息免打扰模式
* @since v10.9.0
* @example
* ```javascript
* const muteModeList = await v2.settingService.getAllTeamMessageMuteMode(teamType)
* ```
*/
getAllTeamMessageMuteMode(teamType: V2NIMTeamType): Promise<Map<string, V2NIMTeamMessageMuteMode>>;
/**
* @brief 设置点对点消息免打扰模式
* @param accountId 账号
* @param muteMode 免打扰模式
* @returns void
* @example
* ```javascript
* await v2.settingService.setP2PMessageMuteMode(accountId, muteMode)
* ```
*/
setP2PMessageMuteMode(accountId: string, muteMode: V2NIMP2PMessageMuteMode): Promise<void>;
/**
* @brief 获取点对点消息免打扰模式
* @param accountId 账号
* @returns V2NIMP2PMessageMuteMode 点对点消息免打扰模式
* @example
* ```javascript
* const muteMode = v2.settingService.getP2PMessageMuteMode(accountId)
* ```
*/
getP2PMessageMuteMode(accountId: string): V2NIMP2PMessageMuteMode;
/**
* @brief 获取点对点消息免打扰列表
* @returns Array<string> 点对点消息免打扰列表
* @example
* ```javascript
* const muteList = await v2.settingService.getP2PMessageMuteList()
* ```
*/
getP2PMessageMuteList(): Promise<Array<string>>;
/**
* @brief 设置当桌面端在线时, 移动端是否需要推送
* @param need 是否需要推送
* @returns void
* @example
* ```javascript
* await v2.settingService.setPushMobileOnDesktopOnline(need)
* ```
*/
setPushMobileOnDesktopOnline(need: boolean): Promise<void>;
/**
* @brief 获取当桌面端在线时, 移动端是否需要推送
* @returns Promise<boolean> 是否需要推送
* @since v10.9.0
* @example
* ```javascript
* const need = await v2.settingService.getPushMobileOnDesktopOnline()
* ```
*/
getPushMobileOnDesktopOnline(): Promise<boolean>;
/**
* @brief 设置免打扰与详情显示
* @param config 免打扰配置
* @returns void
* @example
* ```javascript
* await v2.settingService.setDndConfig(config)
* ```
*/
setDndConfig(config: V2NIMDndConfig): Promise<void>;
/**
* @brief 读取免打扰与详情显示接口
* @returns V2NIMDndConfig 免打扰配置
* @example
* ```javascript
* const config = v2.settingService.getDndConfig()
* ```
*/
getDndConfig(): V2NIMDndConfig;
}