import { EventEmitter } from 'eventemitter3';
import { QChatCreateServerRoleParam, QChatUpdateServerRoleParam, QChatUpdateServerRolePrioritiesParam, QChatDeleteServerRoleParam, QChatGetServerRolesParam, QChatAddMembersToServerRoleParam, QChatRemoveMembersFromServerRoleParam, QChatGetMembersFromServerRoleParam, QChatAddChannelRoleParam, QChatUpdateChannelRoleParam, QChatRemoveChannelRoleParam, QChatGetChannelRolesParam, QChatAddMemberRoleParam, QChatUpdateMemberRoleParam, QChatRemoveMemberRoleParam, QChatGetMemberRolesParam, QChatGetRolesByAccidParam, QChatGetExistingServerRolesByAccidsParam, QChatGetExistingChannelRolesByServerRoleIdsParam, QChatGetExistingAccidsOfMemberRolesParam, QChatGetExistingAccidsInServerRoleParam, QChatCheckPermissionParam, QChatAddChannelCategoryRoleParam, QChatRemoveChannelCategoryRoleParam, QChatUpdateChannelCategoryRoleParam, QChatGetChannelCategoryRolesPageParam, QChatAddChannelCategoryMemberRoleParam, QChatRemoveChannelCategoryMemberRoleParam, QChatUpdateChannelCategoryMemberRoleParam, QChatGetChannelCategoryMemberRolesPageParam, QChatAddChannelCategoryMemberRoleResp, QChatAddChannelCategoryRoleResp, QChatAddChannelRoleResp, QChatAddMemberRoleResp, QChatAddMembersToServerRoleResp, QChatCheckPermissionResp, QChatCreateServerRoleResp, QChatDeleteServerRoleResp, QChatGetChannelCategoryMemberRolesPageResp, QChatGetChannelCategoryRolesPageResp, QChatGetChannelRolesResp, QChatGetExistingAccidsInServerRoleResp, QChatGetExistingAccidsOfMemberRolesResp, QChatGetExistingChannelRolesByServerRoleIdsResp, QChatGetExistingServerRolesByAccidsResp, QChatGetMemberRolesResp, QChatGetMembersFromServerRoleResp, QChatGetRolesByAccidResp, QChatGetServerRolesResp, QChatRemoveChannelCategoryMemberRoleResp, QChatRemoveChannelCategoryRoleResp, QChatRemoveChannelRoleResp, QChatRemoveMemberRoleResp, QChatRemoveMembersFromServerRoleResp, QChatUpdateChannelCategoryMemberRoleResp, QChatUpdateChannelCategoryRoleResp, QChatUpdateChannelRoleResp, QChatUpdateMemberRoleResp, QChatUpdateServerRolePrioritiesResp, QChatUpdateServerRoleResp, QChatCheckPermissionsParam, QChatCheckPermissionsResp } from '../qchat_def/role_def';
export declare interface QChatRoleEvents {
}
export declare class QChatRoleModule extends EventEmitter<QChatRoleEvents> {
    instance: any;
    constructor();
    /** 注册全局回调 */
    initEventHandlers(): void;
    /** @fn createServerRole(param: QChatCreateServerRoleParam)
     * @brief 在服务器中创建一个身份组
     * @param param 参数见 @see QChatCreateServerRoleParam
     */
    createServerRole(param: QChatCreateServerRoleParam): Promise<QChatCreateServerRoleResp>;
    /** @fn updateServerRole(param: QChatUpdateServerRoleParam)
     * @brief 更新服务器中指定身份组
     * @param param 参数见 @see QChatUpdateServerRoleParam
     */
    updateServerRole(param: QChatUpdateServerRoleParam): Promise<QChatUpdateServerRoleResp>;
    /** @fn updateServerRolePriorities(param: QChatUpdateServerRolePrioritiesParam)
     * @brief 批量更新服务器身份组优先级，如果具备修改身份组优先级权限，则服务器会应用您传递的参数中身份组优先级列表所有的内容
     * 如在 UI 展示中，允许拖拽对身份组优先级进行排序，则在排序完成后将最终的排序列表传递到参数中即可。
     * @param param 参数见 @see QChatUpdateServerRolePrioritiesParam
     */
    updateServerRolePriorities(param: QChatUpdateServerRolePrioritiesParam): Promise<QChatUpdateServerRolePrioritiesResp>;
    /** @fn deleteServerRole(param: QChatDeleteServerRoleParam)
     * @brief 从服务器中删除指定身份组
     * @param param 参数见 @see QChatDeleteServerRoleParam
     */
    deleteServerRole(param: QChatDeleteServerRoleParam): Promise<QChatDeleteServerRoleResp>;
    /** @fn getServerRoles(param: QChatGetServerRolesParam)
     * @brief 获取指定服务器下已创建的身份组列表
     * @param param 参数见 @see QChatGetServerRolesParam
     */
    getServerRoles(param: QChatGetServerRolesParam): Promise<QChatGetServerRolesResp>;
    /** @fn addMembersToServerRole(param: QChatAddMembersToServerRoleParam)
     * @brief 添加部分成员到服务器指定的身份组中
     * @param param 参数见 @see QChatAddMembersToServerRoleParam
     */
    addMembersToServerRole(param: QChatAddMembersToServerRoleParam): Promise<QChatAddMembersToServerRoleResp>;
    /** @fn removeMembersFromServerRole(param: QChatRemoveMembersFromServerRoleParam)
     * @brief 从服务器指定身份组移除部分成员
     * @param param 参数见 @see QChatRemoveMembersFromServerRoleParam
     */
    removeMembersFromServerRole(param: QChatRemoveMembersFromServerRoleParam): Promise<QChatRemoveMembersFromServerRoleResp>;
    /** @fn getMembersFromServerRole(param: QChatGetMembersFromServerRoleParam)
     * @brief 分页从服务器指定身份组中查询成员列表
     * @param param 参数见 @see QChatGetMembersFromServerRoleParam
     */
    getMembersFromServerRole(param: QChatGetMembersFromServerRoleParam): Promise<QChatGetMembersFromServerRoleResp>;
    /** @fn addChannelRole(param: QChatAddChannelRoleParam)
     * @brief 添加一个身份组到频道
     * @param param 参数见 @see QChatAddChannelRoleParam
     */
    addChannelRole(param: QChatAddChannelRoleParam): Promise<QChatAddChannelRoleResp>;
    /** @fn updateChannelRole(param: QChatUpdateChannelRoleParam)
     * @brief 更新频道中指定身份组的信息
     * @param param 参数见 @see QChatUpdateChannelRoleParam
     */
    updateChannelRole(param: QChatUpdateChannelRoleParam): Promise<QChatUpdateChannelRoleResp>;
    /** @fn removeChannelRole(param: QChatRemoveChannelRoleParam)
     * @brief 从频道中移除指定身份组
     * @param param 参数见 @see QChatRemoveChannelRoleParam
     */
    removeChannelRole(param: QChatRemoveChannelRoleParam): Promise<QChatRemoveChannelRoleResp>;
    /** @fn getChannelRoles(param: QChatGetChannelRolesParam)
     * @brief 获取频道下所有已分配的身份组信息
     * @param param 参数见 @see QChatGetChannelRolesParam
     */
    getChannelRoles(param: QChatGetChannelRolesParam): Promise<QChatGetChannelRolesResp>;
    /** @fn addMemberRole(param: QChatAddMemberRoleParam)
     * @brief 在频道中添加针对指定人的特殊权限配置
     * @param param 参数见 @see QChatAddMemberRoleParam
     */
    addMemberRole(param: QChatAddMemberRoleParam): Promise<QChatAddMemberRoleResp>;
    /** @fn updateMemberRole(param: QChatUpdateMemberRoleParam)
     * @brief 更新频道中指定人的特殊权限配置
     * @param param 参数见 @see QChatUpdateMemberRoleParam
     */
    updateMemberRole(param: QChatUpdateMemberRoleParam): Promise<QChatUpdateMemberRoleResp>;
    /** @fn removeMemberRole(param: QChatRemoveMemberRoleParam)
     * @brief 从频道中移除指定人的特殊权限配置
     * @param param 参数见 @see QChatRemoveMemberRoleParam
     */
    removeMemberRole(param: QChatRemoveMemberRoleParam): Promise<QChatRemoveMemberRoleResp>;
    /** @fn getMemberRoles(param: QChatGetMemberRolesParam)
     * @brief 分页获取频道下所有针对人的特殊权限配置列表
     * @param param 参数见 @see QChatGetMemberRolesParam
     */
    getMemberRoles(param: QChatGetMemberRolesParam): Promise<QChatGetMemberRolesResp>;
    /** @fn getRolesByAccid(param: QChatGetRolesByAccidParam)
     * @brief 根据用户 ID 获取其已经分配的身份组列表
     * @param param 参数见 @see QChatGetRolesByAccidParam
     */
    getRolesByAccid(param: QChatGetRolesByAccidParam): Promise<QChatGetRolesByAccidResp>;
    /** @fn getExistingServerRolesByAccids(param: QChatGetExistingServerRolesByAccidsParam)
     * @brief 根据一组用户列表查询该列表下所有用户的身份组列表信息
     * @param param 参数见 @see QChatGetExistingServerRolesByAccidsParam
     */
    getExistingServerRolesByAccids(param: QChatGetExistingServerRolesByAccidsParam): Promise<QChatGetExistingServerRolesByAccidsResp>;
    /** @fn getExistingChannelRolesByServerRoleIds(param: QChatGetExistingChannelRolesByServerRoleIdsParam)
     * @brief 根据一组身份组列表查询频道中已经存在的身份组
     * @param param 参数见 @see QChatGetExistingChannelRolesByServerRoleIdsParam
     */
    getExistingChannelRolesByServerRoleIds(param: QChatGetExistingChannelRolesByServerRoleIdsParam): Promise<QChatGetExistingChannelRolesByServerRoleIdsResp>;
    /** @fn getExistingAccidsOfMemberRoles(param: QChatGetExistingAccidsOfMemberRolesParam)
     * @brief 根据一组用户 ID 查询指定频道下的定制权限信息
     * @param param 参数见 @see QChatGetExistingAccidsOfMemberRolesParam
     */
    getExistingAccidsOfMemberRoles(param: QChatGetExistingAccidsOfMemberRolesParam): Promise<QChatGetExistingAccidsOfMemberRolesResp>;
    /** void GetExistingAccidsInServerRole(const QChatGetExistingAccidsInServerRoleParam& param)
     * @brief 查询服务器某身份组是否包含指定成员
     * @param param 参数见 @see QChatGetExistingAccidsInServerRoleParam
     */
    getExistingAccidsInServerRole(param: QChatGetExistingAccidsInServerRoleParam): Promise<QChatGetExistingAccidsInServerRoleResp>;
    /** @fn checkPermission(param: QChatCheckPermissionParam)
     * @brief 查询当前登录用户是否拥有特定权限
     * @param param 参数见 @see QChatGetRolesByAccidParam
     */
    checkPermission(param: QChatCheckPermissionParam): Promise<QChatCheckPermissionResp>;
    /** @fn checkPermissions(param: QChatCheckPermissionsParam)
     * @brief 查询当前登录用户是否拥有特定权限
     * @param param 参数见 @see QChatGetRolesByAccidParam
     */
    checkPermissions(param: QChatCheckPermissionsParam): Promise<QChatCheckPermissionsResp>;
    /** @fn addChannelCategoryRole(param: QChatAddChannelCategoryRoleParam)
     * @brief 添加一个身份组到频道分组
     * @param param 参数见 @see QChatAddChannelCategoryRoleParam
     */
    addChannelCategoryRole(param: QChatAddChannelCategoryRoleParam): Promise<QChatAddChannelCategoryRoleResp>;
    /** @fn removeChannelCategoryRole(param: QChatRemoveChannelCategoryRoleParam)
     * @brief 从频道分组中移除身份组
     * @param param 参数见 @see QChatRemoveChannelCategoryRoleParam
     */
    removeChannelCategoryRole(param: QChatRemoveChannelCategoryRoleParam): Promise<QChatRemoveChannelCategoryRoleResp>;
    /** @fn updateChannelCategoryRole(param: QChatUpdateChannelCategoryRoleParam)
     * @brief 更新频道分组中的身份组
     * @param param 参数见 @see QChatUpdateChannelCategoryRoleParam
     */
    updateChannelCategoryRole(param: QChatUpdateChannelCategoryRoleParam): Promise<QChatUpdateChannelCategoryRoleResp>;
    /** @fn getChannelCategoryRolesPage(param: QChatGetChannelCategoryRolesPageParam)
     * @brief 分页获取频道分组下的身份组列表
     * @param param 参数见 @see QChatGetChannelCategoryRolesPageParam
     */
    getChannelCategoryRolesPage(param: QChatGetChannelCategoryRolesPageParam): Promise<QChatGetChannelCategoryRolesPageResp>;
    /** @fn addChannelCategoryMemberRole(param: QChatAddChannelCategoryMemberRoleParam)
     * @brief 定制指定成员在频道分组中的权限
     * @param param 参数见 @see QChatAddChannelCategoryMemberRoleParam
     */
    addChannelCategoryMemberRole(param: QChatAddChannelCategoryMemberRoleParam): Promise<QChatAddChannelCategoryMemberRoleResp>;
    /** @fn removeChannelCategoryMemberRole(param: QChatRemoveChannelCategoryMemberRoleParam)
     * @brief 取消指定成员在频道分组中的权限
     * @param param 参数见 @see QChatRemoveChannelCategoryMemberRoleParam
     */
    removeChannelCategoryMemberRole(param: QChatRemoveChannelCategoryMemberRoleParam): Promise<QChatRemoveChannelCategoryMemberRoleResp>;
    /** @fn updateChannelCategoryMemberRole(param: QChatUpdateChannelCategoryMemberRoleParam)
     * @brief 更新指定成员在频道分组中的权限
     * @param param 参数见 @see QChatUpdateChannelCategoryMemberRoleParam
     */
    updateChannelCategoryMemberRole(param: QChatUpdateChannelCategoryMemberRoleParam): Promise<QChatUpdateChannelCategoryMemberRoleResp>;
    /** @fn getChannelCategoryMemberRolesPage(param: QChatGetChannelCategoryMemberRolesPageParam)
     * @brief 分页获取频道分组下的成员权限列表
     * @param param 参数见 @see QChatGetChannelCategoryMemberRolesPageParam
     */
    getChannelCategoryMemberRolesPage(param: QChatGetChannelCategoryMemberRolesPageParam): Promise<QChatGetChannelCategoryMemberRolesPageResp>;
}
