UNPKG

@openim/client-sdk

Version:

JavaScript/TypeScript Client SDK for OpenIM

133 lines (132 loc) 7.1 kB
import type { ApiResponse, HttpRequest } from '../types/entity'; import Emitter from '../utils/emitter'; import { CbEvents } from '../constant/callback'; import { LoginParams, SendWsReqParams, TriggerEventParams, UploadFileParams } from '../types/params'; import { MessageTrigger, RelationTrigger, GroupTrigger, UserTrigger, BusinessTrigger } from './internal'; import { ConversationApi, FriendApi, GroupApi, MessageApi, UserApi } from './api'; import { LoginStatus, Platform } from '../types/enum'; import type { CallbackEvent, DataOfEvent } from '../types/eventData'; declare class OpenIMSDK extends Emitter implements FriendApi, GroupApi, UserApi, MessageApi, ConversationApi { userID?: string; platform?: Platform; private token?; private apiAddr?; loginStatus: LoginStatus; isReconnected: boolean; private connectState; private wsManager?; messageTrigger: MessageTrigger; userTrigger: UserTrigger; groupTrigger: GroupTrigger; relationTrigger: RelationTrigger; businessTrigger: BusinessTrigger; private requestMap; constructor(); private generateHttpHeader; sendHttpRequest: <T>(req: HttpRequest) => Promise<T>; private handleWsConnected; private handleMessage; private handleGeneralWsResp; private handleReconnecting; private handleReconnectFailed; private handleReconnectSuccess; sendReqWaitResp: <T>({ data, reqIdentifier, operationID, }: SendWsReqParams) => Promise<T>; triggerEvent: ({ event, data, errCode, errMsg, operationID, }: TriggerEventParams) => void; login: (params: LoginParams, operationID?: string) => Promise<ApiResponse<any>>; getLoginStatus: (operationID?: string) => Promise<ApiResponse<LoginStatus>>; forceReconnect: (operationID?: string) => Promise<ApiResponse<any>>; logout: (operationID?: string) => Promise<ApiResponse<any>>; internalUploadFile: (file: File, operationID: string, onProgress?: (percent: number) => void) => Promise<{ url?: string; error?: Error; }>; uploadFile: (params: UploadFileParams, operationID?: string) => Promise<ApiResponse<{ url: string; }>>; private reset; getSelfUserInfo: UserApi['getSelfUserInfo']; setSelfInfo: UserApi['setSelfInfo']; getUsersInfo: UserApi['getUsersInfo']; subscribeUsersStatus: UserApi['subscribeUsersStatus']; unsubscribeUsersStatus: UserApi['unsubscribeUsersStatus']; getSubscribeUsersStatus: UserApi['getSubscribeUsersStatus']; acceptFriendApplication: FriendApi['acceptFriendApplication']; addBlack: FriendApi['addBlack']; addFriend: FriendApi['addFriend']; updateFriends: FriendApi['updateFriends']; checkFriend: FriendApi['checkFriend']; deleteFriend: FriendApi['deleteFriend']; getBlackList: FriendApi['getBlackList']; getFriendApplicationListAsApplicant: FriendApi['getFriendApplicationListAsApplicant']; getFriendApplicationListAsRecipient: FriendApi['getFriendApplicationListAsRecipient']; getFriendListPage: FriendApi['getFriendListPage']; getSpecifiedFriendsInfo: FriendApi['getSpecifiedFriendsInfo']; refuseFriendApplication: FriendApi['refuseFriendApplication']; removeBlack: FriendApi['removeBlack']; createGroup: GroupApi['createGroup']; joinGroup: GroupApi['joinGroup']; inviteUserToGroup: GroupApi['inviteUserToGroup']; getJoinedGroupListPage: GroupApi['getJoinedGroupListPage']; getSpecifiedGroupsInfo: GroupApi['getSpecifiedGroupsInfo']; setGroupInfo: GroupApi['setGroupInfo']; getGroupApplicationListAsRecipient: GroupApi['getGroupApplicationListAsRecipient']; getGroupApplicationListAsApplicant: GroupApi['getGroupApplicationListAsApplicant']; acceptGroupApplication: GroupApi['acceptGroupApplication']; refuseGroupApplication: GroupApi['refuseGroupApplication']; getGroupMemberList: GroupApi['getGroupMemberList']; getSpecifiedGroupMembersInfo: GroupApi['getSpecifiedGroupMembersInfo']; setGroupMemberInfo: GroupApi['setGroupMemberInfo']; kickGroupMember: GroupApi['kickGroupMember']; changeGroupMemberMute: GroupApi['changeGroupMemberMute']; changeGroupMute: GroupApi['changeGroupMute']; transferGroupOwner: GroupApi['transferGroupOwner']; dismissGroup: GroupApi['dismissGroup']; quitGroup: GroupApi['quitGroup']; getUsersInGroup: GroupApi['getUsersInGroup']; isJoinGroup: GroupApi['isJoinGroup']; createTextMessage: MessageApi['createTextMessage']; createTextAtMessage: MessageApi['createTextAtMessage']; createLocationMessage: MessageApi['createLocationMessage']; createCustomMessage: MessageApi['createCustomMessage']; createQuoteMessage: MessageApi['createQuoteMessage']; createCardMessage: MessageApi['createCardMessage']; createImageMessageByURL: MessageApi['createImageMessageByURL']; createImageMessageByFile: MessageApi['createImageMessageByFile']; createSoundMessageByURL: MessageApi['createSoundMessageByURL']; createSoundMessageByFile: MessageApi['createSoundMessageByFile']; createVideoMessageByURL: MessageApi['createVideoMessageByURL']; createVideoMessageByFile: MessageApi['createVideoMessageByFile']; createFileMessageByURL: MessageApi['createFileMessageByURL']; createFileMessageByFile: MessageApi['createFileMessageByFile']; createMergerMessage: MessageApi['createMergerMessage']; createFaceMessage: MessageApi['createFaceMessage']; createForwardMessage: MessageApi['createForwardMessage']; sendMessage: MessageApi['sendMessage']; sendMessageNotOss: MessageApi['sendMessageNotOss']; revokeMessage: MessageApi['revokeMessage']; getAdvancedHistoryMessageList: MessageApi['getAdvancedHistoryMessageList']; deleteMessage: MessageApi['deleteMessage']; deleteAllMsgFromLocalAndSvr: MessageApi['deleteAllMsgFromLocalAndSvr']; cancelMessageTasks: MessageApi['cancelMessageTasks']; getConversationListSplit: ConversationApi['getConversationListSplit']; getOneConversation: ConversationApi['getOneConversation']; setConversation: ConversationApi['setConversation']; getTotalUnreadMsgCount: ConversationApi['getTotalUnreadMsgCount']; markConversationMessageAsRead: ConversationApi['markConversationMessageAsRead']; changeInputStates: ConversationApi['changeInputStates']; getInputStates: ConversationApi['getInputStates']; } export declare const getSDK: () => ApiService; export type ApiService = FriendApi & GroupApi & UserApi & MessageApi & ConversationApi & { on: <E extends CbEvents>(event: E, fn: (data: CallbackEvent<DataOfEvent<E>>) => void) => unknown; off: <E extends CbEvents>(event: E, fn: (data: CallbackEvent<DataOfEvent<E>>) => void) => unknown; login: (params: LoginParams) => Promise<ApiResponse<any>>; getLoginStatus: () => Promise<ApiResponse<LoginStatus>>; forceReconnect: () => Promise<ApiResponse<any>>; logout: () => Promise<ApiResponse<any>>; uploadFile: (params: UploadFileParams) => Promise<ApiResponse<{ url: string; }>>; }; export type MixinApiService = OpenIMSDK; export {};