import type { MessageItem, WsResponse } from '../types/entity';
import type { FileMsgParams, ImageMsgParams, LoginParams, SoundMsgParams, UploadFileParams, VideoMsgParams } from '../types/params';
import { RequestApi } from '../constant/api';
import { UserApi } from './user';
import { FriendApi } from './friend';
import { GroupApi } from './group';
import { MessageApi } from './message';
import { ConversationApi } from './conversation';
import Emitter from '../utils/emitter';
import { LoginStatus } from '../types/enum';
declare class OpenIMSDK extends Emitter implements UserApi, FriendApi, GroupApi, MessageApi, ConversationApi {
    private userID?;
    private token?;
    private apiAddr?;
    private wsManager?;
    private requestMap;
    constructor();
    private sendRequest;
    private defaultDataFormatter;
    createRequestFunction: <T, R = unknown>(reqFuncName: RequestApi, dataFormatter?: (params: T) => string) => (params: T, operationID?: string) => Promise<WsResponse<R>>;
    createRequestFunctionWithoutParams: <T = unknown>(reqFuncName: RequestApi) => (operationID?: string) => Promise<WsResponse<T>>;
    private handleMessage;
    private handleReconnectSuccess;
    login: (params: LoginParams, operationID?: string) => Promise<WsResponse>;
    logout: (operationID?: string) => Promise<WsResponse<unknown>>;
    getLoginStatus: (operationID?: string) => Promise<WsResponse<LoginStatus>>;
    getLoginUserID: (operationID?: string) => Promise<WsResponse<string>>;
    private internalUploadFile;
    uploadFile: ({ file }: UploadFileParams, operationID?: string) => Promise<WsResponse<{
        url: string;
    }>>;
    createImageMessageByFile: (params: ImageMsgParams & {
        file: File;
    }, operationID?: string) => Promise<WsResponse<MessageItem>>;
    createVideoMessageByFile: (params: VideoMsgParams & {
        videoFile: File;
        snapshotFile: File;
    }, operationID?: string) => Promise<WsResponse<MessageItem>>;
    createSoundMessageByFile: (params: SoundMsgParams & {
        file: File;
    }, operationID?: string) => Promise<WsResponse<MessageItem>>;
    createFileMessageByFile: (params: FileMsgParams & {
        file: File;
    }, operationID?: string) => Promise<WsResponse<MessageItem>>;
    getSelfUserInfo: UserApi['getSelfUserInfo'];
    setSelfInfo: UserApi['setSelfInfo'];
    getUsersInfoWithCache: UserApi['getUsersInfoWithCache'];
    subscribeUsersStatus: UserApi['subscribeUsersStatus'];
    unsubscribeUsersStatus: UserApi['unsubscribeUsersStatus'];
    getSubscribeUsersStatus: UserApi['getSubscribeUsersStatus'];
    setAppBackgroundStatus: UserApi['setAppBackgroundStatus'];
    networkStatusChanged: UserApi['networkStatusChanged'];
    setGlobalRecvMessageOpt: UserApi['setGlobalRecvMessageOpt'];
    acceptFriendApplication: FriendApi['acceptFriendApplication'];
    addBlack: FriendApi['addBlack'];
    addFriend: FriendApi['addFriend'];
    checkFriend: FriendApi['checkFriend'];
    deleteFriend: FriendApi['deleteFriend'];
    getBlackList: FriendApi['getBlackList'];
    getFriendApplicationListAsApplicant: FriendApi['getFriendApplicationListAsApplicant'];
    getFriendApplicationListAsRecipient: FriendApi['getFriendApplicationListAsRecipient'];
    getFriendList: FriendApi['getFriendList'];
    getSpecifiedFriendsInfo: FriendApi['getSpecifiedFriendsInfo'];
    refuseFriendApplication: FriendApi['refuseFriendApplication'];
    removeBlack: FriendApi['removeBlack'];
    searchFriends: FriendApi['searchFriends'];
    setFriendRemark: FriendApi['setFriendRemark'];
    createGroup: GroupApi['createGroup'];
    joinGroup: GroupApi['joinGroup'];
    inviteUserToGroup: GroupApi['inviteUserToGroup'];
    getJoinedGroupList: GroupApi['getJoinedGroupList'];
    searchGroups: GroupApi['searchGroups'];
    getSpecifiedGroupsInfo: GroupApi['getSpecifiedGroupsInfo'];
    setGroupInfo: GroupApi['setGroupInfo'];
    getGroupApplicationListAsRecipient: GroupApi['getGroupApplicationListAsRecipient'];
    getGroupApplicationListAsApplicant: GroupApi['getGroupApplicationListAsApplicant'];
    acceptGroupApplication: GroupApi['acceptGroupApplication'];
    refuseGroupApplication: GroupApi['refuseGroupApplication'];
    getGroupMemberList: GroupApi['getGroupMemberList'];
    getSpecifiedGroupMembersInfo: GroupApi['getSpecifiedGroupMembersInfo'];
    searchGroupMembers: GroupApi['searchGroupMembers'];
    setGroupMemberInfo: GroupApi['setGroupMemberInfo'];
    getGroupMemberOwnerAndAdmin: GroupApi['getGroupMemberOwnerAndAdmin'];
    getGroupMemberListByJoinTimeFilter: GroupApi['getGroupMemberListByJoinTimeFilter'];
    kickGroupMember: GroupApi['kickGroupMember'];
    changeGroupMemberMute: GroupApi['changeGroupMemberMute'];
    changeGroupMute: GroupApi['changeGroupMute'];
    transferGroupOwner: GroupApi['transferGroupOwner'];
    dismissGroup: GroupApi['dismissGroup'];
    quitGroup: GroupApi['quitGroup'];
    createTextMessage: MessageApi['createTextMessage'];
    createTextAtMessage: MessageApi['createTextAtMessage'];
    createImageMessageByURL: MessageApi['createImageMessageByURL'];
    createSoundMessageByURL: MessageApi['createSoundMessageByURL'];
    createVideoMessageByURL: MessageApi['createVideoMessageByURL'];
    createFileMessageByURL: MessageApi['createFileMessageByURL'];
    createMergerMessage: MessageApi['createMergerMessage'];
    createForwardMessage: MessageApi['createForwardMessage'];
    createLocationMessage: MessageApi['createLocationMessage'];
    createQuoteMessage: MessageApi['createQuoteMessage'];
    createCardMessage: MessageApi['createCardMessage'];
    createCustomMessage: MessageApi['createCustomMessage'];
    createFaceMessage: MessageApi['createFaceMessage'];
    sendMessage: MessageApi['sendMessage'];
    sendMessageNotOss: MessageApi['sendMessageNotOss'];
    typingStatusUpdate: MessageApi['typingStatusUpdate'];
    revokeMessage: MessageApi['revokeMessage'];
    deleteMessage: MessageApi['deleteMessage'];
    deleteMessageFromLocalStorage: MessageApi['deleteMessageFromLocalStorage'];
    deleteAllMsgFromLocal: MessageApi['deleteAllMsgFromLocal'];
    deleteAllMsgFromLocalAndSvr: MessageApi['deleteAllMsgFromLocalAndSvr'];
    searchLocalMessages: MessageApi['searchLocalMessages'];
    getAdvancedHistoryMessageList: MessageApi['getAdvancedHistoryMessageList'];
    getAdvancedHistoryMessageListReverse: MessageApi['getAdvancedHistoryMessageListReverse'];
    findMessageList: MessageApi['findMessageList'];
    insertGroupMessageToLocalStorage: MessageApi['insertGroupMessageToLocalStorage'];
    insertSingleMessageToLocalStorage: MessageApi['insertSingleMessageToLocalStorage'];
    setMessageLocalEx: MessageApi['setMessageLocalEx'];
    getAllConversationList: ConversationApi['getAllConversationList'];
    getConversationListSplit: ConversationApi['getConversationListSplit'];
    getOneConversation: ConversationApi['getOneConversation'];
    getMultipleConversation: ConversationApi['getMultipleConversation'];
    getConversationIDBySessionType: ConversationApi['getConversationIDBySessionType'];
    getTotalUnreadMsgCount: ConversationApi['getTotalUnreadMsgCount'];
    markConversationMessageAsRead: ConversationApi['markConversationMessageAsRead'];
    setConversationDraft: ConversationApi['setConversationDraft'];
    pinConversation: ConversationApi['pinConversation'];
    setConversationRecvMessageOpt: ConversationApi['setConversationRecvMessageOpt'];
    setConversationPrivateChat: ConversationApi['setConversationPrivateChat'];
    setConversationBurnDuration: ConversationApi['setConversationBurnDuration'];
    resetConversationGroupAtType: ConversationApi['resetConversationGroupAtType'];
    hideConversation: ConversationApi['hideConversation'];
    hideAllConversation: ConversationApi['hideAllConversation'];
    clearConversationAndDeleteAllMsg: ConversationApi['clearConversationAndDeleteAllMsg'];
    deleteConversationAndDeleteAllMsg: ConversationApi['deleteConversationAndDeleteAllMsg'];
}
export default OpenIMSDK;
export type MixinApiService = OpenIMSDK & UserApi & FriendApi & GroupApi & MessageApi & ConversationApi;
