UNPKG

@polyv/interactions-receive-sdk

Version:

SDK for receiving interactions of Polyv

1,603 lines (1,584 loc) 170 kB
// Generated by dts-bundle v0.7.3 // Dependencies for this module: // ../../events // ../../@just4/ajax/interfaces // ../../@polyv/chat-sdk // ../../@polyv/rtas-sdk declare module '@polyv/interactions-receive-sdk' { /** * 互动功能 SDK 调用入口。 * @packageDocumentation */ import { updateConfig, updateRatsConfig } from '@polyv/interactions-receive-sdk/data-hub'; import { FeedBack } from '@polyv/interactions-receive-sdk/apps/feedback/feedback'; import { CheckIn } from '@polyv/interactions-receive-sdk/apps/check-in/check-in'; import { AnswerCard } from '@polyv/interactions-receive-sdk/apps/answer-card/answer-card'; import { PushCard } from '@polyv/interactions-receive-sdk/apps/push-card/push-card'; import { Lottery } from '@polyv/interactions-receive-sdk/apps/lottery/lottery'; import { Questionnaire } from '@polyv/interactions-receive-sdk/apps/questionnaire/questionnaire'; import { Announcement } from '@polyv/interactions-receive-sdk/apps/announcement/announcement'; import { RedEnvelope } from '@polyv/interactions-receive-sdk/apps/red-envelope/red-envelope'; import { RedpackRain } from '@polyv/interactions-receive-sdk/apps/redpack-rain/redpack-rain'; import { SeatTable } from '@polyv/interactions-receive-sdk/apps/seat-table/seat-table'; import { Vote } from '@polyv/interactions-receive-sdk/apps/vote/vote'; import { WelfareLottery } from '@polyv/interactions-receive-sdk/apps/welfare-lottery/welfare-lottery'; import { QuestionAnswer } from '@polyv/interactions-receive-sdk/apps/question-answer/question-answer'; import { Tuwen } from '@polyv/interactions-receive-sdk/apps/tuwen/tuwen'; import { Product } from '@polyv/interactions-receive-sdk/apps/product/product'; import { getApiToken } from '@polyv/interactions-receive-sdk/utils/get-token'; import { RequestAuthorizeMethod } from '@polyv/interactions-receive-sdk/utils/ajax-utils'; import { EnrollLottery } from '@polyv/interactions-receive-sdk/apps/enroll-lottery/enroll-lottery'; import { Topic } from '@polyv/interactions-receive-sdk/apps/topic/topic'; import { RushAnswer } from '@polyv/interactions-receive-sdk/apps/rush-answer/rush-answer'; import { AddressManagement } from '@polyv/interactions-receive-sdk/apps/address-management/address-management'; import { Order } from '@polyv/interactions-receive-sdk/apps/order/order'; export { updateRatsConfig, updateConfig, getApiToken, RequestAuthorizeMethod, FeedBack, CheckIn, AnswerCard, PushCard, Lottery, Questionnaire, Announcement, RedEnvelope, RedpackRain, SeatTable, Vote, WelfareLottery, Tuwen, Product, EnrollLottery, QuestionAnswer, Topic, RushAnswer, AddressManagement, Order, }; } declare module '@polyv/interactions-receive-sdk/data-hub' { /** * @internal * 公共数据存储 * @packageDocumentation */ import * as EventEmitter from 'events'; import { Config, DomainInfo, Store, UniversalParams } from '@polyv/interactions-receive-sdk/types'; import { SignatureMethod } from '@polyv/interactions-receive-sdk/types/encryption'; import { AuthorizeSignParams } from '@polyv/interactions-receive-sdk/utils/ajax-utils'; import { IARRatsConfig } from '@polyv/interactions-receive-sdk/types/rtas'; /** SDK 事件总线(区别于各模块实例内部的 eventEmitter,这里用于处理通知各模块同步配置等操作) */ export const SDKEventEmitter: EventEmitter; /** 请求token Promise 实例 */ export const privateDataHub: { getTokenPromise: Promise<void> | null; }; export function generateDefaultDomainInfo(): Required<DomainInfo>; /** 互动接收端 SDK 配置信息 */ export let store: Store; /** * 更新互动接收端 SDK 配置 * @param newConfig 新配置信息 */ export function updateConfig(newConfig: Config): void; /** * 更新互动接收端 SDK 埋点配置 * @param ratsConfig */ export function updateRatsConfig(ratsConfig: IARRatsConfig): Promise<void>; /** * 使用外部的 viewerApiToken getter 进行 token 更新 * @returns Promise */ export const asyncUpdateToken: () => Promise<void>; /** * 使用外部的 viewerApiToken getter 进行 x-auth-token 更新 * @returns Promise */ export const asyncUpdateXAuthToken: () => Promise<void>; export const asyncGetParamsSign: (params: UniversalParams, signatureMethod: SignatureMethod, secretKey?: string) => Promise<AuthorizeSignParams>; } declare module '@polyv/interactions-receive-sdk/apps/feedback/feedback' { /** * 反馈模块 * @packageDocumentation */ import App from '@polyv/interactions-receive-sdk/apps/app'; import { feedBackEvents } from '@polyv/interactions-receive-sdk/apps/feedback/events'; import { MsgHandlers } from '@polyv/interactions-receive-sdk/types'; import { SubmitInfo } from '@polyv/interactions-receive-sdk/apps/feedback/message'; /** 提交反馈信息接口响应 */ export interface SubmitInfoRes { code: number; data: unknown; status: string; success: boolean; error: string; } /** * 反馈SDK * @class */ export class FeedBack extends App { /** 反馈模块事件 */ events: typeof feedBackEvents; /** 反馈类型ID */ feedTypeId: number; /** 反馈类型描述 */ feedTypeLabel: string; /** 额外反馈的详情 */ feedDetailed: string; constructor(); /** * @internal * 模块对应所需的事件及处理方法 */ protected get msgHandlers(): MsgHandlers; /** * @internal * 处理提交反馈 */ protected onSubmit(): void; /** * 提交反馈信息 * @param params 提交反馈的具体信息数据 * @returns Promise<SubmitInfoRes> */ feedbackSave(params: SubmitInfo): Promise<SubmitInfoRes>; /** * 生成验证码 * @param params 请求生成验证码具体信息数据 * @returns Promise<SubmitInfoRes> */ getcode(): Promise<SubmitInfoRes>; /** * 清除反馈模块逻辑 */ destroy(): void; } } declare module '@polyv/interactions-receive-sdk/apps/check-in/check-in' { /** * 签到模块 * @packageDocumentation */ import App from '@polyv/interactions-receive-sdk/apps/app'; import { CheckInEvents } from '@polyv/interactions-receive-sdk/apps/check-in/events'; import { MsgHandlers } from '@polyv/interactions-receive-sdk/types'; import { CheckInMsg } from '@polyv/interactions-receive-sdk/apps/check-in/message'; import { CountdownCbData } from '@polyv/interactions-receive-sdk/types/countdown'; /** * 签到SDK * @class */ export class CheckIn extends App { /** 签到模块事件 */ events: typeof CheckInEvents; /** 当前签到总限时(秒) */ limitTime: number; /** 当前签到剩余时间 */ leftTime: number; /** 当前签到提示信息 */ message: string; /** 当前签到 ID */ checkinId: string; constructor(); /** * @internal * 模块对应所需的事件及处理方法 */ protected get msgHandlers(): MsgHandlers; /** * @internal * @param msg 初始化消息 */ protected onSliceIDHandler(msg: never): void; /** * @internal * 处理开始签到 * @param msg 签到消息 * @returns this */ protected onSignIn(msg: CheckInMsg): this; /** * @internal * 处理停止签到 * @param msg 停止签到消息 * @returns this */ protected onStopSignIn(): this; /** * 发送签到消息给后端服务 * @returns this */ toCheckIn(): this; getCheckInInfo(): Promise<{ code: number; data: Array<{ createTime: number; checked: 'Y' | 'N'; }>; }>; /** * 判断用户是否已签到 */ isUserCheckedIn(): Promise<boolean>; getForceCheckInEnabled(): boolean; /** * @internal * 初始化倒计时 * @param time 签到总时间 * @returns this */ protected initCountdown(time: number): this; /** * @internal * 处理倒计时更新回调 * @param res 倒计时回调数据 */ protected onCountdownUpdate(res: CountdownCbData): void; /** * @internal * 停止并销毁倒计时 * @returns this */ protected stopCountdown(): this; /** * 清除签到模块逻辑 */ destroy(): void; } } declare module '@polyv/interactions-receive-sdk/apps/answer-card/answer-card' { /** * 答题卡模块 * @packageDocumentation */ import App from '@polyv/interactions-receive-sdk/apps/app'; import { AnswerCardEvents } from '@polyv/interactions-receive-sdk/apps/answer-card/events'; import { MsgHandlers } from '@polyv/interactions-receive-sdk/types'; import { WsQuestionContentMsg, SDKQuestionContentMsg, QuestionItemTypes, QuestionTypes, StopQuestionMsg, AnswerQuestionRes, AnswerQuestionResCode, WsQuestionResultMsg, SDKQuestionDurationRes } from '@polyv/interactions-receive-sdk/apps/answer-card/message'; /** * 答题卡SDK * @class */ export class AnswerCard extends App { /** 答题卡模块事件 */ events: typeof AnswerCardEvents; /** 答题卡类型类型(普通/快速问答形式) */ questionTypes: typeof QuestionTypes; /** 题目类型列表 */ questionItemTypes: typeof QuestionItemTypes; /** 提交答案响应状态码常量列表 */ answerQuestionResCode: typeof AnswerQuestionResCode; /** 当前题目已提交的答案字符串 */ curSubmittedAnswer: string; /** * @internal * 是否正在提交数据 */ isSubmitting: boolean; /** * @internal * 当前题目数据 */ question: SDKQuestionContentMsg | undefined; constructor(); /** * @internal * 模块对应所需的事件及处理方法 */ protected get msgHandlers(): MsgHandlers; /** * @internal * 处理开始答题事件,封装题目信息 * @param msg 聊天室广播答题消息 */ protected onQuestionContent(msg: WsQuestionContentMsg): void; /** * @internal * 处理聊天室结束答题 * @param msg 聊天室结束答题消息 */ protected onStopQuestionContent(msg: StopQuestionMsg): void; /** * @internal * 处理聊天室答题结果消息 * @param msg 聊天室答题结果消息 */ protected onQuestionResult(msg: WsQuestionResultMsg): Promise<void>; /** * 提交当前题目答案 * @param answers 答案数组 * @returns 答题回调信息 */ answerQuestion(answers: string[]): Promise<AnswerQuestionRes>; /** * 获取服务器端题目剩余时间 * @returns 答题剩余时间 */ getServerTime(): Promise<SDKQuestionDurationRes>; } } declare module '@polyv/interactions-receive-sdk/apps/push-card/push-card' { /** * 卡片推送模块 * @packageDocumentation */ import App from '@polyv/interactions-receive-sdk/apps/app'; import { PushCardEvents } from '@polyv/interactions-receive-sdk/apps/push-card/events'; import { MsgHandlers, CustomEventHandlers, ApiResponseData } from '@polyv/interactions-receive-sdk/types'; import { PushCardMsg, SdkGetPushCardDataRes } from '@polyv/interactions-receive-sdk/apps/push-card/message'; export class PushCard extends App { /** 卡片推送模块事件 */ events: typeof PushCardEvents; constructor(); /** 模块对应所需的事件及处理方法 */ protected get msgHandlers(): MsgHandlers; /** 模块对应特殊事件处理方法 */ protected get customEventHandlers(): CustomEventHandlers; /** * 监听卡片推送相关消息 */ protected onNewsPushMsg(res: string): this; /** * 强制推送卡片 * @api */ forcePushCard(msg: PushCardMsg): void; /** * 处理卡片推送开始 * @param msg 开始消息 * @returns this */ protected onStart(msg: PushCardMsg): this; /** * 强制取消当前推送的卡片 * @api */ forceCancelCurrentPushCard(): void; /** * 处理卡片推送取消 * @param msg 取消消息 * @returns this */ protected onCancel(msg: PushCardMsg): this; /** * 获取卡片剩余时间 * @returns this */ getResidueTime(): this; /** * 关闭卡片 */ toClose(): void; /** * 获取推送卡片数据 * @returns Promise<SdkGetPushCardDataRes | undefined */ getPushCardData(cardId: string, channelId: string): Promise<SdkGetPushCardDataRes | undefined>; /** 卡片领取统计 */ obtainCard(channelId: string, cardId: string): Promise<ApiResponseData>; /** * 销毁实例,清除逻辑 */ destroy(): void; } } declare module '@polyv/interactions-receive-sdk/apps/lottery/lottery' { /** * 抽奖模块 * @packageDocumentation */ import App from '@polyv/interactions-receive-sdk/apps/app'; import { MsgHandlers, CustomEventHandlers, EnabledType } from '@polyv/interactions-receive-sdk/types'; import { LotteryEvents } from '@polyv/interactions-receive-sdk/apps/lottery/events'; import { LotteryStartMsg, OnLotteryMsg, WsLotteryEndMsg, SdkLotteryEndMsg, CollectInfo, DelayLotteryStartMsg, OnSliceIDMsg, LotteryStatus, AnXinLotteryListRes, AnXinLottery, DelayLotteryOverMsg, DelayLotteryEndMsg, LotteryListRes } from '@polyv/interactions-receive-sdk/apps/lottery/message'; import { LotteryResGroupData } from '@polyv/interactions-receive-sdk/apps/welfare-lottery/message'; /** 提交中奖人信息接口参数 */ export interface SubmitInfo { /** 抽奖ID */ lotteryId: string; /** 兑换码 */ winnerCode: string; /** 场次ID(可选,不传则从配置中获取) */ sessionId?: string; /** 中奖人信息字段 */ receiveInfo: CollectInfo[]; } /** 提交中奖人信息接口响应 */ export interface SubmitInfoRes { code: number; data: string; message: string; status: string; } /** 获取中奖名单方法参数 */ export interface GetWinnersParams { /** 抽奖ID */ lotteryId: string; /** 页码 */ pageNumber: number; } /** 中奖人信息 */ export interface Winner { /** 中奖人名称 */ viewerName: string; } /** * @internal * 获取中奖名单响应 */ export interface WinnerRes { /** 响应码 */ code: number; /** 状态 */ status: string; /** 状态提示 */ message: string; data: WinnerResData; } export interface WinnerResData { /** 中奖人列表 */ contents: Winner[]; /** 每页条数 */ pageSize: number; /** 总页数 */ totalPages: number; /** 页码 */ pageNumber: number; /** 是否为第一页 */ firstPage: boolean; /** 是否为最后一页 */ lastPage: boolean; /** 下一页页码 */ nextPageNumber: number; /** 上一页页码 */ prePageNumber: number; /** 总记录数 */ totalItems: number; } /** 获取场次中奖记录方法参数 */ export interface LotteryRecordParams { /** 频道号 */ channelId?: string; /** 场次ID */ sessionId?: string; /** 用户ID */ userId?: string; } /** * @internal * 场次中奖记录后端返回信息接口 */ export interface LotteryRecordRes { /** 响应码 */ code: number; /** 状态 */ status: string; /** 状态提示 */ message: string; /** 响应内容 */ data: LotteryRecordResItem[]; } export interface BasicLotteryRecordResItem { /** 频道号 */ channelId: string; /** 抽奖ID */ lotteryId: string; /** 奖品名称 */ prize: string; /** 是否已领取 */ received: boolean; /** 场次号 */ sessionId: string; /** 兑换码 */ winnerCode: string; /** 是否展示兑换码 */ showWinnerCode: EnabledType; } /** * @internal * 后端返回个人中奖记录 */ export interface LotteryRecordResItem extends BasicLotteryRecordResItem { /** 中奖信息字段(字符串) */ collectInfo: string; } /** 个人中奖记录接口响应 */ export interface SdkLotteryRecordRes { /** 响应码 */ code: number; /** 状态 */ status: string; /** 状态提示 */ message: string; /** 响应内容 */ data: SdkLotteryRecordResItem[]; } /** SDK 对外触发个人中奖记录 */ export interface SdkLotteryRecordResItem extends BasicLotteryRecordResItem { /** 中奖信息字段 */ collectInfo: CollectInfo[]; } /** * @internal * 剩余时间 websocket 响应数据体 */ export interface WsLotteryLeftTimeResData { /** 剩余时间 */ time: number; } /** * @internal * 剩余时间 websocket 响应 */ export interface WsLotteryLeftTimeRes { data: WsLotteryLeftTimeResData; } /** * @internal * 查询中奖者响应数据体 */ export interface CheckIsWinnerRes { data: CheckIsWinnerResBody; } /** * @internal * 查询中奖者响应数据体主体数据 */ export interface CheckIsWinnerResBody { /** 是否中奖 */ result: boolean; /** 个人中奖信息 */ data: CheckIsWinnerResData | null; } /** * @internal * 个人中奖信息 */ export interface CheckIsWinnerResData { /** 频道ID */ channelId: string; /** 场次ID */ sessionId: string; /** 抽奖ID */ lotteryId: string; /** 奖品名称 */ prize: string; /** 中奖兑换码 */ winnerCode: string; /** 信息收集字段 */ collectInfo: CollectInfo; } /** * 抽奖SDK * @class */ export class Lottery extends App { /** 抽奖模块事件 */ events: typeof LotteryEvents; /** 抽奖状态 */ lotteryStatus: typeof LotteryStatus; /** 安信 - 抽奖列表 */ lotteryList: Array<AnXinLottery>; /** 服务器时间 */ serverTime: number; constructor(); /** * @internal * 模块对应所需的事件及处理方法 */ protected get msgHandlers(): MsgHandlers; /** * @internal * 抽奖事件处理方法(新版抽奖) */ protected get customEventHandlers(): CustomEventHandlers; /** * @internal * 处理初始化消息中的抽奖信息 * @param msg 初始化消息 */ protected onSliceIDHandler(msg: OnSliceIDMsg): void; /** * @internal */ protected onLotteryStart(msg: LotteryStartMsg): void; /** * @internal */ protected onLottery(msg: OnLotteryMsg): void; protected triggerUpdateLotteryList(): void; /** * @internal */ protected onLotteryEnd(msg: WsLotteryEndMsg): void; /** * @internal * 触发抽奖结束消息 * @param msg 抽奖结束消息 * @returns this */ protected triggerLotteryEnd(msg: WsLotteryEndMsg): this; /** * @internal * 监听处理 lottery 事件 * @param data 消息数据 */ onCustomLotteryEvent(data: unknown): void; /** * @internal */ protected onDelayLotteryStart(msg: DelayLotteryStartMsg): void; /** * @internal */ protected onDelayLotteryOver(msg: DelayLotteryOverMsg): void; /** * @internal */ protected onDelayLotteryEnd(msg: DelayLotteryEndMsg): void; /** * 提交中奖人信息 * @param info 中奖人信息 * @returns Promise<SubmitInfoRes> */ submitInfo(info: SubmitInfo): Promise<SubmitInfoRes>; /** * 获取中奖人数据 * @param params 获取中奖人列表请求参数 * @returns Promise<WinnerResData> */ getWinnersList(params: GetWinnersParams): Promise<WinnerResData>; getLotteryResultGroup(lotteryId: string): Promise<LotteryResGroupData>; getLotteryGroupDetail(params: { lotteryId: string; groupId: string; pageNumber: number; pageSize: number; }): Promise<WinnerResData>; /** * 根据场次号查询用户中奖记录 * @param params 中奖记录调用参数 * @returns Promise<LotteryRecordRes> 中奖记录列表 */ getLotteryRecord(params?: LotteryRecordParams): Promise<SdkLotteryRecordRes>; /** * @internal * 获取当前抽奖剩余时间 */ getLeftTime(): Promise<WsLotteryLeftTimeResData>; /** * @internal * 查询服务端当前未关闭抽奖的个人中奖情况 * @returns 抽奖信息 */ getResult(): Promise<CheckIsWinnerResBody>; /** * 查询抽奖列表 * @returns 抽奖列表 * */ getLastLotteryList(): Promise<LotteryListRes>; /** * * 查询多轮抽奖列表(安信专用) * @returns 抽奖列表 */ getAnXinLotteryList(): Promise<AnXinLotteryListRes>; /** * * 处理抽奖结果事件(安信专用) * 对于 安信抽奖,收到lotteryEnd 事件时,挂件文案显示为抽奖中 */ protected triggerAnXinLotteryEnd(lotteryEndMsg: SdkLotteryEndMsg): void; /** * * 处理抽奖over(安信专用) * 对于 安信抽奖,收到LotteryOver事件时,该抽奖已经结束,挂件文案展示已结束 */ protected triggerAnXinLotteryOver(msg: DelayLotteryOverMsg): void; /** * 销毁实例,清除逻辑 */ destroy(): void; } } declare module '@polyv/interactions-receive-sdk/apps/questionnaire/questionnaire' { /** * 问卷模块 * @packageDocumentation * - 获取/提交问卷 * - 获取当前问卷题目列表。 * - 提交问卷。 * - 获取结果 * - 获取当前问卷结果。 */ import App from '@polyv/interactions-receive-sdk/apps/app'; import { QuestionnaireEvents } from '@polyv/interactions-receive-sdk/apps/questionnaire/events'; import { MsgHandlers } from '@polyv/interactions-receive-sdk/types'; import { AnswerItem, AnswerQuestionRes, AnswerQuestionResCode, OptionsAndTips, PersonAnswer, QuestionContent, QuestionItem, QuestionItemTypes, SocketAchievementMsg, SocketEndMsg, SocketQuestionItem, SocketRankResultMsg, SocketResultMsg, SocketStartMsg, UserRankResData } from '@polyv/interactions-receive-sdk/apps/questionnaire/message'; import { EvaluationQuestionData, EvaluationQuestionMockOptions, EvaluationQuestionnaireData, EvaluationQuestionRes } from '@polyv/interactions-receive-sdk/apps/questionnaire/evaluation'; export class Questionnaire extends App { events: typeof QuestionnaireEvents; questionItemTypes: typeof QuestionItemTypes; /** * @internal */ question: QuestionContent<QuestionItem>; answer: QuestionContent<AnswerItem>; /** 提交答案响应状态码常量 */ answerQuestionResCode: typeof AnswerQuestionResCode; questionnaireList: QuestionContent<QuestionItem>[]; constructor(); /** * @internal */ protected get msgHandlers(): MsgHandlers; /** * @internal * 设置问卷信息 * @param msg 问题信息 */ protected setQuestionContent(msg: SocketStartMsg): Promise<void>; /** * @internal * 关闭问卷答题 */ protected stopQuestion(msg: SocketEndMsg): void; getOssQuestion(ossUrl: string): Promise<Array<QuestionItem>>; /** * 获取问卷列表 * */ getQuestionnaireList(): Promise<QuestionContent<QuestionItem>[]>; /** * 获取考试问卷倒计时 * */ getQnTimer(questionnaireId: string): Promise<{ leftTime: number; }>; /** * 提交问卷 * @param answers 提交问卷答案, 字符串数组如['a','cd','测试'] * @param questionnaireId 问卷Id * @returns 状态码 */ answerQuestion(answers: string[], questionnaireId: string): Promise<AnswerQuestionRes>; /** * 提交风险测评问卷 * @param questionnaire 问卷信息 * @param answers 提交问卷答案, 字符串数组如['a','cd','测试'] * @param mockOptions 是否为模拟测评 * @returns 状态码 */ commitEvaluationAnswer(questionnaire: EvaluationQuestionnaireData, answers: string[], mockOptions: EvaluationQuestionMockOptions): Promise<EvaluationQuestionRes<EvaluationQuestionData> | undefined>; /** * 获取风险测评问卷内容 * @returns 风险测评问卷内容 */ getEvaluationContent(mockOptions: EvaluationQuestionMockOptions): Promise<EvaluationQuestionnaireData>; /** * @internal * 接收问卷结果 * @description 包含题目各个选项回答情况 */ protected receivedResult(msg: SocketResultMsg): Promise<void>; protected handlePersonResult(msg: SocketAchievementMsg): Promise<void>; /** * @internal * 获取个人答题信息 */ protected setPersonResult(msg: SocketAchievementMsg): Promise<void>; /** * @internal * 获取答题排行榜信息 */ protected setRankResult(msg: SocketRankResultMsg): Promise<void>; /** * @internal * 获取当前用户答题排行榜信息 */ protected setCurrentRankDetail(questionnaireId: string): Promise<UserRankResData>; /** * @internal * 接口获取个人答题选项 */ getPersonAnswer(questionnaireId: string): Promise<Array<PersonAnswer>>; /** * @internal * 将数组格式的 options 和 tips 转换为对象格式的数据。 */ static formatOptionsAndTipsToObject({ options, tips }: { options: string[]; tips?: string[]; }): OptionsAndTips; /** * @internal * 将对象格式的 options 和 tips 转换为数组格式的数据。 */ static formatOptionsAndTipsToArray<T extends OptionsAndTips>(data: T): { options: string[]; tips: string[]; }; /** * @internal * 将接口返回的题目列表数据格式化为 QuestionItem 格式。 */ static formatQuestionList(questions: Array<SocketQuestionItem>): Array<QuestionItem>; /** * @internal * 将接口返回的题目列表数据格式化为 AnswerItem 格式。 */ static formatAnswerList(questions: Array<SocketQuestionItem>): Array<AnswerItem>; } } declare module '@polyv/interactions-receive-sdk/apps/announcement/announcement' { /** * 公告模块 * @packageDocumentation * 实现公告功能: * - 获取公告信息 * - 移除公告信息 */ import App from '@polyv/interactions-receive-sdk/apps/app'; import { AnnouncementEvents } from '@polyv/interactions-receive-sdk/apps/announcement/events'; import { MsgHandlers, ApiResponseData } from '@polyv/interactions-receive-sdk/types'; import { AnnounceContent, SocketAnnounceMsg, SocketRemoveBulletinMsg, BulletinListResList } from '@polyv/interactions-receive-sdk/apps/announcement/message'; /** * 公告SDK * @class */ export class Announcement extends App { /** * 公告模块事件 */ events: typeof AnnouncementEvents; /** * 公告内容 */ content?: AnnounceContent; constructor(); /** * @internal */ protected get msgHandlers(): MsgHandlers; /** * @internal * 设置公告信息 * @param msg 问题信息 */ protected setAnnouncementContent(msg: SocketAnnounceMsg): void; /** * @internal * @title 关闭公告信息 */ protected clearAnnouncement(msg: SocketRemoveBulletinMsg): void; /** * @internal * 获取本地存储的公告内容 * @returns 公告内容 */ protected getStorageAnnounce(): AnnounceContent; /** * @internal * 将已读公告写入本地存储 * @param announcement 公告内容 */ protected addToStorage(announcement: AnnounceContent): void; /** * @internal * 将当前公告设为已读 */ protected markCurReaded(): void; /** * @internal * 移除本地存储的公告 */ protected removeFromStorage(): void; /** * 获取房间公告列表。 * @returns 房间公告列表。 */ getBulletinList(score?: number, size?: number): Promise<ApiResponseData<BulletinListResList>>; } } declare module '@polyv/interactions-receive-sdk/apps/red-envelope/red-envelope' { import App from '@polyv/interactions-receive-sdk/apps/app'; import { RedEnvelopeEvents } from '@polyv/interactions-receive-sdk/apps/red-envelope/events'; import { MsgHandlers } from '@polyv/interactions-receive-sdk/types'; import { RedEnvelopeDelayMsg, RedEnvelopeMsg, RedQuestionnaireData, RedQuestionnaireProcessData } from '@polyv/interactions-receive-sdk/apps/red-envelope/message'; import { OptionsAndTips } from '@polyv/interactions-receive-sdk/apps/questionnaire/message'; /** 领取红包接口返回数据 */ interface ReceiveResData { /** 领取ID */ logId: string; /** 用户ID */ userId: string; /** 红包ID */ redpackSendId: string; /** 频道ID */ channelId: string; /** 微信openId */ openid: string; /** 微信unoinId */ unoinId: string; /** 领取金额 */ amount: number; /** 红包类型 RAIN 红包雨 口令红包 PASSWORD 普通红包 OFFICIAL_NORMA; 积分红包雨 score_redpack_rain 积分口令红包 SCORE_PASSWORD 积分普通 SCORE_OFFICIAL_NORMAL */ redPackType: string; [key: string]: unknown; } /** 领取红包接口响应数据 */ interface ReceiveRes { /** 响应码 */ code: number; /** 状态 */ status: string; /** 状态提示 */ message: string; data?: ReceiveResData; } /** 查询红包状态接口响应数据 */ interface RedEnvelopeStatusRes { /** 响应码 */ code: number; /** 状态 */ status: string; /** 状态提示 */ message: string; /** 数据 */ data: unknown; } interface GetNewestResData { /** 发红包的用户头像 */ avatar: string; /** 祝福语 */ greeting: string; /** 发红包的用户昵称 */ nickname: string; /** 红包存量ID */ redCacheId: string; /** 红包ID */ redpackId: string; /** 定时红包发送时间 */ sendTime: number; /** 服务器时间 */ serverTime: number; /** 定时红包开关,Y:开启定时红包,N:关闭定时红包 */ timeEnabled: string; } interface GetNewestResError { code: number; desc: string; } interface GetNewestRes { /** 响应码 */ code: number; /** 状态 */ status: string; /** 状态提示 */ message: string; /** 红包信息 */ data?: GetNewestResData; /** 请求失败响应的错误信息 */ error?: GetNewestResError; } /** * @internal * 获取领取红包列表响应 */ export interface receiveListRes { /** 响应码 */ code: number; /** 状态 */ status: string; /** 状态提示 */ message: string; data: receiveList; } export interface receiveList { content: ReceiveResData; /** 当前页数 */ pageNumber: number; /** 总页数 */ totalPages: number; /** 每页条数 */ pageSize: number; } export class RedEnvelope extends App { /** 红包模块事件 */ events: typeof RedEnvelopeEvents; constructor(); /** 模块对应所需的事件及处理方法 */ protected get msgHandlers(): MsgHandlers; /** * 处理红包消息 * @param msg 红包消息 * @returns this */ protected onRedPaper(msg: RedEnvelopeMsg): this; /** * 处理延时红包信息 * @param msg 红包消息 */ protected onRedPaperDelay(msg: RedEnvelopeDelayMsg): this; /** * 查询红包状态 * @param redpackId 红包ID * @param redCacheId 红包缓存ID */ checkReceiveCache(redpackId: string, redCacheId: string): Promise<RedEnvelopeStatusRes>; /** * 领取红包 * @param redpackId 红包ID * @param redCacheId 红包缓存ID * @param password 口令,口令红包时需传 */ grabRedEnvelope(redpackId: string, redCacheId: string, password?: string): Promise<ReceiveRes>; /** * 查询当前是否有倒计时红包(红包挂件) */ getNewest(): Promise<GetNewestRes>; /** * 查询红包记录 */ getReceiveList(getReceiveListParams: { pageNumber: number; redPackType: string; }): Promise<receiveList>; submitQuestionnaireAnswer(params: { redpackId: string; questionId: string; questionGroupId: string; answer: string; }): Promise<RedQuestionnaireProcessData>; getQuestionnaireProcess(params: { redpackId: string; questionGroupId: string; }): Promise<Array<RedQuestionnaireProcessData>>; getQuestionnaireData(params: { redpackId: string; questionGroupId: string; }): Promise<RedQuestionnaireData>; /** * @internal * 将对象格式的 options 和 tips 转换为数组格式的数据。 */ static formatOptionsAndTipsToArray<T extends OptionsAndTips>(data: T): { options: string[]; tips: string[]; }; } export {}; } declare module '@polyv/interactions-receive-sdk/apps/redpack-rain/redpack-rain' { import { MsgHandlers } from '@polyv/interactions-receive-sdk/types'; import App from '@polyv/interactions-receive-sdk/apps/app'; import { RedpackRainEvents } from '@polyv/interactions-receive-sdk/apps/redpack-rain/events'; import { RedEnvelopeMsg } from '@polyv/interactions-receive-sdk/apps/red-envelope/message'; import { GrabRedpackParams, JoinRedpackRainParams, ReceiveRedpackRainResult, RedpackRainReceiveStatus } from '@polyv/interactions-receive-sdk/apps/redpack-rain/types'; /** * 红包雨核心类 */ export class RedpackRain extends App { events: typeof RedpackRainEvents; RedpackRainReceiveStatus: typeof RedpackRainReceiveStatus; /** 模块对应所需的事件及处理方法 */ protected get msgHandlers(): MsgHandlers; /** * 处理红包消息 * @param msg 红包消息 * @returns this */ protected onRedPaper(msg: RedEnvelopeMsg): this; joinRedpackRain(params: JoinRedpackRainParams): Promise<void>; /** * 领取红包 */ grabRedpack(params: GrabRedpackParams): Promise<ReceiveRedpackRainResult>; } } declare module '@polyv/interactions-receive-sdk/apps/seat-table/seat-table' { import { CustomEventHandlers, MsgHandlers } from '@polyv/interactions-receive-sdk/types'; import App from '@polyv/interactions-receive-sdk/apps/app'; import { SeatTableEvents } from '@polyv/interactions-receive-sdk/apps/seat-table/events'; import { AddSeatTableMsg, ViewerSeatInfo, Config, SeatLikeMsg } from '@polyv/interactions-receive-sdk/apps/seat-table/message'; import { SaveSeatInfoData, UserSeatInfo, SeatList, SeatInfo, ChannelConfig, EntryParams, ExtViewerSeatInfo, SeatTemplate } from '@polyv/interactions-receive-sdk/apps/seat-table/types'; /** * 坐席表核心类 */ export class SeatTable extends App { events: typeof SeatTableEvents; seatTemplate: typeof SeatTemplate; viewerSeat: ViewerSeatInfo; seatChannelConfig: ChannelConfig; constructor(config?: Config); /** * 坐席:用户入座 * @params entryParams 用户入座信息 * */ entrySeatTale(entryParams: EntryParams): Promise<ExtViewerSeatInfo>; /** * 观看页-更新坐席数据 * */ updateViewerSeat(data: ViewerSeatInfo): void; /** * 获取坐席频道设置 * */ getChannelSeatInfo(): Promise<ChannelConfig>; protected get customEventHandlers(): CustomEventHandlers; protected onOtherMsg(msg: string): this; /** * @internal * 模块对应所需的事件及处理方法 */ protected get msgHandlers(): MsgHandlers; onLike(msg: SeatLikeMsg): void; onAddSeating(msg: AddSeatTableMsg): void; onTopicOver(msg: AddSeatTableMsg): void; _getUserSeatInfo(): Promise<UserSeatInfo>; /** * 获取关注列表 * * */ getFollowList(params: { offset: number; size: number; type: string; }): Promise<Array<UserSeatInfo>>; /** * 获取用户的坐席信息 * @param type 用户身份 guest嘉宾 viewer观众 默认为观众 * @param seatViewerId 用户id */ getUserSeatInfo(type: string, seatViewerId?: string): Promise<UserSeatInfo>; _saveSeat(): Promise<number>; /** * 当前用户上坐 */ saveSeat(): Promise<SaveSeatInfoData>; /** * 获取坐席列表 */ getSeatList(): Promise<SeatList>; /** * 收藏用户 * @param customSeatInfo 被收藏的用户 * */ followUser(customSeatInfo: SeatInfo): Promise<void>; cancelFollowUser(customSeatInfo: SeatInfo): Promise<void>; /** * 点赞嘉宾 * */ clickLike(params: { userId: string; times: number; }): Promise<void>; } } declare module '@polyv/interactions-receive-sdk/apps/vote/vote' { /** * 投票模块 * @packageDocumentation */ import App from '@polyv/interactions-receive-sdk/apps/app'; import { MsgHandlers, CustomEventHandlers } from '@polyv/interactions-receive-sdk/types'; import { VoteEvents } from '@polyv/interactions-receive-sdk/apps/vote/events'; import { VoteStartMsg, VoteStopMsg, VoteResultMsg, VoteDeleteAllMsg, VoteDeleteMsg, UpdateVoteOrderMsg, VoteListRes, VoteListItem, ToVoteRes, SliceIdMsg } from '@polyv/interactions-receive-sdk/apps/vote/message'; interface VotingList { [key: string]: VoteListItem; } export class Vote extends App { /** 投票模块事件 */ events: typeof VoteEvents; curVotedList: Array<string>; /** 当前在进行的投票活动 */ votingList: VotingList; constructor(); /** * @internal * 模块对应所需的事件及处理方法 */ protected get msgHandlers(): MsgHandlers; /** 模块对应所需的事件及处理方法 */ protected get voteMsgHandlers(): MsgHandlers; /** 模块对应所需的事件及处理方法 */ protected get customEventHandlers(): CustomEventHandlers; onVoteMsg(res: string): this; /** * @internal * 处理初始化消息中的投票信息 * @param msg 初始化消息 */ protected inVoteSliceID(msg: SliceIdMsg): void; /** * 处理投票开始事件 * @param msg 聊天室广播投票开始消息 */ protected onVoteStart(msg: VoteStartMsg): void; /** * 处理投票结束事件 * @param msg 聊天室广播投票结束消息 */ protected onVoteStop(msg: VoteStopMsg): void; /** * 处理投票结果事件 * @param msg 聊天室广播投票结果消息 */ protected onVoteResult(msg: VoteResultMsg): void; /** * 处理清空投票事件 * @param msg 聊天室广播清空投票消息 */ protected onVoteDeleteAll(msg: VoteDeleteAllMsg): void; /** * 处理删除投票事件 * @param msg 聊天室广播投票删除消息 */ protected onVoteDelete(msg: VoteDeleteMsg): void; protected onVoteChangeOrder(msg: UpdateVoteOrderMsg): void; /** * 给选项投票 * @param id 投票ID */ toVote(id: string): Promise<ToVoteRes>; /** * 获取已投票列表 * */ getVotedList(): Array<string>; /** * 新增 已投票的id * */ pushVotedList(id: string): void; /** * 获取投票选项列表 */ getVoteList(): Promise<VoteListRes | undefined>; } export {}; } declare module '@polyv/interactions-receive-sdk/apps/welfare-lottery/welfare-lottery' { /** * 条件抽奖模块 * @packageDocumentation */ import App from '@polyv/interactions-receive-sdk/apps/app'; import { WelfareLotteryEvents } from '@polyv/interactions-receive-sdk/apps/welfare-lottery/events'; import { WelfareLotteryStartMsg, WelfareLotteryQuestionnaireStartSocketMsg, WelfareLotterytEndMsg, TaskConditionResData, LotteryPrizeResData, LotteryWinListParams, LotteryWinListResData, LotteryDetailResData, GetWinnersParams, WinnerResData, SubmitInfo, SubmitInfoRes, WatchTimeParams, LotteryCondition, LotteryQuestionStatus, WelfareLotteryQuestionStartMsg, QuestionMsg, AnsweredResult, LotteryResGroupData, QuestionnaireCompletionStatus } from '@polyv/interactions-receive-sdk/apps/welfare-lottery/message'; import { LotteryStartMsg } from '@polyv/interactions-receive-sdk/apps/lottery/message'; import { MsgHandlers, ApiResponseData, CustomEventHandlers, PendantListResData } from '@polyv/interactions-receive-sdk/types'; export class WelfareLottery extends App { /** 条件抽奖模块事件 */ events: typeof WelfareLotteryEvents; /** 当前最新一场条件抽奖ID */ lotteryId: string; /** 当前最新一场问卷抽奖的问卷ID */ questionnaireId: string; /** 条件抽奖类型 */ lotteryCondition: typeof LotteryCondition; constructor(); /** * @internal * 模块对应所需的事件及处理方法 */ protected get msgHandlers(): MsgHandlers; protected get customEventHandlers(): CustomEventHandlers; protected onOtherMsg(msg: string): this; /** * 条件抽奖活动开始 */ protected onStart(msg: WelfareLotteryStartMsg): this; /** * 条件抽奖活动结束 */ protected onEnd(msg: WelfareLotterytEndMsg): this; /** * 获取挂件列表 * @returns Promise<PendantListResData | undefined> */ getPendantList(): Promise<PendantListResData | undefined>; /** * 获取任务完成情况 * @param lotteryId 抽奖ID,选传,默认为最新的一次抽奖ID * @returns Promise<TaskConditionResData | undefined> */ getTaskCondition(lotteryId?: string): Promise<TaskConditionResData | undefined>; /** * 查询中奖奖品 * @param lotteryId 抽奖ID,选传,默认为最新的一次抽奖ID * @returns Promise<LotteryPrizeResData | undefined> */ getLotteryPrize(lotteryId?: string): Promise<LotteryPrizeResData | undefined>; getLotteryResultGroup(lotteryId: string): Promise<LotteryResGroupData>; getLotteryGroupDetail(params: { lotteryId: string; groupId: string; pageNumber: number; pageSize: number; }): Promise<WinnerResData>; /** * 判断能否满足评论抽奖条件。(观看页或外部接入时,发言使用) * @params comment * */ isBooleanToCommentLottery(comment: string): Promise<boolean>; /** * SDK-UI 调用发送评论,参与抽奖 * @param comment 评论内容 */ sendComment(comment: string): Promise<void>; /** * 完成评论抽奖 * */ finishCommentLottery(): Promise<void>; /** * 查询中奖历史 * @param params 查询中奖历史请求参数,选传 * @returns Promise<LotteryWinListResData|undefined> */ getLotteryWinList(params?: LotteryWinListParams): Promise<LotteryWinListResData | undefined>; /** * 获取抽奖活动信息 * @param lotteryId 抽奖ID,选传,默认为当前最新一场抽奖ID * @returns Promise<LotteryDetailResData | undefined> */ getWelfareLotteryDetail(lotteryId?: string): Promise<LotteryDetailResData | undefined>; /** * 获取中奖用户列表 * @param params 获取中奖人列表请求参数,选传 * @returns Promise<WinnerResData> */ getWinnersList(params?: GetWinnersParams): Promise<WinnerResData>; /** * 提交中奖人信息 * @param info 中奖人信息 * @returns Promise<SubmitInfoRes> */ submitInfo(info: SubmitInfo): Promise<SubmitInfoRes>; /** * 保存观看时长 */ saveWatchTime(params: WatchTimeParams): Promise<ApiResponseData>; protected onQuestionStart(msg: WelfareLotteryQuestionStartMsg): void; /** 问卷发起抽奖 */ protected onQuestionnaireStart(msg: WelfareLotteryQuestionnaireStartSocketMsg): void; protected onAddNewQuestion(msg: QuestionMsg): void; protected onOpenQuestionPrize(msg: WelfareLotteryQuestionStartMsg): void; protected onOpenQuestionnairePrize(msg: LotteryStartMsg): void; protected onQuestionEnd(): void; /** * 观众开始答题 * */ startQuestion(): Promise<{ questionId: string; }>; /** * 观众提交-问题答案 * */ sendQuestionAnswer(params: { answer: string; questionId: string; }): Promise<AnsweredResult>; /** * 获取当前问卷抽奖信息 * */ getLotteryQuestionStatus(): Promise<LotteryQuestionStatus>; /** * 获取当前问卷抽奖信息 * */ getLastAnsweredResult(): Promise<AnsweredResult>; /** 获取当前抽奖问卷完成情况 */ getLotteryQuestionnaireCompletionStatus(): Promise<QuestionnaireCompletionStatus>; /** * 销毁实例,清除逻辑 */ destroy(): void; } } declare module '@polyv/interactions-receive-sdk/apps/question-answer/question-answer' { import App from '@polyv/interactions-receive-sdk/apps/app'; import { FiltersParams, QuestionAnswerMsg } from '@polyv/interactions-receive-sdk/apps/question-answer/message'; import { QuestionAnswerEvents } from '@polyv/interactions-receive-sdk/apps/question-answer/events'; import { MsgHandlers } from '@polyv/interactions-receive-sdk/types'; /** * 问答。 */ export class QuestionAnswer extends App { events: typeof QuestionAnswerEvents; constructor(); protected bindSDKEventEmitter(): void; protected get msgHandlers(): MsgHandlers; /** * 获取问答列表数据。 * @param {Object} filters 请求参数。 * @param [filters.id=-1] 从哪个id开始获取。如果没传,则表示获取最近的数据。 * @param [filters.size=10] 每次获取多少条数据。 * @param [filters.order=0] 获取数据的顺序。0表示id从大到小(往下加载);1表示id从小到大(往上加载)。 * @param [filters.getSelf=0] 是否只获取与自己相关的问答。1代表是,0代表不是。 * @param [filters.getCurrent=0] 返回的列表是否包括所传id对应的数据。1表示包括,0表示不包括。 */ fetchList(filters: FiltersParams): Promise<{ data: Array<QuestionAnswerMsg>; }>; protected handleSocketAnswer(msg: QuestionAnswerMsg): void; protected handleSocketDelAnswer(msg: QuestionAnswerMsg): void; /** * 发送问题。 * @param {String} content 问题内容。 */ sendQuestion(content: string): Promise<MessageEvent>; } } declare module '@polyv/interactions-receive-sdk/apps/tuwen/tuwen' { /** * 图文模块 * @packageDocumentation */ import App from '@polyv/interactions-receive-sdk/apps/app'; import { MessageType, TuwenContent, SocketUpdateEvent, SocketDeleteEvent, SocketStickyEvent, SocketUserEvent, SocketEventTypes, MessageItem, UserInfoBase } from '@polyv/interactions-receive-sdk/apps/tuwen/message'; import { MsgHandlers } from '@polyv/interactions-receive-sdk/types'; export class Tuwen extends App { /** 相关聊天室事件 */ events: SocketEventTypes; /** 列表消息类型, 默认为图文 */ messageType: string; /** 消息流 */ messages: Array<MessageItem>; /** 顶部消息流 */ topMessages: Array<MessageItem>; /** 主持人信息 */ masterUserInfo: UserInfoBase; /** 消息数量 */ total: number; constructor(); /** * 清空聊天消息 */ clearMessageList(): void; /** 模块对应所需的事件及处理方法 */ protected get msgHandlers(): MsgHandlers; /** * 获取直播列表信息 (包含主持人信息) * @param {string} startId 数据起始 ID, startId为空则表示初始化数据,默认请求前十条数据 * @return {Promise<any>} */ getTuwenInfo(startId?: string): Promise<TuwenContent>; /** * 修改列表图文类型 * @param {string} type 图文类型 * @return {Promise<any>} */ changeMessageType(type: MessageType): Promise<string>; /** 创建/编辑数据 */ _updateMessage(msg: SocketUpdateEvent): void; /** 删除数据 */ _delMessage(msg: SocketDeleteEvent): void; /** * 添加/取消置顶消息 * 通过top判断消息类型, N为移除, Y为添加 */ _updateStickyMessage(msg: SocketStickyEvent): void; /** 更新用户信息 */ _updateUserInfo(msg: SocketUserEvent): void; /** 查找id对应消息列表中所在索引 */ getMessageIndexById(id: number): { topMessageIndex: number; messageIndex: number; }; } } declare module '@polyv/interactions-receive-sdk/apps/product/product' { import { CustomEventHandlers, MsgHandlers } from '@polyv/interactions-receive-sdk/types'; import App from '@polyv/interactions-receive-sdk/apps/app'; import { ProductEvents } from '@polyv/interactions-receive-sdk/apps/product/events'; import { GetProductListParams, ProductLinkType, ProductListData, ProductMessageStatus, ProductType, ProductData, GetProductLabelListParams, ProductLabelListData, GetProductListByTagParams, ProductListPageData, ProductExplainStatus } from '@polyv/interactions-receive-sdk/apps/product/types'; import { trackLogParams } from '@polyv/interactions-receive-sdk/types/rtas'; /** * 商品库核心类 */ export class Product extends App { events: typeof ProductEvents; ProductType: typeof ProductType; ProductLinkType: typeof ProductLinkType; ProductMessageStatus: typeof ProductMessageStatus; ProductExplainStatus: typeof ProductExplainStatus; constructor(); /** 模块对应所需的事件及处理方法 */ protected get msgHandlers(): MsgHandlers; protected get customEventHandlers(): CustomEventHandlers; /** * 解析商品的扩展字段 */ static parseProductExt(data: ProductData): void; /** * 获取商品库的商品列表 */ getProductList(params?: GetProductListParams): Promise<ProductListData>; /** * 获取商品库的商品列表 */ getProductListByShowId(params?: GetProductListParams): Promise<ProductListData>; getProductListByTagId(params: GetProductListByTagParams): Promise<ProductListPageData>; /** * 获取商品标签列表 */ getProductLabelList(params?: GetProductLabelListParams): Promise<ProductLabelListData>; clickBuyProduct(good: ProductData, productLinkJumpTipEnabled: 'Y' | 'N'): Promise<void>; /** 关闭商品库卡片 */ closeProductBubble(): void; /** * 获取当前正在推送的商品,主要用于刷新页面后展示 */ getCurrentPushingProduct(): Promise<ProductData | undefined>; /** * 根据商品 id 获取商品信息 * @param productId 商品 id */ getProductById(productId: string | number): Promise<ProductData>; getProductExplainEnabled(): boolean; /** * 生成商品讲解回放页地址 * @param params * @returns {string} */ generateProductExplainPageUrl<T extends object = object>(params?: T): string | null; trackLog(data: trackLogParams): Promise<void>; } } declare module '@polyv/interactions-receive-sdk/utils/get-token' { export interface GetApiTokenOption { channelId: string; viewerId: string; } export interface GetApiTokenReturn { token: string; } export const getApiToken: (options: GetApiTokenOption) => Promise<GetApiTokenReturn>; export const getTokenPromiseHandler: (updateToken?: boolean) => Promise<void>; } declare module '@polyv/interactions-receive-sdk/utils/ajax-utils' { import { IAJAXOptions } from '@just4/ajax/interfaces'; import { ApiResponseData, UniversalParams } from '@polyv/interactions-receive-sdk/types'; import { EncryptResponseType, SignatureMethod } from '@polyv/interactions-receive-sdk/types/encryption'; /** * 请求授权方式 */ export enum RequestAuthorizeMethod { /** 通过 viewerApiToken 授权 */ Token = "token", /** 通过签名授权 */ Sign = "sign" } /** * sign 签名参数 */ export interface AuthorizeSignParams { appId?: string; sign: string; timestamp: number; xbody?: string; } export type AsyncRequestParams<P extends UniversalParams> = P & Partial<AuthorizeSignParams>; export interface AsyncRequestGeneratorOptions<P extends UniversalParams> { /** 触发请求 */ asyncRequest: (params: AsyncRequestParams<P>, ajaxOptions?: IAJAXOptions) => Promise<unknown>; /** 请求参数 */ params: P; /** post请求入参加密 */ postEncrypt?: boolean; /** 授权方式 */ requestAuthorizeMethod?: RequestAuthorizeMethod; /** 使用 token 方式授权时的字段名,默认:token */ tokenField?: string; /** 使用 特定的secretKey 进行签名 */ secretKey?: string; /** 签名方式 */ signatureMethod?: SignatureMethod; /** 是否添加放重放 */ signatureNonce?: boolean; /** 返回数据加密类型 */ encryptResponseType?: EncryptResponseType; /** 是否使用互动密钥来解密,默认:false */ interactDecrypt?: boolean; } /** * token 方式授权请求 */ export const async