UNPKG

nim-web-sdk-ng

Version:

Yunxin IM SDK next generation

1,272 lines (1,271 loc) 39.2 kB
import { V2NIMQueryDirection } from './V2NIMMessageService'; import type { NIMEBaseServiceClass, V2NIMAntispamConfig, V2NIMError } from './types'; /** * v2 群组模块 * * 注: 使用 dist/esm 产物时时,需要动态引入 V2NIMTeamService 后使用 * * @example * ``` * import { NIM, V2NIMTeamService } from 'nim-web-sdk-ng/dist/esm/nim' * NIM.registerService(V2NIMTeamService, 'V2NIMTeamService') * ``` */ export declare class V2NIMTeamService extends NIMEBaseServiceClass<V2NIMTeamListener> { /** * 创建一个群组 * * 注: 操作成功后, 触发事件的规则如下: * - 操作者端(群主), SDK 抛出: {@link V2NIMTeamListener.onTeamCreated | V2NIMTeamListener.onTeamCreated} * - agreeMode 需要被邀请者同意 * - 被操作者端, SDK会抛出: {@link V2NIMTeamListener.onReceiveTeamJoinActionInfo | V2NIMTeamListener.onReceiveTeamJoinActionInfo} * - agreeMode 不需被邀请者同意 * - 被操作者端, SDK会抛出: {@link V2NIMTeamListener.onTeamJoined | V2NIMTeamListener.onTeamJoined} * - 其他成员端, SDK会抛出: {@link V2NIMTeamListener.onTeamMemberJoined | V2NIMTeamListener.onTeamMemberJoined} * * @param createTeamParams 创建群组参数 * @param invitorAccountIds 群组创建时,同时邀请加入群的成员列表 * @param postscript 群组创建时,邀请入群的附言 * @param antispamConfig 反垃圾参数. 如果开启了安全通,默认采用安全通,该配置不需要配置. * 如果有审核需求,且直接对接易盾,则需要传入该配置 * * @example * ```ts * await nim.V2NIMTeamService.createTeam({ * "name": "群名", * "teamType": 1, * "memberLimit": 200, * }) * ``` */ createTeam(createTeamParams: V2NIMCreateTeamParams, inviteeAccountIds?: string[], postscript?: string, antispamConfig?: V2NIMAntispamConfig): Promise<V2NIMCreateTeamResult>; /** * 修改群组信息 * * 注: 操作成功后, 触发事件的规则如下: * - 全员用户端,SDK会抛出: {@link V2NIMTeamListener.onTeamInfoUpdated | V2NIMTeamListener.onTeamInfoUpdated} * * @param teamId 群组id * @param teamType 群组类型 * @param updateTeamInfoParams 更新群组信息参数 * @param antispamConfig 反垃圾参数. 如果开启了安全通,默认采用安全通,该配置不需要配置. * 如果有审核需求,且直接对接易盾,则需要传入该配置 * @example * ```ts * await nim.V2NIMTeamService.updateTeamInfo( * "123456", * 1, * { * "name": "群名1", * "memberLimit": 200, * "joinMode": 0, * "agreeMode": 0, * "inviteMode": 0, * "updateInfoMode": 0, * "updateExtensionMode": 0, * "chatBannedMode": 0 * } * ) * ``` */ updateTeamInfo(teamId: string, teamType: V2NIMTeamType, updateTeamInfoParams: V2NIMUpdateTeamInfoParams, antispamConfig?: V2NIMAntispamConfig): Promise<void>; /** * 退出群组 * * 注: 操作成功后, 触发事件的规则如下: * - 操作者(自己本端),SDK会抛出: {@link V2NIMTeamListener.onTeamLeft | V2NIMTeamListener.onTeamLeft} * - 群内其它用户端, SDK会抛出: {@link V2NIMTeamListener.onTeamMemberLeft | V2NIMTeamListener.onTeamMemberLeft} * * @param teamId 群组id * @param teamType 群组类型 * @example * ```ts * await nim.V2NIMTeamService.leaveTeam("123456", 1) * ``` */ leaveTeam(teamId: string, teamType: V2NIMTeamType): Promise<void>; /** * 获取群组信息 * * @param teamId 群组id * @param teamType 群组类型 * @example * ```ts * await nim.V2NIMTeamService.getTeamInfo("123456", 1) * ``` */ getTeamInfo(teamId: string, teamType: V2NIMTeamType): Promise<V2NIMTeam>; /** * 获取当前已经加入的群组列表 * * 注: 群组有效且自己在群中 * * @param teamTypes 群类型列表. 若不传入这个字段, 代表这个过滤条件不生效, 则查询所有群类型 * @example * ```ts * await nim.V2NIMTeamService.getJoinedTeamList([1]) * ``` */ getJoinedTeamList(teamTypes?: V2NIMTeamType[]): Promise<V2NIMTeam[]>; /** * 获取当前已经加入的群组数量 * * 注: 群组有效且自己在群中 * * @param teamTypes 群类型列表. 若不传入这个字段, 代表这个过滤条件不生效, 则查询所有群类型 * @example * ```ts * nim.V2NIMTeamService.getJoinedTeamCount([1]) * ``` */ getJoinedTeamCount(teamTypes?: V2NIMTeamType[]): number; /** * 获取自己所有加入的群的群成员信息 * * @param teamTypes 群类型列表. 若不传入这个字段, 代表这个过滤条件不生效, 则查询所有群类型 * @example * ```ts * await nim.V2NIMTeamService.getJoinedTeamMembers([1]) * ``` */ getJoinedTeamMembers(teamTypes?: V2NIMTeamType[]): Promise<V2NIMTeamMember[]>; /** * 根据群组ID获取群组信息 * * 每次最多100个群组ID. 先查本地数据,本地缺失再查询云端 * * @param teamIds 群组ID列表 * @param teamType 群组类型 * @example * ```ts * await nim.V2NIMTeamService.getTeamInfoByIds(["123456"], 1) * ``` */ getTeamInfoByIds(teamIds: string[], teamType: V2NIMTeamType): Promise<V2NIMTeam[]>; /** * 解散群组 * * 注: 操作成功后, 触发事件的规则如下: * - 全员, SDK会抛出: {@link V2NIMTeamListener.onTeamDismissed | V2NIMTeamListener.onTeamDismissed} * * @param teamId 群组id * @param teamType 群组类型 * ```ts * await nim.V2NIMTeamService.dismissTeam("123456", 1) * ``` */ dismissTeam(teamId: string, teamType: V2NIMTeamType): Promise<void>; /** * 邀请成员加入群 * * 注: 操作成功后, 触发事件的规则如下: * - agreeMode 需要被邀请者同意 * - 被操作者端, SDK会抛出: {@link V2NIMTeamListener.onReceiveTeamJoinActionInfo | V2NIMTeamListener.onReceiveTeamJoinActionInfo} * - agreeMode 不需要被邀请者同意 * - 被操作者端, SDK会抛出: {@link V2NIMTeamListener.onTeamJoined | V2NIMTeamListener.onTeamJoined} * - 其他成员端, SDK会抛出: {@link V2NIMTeamListener.onTeamMemberJoined | V2NIMTeamListener.onTeamMemberJoined} * * @param teamId 群组id * @param teamType 群组类型 * @param inviteeAccountIds 邀请加入群的成员账号列表 * @param postscript 邀请入群的附言 * @returns 邀请失败的账号列表 * @example * ```ts * await nim.V2NIMTeamService.inviteMember("123456", 1, ["accountId1"]) * ``` */ inviteMember(teamId: string, teamType: V2NIMTeamType, inviteeAccountIds: string[], postscript?: string): Promise<string[]>; /** * 新的邀请成员加入群 * * 注: 操作成功后, 触发事件的规则如下: * - agreeMode 需要被邀请者同意 * - 被操作者端, SDK会抛出: {@link V2NIMTeamListener.onReceiveTeamJoinActionInfo | V2NIMTeamListener.onReceiveTeamJoinActionInfo} * - agreeMode 不需要被邀请者同意 * - 被操作者端, SDK会抛出: {@link V2NIMTeamListener.onTeamJoined | V2NIMTeamListener.onTeamJoined} * - 其他成员端, SDK会抛出: {@link V2NIMTeamListener.onTeamMemberJoined | V2NIMTeamListener.onTeamMemberJoined} * * @param teamId 群组id * @param teamType 群组类型 * @param inviteeParams 邀请入群的信息 * @returns 邀请失败的账号列表 * @example * ```ts * await nim.V2NIMTeamService.inviteMemberEx("123456", 1, { inviteeAccountIds: ["accountId1"] }) * ``` */ inviteMemberEx(teamId: string, teamType: V2NIMTeamType, inviteeParams: V2NIMTeamInviteParams): Promise<string[]>; /** * 接受邀请入群 * * 注: 操作成功后, 触发事件的规则如下: * - 操作者(既接受邀请用户)端, SDK会抛出: {@link V2NIMTeamListener.onTeamJoined | V2NIMTeamListener.onTeamJoined} * - 其他成员端, SDK会抛出: {@link V2NIMTeamListener.onTeamMemberJoined | V2NIMTeamListener.onTeamMemberJoined} * * @param invitationInfo 邀请入群的信息 * @example * ```ts * await nim.V2NIMTeamService.acceptInvitation( * { * "teamId": "123456", * "teamType": 1, * "operatorAccountId": "accountId1", * "actionType": 2 * } * ) * ``` */ acceptInvitation(invitationInfo: V2NIMTeamJoinActionInfo): Promise<V2NIMTeam>; /** * 拒绝邀请入群 * * 注: 操作成功后, 触发事件的规则如下: * - 群主或管理员端, SDK会抛出: {@link V2NIMTeamListener.onReceiveTeamJoinActionInfo | V2NIMTeamListener.onReceiveTeamJoinActionInfo}‘ * * @param invitationInfo 邀请入群的信息 * @example * ```ts * await nim.V2NIMTeamService.rejectInvitation( * { * "teamId": "123456", * "teamType": 1, * "operatorAccountId": "accountId1", * "actionType": 2 * }, * "test postscript" * ) * ``` */ rejectInvitation(invitationInfo: V2NIMTeamJoinActionInfo, postscript?: string): Promise<void>; /** * 踢出群组成员 * * 注1: 只有群主和群管理员有权限操作改接口 * * 注2: 操作成功后, 触发事件的规则如下: * - 被操作者(既被踢用户),SDK会抛出: {@link V2NIMTeamListener.onTeamLeft | V2NIMTeamListener.onTeamLeft} * - 其他成员端,SDK会抛出: {@link V2NIMTeamListener.onTeamMemberKicked | V2NIMTeamListener.onTeamMemberKicked} * * @param teamId 群组id * @param teamType 群组类型 * @param memberAccountIds 踢出群组的成员账号列表 * @example * ```ts * await nim.V2NIMTeamService.kickMember("123456", 1, ["accountId1"]) * ``` */ kickMember(teamId: string, teamType: V2NIMTeamType, memberAccountIds: string[]): Promise<void>; /** * (用户)申请加入群组 * * 注: 操作成功后, 触发事件的规则如下: * - joinMode 自由加入 * - 操作者端,SDK 会抛出: {@link V2NIMTeamListener.onTeamJoined | V2NIMTeamListener.onTeamJoined} * - 其他成员端, SDK 会抛出: {@link V2NIMTeamListener.onTeamMemberJoined | V2NIMTeamListener.onTeamMemberJoined} * - joinMode 群主管理员同意 * - 群主或管理员端,SDK 会抛出 {@link V2NIMTeamListener.onReceiveTeamJoinActionInfo | V2NIMTeamListener.onReceiveTeamJoinActionInfo} * * @param teamId 群组id * @param teamType 群组类型 * @param postscript 申请附言 * @returns 对应的群信息 * @example * ```ts * await nim.V2NIMTeamService.applyJoinTeam("123456", 1, "test postscript") * ``` */ applyJoinTeam(teamId: string, teamType: V2NIMTeamType, postscript?: string): Promise<V2NIMTeam>; /** * (管理员)接受(用户的)入群申请 * * 注: 操作成功后, 触发事件的规则如下: * - 被操作者(既被同意用户),SDK会抛出: {@link V2NIMTeamListener.onTeamJoined | V2NIMTeamListener.onTeamJoined} * - 其他成员, SDK会抛出: {@link V2NIMTeamListener.onTeamMemberJoined | V2NIMTeamListener.onTeamMemberJoined} * * @param applicationInfo 该申请的相关信息 * @example * ```ts * await nim.V2NIMTeamService.acceptJoinApplication( * { * "teamId": "123456", * "teamType": 1, * "operatorAccountId": "accountId1", * "actionType": 0 * } * ) * ``` */ acceptJoinApplication(applicationInfo: V2NIMTeamJoinActionInfo): Promise<void>; /** * (管理员)拒绝(用户的)入群申请 * * 注: 操作成功后, 触发事件的规则如下: * - 被操作用户(既被拒绝用户), SDK会抛出: {@link V2NIMTeamListener.onReceiveTeamJoinActionInfo | V2NIMTeamListener.onReceiveTeamJoinActionInfo} * * @param applicationInfo 该申请的相关信息 * @example * ```ts * await nim.V2NIMTeamService.rejectJoinApplication( * { * "teamId": "123456", * "teamType": 1, * "operatorAccountId": "accountId1", * "actionType": 0 * }, * "test postscript" * ) * ``` */ rejectJoinApplication(applicationInfo: V2NIMTeamJoinActionInfo, postscript?: string): Promise<void>; /** * 设置成员角色 * * 注1: 本操作只有群主可操作, 且只能在普通成员与管理员直接角色切换, 如果成员设置角色与当前角色一致,默认请求成功 * * 注2: 操作成功后, 触发事件的规则如下: * - 所有成员,SDK会抛出: @link V2NIMTeamListener.onTeamMemberInfoUpdated | V2NIMTeamListener.onTeamMemberInfoUpdated} * * @param teamId 群组id * @param teamType 群组类型 * @param memberAccountIds 待操作的群组的成员账号列表 * @param memberRole 新的角色类型 * @example * ```ts * await nim.V2NIMTeamService.updateTeamMemberRole("123456", 1, ["accountId1"], 0) * ``` */ updateTeamMemberRole(teamId: string, teamType: V2NIMTeamType, memberAccountIds: string[], memberRole: V2NIMTeamMemberRole): Promise<void>; /** * 移交群主 * * 注1: 本操作只有群主可操作 * * 注2: 操作成功后, 触发事件的规则如下: * - 所有成员,SDK会抛出: {@link V2NIMTeamListener.onTeamInfoUpdated | V2NIMTeamListener.onTeamInfoUpdated}‘ * - 若入参 leave 为 true: * - 操作者, SDK会抛出:onTeamLeft * - 其它成员, SDK会抛出:onTeamMemberLeft * * @param teamId 群组id * @param teamType 群组类型 * @param accountId 新群主的账号 ID * @param leave 转让群主后, 操作者是否同时退出该群. 默认为 false * @returns 该操作的时间戳 * @example * ```ts * await nim.V2NIMTeamService.transferTeamOwner("123456", 1, "accountId1", true) * ``` */ transferTeamOwner(teamId: string, teamType: V2NIMTeamType, accountId: string, leave?: boolean): Promise<void>; /** * 修改自己的群成员信息 * * 注: 操作成功后, 触发事件的规则如下: * - 所有成员, SDK会抛出: {@link V2NIMTeamListener.onTeamMemberInfoUpdated | V2NIMTeamListener.onTeamMemberInfoUpdated} * * @param teamId 群组id * @param teamType 群组类型 * @param memberInfoParams 被修改的字段 * @example * ```ts * await nim.V2NIMTeamService.updateSelfTeamMemberInfo("123456", 1, { * "teamNick": "test nick" * }) * ``` */ updateSelfTeamMemberInfo(teamId: string, teamType: V2NIMTeamType, memberInfoParams: V2NIMUpdateSelfMemberInfoParams): Promise<void>; /** * 修改群成员昵称 * * 注: 只有群主和管理员拥有此权限可操作 * * 注: 操作成功后, 触发事件的规则如下: * - 所有成员,SDK会抛出: {@link V2NIMTeamListener.onTeamMemberInfoUpdated | V2NIMTeamListener.onTeamMemberInfoUpdated} * * @param teamId 群组id * @param teamType 群组类型 * @param accountId 新群主的账号 ID * @param nick 昵称 * @example * ```ts * await nim.V2NIMTeamService.updateTeamMemberNick("123456", 1, "accountId1", "test nick") * ``` */ updateTeamMemberNick(teamId: string, teamType: V2NIMTeamType, accountId: string, nick: string): Promise<void>; /** * 设置群组禁言模式 * * 注: 操作成功后, 触发事件的规则如下: * - 所有成员,SDK会抛出: {@link V2NIMTeamListener.onTeamInfoUpdated | V2NIMTeamListener.onTeamInfoUpdated} * * @param teamId 群组id * @param teamType 群组类型 * @param chatBannedMode 禁言模式 * @example * ```ts * await nim.V2NIMTeamService.setTeamChatBannedMode("123456", 1, 1) * ``` */ setTeamChatBannedMode(teamId: string, teamType: V2NIMTeamType, chatBannedMode: V2NIMTeamChatBannedMode): Promise<void>; /** * 设置群组成员聊天禁言状态 * * 注: 操作成功后, 触发事件的规则如下: * - 所有成员, SDK会抛出: {@link V2NIMTeamListener.onTeamMemberInfoUpdated | V2NIMTeamListener.onTeamMemberInfoUpdated} * * @param teamId 群组id * @param teamType 群组类型 * @param accountId 被修改成员的账号 * @param chatBanned 群组中聊天是否被禁言 * @example * ```ts * // Ban someone * await nim.V2NIMTeamService.setTeamMemberChatBannedStatus("123456", 1, "accountId1", true) * ``` */ setTeamMemberChatBannedStatus(teamId: string, teamType: V2NIMTeamType, accountId: string, chatBanned: boolean): Promise<void>; /** * 获取群成员列表 * * @param teamId 群组id * @param teamType 群组类型 * @param memberRoles 成员角色 * @returns 查询结果 * @example * ```ts * await nim.V2NIMTeamService.getTeamMemberList( * "123456", * 1, * { * "roleQueryType": 0, * "onlyChatBanned": false, * "direction": 0, * "limit": 100, * "nextToken": "" * } * ) * ``` */ getTeamMemberList(teamId: string, teamType: V2NIMTeamType, queryOption: V2NIMTeamMemberQueryOption): Promise<V2NIMTeamMemberListResult>; /** * 根据账号 ID 列表获取群组成员列表 * * @param teamId 群组id * @param teamType 群组类型 * @param accountIds 成员的账号 ID 列表. 一批传入最多支持 100 个. * @returns 成员列表 * @example * ```ts * await nim.V2NIMTeamService.getTeamMemberListByIds("123456", 1, ["accountId1"]) * ``` */ getTeamMemberListByIds(teamId: string, teamType: V2NIMTeamType, accountIds: string[]): Promise<V2NIMTeamMember[]>; /** * 根据账号 ID 列表获取群组成员邀请人 * * @param teamId 群组id * @param teamType 群组类型 * @param accountIds 成员的账号 ID 列表 * @returns 邀请人信息列表, key: accountId, value: invitorAccountId * @example * ```ts * await nim.V2NIMTeamService.getTeamMemberInvitor("123456", 1, ["accountId1"]) * ``` */ getTeamMemberInvitor(teamId: string, teamType: V2NIMTeamType, accountIds: string[]): Promise<{ [accountId: string]: string; }>; /** * 获取群加入相关信息 * * @param option 查询参数 * @example * ```ts * await nim.V2NIMTeamService.getTeamJoinActionInfoList( * { * "offset": 0, * "limit": 50 * } * ) * ``` */ getTeamJoinActionInfoList(option: V2NIMTeamJoinActionInfoQueryOption): Promise<V2NIMTeamJoinActionInfoResult>; /** * 清空所有群申请 */ clearAllTeamJoinActionInfo(): Promise<void>; /** * 删除群申请 * * 注: 会删除相同群的, 且相同申请者的所有申请记录 * * @param applicationInfo 群申请记录 */ deleteTeamJoinActionInfo(applicationInfo: V2NIMTeamJoinActionInfo): Promise<void>; /** * 根据关键字搜索群信息 * - 混合搜索高级群和超大群,like匹配 * - 只搜索群名称 */ searchTeamByKeyword(keyword: string): Promise<V2NIMTeam[]>; /** * 添加特别关注群成员列表 * * @param teamId 群组id * @param teamType 群组类型 * @param accountIds 特别关注的群成员 accountId 列表 */ addTeamMembersFollow(teamId: string, teamType: V2NIMTeamType, accountIds: Array<string>): Promise<void>; /** * 移除特别关注群成员列表 * * @param teamId 群组id * @param teamType 群组类型 * @param accountIds 特别关注的群成员 accountId 列表 */ removeTeamMembersFollow(teamId: string, teamType: V2NIMTeamType, accountIds: Array<string>): Promise<void>; } export declare type V2NIMTeamMemberListResult = { /** * 是否还有下一页 */ finished: boolean; /** * 下一页查询的偏移量. */ nextToken: string; /** * 成员列表 */ memberList: V2NIMTeamMember[]; }; export declare const enum V2NIMTeamMemberRoleQueryType { /** * 所有成员 */ V2NIM_TEAM_MEMBER_ROLE_QUERY_TYPE_ALL = 0, /** * 普通成员 */ V2NIM_TEAM_MEMBER_ROLE_QUERY_TYPE_NORMAL = 1, /** * 群组管理员(包括群主) */ V2NIM_TEAM_MEMBER_ROLE_QUERY_TYPE_MANAGER = 2 } /** * 群组成员列表 */ export declare type V2NIMTeamMemberQueryOption = { /** * 成员角色列表, 作为过滤条件 */ roleQueryType: V2NIMTeamMemberRoleQueryType; /** * 是否只返回聊天禁言成员列表. 默认值 false */ onlyChatBanned?: boolean; /** * 消息查询方向 * * 默认值 {@link V2NIMQueryDirection.V2NIM_QUERY_DIRECTION_DESC | V2NIMQueryDirection.V2NIM_QUERY_DIRECTION_DESC} */ direction?: V2NIMQueryDirection; /** * 一页数量限制 */ limit?: number; /** * 分页偏移量 * * 注: 第一页允许传空字符串 */ nextToken?: string; }; export declare type V2NIMUpdateSelfMemberInfoParams = { /** * 群昵称 * * 注: 不能为空字符串 "" */ teamNick?: string; /** * 群成员扩展字段 */ serverExtension?: string; }; /** * 修改群组信息参数 */ export declare type V2NIMUpdateTeamInfoParams = { /** * 群组名称 */ name?: string; /** * 群组人数上限. * * 注: 只允许群主和管理员修改这个属性. */ memberLimit?: number; /** * 群组介绍. 上限 255 个字符 */ intro?: string; /** * 群组公告. 上限 5000 个字符 */ announcement?: string; /** * 群组头像 */ avatar?: string; /** * 扩展字段 */ serverExtension?: string; /** * 申请入群模式. 即入群验证方式 * * 注: 只允许群主和管理员修改这个属性. */ joinMode?: V2NIMTeamJoinMode; /** * 被邀请人入群模式. 即被邀请人的同意方式 * * 注: 只允许群主和管理员修改这个属性. */ agreeMode?: V2NIMTeamAgreeMode; /** * 群组邀请模式. 即谁可以邀请他人入群 * * 注: 只允许群主和管理员修改这个属性. */ inviteMode?: V2NIMTeamInviteMode; /** * 群组资料修改模式. 即谁可以修改群组资料 * * 注: 只允许群主和管理员修改这个属性. * * 注2: 此属性允许普通群成员能修改的参数有: name, avatar, announcement, intro */ updateInfoMode?: V2NIMTeamUpdateInfoMode; /** * 群组扩展字段修改模式. 即谁可以修改群组扩展 * * 注: 只允许群主和管理员修改这个属性. * * 注2: 此属性允许普通群成员能修改的参数有: serverExtension */ updateExtensionMode?: V2NIMTeamUpdateExtensionMode; /** * 群组禁言状态 * * 注: 只允许群主和管理员修改这个属性. */ chatBannedMode?: V2NIMTeamChatBannedMode; }; /** * 创建群组返回结果 */ export declare type V2NIMCreateTeamResult = { /** * 创建成功的群组对象 */ team: V2NIMTeam; /** * 创建群组时,邀请进入群组的失败成员列表 */ failedList: string[]; }; export declare type V2NIMCreateTeamParams = { /** * 群组名称 */ name: string; /** * 群组类型 * * 注: 只能选择高级群或者超大群 */ teamType: V2NIMTeamType; /** * 群组人数上限. 默认 200 */ memberLimit?: number; /** * 群组介绍. 上限 255 个字符 */ intro?: string; /** * 群组公告. 上限 5000 个字符 */ announcement?: string; /** * 群组头像 */ avatar?: string; /** * 扩展字段 */ serverExtension?: string; /** * 申请入群模式. 即入群验证方式 * * 默认值: {@link V2NIMTeamJoinMode.V2NIM_TEAM_JOIN_MODE_FREE | V2NIMTeamJoinMode.V2NIM_TEAM_JOIN_MODE_FREE} */ joinMode?: V2NIMTeamJoinMode; /** * 被邀请人入群模式. 即被邀请人的同意方式 * * 默认值: {@link V2NIMTeamAgreeMode.V2NIM_TEAM_AGREE_MODE_AUTH | V2NIMTeamAgreeMode.V2NIM_TEAM_AGREE_MODE_AUTH} */ agreeMode?: V2NIMTeamAgreeMode; /** * 群组邀请模式. 即谁可以邀请他人入群 * * 默认值: {@link V2NIMTeamInviteMode.V2NIM_TEAM_INVITE_MODE_MANAGER | V2NIMTeamInviteMode.V2NIM_TEAM_INVITE_MODE_MANAGER} */ inviteMode?: V2NIMTeamInviteMode; /** * 群组资料修改模式. 即谁可以修改群组资料 * * 默认值: {@link V2NIMTeamUpdateInfoMode.V2NIM_TEAM_UPDATE_INFO_MODE_MANAGER | V2NIMTeamUpdateInfoMode.V2NIM_TEAM_UPDATE_INFO_MODE_MANAGER} */ updateInfoMode?: V2NIMTeamUpdateInfoMode; /** * 群组扩展字段修改模式. 即谁可以修改群组扩展 * * 默认值: {@link V2NIMTeamUpdateExtensionMode.V2NIM_TEAM_UPDATE_EXTENSION_MODE_MANAGER | V2NIMTeamUpdateExtensionMode.V2NIM_TEAM_UPDATE_EXTENSION_MODE_MANAGER} */ updateExtensionMode?: V2NIMTeamUpdateExtensionMode; /** * 群禁言状态 * * 默认值: {@link V2NIMTeamChatBannedMode.V2NIM_TEAM_CHAT_BANNED_MODE_UNBAN | V2NIMTeamChatBannedMode.V2NIM_TEAM_CHAT_BANNED_MODE_UNBAN} */ chatBannedMode?: V2NIMTeamChatBannedMode; }; /** * 群组类型定义 */ export declare const enum V2NIMTeamType { /** * @deprecated * 讨论组 * * 注: 讨论组功能不再维护, 出于兼容目的考虑, 给讨论组保留这个定义。 */ V2NIM_TEAM_TYPE_INVALID = 0, /** * 高级群 */ V2NIM_TEAM_TYPE_ADVANCED = 1, /** * 超大群 */ V2NIM_TEAM_TYPE_SUPER = 2 } /** * (用户)申请入群的模式定义 */ export declare const enum V2NIMTeamJoinMode { /** * 自由加入. 无须验证 */ V2NIM_TEAM_JOIN_MODE_FREE = 0, /** * 需申请. 群主或管理同意后加入 */ V2NIM_TEAM_JOIN_MODE_APPLY = 1, /** * 不接受申请. 私有群, 仅能通过邀请方式入群 */ V2NIM_TEAM_JOIN_MODE_INVITE = 2 } /** * (管理员)邀请入群时是否需要被邀请人(用户)的同意模式定义 */ export declare const enum V2NIMTeamAgreeMode { /** * 需要被邀请方同意 */ V2NIM_TEAM_AGREE_MODE_AUTH = 0, /** * 不需要被邀请人同意 */ V2NIM_TEAM_AGREE_MODE_NO_AUTH = 1 } /** * 群组邀请模式定义 */ export declare const enum V2NIMTeamInviteMode { /** * 群主,管理员可以邀请其他人入群 */ V2NIM_TEAM_INVITE_MODE_MANAGER = 0, /** * 所有人都可以邀请其他人入群 */ V2NIM_TEAM_INVITE_MODE_ALL = 1 } /** * 群组资料修改模式 */ export declare const enum V2NIMTeamUpdateInfoMode { /** * 群主, 管理员可以修改群组资料 */ V2NIM_TEAM_UPDATE_INFO_MODE_MANAGER = 0, /** * 所有人均可以修改群组资料 */ V2NIM_TEAM_UPDATE_INFO_MODE_ALL = 1 } /** * 群组禁言模式类型定义 */ export declare const enum V2NIMTeamChatBannedMode { /** * 不禁言. 群组成员可以自由发言 */ V2NIM_TEAM_CHAT_BANNED_MODE_UNBAN = 0, /** * 普通成员禁言. 但不包括管理员, 群主. */ V2NIM_TEAM_CHAT_BANNED_MODE_BANNED_NORMAL = 1, /** * 全员禁言,群组所有成员都被禁言. * * 注: 该状态只能 OpenApi 发起, 而 SDK 不允许主动设置这个状态 */ V2NIM_TEAM_CHAT_BANNED_MODE_BANNED_ALL = 3 } /** * 群组扩展字段修改模式 */ export declare const enum V2NIMTeamUpdateExtensionMode { /** * 群主/管理员可以修改群组扩展字段 */ V2NIM_TEAM_UPDATE_EXTENSION_MODE_MANAGER = 0, /** * 所有人均可以修改群组扩展字段 */ V2NIM_TEAM_UPDATE_EXTENSION_MODE_ALL = 1 } /** * 邀请入群的参数 */ export declare type V2NIMTeamInviteParams = { /** * 邀请入群的账号 ID 列表 */ inviteeAccountIds: string[]; /** * 附言 */ postscript?: string; /** * 扩展字段,仅支持普通群 */ serverExtension?: string; }; /** * 群组定义 */ export declare type V2NIMTeam = { /** * 群组ID */ teamId: string; /** * 群组类型 */ teamType: V2NIMTeamType; /** * 群组名称 */ name: string; /** * 群组拥有者的账号 ID */ ownerAccountId: string; /** * 群组人数上限 */ memberLimit: number; /** * 群组当前人数 */ memberCount: number; /** * 群组创建时间 */ createTime: number; /** * 群组创建时间 */ updateTime: number; /** * 群组介绍. 上限 255 个字符 */ intro: string; /** * 群组公告. 上限 5000 个字符 */ announcement: string; /** * 头像 */ avatar: string; /** * 扩展字段 */ serverExtension?: string; /** * 客户自定义扩展 * * 注: 这个字段仅由 openApi 发请求设置. 而 SDK 只是透传这个字段. */ customerExtension?: string; /** * 申请入群模式. 即入群验证方式 */ joinMode: V2NIMTeamJoinMode; /** * 被邀请人入群模式. 即被邀请人的同意方式 */ agreeMode: V2NIMTeamAgreeMode; /** * 群组邀请模式. 即谁可以邀请他人入群 */ inviteMode: V2NIMTeamInviteMode; /** * 群组资料修改模式. 即谁可以修改群组资料 */ updateInfoMode: V2NIMTeamUpdateInfoMode; /** * 群组扩展字段修改模式. 即谁可以修改群组扩展 */ updateExtensionMode: V2NIMTeamUpdateExtensionMode; /** * 群禁言状态 */ chatBannedMode: V2NIMTeamChatBannedMode; /** * @computed * * 是否自己所在的有效的群. * * 注: 为 true 的条件是此群存在且本账号已加入此群 */ isValidTeam: boolean; }; /** * 群组成员角色类型定义 */ export declare const enum V2NIMTeamMemberRole { /** * 普通成员 */ V2NIM_TEAM_MEMBER_ROLE_NORMAL = 0, /** * 群组拥有者 */ V2NIM_TEAM_MEMBER_ROLE_OWNER = 1, /** * 群组管理员 */ V2NIM_TEAM_MEMBER_ROLE_MANAGER = 2 } /** * 群组成员属性定义 */ export declare type V2NIMTeamMember = { /** * 群组 ID */ teamId: string; /** * 群类型 */ teamType: V2NIMTeamType; /** * 群组成员账号 ID */ accountId: string; /** * 群组成员类型 */ memberRole: V2NIMTeamMemberRole; /** * 群组昵称 */ teamNick?: string; /** * 内部使用字段, 主要用来设置群消息提醒 * CLOSE_NOTIFY = 1L << 0; // 关闭消息提醒 * ONLY_MANAGER_NOTIFY = 1L << 1; // 只对群管理员下发消息的提醒 * 关联到群的消息提醒字段上。 */ /** * 扩展字段 */ serverExtension?: string; /** * 入群时间 */ joinTime: number; /** * 更新时间 */ updateTime?: number; /** * 入群邀请人. 若主动入群该字段为空 */ /** * 是否在群中 */ inTeam: boolean; /** * 聊天是否被禁言. 默认 false */ chatBanned?: boolean; /** * 特别关注群成员列表 */ followAccountIds?: Array<string>; }; /** * 群组监听回调 * * 注: 使用 dist/esm 产物时时,需要动态引入 V2NIMTeamService 后使用 * * @example * ``` * import { NIM, V2NIMTeamService } from 'nim-web-sdk-ng/dist/esm/nim' * NIM.registerService(V2NIMTeamService, 'V2NIMTeamService') * ``` * * 监听器使用示例: * * @example * ```ts * nim.V2NIMTeamService.on('onSyncStarted', () => { console.log("recv onSyncStarted") }) * nim.V2NIMTeamService.on('onSyncFinished', () => { console.log("recv onSyncFinished") }) * nim.V2NIMTeamService.on('onSyncFailed', (error) => { console.log("recv onSyncFailed", error) }) * nim.V2NIMTeamService.on('onTeamCreated', (team) => { console.log("recv onTeamCreated", team) }) * nim.V2NIMTeamService.on('onTeamJoined', (team) => { console.log("recv onTeamJoined", team) }) * nim.V2NIMTeamService.on('onTeamLeft', (team, isKicked) => { console.log("recv onTeamLeft", team, isKicked) }) * nim.V2NIMTeamService.on('onTeamInfoUpdated', (team) => { console.log("recv onTeamInfoUpdated", team) }) * nim.V2NIMTeamService.on('onTeamMemberJoined', (teamMembers) => { console.log("recv onTeamMemberJoined", teamMembers) }) * nim.V2NIMTeamService.on('onTeamMemberKicked', (operateAccountId, teamMembers) => { console.log("recv onTeamMemberKicked", operateAccountId, teamMembers) }) * nim.V2NIMTeamService.on('onTeamMemberLeft', (teamMembers) => { console.log("recv onTeamMemberLeft", teamMembers) }) * nim.V2NIMTeamService.on('onTeamMemberInfoUpdated', (teamMembers) => { console.log("recv onTeamMemberInfoUpdated", teamMembers) }) * nim.V2NIMTeamService.on('onReceiveTeamJoinActionInfo', (joinActionInfo) => { console.log("recv onReceiveTeamJoinActionInfo", joinActionInfo) }) * ``` */ export interface V2NIMTeamListener { /** * 群组信息同步开始回调 */ onSyncStarted: []; /** * 群组信息同步结束回调 */ onSyncFinished: []; /** * 群组信息数据同步失败 */ onSyncFailed: [error: V2NIMError]; /** * 群组创建回调 * * 注: 包括多端同步和初始化同步都可能触发 */ onTeamCreated: [team: V2NIMTeam]; /** * 群组解散 */ onTeamDismissed: [team: V2NIMTeam]; /** * (自己)加入某群 * * 注: 当自己被邀请后接受邀请, 或申请通过,或直接被拉入群组的事件通知 */ onTeamJoined: [team: V2NIMTeam]; /** * 退出群组 * * 注: 当自己主动离开群组或被管理员踢出群组会收到该事件 * * @param team 被离开的群组 * @param isKicked 是否被踢出群组 */ onTeamLeft: [team: V2NIMTeam, isKicked: boolean]; /** * 群组信息更新 */ onTeamInfoUpdated: [team: V2NIMTeam]; /** * 群组成员加入 * * 注: 非本账号的用户加入了这个群组后触发的 * * @param teamMembers 加入的群组成员信息 */ onTeamMemberJoined: [teamMembers: V2NIMTeamMember[]]; /** * 群组成员被踢 * * @param operateAccountId 操作者账号 ID * @param teamMembers 被踢的群组成员信息 */ onTeamMemberKicked: [operateAccountId: string, teamMembers: V2NIMTeamMember[]]; /** * 群组成员退出 * * @param teamMembers 退出的群组成员信息 */ onTeamMemberLeft: [teamMembers: V2NIMTeamMember[]]; /** * 群组成员信息变更 * * @param teamMembers 变更的群成员信息列表 */ onTeamMemberInfoUpdated: [teamMembers: V2NIMTeamMember[]]; /** * 群组申请动作 * * 注: 区分四种类型: 管理员收到入群申请; 申请人收到入群申请被拒绝; 成员收到入群邀请; 管理员收到入群邀请被拒绝 */ onReceiveTeamJoinActionInfo: [joinActionInfo: V2NIMTeamJoinActionInfo]; } /** * 群操作类型 */ export declare const enum V2NIMTeamJoinActionType { /** * 申请入群 */ V2NIM_TEAM_JOIN_ACTION_TYPE_APPLICATION = 0, /** * 管理拒绝申请入群 */ V2NIM_TEAM_JOIN_ACTION_TYPE_REJECT_APPLICATION = 1, /** * 邀请入群 */ V2NIM_TEAM_JOIN_ACTION_TYPE_INVITATION = 2, /** * 成员拒绝邀请入群 */ V2NIM_TEAM_JOIN_ACTION_TYPE_REJECT_INVITATION = 3 } /** * 群的消息通知 */ export declare type V2NIMTeamJoinActionInfo = { /** * 群操作类型 */ actionType: V2NIMTeamJoinActionType; /** * 群组ID */ teamId: string; /** * 群组类型 */ teamType: V2NIMTeamType; /** * 操作者的账号 ID */ operatorAccountId: string; /** * 该操作的附言 */ postscript?: string; /** * 该操作发生时的时间戳 */ timestamp: number; /** * 操作状态 */ actionStatus: V2NIMTeamJoinActionStatus; /** * 附加字段 */ serverExtension?: string; }; /** * 成员入群操作处理状态 */ export declare const enum V2NIMTeamJoinActionStatus { /** * 未处理 */ V2NIM_TEAM_JOIN_ACTION_STATUS_INIT = 0, /** * 已同意 */ V2NIM_TEAM_JOIN_ACTION_STATUS_AGREED = 1, /** * 已拒绝 */ V2NIM_TEAM_JOIN_ACTION_STATUS_REJECTED = 2, /** * 已过期 */ V2NIM_TEAM_JOIN_ACTION_STATUS_EXPIRED = 3 } export declare const enum V2NIMTeamNotificationType { teamApply = 0, teamApplyReject = 1, teamInvite = 2, teamInviteReject = 3, tlistUpdate = 4, superTeamApply = 15, superTeamApplyReject = 16, superTeamInvite = 17, superTeamInviteReject = 18 } export declare type V2NIMTeamJoinActionInfoQueryOption = { /** * 过滤条件: 群操作类型。 * * 注: 不传这个参数, 或者传递了空数组, 这个过滤条件不生效. */ types?: V2NIMTeamJoinActionType[]; /** * 过滤条件: 操作处理状态. * * 注: 不传这个参数, 或者传递了空数组, 这个过滤条件不生效. */ status?: V2NIMTeamJoinActionStatus[]; /** * 分页偏移量. 是一个时间戳 */ offset?: number; /** * 每次查询的数量. 默认 50 */ limit?: number; }; export declare type V2NIMTeamJoinActionInfoResult = { /** * 群的消息通知的列表 */ infos: V2NIMTeamJoinActionInfo[]; /** * 分页偏移量 */ offset: number; /** * 是否还有下一页 */ finished: boolean; };