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 { 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; /** * @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 所有群消息免打扰模式 * @since v10.9.0 * @example * ```javascript * const muteModeList = await v2.settingService.getAllTeamMessageMuteMode(teamType) * ``` */ getAllTeamMessageMuteMode(teamType: V2NIMTeamType): Promise>; /** * @brief 设置点对点消息免打扰模式 * @param accountId 账号 * @param muteMode 免打扰模式 * @returns void * @example * ```javascript * await v2.settingService.setP2PMessageMuteMode(accountId, muteMode) * ``` */ setP2PMessageMuteMode(accountId: string, muteMode: V2NIMP2PMessageMuteMode): Promise; /** * @brief 获取点对点消息免打扰模式 * @param accountId 账号 * @returns V2NIMP2PMessageMuteMode 点对点消息免打扰模式 * @example * ```javascript * const muteMode = v2.settingService.getP2PMessageMuteMode(accountId) * ``` */ getP2PMessageMuteMode(accountId: string): V2NIMP2PMessageMuteMode; /** * @brief 获取点对点消息免打扰列表 * @returns Array 点对点消息免打扰列表 * @example * ```javascript * const muteList = await v2.settingService.getP2PMessageMuteList() * ``` */ getP2PMessageMuteList(): Promise>; /** * @brief 设置当桌面端在线时, 移动端是否需要推送 * @param need 是否需要推送 * @returns void * @example * ```javascript * await v2.settingService.setPushMobileOnDesktopOnline(need) * ``` */ setPushMobileOnDesktopOnline(need: boolean): Promise; /** * @brief 获取当桌面端在线时, 移动端是否需要推送 * @returns Promise 是否需要推送 * @since v10.9.0 * @example * ```javascript * const need = await v2.settingService.getPushMobileOnDesktopOnline() * ``` */ getPushMobileOnDesktopOnline(): Promise; /** * @brief 设置免打扰与详情显示 * @param config 免打扰配置 * @returns void * @example * ```javascript * await v2.settingService.setDndConfig(config) * ``` */ setDndConfig(config: V2NIMDndConfig): Promise; /** * @brief 读取免打扰与详情显示接口 * @returns V2NIMDndConfig 免打扰配置 * @example * ```javascript * const config = v2.settingService.getDndConfig() * ``` */ getDndConfig(): V2NIMDndConfig; }