import koffi from 'koffi';
import type { LibOpenIMSDK } from 'libOpenIMSDK';
import { UserModuleApi } from './modules/user';
import { InitConfig, LoginParams } from '../types/params';
import { BaseResponse, EmitProxy } from '../types/entity';
import Emitter from '../utils/emitter';
import { type FriendModuleApi } from './modules/friend';
import { type GroupModuleApi } from './modules/group';
import { type ConversationModuleApi } from './modules/conversation';
import { type MessageModuleApi } from './modules/message';
import { LoginStatus } from 'open-im-sdk-wasm';
import { SelfUserInfo } from 'open-im-sdk-wasm/lib/types/entity';
import { SetConversationExParams, SetFriendExParams, UploadFileParams } from 'open-im-sdk-wasm/lib/types/params';
import { type SignalingModuleApi } from './modules/signaling';
declare class OpenIMSDK extends Emitter implements UserModuleApi, FriendModuleApi, GroupModuleApi, ConversationModuleApi, MessageModuleApi, SignalingModuleApi {
    libOpenIMSDK: LibOpenIMSDK;
    baseCallbackProto: koffi.IKoffiCType;
    sendMessageCallbackProto: koffi.IKoffiCType;
    listenerCallback: koffi.IKoffiRegisteredCallback;
    lib: koffi.IKoffiLib;
    enterprise: boolean;
    constructor(libPath: string, emitProxy?: EmitProxy, enterprise?: boolean);
    registerFunc: () => void;
    generateEventResponse: (data: unknown, operationID?: string) => BaseResponse;
    baseCallbackWrap: <T>(resolve: (response: BaseResponse<T>) => void, reject: (response: BaseResponse<T>) => void) => koffi.IKoffiRegisteredCallback;
    sendMessageCallbackWrap: <T>(clientMsgID: string, resolve: (response: BaseResponse<T>) => void, reject: (response: BaseResponse<T>) => void) => koffi.IKoffiRegisteredCallback;
    asyncRetunWrap: <T>(operationID: string, data: unknown) => Promise<BaseResponse<T>>;
    setListener: () => void;
    initSDK: (param: InitConfig, opid?: string) => Promise<boolean>;
    login: (param: LoginParams, opid?: string) => Promise<BaseResponse<unknown>>;
    getLoginStatus: (opid?: string) => Promise<BaseResponse<LoginStatus>>;
    getLoginUser: (opid?: string) => Promise<BaseResponse<SelfUserInfo>>;
    logout: (opid?: string) => Promise<BaseResponse<unknown>>;
    unInitSDK: (opid?: string) => Promise<BaseResponse<unknown>>;
    setAppBackgroundStatus: (isInBackground: boolean, opid?: string) => Promise<BaseResponse<void>>;
    networkStatusChanged: (opid?: string) => Promise<BaseResponse<void>>;
    uploadFile: (params: UploadFileParams, opid?: string) => Promise<BaseResponse<{
        url: string;
    }>>;
    getSelfUserInfo: UserModuleApi['getSelfUserInfo'];
    setSelfInfo: UserModuleApi['setSelfInfo'];
    getUsersInfoWithCache: UserModuleApi['getUsersInfoWithCache'];
    subscribeUsersStatus: UserModuleApi['subscribeUsersStatus'];
    unsubscribeUsersStatus: UserModuleApi['unsubscribeUsersStatus'];
    getSubscribeUsersStatus: UserModuleApi['getSubscribeUsersStatus'];
    setGlobalRecvMessageOpt: UserModuleApi['setGlobalRecvMessageOpt'];
    acceptFriendApplication: FriendModuleApi['acceptFriendApplication'];
    addBlack: FriendModuleApi['addBlack'];
    addFriend: FriendModuleApi['addFriend'];
    checkFriend: FriendModuleApi['checkFriend'];
    deleteFriend: FriendModuleApi['deleteFriend'];
    getBlackList: FriendModuleApi['getBlackList'];
    setFriendsEx: (params: SetFriendExParams, opid?: string | undefined) => Promise<BaseResponse<void>>;
    getFriendApplicationListAsApplicant: FriendModuleApi['getFriendApplicationListAsApplicant'];
    getFriendApplicationListAsRecipient: FriendModuleApi['getFriendApplicationListAsRecipient'];
    getFriendList: FriendModuleApi['getFriendList'];
    getSpecifiedFriendsInfo: FriendModuleApi['getSpecifiedFriendsInfo'];
    refuseFriendApplication: FriendModuleApi['refuseFriendApplication'];
    removeBlack: FriendModuleApi['removeBlack'];
    searchFriends: FriendModuleApi['searchFriends'];
    setFriendRemark: FriendModuleApi['setFriendRemark'];
    createGroup: GroupModuleApi['createGroup'];
    joinGroup: GroupModuleApi['joinGroup'];
    inviteUserToGroup: GroupModuleApi['inviteUserToGroup'];
    getJoinedGroupList: GroupModuleApi['getJoinedGroupList'];
    searchGroups: GroupModuleApi['searchGroups'];
    getSpecifiedGroupsInfo: GroupModuleApi['getSpecifiedGroupsInfo'];
    setGroupInfo: GroupModuleApi['setGroupInfo'];
    getGroupApplicationListAsRecipient: GroupModuleApi['getGroupApplicationListAsRecipient'];
    getGroupApplicationListAsApplicant: GroupModuleApi['getGroupApplicationListAsApplicant'];
    acceptGroupApplication: GroupModuleApi['acceptGroupApplication'];
    refuseGroupApplication: GroupModuleApi['refuseGroupApplication'];
    getGroupMemberList: GroupModuleApi['getGroupMemberList'];
    getSpecifiedGroupMembersInfo: GroupModuleApi['getSpecifiedGroupMembersInfo'];
    searchGroupMembers: GroupModuleApi['searchGroupMembers'];
    setGroupMemberInfo: GroupModuleApi['setGroupMemberInfo'];
    getGroupMemberOwnerAndAdmin: GroupModuleApi['getGroupMemberOwnerAndAdmin'];
    getGroupMemberListByJoinTimeFilter: GroupModuleApi['getGroupMemberListByJoinTimeFilter'];
    kickGroupMember: GroupModuleApi['kickGroupMember'];
    changeGroupMemberMute: GroupModuleApi['changeGroupMemberMute'];
    changeGroupMute: GroupModuleApi['changeGroupMute'];
    transferGroupOwner: GroupModuleApi['transferGroupOwner'];
    dismissGroup: GroupModuleApi['dismissGroup'];
    quitGroup: GroupModuleApi['quitGroup'];
    isJoinGroup: GroupModuleApi['isJoinGroup'];
    getAllConversationList: ConversationModuleApi['getAllConversationList'];
    getConversationListSplit: ConversationModuleApi['getConversationListSplit'];
    getOneConversation: ConversationModuleApi['getOneConversation'];
    setConversationEx: (params: SetConversationExParams, opid?: string | undefined) => Promise<BaseResponse<void>>;
    getMultipleConversation: ConversationModuleApi['getMultipleConversation'];
    getConversationIDBySessionType: ConversationModuleApi['getConversationIDBySessionType'];
    getTotalUnreadMsgCount: ConversationModuleApi['getTotalUnreadMsgCount'];
    markConversationMessageAsRead: ConversationModuleApi['markConversationMessageAsRead'];
    setConversationDraft: ConversationModuleApi['setConversationDraft'];
    pinConversation: ConversationModuleApi['pinConversation'];
    setConversationRecvMessageOpt: ConversationModuleApi['setConversationRecvMessageOpt'];
    setConversationPrivateChat: ConversationModuleApi['setConversationPrivateChat'];
    setConversationBurnDuration: ConversationModuleApi['setConversationBurnDuration'];
    resetConversationGroupAtType: ConversationModuleApi['resetConversationGroupAtType'];
    hideConversation: ConversationModuleApi['hideConversation'];
    hideAllConversation: ConversationModuleApi['hideAllConversation'];
    clearConversationAndDeleteAllMsg: ConversationModuleApi['clearConversationAndDeleteAllMsg'];
    deleteConversationAndDeleteAllMsg: ConversationModuleApi['deleteConversationAndDeleteAllMsg'];
    setConversationMsgDestructTime: ConversationModuleApi['setConversationMsgDestructTime'];
    setConversationIsMsgDestruct: ConversationModuleApi['setConversationIsMsgDestruct'];
    createTextMessage: MessageModuleApi['createTextMessage'];
    createTextAtMessage: MessageModuleApi['createTextAtMessage'];
    createLocationMessage: MessageModuleApi['createLocationMessage'];
    createCustomMessage: MessageModuleApi['createCustomMessage'];
    createQuoteMessage: MessageModuleApi['createQuoteMessage'];
    createCardMessage: MessageModuleApi['createCardMessage'];
    createMergerMessage: MessageModuleApi['createMergerMessage'];
    createFaceMessage: MessageModuleApi['createFaceMessage'];
    createForwardMessage: MessageModuleApi['createForwardMessage'];
    createImageMessage: MessageModuleApi['createImageMessage'];
    createImageMessageFromFullPath: MessageModuleApi['createImageMessageFromFullPath'];
    createImageMessageByURL: MessageModuleApi['createImageMessageByURL'];
    createVideoMessage: MessageModuleApi['createVideoMessage'];
    createVideoMessageFromFullPath: MessageModuleApi['createVideoMessageFromFullPath'];
    createVideoMessageByURL: MessageModuleApi['createVideoMessageByURL'];
    createSoundMessage: MessageModuleApi['createSoundMessage'];
    createSoundMessageFromFullPath: MessageModuleApi['createSoundMessageFromFullPath'];
    createSoundMessageByURL: MessageModuleApi['createSoundMessageByURL'];
    createFileMessage: MessageModuleApi['createFileMessage'];
    createFileMessageFromFullPath: MessageModuleApi['createFileMessageFromFullPath'];
    createFileMessageByURL: MessageModuleApi['createFileMessageByURL'];
    getAdvancedHistoryMessageList: MessageModuleApi['getAdvancedHistoryMessageList'];
    getAdvancedHistoryMessageListReverse: MessageModuleApi['getAdvancedHistoryMessageListReverse'];
    sendMessage: MessageModuleApi['sendMessage'];
    sendMessageNotOss: MessageModuleApi['sendMessageNotOss'];
    findMessageList: MessageModuleApi['findMessageList'];
    revokeMessage: MessageModuleApi['revokeMessage'];
    typingStatusUpdate: MessageModuleApi['typingStatusUpdate'];
    deleteMessageFromLocalStorage: MessageModuleApi['deleteMessageFromLocalStorage'];
    deleteMessage: MessageModuleApi['deleteMessage'];
    deleteAllMsgFromLocalAndSvr: MessageModuleApi['deleteAllMsgFromLocalAndSvr'];
    deleteAllMsgFromLocal: MessageModuleApi['deleteAllMsgFromLocal'];
    searchLocalMessages: MessageModuleApi['searchLocalMessages'];
    insertGroupMessageToLocalStorage: MessageModuleApi['insertGroupMessageToLocalStorage'];
    insertSingleMessageToLocalStorage: MessageModuleApi['insertSingleMessageToLocalStorage'];
    setMessageLocalEx: MessageModuleApi['setMessageLocalEx'];
    sendGroupMessageReadReceipt: MessageModuleApi['sendGroupMessageReadReceipt'];
    getGroupMessageReaderList: MessageModuleApi['getGroupMessageReaderList'];
    signalingInviteInGroup: SignalingModuleApi['signalingInviteInGroup'];
    signalingInvite: SignalingModuleApi['signalingInvite'];
    signalingAccept: SignalingModuleApi['signalingAccept'];
    signalingReject: SignalingModuleApi['signalingReject'];
    signalingCancel: SignalingModuleApi['signalingCancel'];
    signalingHungUp: SignalingModuleApi['signalingHungUp'];
    signalingGetRoomByGroupID: SignalingModuleApi['signalingGetRoomByGroupID'];
    signalingGetTokenByRoomID: SignalingModuleApi['signalingGetTokenByRoomID'];
    signalingSendCustomSignal: SignalingModuleApi['signalingSendCustomSignal'];
    signalingCreateMeeting: SignalingModuleApi['signalingCreateMeeting'];
    signalingJoinMeeting: SignalingModuleApi['signalingJoinMeeting'];
    signalingUpdateMeetingInfo: SignalingModuleApi['signalingUpdateMeetingInfo'];
    signalingCloseRoom: SignalingModuleApi['signalingCloseRoom'];
    signalingGetMeetings: SignalingModuleApi['signalingGetMeetings'];
    signalingOperateStream: SignalingModuleApi['signalingOperateStream'];
}
export default OpenIMSDK;
