import type { AccessGroupParams, ChangeGroupMemberMuteParams, ChangeGroupMuteParams, CreateGroupParams, GetGroupMemberByTimeParams, GetGroupMemberParams, JoinGroupParams, OpreateGroupParams, SearchGroupMemberParams, SearchGroupParams, SetGroupinfoParams, TransferGroupParams, UpdateMemberInfoParams, getGroupMembersInfoParams } from '../types/params';
import OpenIMSDK from '.';
import type { GroupApplicationItem, GroupItem, GroupMemberItem, WsResponse } from '../types/entity';
export declare function setupGroup(openIMSDK: OpenIMSDK): {
    createGroup: (params: CreateGroupParams, operationID?: string) => Promise<WsResponse<GroupItem>>;
    joinGroup: (params: JoinGroupParams, operationID?: string) => Promise<WsResponse<unknown>>;
    inviteUserToGroup: (params: OpreateGroupParams, operationID?: string) => Promise<WsResponse<unknown>>;
    getJoinedGroupList: (operationID?: string) => Promise<WsResponse<GroupItem[]>>;
    searchGroups: (params: SearchGroupParams, operationID?: string) => Promise<WsResponse<GroupItem[]>>;
    getSpecifiedGroupsInfo: (params: string[], operationID?: string) => Promise<WsResponse<GroupItem[]>>;
    setGroupInfo: (params: SetGroupinfoParams, operationID?: string) => Promise<WsResponse<unknown>>;
    getGroupApplicationListAsRecipient: (operationID?: string) => Promise<WsResponse<GroupApplicationItem[]>>;
    getGroupApplicationListAsApplicant: (operationID?: string) => Promise<WsResponse<GroupApplicationItem[]>>;
    acceptGroupApplication: (params: AccessGroupParams, operationID?: string) => Promise<WsResponse<unknown>>;
    refuseGroupApplication: (params: AccessGroupParams, operationID?: string) => Promise<WsResponse<unknown>>;
    getGroupMemberList: (params: GetGroupMemberParams, operationID?: string) => Promise<WsResponse<GroupMemberItem[]>>;
    getSpecifiedGroupMembersInfo: (params: getGroupMembersInfoParams, operationID?: string) => Promise<WsResponse<GroupMemberItem[]>>;
    searchGroupMembers: (params: SearchGroupMemberParams, operationID?: string) => Promise<WsResponse<GroupMemberItem[]>>;
    setGroupMemberInfo: (params: UpdateMemberInfoParams, operationID?: string) => Promise<WsResponse<unknown>>;
    getGroupMemberOwnerAndAdmin: (params: string, operationID?: string) => Promise<WsResponse<GroupMemberItem[]>>;
    getGroupMemberListByJoinTimeFilter: (params: GetGroupMemberByTimeParams, operationID?: string) => Promise<WsResponse<GroupMemberItem[]>>;
    kickGroupMember: (params: OpreateGroupParams, operationID?: string) => Promise<WsResponse<unknown>>;
    changeGroupMemberMute: (params: ChangeGroupMemberMuteParams, operationID?: string) => Promise<WsResponse<unknown>>;
    changeGroupMute: (params: ChangeGroupMuteParams, operationID?: string) => Promise<WsResponse<unknown>>;
    transferGroupOwner: (params: TransferGroupParams, operationID?: string) => Promise<WsResponse<unknown>>;
    dismissGroup: (params: string, operationID?: string) => Promise<WsResponse<unknown>>;
    quitGroup: (params: string, operationID?: string) => Promise<WsResponse<unknown>>;
};
export interface GroupApi {
    createGroup: (params: CreateGroupParams, operationID?: string) => Promise<WsResponse<GroupItem>>;
    joinGroup: (params: JoinGroupParams, operationID?: string) => Promise<WsResponse<unknown>>;
    inviteUserToGroup: (params: OpreateGroupParams, operationID?: string) => Promise<WsResponse<unknown>>;
    getJoinedGroupList: (operationID?: string) => Promise<WsResponse<GroupItem[]>>;
    searchGroups: (params: SearchGroupParams, operationID?: string) => Promise<WsResponse<GroupItem[]>>;
    getSpecifiedGroupsInfo: (params: string[], operationID?: string) => Promise<WsResponse<GroupItem[]>>;
    setGroupInfo: (params: SetGroupinfoParams, operationID?: string) => Promise<WsResponse<unknown>>;
    getGroupApplicationListAsRecipient: (operationID?: string) => Promise<WsResponse<GroupApplicationItem[]>>;
    getGroupApplicationListAsApplicant: (operationID?: string) => Promise<WsResponse<GroupApplicationItem[]>>;
    acceptGroupApplication: (params: AccessGroupParams, operationID?: string) => Promise<WsResponse<unknown>>;
    refuseGroupApplication: (params: AccessGroupParams, operationID?: string) => Promise<WsResponse<unknown>>;
    getGroupMemberList: (operationID?: string) => Promise<WsResponse<GroupMemberItem[]>>;
    getSpecifiedGroupMembersInfo: (params: getGroupMembersInfoParams, operationID?: string) => Promise<WsResponse<GroupMemberItem[]>>;
    searchGroupMembers: (params: SearchGroupMemberParams, operationID?: string) => Promise<WsResponse<GroupMemberItem[]>>;
    setGroupMemberInfo: (params: UpdateMemberInfoParams, operationID?: string) => Promise<WsResponse<unknown>>;
    getGroupMemberOwnerAndAdmin: (params: string, operationID?: string) => Promise<WsResponse<GroupMemberItem[]>>;
    getGroupMemberListByJoinTimeFilter: (params: GetGroupMemberByTimeParams, operationID?: string) => Promise<WsResponse<GroupMemberItem[]>>;
    kickGroupMember: (params: OpreateGroupParams, operationID?: string) => Promise<WsResponse<unknown>>;
    changeGroupMemberMute: (params: ChangeGroupMemberMuteParams, operationID?: string) => Promise<WsResponse<unknown>>;
    changeGroupMute: (params: ChangeGroupMuteParams, operationID?: string) => Promise<WsResponse<unknown>>;
    transferGroupOwner: (params: TransferGroupParams, operationID?: string) => Promise<WsResponse<unknown>>;
    dismissGroup: (params: string, operationID?: string) => Promise<WsResponse<unknown>>;
    quitGroup: (params: string, operationID?: string) => Promise<WsResponse<unknown>>;
}
