@polyv/interactions-receive-sdk
Version:
SDK for receiving interactions of Polyv
1,603 lines (1,584 loc) • 170 kB
TypeScript
// 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