import Emitter from "../event";
import { InitConfig, WsResponse, AtMsgParams, ImageMsgParams, SoundMsgParams, VideoMsgParams, FileMsgParams, MergerMsgParams, LocationMsgParams, CustomMsgParams, QuoteMsgParams, SendMsgParams, GetHistoryMsgParams, InsertSingleMsgParams, TypingUpdateParams, MarkC2CParams, GetOneCveParams, SetDraftParams, PinCveParams, AddFriendParams, InviteGroupParams, GetGroupMemberParams, CreateGroupParams, JoinGroupParams, TransferGroupParams, AccessGroupParams, SplitParams, AccessFriendParams, GroupInfoParams, RemarkFriendParams, PartialUserItem, isRecvParams, SearchLocalParams, InsertGroupMsgParams, FaceMessageParams, RtcInvite, RtcActionParams, GroupMsgReadParams, ChangeGroupMuteParams, ChangeGroupMemberMuteParams, setPrvParams, MarkNotiParams, FileMsgFullParams, SouondMsgFullParams, VideoMsgFullParams, MemberNameParams, AdvancedMsgParams, GetSubDepParams, SearchInOrzParams, SetGroupRoleParams, SetGroupVerificationParams, SearchFriendParams, OptType, SearchGroupParams, GetGroupMemberByTimeParams, SearchGroupMemberParams, AdvancedQuoteMsgParams, SetMemberAuthParams, GetAdvancedHistoryMsgParams, FindMessageParams } from "../types";
export default class QnzsIMSDK extends Emitter {
    private ws;
    private uid;
    private token;
    private platform;
    private wsUrl;
    private lock;
    private logoutFlag;
    private ws2promise;
    private onceFlag;
    private timer;
    private lastTime;
    private heartbeatCount;
    private heartbeatStartTime;
    private platformID;
    private isBatch;
    private worker;
    constructor();
    private emitUploadLimitMessage;
    /**
     * 检查文件上传权限
     * @param operationID 操作ID（可选）
     * @returns Promise<WsResponse>
     */
    checkUploadPermission: (operationID?: string) => Promise<WsResponse>;
    /**
     * 释放上传配额（上传失败时调用）
     * @param uploadToken 上传令牌
     */
    releaseUploadQuota: (uploadToken: string) => void;
    /**
     *
     * @description init and login QnzsIMSDK
     * @param uid userID
     * @param token token
     * @param url service url
     * @param platformID platformID
     * @param operationID? unique operation ID
     * @returns
     */
    login(config: InitConfig): Promise<WsResponse>;
    private iLogin;
    logout(operationID?: string): Promise<WsResponse>;
    getLoginStatus: (operationID?: string) => Promise<WsResponse>;
    getLoginUser: (operationID?: string) => Promise<WsResponse>;
    getSelfUserInfo: (operationID?: string) => Promise<WsResponse>;
    getUsersInfo: (data: string[], operationID?: string) => Promise<WsResponse>;
    setSelfInfo: (data: PartialUserItem, operationID?: string) => Promise<WsResponse>;
    createTextMessage: (data: string, operationID?: string) => Promise<WsResponse>;
    createTextAtMessage: (data: AtMsgParams, operationID?: string) => Promise<WsResponse>;
    createAdvancedTextMessage: (data: AdvancedMsgParams, operationID?: string) => Promise<WsResponse>;
    createImageMessage: (data: ImageMsgParams, operationID?: string) => Promise<WsResponse>;
    createSoundMessage: (data: SoundMsgParams, operationID?: string) => Promise<WsResponse>;
    createVideoMessage: (data: VideoMsgParams, operationID?: string) => Promise<WsResponse>;
    createFileMessage: (data: FileMsgParams, operationID?: string) => Promise<WsResponse>;
    createFileMessageFromFullPath: (data: FileMsgFullParams, operationID?: string) => Promise<WsResponse>;
    createImageMessageFromFullPath: (data: string, operationID?: string) => Promise<WsResponse>;
    createSoundMessageFromFullPath: (data: SouondMsgFullParams, operationID?: string) => Promise<WsResponse>;
    createVideoMessageFromFullPath: (data: VideoMsgFullParams, operationID?: string) => Promise<WsResponse>;
    createMergerMessage: (data: MergerMsgParams, operationID?: string) => Promise<WsResponse>;
    createForwardMessage: (data: string, operationID?: string) => Promise<WsResponse>;
    createFaceMessage: (data: FaceMessageParams, operationID?: string) => Promise<WsResponse>;
    createLocationMessage: (data: LocationMsgParams, operationID?: string) => Promise<WsResponse>;
    createCustomMessage: (data: CustomMsgParams, operationID?: string) => Promise<WsResponse>;
    createQuoteMessage: (data: QuoteMsgParams, operationID?: string) => Promise<WsResponse>;
    createAdvancedQuoteMessage: (data: AdvancedQuoteMsgParams, operationID?: string) => Promise<WsResponse>;
    createCardMessage: (data: string, operationID?: string) => Promise<WsResponse>;
    sendMessage: (data: SendMsgParams, operationID?: string) => Promise<WsResponse>;
    sendMessageNotOss: (data: SendMsgParams, operationID?: string) => Promise<WsResponse>;
    getHistoryMessageList: (data: GetHistoryMsgParams, operationID?: string) => Promise<WsResponse>;
    getAdvancedHistoryMessageList: (data: GetAdvancedHistoryMsgParams, operationID?: string) => Promise<WsResponse>;
    getHistoryMessageListReverse: (data: GetHistoryMsgParams, operationID?: string) => Promise<WsResponse>;
    revokeMessage: (data: string, operationID?: string) => Promise<WsResponse>;
    setOneConversationPrivateChat: (data: setPrvParams, operationID?: string) => Promise<WsResponse>;
    deleteMessageFromLocalStorage: (data: string, operationID?: string) => Promise<WsResponse>;
    deleteMessageFromLocalAndSvr: (data: string, operationID?: string) => Promise<WsResponse>;
    deleteConversationFromLocalAndSvr: (data: string, operationID?: string) => Promise<WsResponse>;
    deleteAllConversationFromLocal: (operationID?: string) => Promise<WsResponse>;
    deleteAllMsgFromLocal: (operationID?: string) => Promise<WsResponse>;
    deleteAllMsgFromLocalAndSvr: (operationID?: string) => Promise<WsResponse>;
    markGroupMessageHasRead: (data: string, operationID?: string) => Promise<WsResponse>;
    markGroupMessageAsRead: (data: GroupMsgReadParams, operationID?: string) => Promise<WsResponse>;
    insertSingleMessageToLocalStorage: (data: InsertSingleMsgParams, operationID?: string) => Promise<WsResponse>;
    insertGroupMessageToLocalStorage: (data: InsertGroupMsgParams, operationID?: string) => Promise<WsResponse>;
    typingStatusUpdate: (data: TypingUpdateParams, operationID?: string) => Promise<WsResponse>;
    markC2CMessageAsRead: (data: MarkC2CParams, operationID?: string) => Promise<WsResponse>;
    markNotifyMessageHasRead: (conversationID: string, operationID?: string) => void;
    markMessageAsReadByConID: (data: MarkNotiParams, operationID?: string) => Promise<WsResponse>;
    clearC2CHistoryMessage: (data: string, operationID?: string) => Promise<WsResponse>;
    clearC2CHistoryMessageFromLocalAndSvr: (data: string, operationID?: string) => Promise<WsResponse>;
    clearGroupHistoryMessage: (data: string, operationID?: string) => Promise<WsResponse>;
    clearGroupHistoryMessageFromLocalAndSvr: (data: string, operationID?: string) => Promise<WsResponse>;
    getAllConversationList: (operationID?: string) => Promise<WsResponse>;
    getConversationListSplit: (data: SplitParams, operationID?: string) => Promise<WsResponse>;
    getOneConversation: (data: GetOneCveParams, operationID?: string) => Promise<WsResponse>;
    getConversationIDBySessionType: (data: GetOneCveParams, operationID?: string) => Promise<WsResponse>;
    getMultipleConversation: (data: string[], operationID?: string) => Promise<WsResponse>;
    deleteConversation: (data: string, operationID?: string) => Promise<WsResponse>;
    setConversationDraft: (data: SetDraftParams, operationID?: string) => Promise<WsResponse>;
    pinConversation: (data: PinCveParams, operationID?: string) => Promise<WsResponse>;
    getTotalUnreadMsgCount: (operationID?: string) => Promise<WsResponse>;
    getConversationRecvMessageOpt: (data: string[], operationID?: string) => Promise<WsResponse>;
    setConversationRecvMessageOpt: (data: isRecvParams, operationID?: string) => Promise<WsResponse>;
    searchLocalMessages: (data: SearchLocalParams, operationID?: string) => Promise<WsResponse>;
    addFriend: (data: AddFriendParams, operationID?: string) => Promise<WsResponse>;
    searchFriends: (data: SearchFriendParams, operationID?: string) => Promise<WsResponse>;
    getDesignatedFriendsInfo: (data: string[], operationID?: string) => Promise<WsResponse>;
    getRecvFriendApplicationList: (operationID?: string) => Promise<WsResponse>;
    getSendFriendApplicationList: (operationID?: string) => Promise<WsResponse>;
    getFriendList: (operationID?: string) => Promise<WsResponse>;
    setFriendRemark: (data: RemarkFriendParams, operationID?: string) => Promise<WsResponse>;
    checkFriend: (data: string[], operationID?: string) => Promise<WsResponse>;
    acceptFriendApplication: (data: AccessFriendParams, operationID?: string) => Promise<WsResponse>;
    refuseFriendApplication: (data: AccessFriendParams, operationID?: string) => Promise<WsResponse>;
    deleteFriend: (data: string, operationID?: string) => Promise<WsResponse>;
    addBlack: (data: string, operationID?: string) => Promise<WsResponse>;
    removeBlack: (data: string, operationID?: string) => Promise<WsResponse>;
    getBlackList: (operationID?: string) => Promise<WsResponse>;
    inviteUserToGroup: (data: InviteGroupParams, operationID?: string) => Promise<WsResponse>;
    kickGroupMember: (data: InviteGroupParams, operationID?: string) => Promise<WsResponse>;
    getGroupMembersInfo: (data: Omit<InviteGroupParams, "reason">, operationID?: string) => Promise<WsResponse>;
    getGroupMemberList: (data: GetGroupMemberParams, operationID?: string) => Promise<WsResponse>;
    getGroupMemberListByJoinTimeFilter: (data: GetGroupMemberByTimeParams, operationID?: string) => Promise<WsResponse>;
    searchGroupMembers: (data: SearchGroupMemberParams, operationID?: string) => Promise<WsResponse>;
    setGroupApplyMemberFriend: (data: SetMemberAuthParams, operationID?: string) => Promise<WsResponse>;
    setGroupLookMemberInfo: (data: SetMemberAuthParams, operationID?: string) => Promise<WsResponse>;
    getJoinedGroupList: (operationID?: string) => Promise<WsResponse>;
    createGroup: (data: CreateGroupParams, operationID?: string) => Promise<WsResponse>;
    setGroupInfo: (data: GroupInfoParams, operationID?: string) => Promise<WsResponse>;
    setGroupMemberNickname: (data: MemberNameParams, operationID?: string) => Promise<WsResponse>;
    getGroupsInfo: (data: string[], operationID?: string) => Promise<WsResponse>;
    joinGroup: (data: JoinGroupParams, operationID?: string) => Promise<WsResponse>;
    searchGroups: (data: SearchGroupParams, operationID?: string) => Promise<WsResponse>;
    quitGroup: (data: string, operationID?: string) => Promise<WsResponse>;
    dismissGroup: (data: string, operationID?: string) => Promise<WsResponse>;
    changeGroupMute: (data: ChangeGroupMuteParams, operationID?: string) => Promise<WsResponse>;
    changeGroupMemberMute: (data: ChangeGroupMemberMuteParams, operationID?: string) => Promise<WsResponse>;
    transferGroupOwner: (data: TransferGroupParams, operationID?: string) => Promise<WsResponse>;
    getSendGroupApplicationList: (operationID?: string) => Promise<WsResponse>;
    getRecvGroupApplicationList: (operationID?: string) => Promise<WsResponse>;
    acceptGroupApplication: (data: AccessGroupParams, operationID?: string) => Promise<WsResponse>;
    refuseGroupApplication: (data: AccessGroupParams, operationID?: string) => Promise<WsResponse>;
    signalingInvite: (data: RtcInvite, operationID?: string) => Promise<WsResponse>;
    signalingInviteInGroup: (data: RtcInvite, operationID?: string) => Promise<WsResponse>;
    signalingAccept: (data: RtcActionParams, operationID?: string) => Promise<WsResponse>;
    signalingReject: (data: RtcActionParams, operationID?: string) => Promise<WsResponse>;
    signalingCancel: (data: RtcActionParams, operationID?: string) => Promise<WsResponse>;
    signalingHungUp: (data: RtcActionParams, operationID?: string) => Promise<WsResponse>;
    getSubDepartment: (data: GetSubDepParams, operationID?: string) => Promise<WsResponse>;
    getDepartmentMember: (data: GetSubDepParams, operationID?: string) => Promise<WsResponse>;
    getUserInDepartment: (userID: string, operationID?: string) => Promise<WsResponse>;
    getDepartmentMemberAndSubDepartment: (departmentID: string, operationID?: string) => Promise<WsResponse>;
    getDepartmentInfo: (departmentID: string, operationID?: string) => Promise<WsResponse>;
    searchOrganization: (data: SearchInOrzParams, operationID?: string) => Promise<WsResponse>;
    resetConversationGroupAtType: (data: string, operationID?: string) => Promise<WsResponse>;
    setGroupMemberRoleLevel: (data: SetGroupRoleParams, operationID?: string) => Promise<WsResponse>;
    setGroupVerification: (data: SetGroupVerificationParams, operationID?: string) => Promise<WsResponse>;
    setGlobalRecvMessageOpt: (data: {
        opt: OptType;
    }, operationID?: string) => Promise<WsResponse>;
    newRevokeMessage: (data: string, operationID?: string) => Promise<WsResponse>;
    findMessageList: (data: FindMessageParams, operationID?: string) => Promise<WsResponse>;
    private wsSend;
    private loadRemoteCensorWords;
    private getPlatform;
    private createWs;
    private reconnect;
    private clearTimer;
    private heartbeat;
}
