@openim/client-sdk
Version:
JavaScript/TypeScript Client SDK for OpenIM
133 lines (132 loc) • 7.1 kB
TypeScript
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 {};