import { ChatSDK } from '@tencentcloud/chat'; /** * TUILogin login 参数信息(未说明的参数均可忽略) * @interface LoginParams * @property {number} SDKAppID 云通信应用的 SDKAppID * @property {string} userID 用户 ID * @property {string} userSig 用户登录即时通信 IM 的密码,其本质是对 UserID 等信息加密后得到的密文。
具体生成方法请参见{@link https://cloud.tencent.com/document/product/269/32688 生成 UserSig} * @property {any} [TIMPush] uniapp 推送插件 默认 undefined * @property {any} [pushConfig] uniapp 推送插件配置信息 默认 undefined * @property {any} [TUIOfflinePush] uniapp 离线推送插件 默认 undefined(已废弃,推荐使用 TIMPush) * @property {any} [offlinePushConfig] uniapp 离线推送插件配置信息 默认 undefined(已废弃,推荐使用 TIMPush 对应的 pushConfig 参数) * @property {boolean} [useUploadPlugin] 是否使用上传插件 默认 false * @property {string} [fileUploadProxy] 图片、视频、文件上传代理地址 * @property {string} [fileDownloadProxy] 图片、视频、文件下载代理地址 * @property {string} [proxyServer] 设置 IM 服务代理服务 * @property {string} [framework] 单前使用的框架 vue2 或 vue3,请务必准确填写,用于分析 badcase */ interface LoginParams { SDKAppID: number; userID: string; userSig: string; TIMPush?: any; pushConfig?: any; TUIOfflinePush?: any; offlinePushConfig?: any; useUploadPlugin?: boolean; useProfanityFilterPlugin?: boolean; unlimitedAVChatRoom?: boolean; scene?: string; fileUploadProxy?: string; fileDownloadProxy?: string; proxyServer?: string; devMode?: boolean; framework?: string; } type func = (...args: any[]) => any; /** * 调用服务的参数信息 * @interface CallServiceParams * @property {string} serviceName 服务名 * @property {string} method 调用的方法名 * @property {any} params 业务参数 * @property {func} [callback] 回调函数 */ interface CallServiceParams { serviceName: string; method: string; params: Record; callback?: func; } /** * 扩展配置信息 * @interface ExtensionInfo * @property {number} weight 扩展组件权重,用于排序,weight 值越大显示位置越靠前 * @property {string} text 扩展组件显示的名称 * @property {string} icon 扩展组件图标 url * @property {object} data 自定义扩展信息 * @property {object} listener 回调函数 * @property {func} [listener.onClicked] 页面点击回调 * @property {func} [listener.onLongPressed] 页面长按回调 * @property {func} [listener.onTouched] 屏幕触摸回调 * @property {func} [listener.onSwiped] 页面左右滑动回调 */ interface ExtensionInfo { weight: number; text: string; icon: string; data: Record; listener: { onClicked?: func; onLongPressed?: func; onTouched?: func; onSwiped?: func; }; } interface ITUIService { onCall(method: string, params: object, callback?: func): void; } /** * @interface TUICore */ interface ITUICore { /** * 注册服务 * @function * @param {string} serviceName 服务名 * @param {ITUIService} service 服务实例 * @example * TUICore.registerService(TUIConstants.TUICall.SERVICE.NAME, this); */ registerService(serviceName: string, service: any): void; /** * 反注册服务 * @function * @param {string} serviceName 服务名 * @example * TUICore.unregisterService(TUIConstants.TUICall.SERVICE.NAME); */ unregisterService(serviceName: string): void; /** * 获取服务 * @function * @param {string} serviceName 服务名 * @example * TUICore.getService(TUIConstants.TUICall.SERVICE.NAME); */ getService(serviceName: string): ITUIService; /** * 调用服务 * @function * @param {CallServiceParams} options 调用服务的参数 * @example * TUICore.callService({ * serviceName: TUIConstants.TUICall.SERVICE.NAME, * method: TUIConstants.TUICall.SERVICE.METHOD.CALL, * params: { * callType: 1, * mediaType: 2 * }, * callback: (result) => { * // todo * }, * }); */ callService(options: CallServiceParams): void; /** * 注册扩展组件 * @function * @param {string} extensionID 扩展点 ID * @param {ITUIExtension} extension * @example * TUICore.registerExtension(TUIConstants.TUIChat.EXTENSION.INPUT_TOOLBAR, this); */ registerExtension(extensionID: string, extension: any): void; /** * 反注册扩展组件 * @function * @param {string} extensionID 扩展点 ID * @param {ITUIExtension} extension * @example * TUICore.unregisterExtension(TUIConstants.TUIChat.EXTENSION.INPUT_TOOLBAR, this); */ unregisterExtension(extensionID: string, extension: any): void; /** * 获取注册扩展组件列表 * @function * @param {string} extensionID 扩展点 ID * @param {object} [params] 扩展点参数 * @example * TUICore.getExtension(TUIConstants.TUIChat.EXTENSION.INPUT_TOOLBAR, { filterVoice: true }); */ getExtensionList(extensionID: string, params?: object): Array; /** * 注册广播监听 * @function * @param {string} eventName 事件名 * @param {string} subKey 事件的具体操作 * @param {ITUINotification} notification 事件监听者 * @example * TUICore.registerEvent(TUIConstants.TUILogin.EVENT.LOGIN_STATE_CHANGED, this); */ registerEvent(eventName: string, subKey: string, notification: any): void; /** * 反注册广播监听 * @function * @param {string} eventName 事件名 * @param {string} subKey 事件的具体操作 * @param {ITUINotification} notification 事件监听者 * @example * TUICore.unregisterEvent(TUIConstants.TUILogin.EVENT.LOGIN_STATE_CHANGED, this); */ unregisterEvent(eventName: string, subKey: string, notification: any): void; /** * 广播消息通知 * @function * @param {string} eventName 事件名 * @param {string} subKey 事件的具体操作 * @param {object} [params] 业务数据 * @example * TUICore.notifyEvent(TUIConstants.TUILogin.EVENT.LOGIN_STATE_CHANGED, TUIConstants.TUILogin.EVENT_SUB_KEY.USER_LOGIN_SUCCESS); */ notifyEvent(eventName: string, subKey: string, params?: object): void; } interface GetContextResult { chat: ChatSDK; SDKAppID: number; userID: string; userSig: string; } /** * @interface TUILogin */ interface ITUILogin { /** * 登录 Chat SDK * @function * @param {LoginParams} options 登录参数 * @example * TUILogin.login({ * SDKAppID: xxx, * userID: 'xxx', * userSig: 'xxx', * useUploadPlugin: true, // 使用文件上传插件 * }); */ login(options: LoginParams): Promise; /** * 登出 Chat SDK * @function * @example * let promise = TUILogin.logout(); * promise.then(() => { * // 登出成功后进行相关业务逻辑处理 * }) */ logout(): Promise; /** * 销毁 Chat SDK 实例,SDK 会先 logout,然后断开 WebSocket 长连接,并释放资源。 * @function * @example * let promise = TUILogin.destroy(); */ destroy(): Promise; /** * 设置 Chat SDK 日志级别 * @function * @param {number} level 日志级别 * - 0 普通级别,日志量较多,接入时建议使用 * - 1 release级别,SDK 输出关键信息,生产环境时建议使用 * - 2 告警级别,SDK 只输出告警和错误级别的日志 * - 3 错误级别,SDK 只输出错误级别的日志 * - 4 无日志级别,SDK 将不打印任何日志 * @example * TUILogin.setLogLevel(0) */ setLogLevel(level: number): void; /** * 获取 TUILogin 当前上下文信息 * @function * @example * const { chat, SDKAppID, userID, userSig } = TUILogin.getContext(); * // chat - Chat SDK 实例 * // SDKAppID - 即时通信应用 AppID * // userID - 用户 ID * // userSig - 用户登录前面 */ getContext(): GetContextResult; } declare const TUIConstants: { TUILogin: { EVENT: { LOGIN_STATE_CHANGED: string; }; EVENT_SUB_KEY: { USER_LOGIN_SUCCESS: string; USER_LOGOUT_SUCCESS: string; USER_KICKED_OFFLINE: string; USER_SIG_EXPIRED: string; }; }; TUIConversation: { SERVICE: { NAME: string; METHOD: { CREATE_CONVERSATION: string; HIDE_CONVERSATION_HEADER: string; }; }; EXTENSION: { CONV_POP_MENU: { EXT_ID: string; }; CONV_GROUP: { EXT_ID: string; }; }; }; TUIChat: { SERVICE: { NAME: string; METHOD: { UPDATE_MESSAGE_LIST: string; CLOSE_MESSAGE_POP_MENU: string; SEND_CUSTOM_MESSAGE: string; SEND_TEXT_MESSAGE: string; SET_CHAT_TYPE: string; UPDATE_MESSAGE_INFO: string; }; }; EXTENSION: { INPUT_MORE: { EXT_ID: string; }; MSG_POP_MENU: { EXT_ID: string; }; CHAT_HEADER: { EXT_ID: string; }; }; TYPE: { C2C: string; GROUP: string; CUSTOMER_SERVICE: string; ROOM: string; }; EVENT: { CHAT_STATE_CHANGED: string; CHAT_TYPE_CHANGED: string; }; EVENT_SUB_KEY: { CHAT_OPENED: string; CHANGE_SUCCESS: string; }; FEATURE: { DownloadFile: string; CopyMessage: string; DeleteMessage: string; RevokeMessage: string; QuoteMessage: string; ForwardMessage: string; TranslateMessage: string; VoiceToText: string; MultiSelection: string; EmojiReaction: string; InputEmoji: string; InputStickers: string; InputImage: string; InputVoice: string; InputVideo: string; InputFile: string; InputEvaluation: string; InputQuickReplies: string; InputMention: string; MessageSearch: string; ReadStatus: string; }; }; TUIGroup: { SERVICE: { NAME: string; METHOD: { CREATE_GROUP: string; OPEN_GROUP_MANAGEMENT: string; SELECT_GROUP_MEMBER: string; }; }; }; TUIContact: { SERVICE: { NAME: string; METHOD: { SELECT_FRIEND: string; }; }; EXTENSION: { CONTACT_LIST: { EXT_ID: string; }; }; }; TUISearch: { SERVICE: { NAME: string; METHOD: { SEARCH_GROUP: string; SEARCH_USER: string; SEARCH_FRIEND: string; SEARCH_GROUP_MEMBER: string; }; }; EXTENSION: { SEARCH_MORE: { EXT_ID: string; }; }; }; TUICalling: { SERVICE: { NAME: string; METHOD: { START_CALL: string; }; }; }; TUIRoom: { SERVICE: { NAME: string; }; }; TUIEmojiPlugin: { SERVICE: { NAME: string; METHOD: { CLOSE_EMOJI_DETAIL: string; }; }; }; TUITranslate: { EVENT: { LANGUAGE_CHANGED: string; }; EVENT_SUB_KEY: { CHANGE_SUCCESS: string; }; }; TUITranslatePlugin: { SERVICE: { NAME: string; }; }; TUIVoiceToTextPlugin: { SERVICE: { NAME: string; }; }; TUICustomerServicePlugin: { SERVICE: { NAME: string; METHOD: { ACTIVE_CONVERSATION: string; FILTER_MESSAGE: string; }; }; EXTENSION: {}; }; TUIPushPlugin: { SERVICE: { NAME: string; }; }; TUIChatbotPlugin: { SERVICE: { NAME: string; }; }; TUITheme: { EVENT: { THEME_CHANGED: string; }; EVENT_SUB_KEY: { CHANGE_SUCCESS: string; }; }; }; declare const tuiCore: ITUICore; declare const tuiLogin: ITUILogin; export { CallServiceParams, ExtensionInfo, LoginParams, TUIConstants, tuiCore as TUICore, tuiLogin as TUILogin, tuiCore as default, func };