UNPKG

@polyv/live-watch-sdk

Version:

SDK for creating a live stream viewing page using Polyv's services.

2,014 lines (1,907 loc) 752 kB
import { Ask } from '@polyv/chat-sdk'; import { ChannelProductPushingStatusInfo as ChannelProductPushingStatusInfo_2 } from '@polyv/product-sdk'; import { Chat } from '@polyv/chat-sdk'; import { ChatConfig } from '@polyv/chat-sdk'; import { ChatImage } from '@polyv/chat-image-upload-sdk'; import { ChatImageUpload } from '@polyv/chat-image-upload-sdk'; import Danmu from '@polyv/player-module/lib/danmu'; import { DanmuAddOptions } from '@polyv/player-module/lib/danmu'; import { EmotionParser } from '@polyv/emotion-sdk'; import { EventEmitter } from '@polyv/utils/es/event'; import { EventEmitter as EventEmitter_2 } from '@utils-ts/event'; import { EventRelationsType } from '@polyv/utils/es/event'; import { GetAppSignFn } from '@polyv/request-plugin-authorize-app-sign'; import { GetOrderDetailParams } from '@polyv/interactions-receive-sdk/apps/order/type'; import { AddressManagement as IarAddressManagement } from '@polyv/interactions-receive-sdk'; import { Announcement as IarAnnouncement } from '@polyv/interactions-receive-sdk'; import { AnswerCard as IarAnswerCard } from '@polyv/interactions-receive-sdk'; import { CheckIn as IarCheckIn } from '@polyv/interactions-receive-sdk'; import { EnrollLottery as IarEnrollLottery } from '@polyv/interactions-receive-sdk'; import { FeedBack as IarFeedBack } from '@polyv/interactions-receive-sdk'; import { Lottery as IarLottery } from '@polyv/interactions-receive-sdk'; import { Order as IarOrder } from '@polyv/interactions-receive-sdk'; import { Product as IarProduct } from '@polyv/interactions-receive-sdk'; import { PushCard as IarPushCard } from '@polyv/interactions-receive-sdk'; import { QuestionAnswer as IarQuestionAnswer } from '@polyv/interactions-receive-sdk'; import { Questionnaire as IarQuestionnaire } from '@polyv/interactions-receive-sdk'; import { RedEnvelope as IarRedpack } from '@polyv/interactions-receive-sdk'; import { RedpackRain as IarRedpackRain } from '@polyv/interactions-receive-sdk'; import { RushAnswer as IarRushAnswer } from '@polyv/interactions-receive-sdk'; import { SeatTable as IarSeatTable } from '@polyv/interactions-receive-sdk'; import { Topic as IarTopicPK } from '@polyv/interactions-receive-sdk'; import { Tuwen as IarTuwen } from '@polyv/interactions-receive-sdk'; import { Vote as IarVote } from '@polyv/interactions-receive-sdk'; import { WelfareLottery as IarWelfareLottery } from '@polyv/interactions-receive-sdk'; import { IDirection } from '@polyv/player-module/lib/danmu'; import { Config as InteractionReceiveConfig } from '@polyv/interactions-receive-sdk/types'; import { IRequestOptions } from '@just4/request/types'; import { IXhrRequestResult } from '@just4/request/adapter/xhr'; import LiveLowLatencyPlayerModule from '@polyv/live-low-latency-player'; import { NormalProductData } from '@polyv/product-sdk'; import { OrderDetailData } from '@polyv/interactions-receive-sdk/apps/order/type'; import { PlaybackOutlineContentItem } from '@polyv/live-watch-ai-sdk'; import { PlaybackOutlineData } from '@polyv/live-watch-ai-sdk'; import PlayerMarquee from '@polyv/player-module/lib/marquee'; import PlayerWatermark from '@polyv/player-module/lib/watermark'; import { PlvSocket } from '@polyv/chat-sdk'; import { PlvSocketConfig } from '@polyv/chat-sdk'; import { Address as PolyvAddress } from '@polyv/product-sdk'; import { Order as PolyvOrder } from '@polyv/product-sdk'; import { Payment as PolyvPayment } from '@polyv/product-sdk'; import { Product as PolyvProduct } from '@polyv/product-sdk'; import { PolyvRequest } from '@polyv/request-core'; import { ProductConfig } from '@polyv/product-sdk'; import { ProjectName } from '@polyv/rtas-sdk'; import { RequestOptions } from '@polyv/request-core'; import { EventCata as RtasTrackEventCata } from '@polyv/rtas-sdk'; import { EventType as RtasTrackEventType } from '@polyv/rtas-sdk'; import { SignatureMethod } from '@polyv/request-plugin-authorize-app-sign'; import { updateConfig } from '@polyv/interactions-receive-sdk'; import { updateRatsConfig } from '@polyv/interactions-receive-sdk'; import { WatchMobileUI } from '@polyv/white-board-ui/lib/watch-mobile'; import { WatchNormalUI } from '@polyv/white-board-ui/lib/watch-normal'; import * as WhiteBoardSdkTypes from '@polyv/white-board-sdk'; export declare interface AccountInfo { /** 账号 id */ accountId: string; /** 公司名称 */ companyName: string; /** 公司 logo */ companyLogo: string; /** 是否被禁用 */ isForbidden: boolean; } declare type AddPlaybackSubtitleOptionsType = ReplaySubtitleItem | playbackMultipleSubtitleOptions; export declare enum AdvertHrefType { COMMON = "common", MULTI_PLATFORM = "multiplatform" } declare type AfterResponse<Options extends ApiOptions = ApiOptions> = (response: IXhrRequestResult, options: Options, url: string) => Promise<unknown>; declare type AfterResponse_2<Options extends ApiOptions_2 = ApiOptions_2> = (response: IXhrRequestResult, options: Options, url: string) => Promise<unknown>; /** * 答题抽奖条件 */ declare interface AnswerCondition extends LotteryConditionBase<LotteryCondition.Answer> { /** * 答题方式 */ answerType: AnswerQuestionType; /** * 各奖品所需答对的数量 */ prizeLimit: number[]; /** * 最小答题数量 */ minQuestionCount: number; /** * 问卷的题目总数 */ questionCount: number; /** * 已推送的题目数量 */ publishedCount: number; /** * 已回答数量 */ answeredCount: number; /** * 答对数量 */ rightCount: number; /** * 当前答题中的题目 id */ currentQuestionId?: string; /** * 回答剩余时间 */ answerSurplusTime?: number; /** * 已推送的题目列表 */ questionList: AnswerQuestionItem[]; } declare interface AnswerQuestionItem { /** 题目 id */ questionId: string; /** 题目标题 */ name: string; /** 题目类型 */ type: AnswerQuestionItemType; /** 选项列表 */ options: AnswerQuestionItemOption[]; /** 答题时间,单位:毫秒 */ time: number; } declare interface AnswerQuestionItemOption { /** 选项 id */ key: string; /** 选项内容 */ value: string; } declare type AnswerQuestionItemType = PolyvIarQuestionItemType.Radio | PolyvIarQuestionItemType.CheckBox | PolyvIarQuestionItemType.Judgement; /** * 答题抽奖答题方式 */ declare enum AnswerQuestionType { /** * 逐题推送 */ PushQuestion = "pushQuestion", /** * 整份推送 */ AutonomyAnswer = "autonomyAnswer" } declare interface AnswerResultData { /** 是否正确 */ result: boolean; /** 当前题目回答人数 */ answeredPeopleCount: number; /** 当前题目回答正确人数 */ rightPeopleCount: number; /** 全部题目答题结果,仅在最后一题答题后返回 */ allQuestionResult?: boolean[]; /** 正确答案,仅在打错的时候返回 */ rightAnswer?: string; } /** 音频模式,Y-音频模式,N-普通模式,V-VR 模式 */ export declare type ApiAudioModeType = 'Y' | 'N' | 'V'; declare type ApiOptions = IRequestOptions; declare type ApiOptions_2 = IRequestOptions; /** * API 请求封装 * @class */ declare class ApiQuery<Options extends ApiOptions = ApiOptions> { protected _identifyCore: IdentifyCore; /** 是否已被销毁(不再允许执行 ajax 调用) */ private __isDestroyed; /** 请求域名前缀 */ private __baseUrl; /** 超时数值 */ private __timeout; /** 请求链接拦截器 */ private __interceptRequestUrl?; /** 请求处理器 */ private __beforeRequest?; /** 响应处理器 */ private __afterResponse?; constructor(options: ApiQueryConfig); /** * 设置请求链接拦截器 * @param interceptRequestUrl 请求链接拦截器 */ protected _setInterceptRequestUrl(interceptRequestUrl: InterceptRequestUrl<Options>): void; /** * 设置请求处理器 * @param beforeRequest 请求处理器 */ protected _setBeforeRequest(beforeRequest: BeforeRequest<Options>): void; /** * 设置响应处理器 * @param afterResponse 响应处理器 */ protected _setAfterResponse(afterResponse: AfterResponse<Options>): void; /** * 修改请求前缀 * @param baseUrl 新的请求前缀 * @returns this */ setBaseUrl(baseUrl: string | ApiQueryBaseUrlFn): this; /** * 获取请求地址前缀 */ getBaseUrl(): string; /** 生成请求地址,插入 baseUrl */ generateUrl(url: string): string; /** 发起请求 */ protected _request<R = unknown>(url: string, options: Options): Promise<R>; /** * 过滤请求中的 params 和 data,将 undefined 的字段移除 * @param target 目标对象 */ private __filterParamsData; /** 发起 get 请求 */ get<R = unknown, P = object>(url: string, params: P, options?: Options): Promise<R>; /** 发起 post 请求 */ post<R = unknown, D = object>(url: string, data: D, options?: Options): Promise<R>; destroy(): void; } /** * API 请求封装 * @class */ declare class ApiQuery_2<Options extends ApiOptions_2 = ApiOptions_2> { protected _watchCore: PolyvWatchCore; /** 是否已被销毁(不再允许执行 ajax 调用) */ private __isDestroyed; /** 请求域名前缀 */ private __baseUrl; /** 超时数值 */ private __timeout; /** 请求链接拦截器 */ private __interceptRequestUrl?; /** 请求处理器 */ private __beforeRequest?; /** 响应处理器 */ private __afterResponse?; constructor(options: ApiQueryConfig_2); /** * 设置请求链接拦截器 * @param interceptRequestUrl 请求链接拦截器 */ protected _setInterceptRequestUrl(interceptRequestUrl: InterceptRequestUrl_2<Options>): void; /** * 设置请求处理器 * @param beforeRequest 请求处理器 */ protected _setBeforeRequest(beforeRequest: BeforeRequest_2<Options>): void; /** * 设置响应处理器 * @param afterResponse 响应处理器 */ protected _setAfterResponse(afterResponse: AfterResponse_2<Options>): void; /** * 修改请求前缀 * @param baseUrl 新的请求前缀 * @returns this */ setBaseUrl(baseUrl: string | ApiQueryBaseUrlFn_2): this; /** * 获取请求地址前缀 */ getBaseUrl(): string; /** 生成请求地址,插入 baseUrl */ generateUrl(url: string): string; /** 发起请求 */ protected _request<R = unknown>(url: string, options: Options): Promise<R>; /** * 过滤请求中的 params 和 data,将 undefined 的字段移除 * @param target 目标对象 */ private __filterParamsData; /** 发起 get 请求 */ get<R = unknown, P = object>(url: string, params: P, options?: Options): Promise<R>; /** 发起 post 请求 */ post<R = unknown, D = object>(url: string, data: D, options?: Options): Promise<R>; destroy(): void; } declare interface ApiQueryBaseUrlFn { (): string; } declare interface ApiQueryBaseUrlFn_2 { (): string; } /** ajax 请求库构造函数参数 */ declare interface ApiQueryConfig { identifyCore: IdentifyCore; /** 请求前缀 */ baseUrl: string | ApiQueryBaseUrlFn; /** 超时数值 */ timeout?: number; } /** ajax 请求库构造函数参数 */ declare interface ApiQueryConfig_2 { watchCore: PolyvWatchCore; /** 请求前缀 */ baseUrl: string | ApiQueryBaseUrlFn_2; /** 超时数值 */ timeout?: number; } /** * createWatchCore 参数类型 * @desc 核心类依赖外部应用的配置 */ export declare type AppConfig = AppConfigForSDK & AppConfigForBasicBusiness & AppConfigForViewer & AppConfigForAuth & AppConfigForPlay; declare interface AppConfigForAuth { /** 自动授权参数 */ autoAuthParams?: { /** 验证码 */ code?: string; /** * 忽略微信授权,默认关 * @version v0.6.0 * */ ignoreWxAuth?: YN; /** * 微信快照页模式,默认关 * @desc 保利威微信回调时入参 * @version v0.6.0 * */ wxSnapshotPageMode?: YN; /** * 强制优先独立授权,默认关 * @desc 当配置自定义授权和独立授权冲突时,优先用独立授权 * @version v2.1.0 */ forceDirectAuth?: YN; /** * 忽略用户系统,默认关 * @version v2.2.0 */ ignoreWatchUserSystem?: YN; }; /** * 一客一码邀请参数 * @version v0.12.0 */ saleInviteParams?: { saleCode?: string; /** 一客一码--销售邀请的客户id */ inviteCustomerId?: string; }; } declare interface AppConfigForBasicBusiness { /** 频道号 */ channelId: string; /** * 目标场次 Id * @desc 指定场次 * @version v2.4.0 */ targetSessionId?: string; /** 渠道 id */ promoteId?: string; /** 测试模式 token */ testModeToken?: string; /** 网络类型 */ zone?: ZoneType; } declare interface AppConfigForPlay { /** 回放 vid */ vid?: string; /** 回放类型 */ playbackOrigin?: PlaybackOrigin; /** * 是否使用 ip 地址进行 CDN 拉流,仅支持 PC 端 * @version v0.5.0 * */ ipPlay?: boolean; } declare interface AppConfigForSDK { /** * SDK 唯一Id,在创建多实例时必传 * @version v2.0.0 */ uniqueId?: string; /** * 使用共享的 token * @default true * @version v2.0.0 */ useShareAuthToken?: boolean; /** SDK 需要加载的环境 */ env?: SdkLoaderEnv; /** 语言类型 */ language?: LanguageType; /** 自定义域名 */ domainInfo?: Partial<DomainInfo>; /** * 集成 SDK 脚本地址配置 * @warn 会直接忽视 env 配置,覆盖默认的集成 SDK 脚本地址 * */ sdkIntegration?: SdkIntegrationConfig; } declare interface AppConfigForViewer { /** * 观众信息 */ userInfo?: UserInfo; /** * 邀请信息 */ inviteInfo?: { /** 邀请海报唯一ID */ invitePosterId?: string; /** 企业微信分享海报的企微员工 ID */ wxInviteId?: string; /** 受邀者 ID */ invitee?: string; }; /** * 统计信息 */ statisticsParams?: StatisticsParams; } /** * 申请提现失败原因 */ export declare enum ApplyWithdrawFailReason { /** 未知 */ Unknown = "Unknown", /** 提现金额超过用户余额 */ AmountOverLimit = "AmountOverLimit", /** 无效的提现金额,必须大于 1 元 */ InvalidAmount = "InvalidAmount", /** 申请失败 */ ApplyFail = "ApplyFail", /** 需要在微信端打开 */ NeedWechat = "NeedWechat" } /** * 提交提现申请参数 */ export declare interface ApplyWithdrawParams { /** 提现金额,单位:元 */ amount: number; } /** * 申请提现结果 */ export declare type ApplyWithdrawResult = CommonResult<ApplyWithdrawFailReason, { signData?: WxMerchantTransferSignData; }>; declare interface AppSignSecretKey { /** * 应用 id */ appId: string; /** * 应用密钥 */ appSecret: string; } declare interface AskApiMsgType { /** 内容 */ content: string; /** 消息标识 */ id?: string; /** 时间 */ time?: number; /** 消息类型 */ msgType: '' | 'image'; /** 讲师回答的学生 id */ s_userId?: string; /** 用户信息 */ user: ChatMessageUser; /** 状态 */ status?: 'error'; /** 消息 */ message?: string; /** 违规词内容 */ value?: string; } /** * 提问事件 */ export declare enum AskEvents { /** 学生提问事件 */ StudentQuestion = "StudentQuestion", /** 老师回答事件 */ TeacherAnswer = "TeacherAnswer", /** * 系统消息 * @version v0.5.1 * */ SystemMessage = "SystemMessage", /** * 提问触发严禁词 * @version v0.9.0 */ SendBadWord = "SendBadWord", /** * 替换提问消息事件 * @version v1.3.0 */ ReplaceAskMessage = "ReplaceAskMessage", /** * 删除提问消息事件 * @version v1.3.0 */ RemoveAskMessage = "RemoveAskMessage" } export declare type AskEventsRelations = { [AskEvents.StudentQuestion]: { askMsg: AskMsgType; }; [AskEvents.TeacherAnswer]: { askMsg: AskMsgType; }; [AskEvents.SystemMessage]: { askMsg: AskMsgType; }; [AskEvents.SendBadWord]: { word: string; }; [AskEvents.ReplaceAskMessage]: { /** * 替换的消息 id */ id: string; askMsg: AskMsgType; }; [AskEvents.RemoveAskMessage]: { id?: string; askMsg?: AskMsgType; }; }; export declare type AskHistoryResultNew = PageContent<AskMsgType>; /** * 提问消息类型 */ export declare type AskMsgType = (ChatMsgSpeakType | ChatMsgImageType | ChatMsgSystemType) & { user?: ChatMessageUser<ChatUserType>; isLocal?: boolean; }; /** 提问设置 */ export declare interface AskSetting { /** 提问发送图片开关 */ questionImageEnabled: boolean; } /** * 登记观看的表单选项 */ export declare interface AuthInfoItem { /** 表单类型 */ type: AuthInfoType; /** 信息标题 */ name: string; /** 信息描述 */ placeholder: string; /** 是否需要短信验证 */ sms?: YN; /** 下拉选项列表,用英文逗号隔开 */ options?: string; } /** * 登记观看 propValue key 类型 */ export declare type AuthInfoPropValKey = `propValue${number}`; /** * 登记观看 propValue 类型 */ export declare type AuthInfoPropValType = Record<AuthInfoPropValKey, string>; /** * 登记观看的选项类型 */ export declare enum AuthInfoType { /** 姓名 */ Name = "name", /** 文本 */ Text = "text", /** 手机号码 */ Mobile = "mobile", /** 下拉选项 */ Option = "option", /** 数值 */ Number = "number" } /** * 支付信息数据 */ export declare interface AuthPayData { /** * 支付二维码图片地址 */ qrcodeUrl: string; /** * 支付地址 */ codeUrl: string; /** * 支付 id */ payId: string; /** * 微信支付签名数据,仅微信环境下返回 */ wxPaySignData?: WxPaySignData; } /** * 付费观看错误原因 */ export declare enum AuthPayFailReason { /** 未知 */ Unknown = "Unknown", /** 不允许 */ NotAllow = "NotAllow" } /** 观看条件隐私声明信息 */ export declare interface AuthPrivacyInfo { /** 隐私声明内容 */ privacyContent: string; /** 是否开启隐私声明 */ privacyStatus: YN; } /** 观看条件信息 */ export declare type AuthSettingItem = AuthSettingItemMaps[keyof AuthSettingItemMaps]; /** * 验证码观看条件设置信息 */ export declare interface AuthSettingItemCode extends AuthSettingItemCommon<AuthType.Code>, AuthPrivacyInfo { /** 欢迎标题 */ codeAuthTips: string; /** 入口文本 */ codeEntryText: string | null; /** 二维码图片地址 */ qcodeImg: string; /** 二维码提示文案 */ qcodeTips: string; } /** 观看条件信息公用类型 */ export declare interface AuthSettingItemCommon<T extends AuthType> { /** 条件类型 */ authType: T; /** 是否启用 */ enabled: YN | null; } /** * 自定义授权设置信息 * * 关于自定义授权设置及服务端的处理流程可见帮助中心文档:[自定义授权](https://help.polyv.net/index.html#/live/api/web/watch_condition/customauth_2) */ export declare interface AuthSettingItemCustom extends AuthSettingItemCommon<AuthType.Custom> { /** 自定义 url */ customUri: string; /** 入口文本 */ customEntryText: string | null; } /** * 独立授权设置信息 * * 关于独立授权设置及服务端的处理流程可见帮助中心文档:[独立授权](https://help.polyv.net/index.html#/live/api/web/watch_condition/direct_auth) */ export declare interface AuthSettingItemDirect extends AuthSettingItemCommon<AuthType.Direct> { /** 授权失败重定向 url */ directRedirectUri?: string; } /** * 企业微信授权设置信息 */ export declare interface AuthSettingItemEnterpriseWeChat extends AuthSettingItemCommon<AuthType.EnterpriseWeChat> { } /** * 外部授权设置信息 * * 关于外部授权设置及服务端的处理流程可见帮助中心文档:[外部授权](https://help.polyv.net/index.html#/live/api/web/watch_condition/external_authorization_2) */ export declare interface AuthSettingItemExternal extends AuthSettingItemCommon<AuthType.External> { /** 授权 url */ externalUri: string; /** 授权失败重定向 url */ externalRedirectUri: string; /** 入口文本 */ externalEntryText: string | null; /** 入口登录按钮是否启用,默认为 Y */ externalButtonEnabled: YN | null; } /** * 登记观看条件设置信息 */ export declare interface AuthSettingItemInfo extends AuthSettingItemCommon<AuthType.Info>, AuthPrivacyInfo { /** 欢迎标题 */ infoAuthTips: string; /** 提示信息 */ infoDesc: string; /** 入口文本 */ infoEntryText: string | null; } /** * 邀请观看观看设置信息 */ export declare interface AuthSettingItemInviteWatch extends AuthSettingItemCommon<AuthType.InviteWatch> { } export declare type AuthSettingItemMaps = { [AuthType.None]: AuthSettingItemNone; [AuthType.Pay]: AuthSettingItemPay; [AuthType.Phone]: AuthSettingItemPhone; [AuthType.Info]: AuthSettingItemInfo; [AuthType.Code]: AuthSettingItemCode; [AuthType.Custom]: AuthSettingItemCustom; [AuthType.External]: AuthSettingItemExternal; [AuthType.Direct]: AuthSettingItemDirect; [AuthType.EnterpriseWeChat]: AuthSettingItemEnterpriseWeChat; [AuthType.SaleShare]: AuthSettingItemSaleShare; [AuthType.InviteWatch]: AuthSettingItemInviteWatch; }; /** * 无条件观看设置信息 */ export declare interface AuthSettingItemNone extends AuthSettingItemCommon<AuthType.None> { } /** * 付费观看条件设置信息 */ export declare interface AuthSettingItemPay extends AuthSettingItemCommon<AuthType.Pay> { /** 欢迎标题 */ payAuthTips: string; /** 观看价格 */ price: number; /** 入口文本 */ payEntryText: string | null; /** 试看开关 */ trialWatchEnabled: YN; /** 试看时长,单位:分钟 */ trialWatchTime: number; } /** * 白名单观看条件设置信息 */ export declare interface AuthSettingItemPhone extends AuthSettingItemCommon<AuthType.Phone>, AuthPrivacyInfo { /** 欢迎标题 */ authTips: string; /** 入口文本 */ whiteListEntryText: string | null; /** 输入提示 */ whiteListInputTips: string; } /** * 一客一码观看设置信息 */ export declare interface AuthSettingItemSaleShare extends AuthSettingItemCommon<AuthType.SaleShare> { } /** * 观看条件类型 */ export declare enum AuthType { /** * 无条件观看 * @setting {@link AuthSettingItemNone} */ None = "none", /** * 付费观看 * @setting {@link AuthSettingItemPay} */ Pay = "pay", /** * 白名单观看 * @setting {@link AuthSettingItemPhone} */ Phone = "phone", /** * 登记观看 * @setting {@link AuthSettingItemInfo} */ Info = "info", /** * 验证码观看 * @setting {@link AuthSettingItemCode} */ Code = "code", /** * 自定义授权 * @setting {@link AuthSettingItemCustom} */ Custom = "custom", /** * 外部授权 * @setting {@link AuthSettingItemExternal} */ External = "external", /** * 独立授权 * @setting {@link AuthSettingItemDirect} */ Direct = "direct", /** * 企业微信授权 * @setting {@link AuthSettingItemEnterpriseWeChat} */ EnterpriseWeChat = "enterpriseWeChat", /** * 一客一码授权 * @internal * @ignore * @warn 一客一码并不会当作观看条件使用,而是通过另外的授权方式,授权方式请参考 `watchCore.saleInvite` 模块 * @setting {@link AuthSettingItemSaleShare} */ SaleShare = "saleShare", /** * 邀请观看 * @setting {@link AuthSettingItemInviteWatch} */ InviteWatch = "inviteWatch" } /** * 观看条件验证失败原因 */ export declare enum AuthVerifyError { /** * 未知错误 * @scene 通用 */ Unknown = "Unknown", /** * 需要重定向 * @scene 通用 */ RedirectUrl = "RedirectUrl", /** * 图形验证码错误 * @scene 通用 * @version v2.4.0 */ ImageCodeError = "ImageCodeError", /** * 系统异常 * @scene 通用 * @version v1.3.0 */ SystemException = "SystemException", /** * 非法观看条件 * @scene 通用 * @version v1.3.0 */ InvalidWatchAuth = "InvalidWatchAuth", /** * 白名单会员码为空 * @scene 白名单观看 */ PhoneEmpty = "PhoneEmpty", /** * 白名单会员码已使用 * @scene 白名单观看 * @version v1.5.0 */ PhoneUsed = "PhoneUsed", /** * 白名单会员码不存在 * @scene 白名单观看 */ PhoneNotExist = "PhoneNotExist", /** * 短信验证码错误 * @scene 登记观看 */ SmsCodeError = "SmsCodeError", /** * 手机号未登记 * @scene 登记观看 */ PhoneNotRegister = "PhoneNotRegister", /** * 观看验证码为空 * @scene 验证码观看 */ CodeEmpty = "CodeEmpty", /** * 观看验证码错误 * @scene 验证码观看 */ CodeError = "CodeError", /** * 观看验证码需要验证 * @scene 验证码观看 * @version v2.4.0 */ CodeNeedVerify = "CodeNeedVerify", /** * 缺少自定义授权参数 * @scene 自定义授权 */ CustomSignParamsMiss = "CustomSignParamsMiss", /** * 外部授权失败 * @scene 外部授权 */ ExternalError = "ExternalError", /** * 同个观众 * @scene 独立授权/外部授权 * @version v1.6.0 */ SameViewer = "SameViewer" } /** * 观看条件验证结果 */ export declare type AuthVerifyResult<T extends AuthType> = AuthVerifyResultSuccess<T> | AuthVerifyResultFail<T>; /** * 观看条件验证结果(失败) */ export declare interface AuthVerifyResultFail<T extends AuthType = AuthType> { /** 观看条件类型 */ authType: T; /** 成功状态 */ success: false; /** 失败原因 */ failReason: AuthVerifyError; /** 失败信息 */ failMessage?: string; /** 获取重定向跳转地址 */ getRedirectUrl?: () => string; } /** * 观看条件验证结果(成功) */ export declare interface AuthVerifyResultSuccess<T extends AuthType = AuthType> { /** 观看条件类型 */ authType: T; /** 成功状态 */ success: true; } /** * 微信扫码观看信息 */ export declare interface AuthWechatPayCheckData { /** * 记录 id */ logId: string; /** * 微信二维码内容 */ codeUrl: string; /** * 二维码图片地址 */ qrcodeUrl: string; } /** 后台支持配置的字幕语种 */ declare type BackstageSubtitleLanguage = 'Chinese' | 'English' | 'Tagalog' | 'Thai' | 'Malay' | 'Indonesian' | 'Lao' | 'Burmese' | 'Vietnamese' | 'French' | 'Japanese' | 'German' | 'Korean' | 'Russian' | 'Portuguese' | 'Turkish' | 'Arabic' | 'Spanish' | 'Khmer' | 'Tamil'; export declare interface BarrageAddCallback { (data: BarrageAddCallbackData): void; } export declare interface BarrageAddCallbackData { msg: string; user: ChatMessageUser; isSelf: boolean; chatMsg: ChatMsgType | ChatReplayMsgType; } /** * 弹幕添加拦截器 */ export declare interface BarrageAddIntercept { (data: BarrageAddCallbackData): boolean; } /** * 弹幕参数 */ export declare interface BarrageAddOptions { /** * 弹幕文本,支持双中括号内嵌图片 */ msg: string; /** * 弹幕文本字体颜色 * @default #fff */ fontColor?: string; /** * 弹幕文本字号 * @default 24 */ fontSize?: number; /** * 该条弹幕文本是否自己发送的 */ self?: boolean; /** * 本人发送的弹幕消息边框颜色, 不设置则不显示边框 */ selfBorderColor?: string; } /** * 弹幕设置映射关系 * @desc 参数值可以是长度为1或2的数组。长度为2时分别代表PC\H5端档位值, 长度为1时统一代表PC\H5端档位值。 */ export declare interface BarrageGearValue { /** 弹幕速度与档位的映射关系 */ speed?: UniversalParams<string>[]; /** 弹幕字号与档位的映射关系 */ size?: UniversalParams<string>[]; } /** * 弹幕位置信息 */ export declare interface BarrageLocationInfo { /** 弹幕位置类型 */ type: LocationType; /** 弹幕位置类型ID */ index: number; /** 弹幕位置类型对应方向 */ direction: IDirection; /** 弹幕位置类型对应显示百分比 */ percent: number; } /** * 弹幕设置 */ export declare interface BarrageSetting { /** * 弹幕功能开关 */ barrageEnabled: boolean; /** * 弹幕默认显示状态 */ barrageDefaultShow: boolean; /** * 弹幕速度 */ barrageSpeed: number; /** * 弹幕速度档位 */ barrageSpeedDefaultGrade: number; /** * 弹幕字号 */ barrageSize: number; /** * 弹幕字号档位 */ barrageSizeDefaultGrade: number; /** * 弹幕透明度 */ barrageAlpha: number; /** * 弹幕默认透明度 */ barrageDefaultAlpha: number; /** * 弹幕位置ID */ barrageLocationDefaultId: number; } /** * 弹幕对象 */ export declare interface BarrageTarget { /** 弹幕对象标识 */ id: string; /** 弹幕实例 */ barrageInstance: Danmu; /** 添加弹幕 */ add: (options: BarrageAddOptions) => void; /** 显示弹幕 */ show: () => void; /** 隐藏弹幕 */ hide: () => void; /** 清空弹幕 */ clear: () => void; /** 重置尺寸 */ resize: () => void; /** 切换弹幕速度 */ changeSpeed: (speed: number) => void; /** 切换弹幕字号 */ changeSize: (size: number) => void; /** 切换弹幕显示方向 */ changeAreaDirection: (direction: IDirection) => void; /** 切换弹幕显示百分比 */ changeAreaPercentage: (percent: number) => void; /** 切换弹幕位置 */ changeLocation: (index: number) => void; /** 切换弹幕透明度 */ changeAlpha: (alpha: number) => void; /** 处理弹幕事件 */ onBarrageAddEvent: BarrageAddCallback; /** 销毁当前对象 */ destroyTarget: () => void; /** 比较容器大小 */ compareContainerSize: () => void; } declare type BeforeRequest<Options extends ApiOptions = ApiOptions> = (options: Options) => Promise<Options>; declare type BeforeRequest_2<Options extends ApiOptions_2 = ApiOptions_2> = (options: Options) => Promise<Options>; export declare interface BindIdentityInfoParams { /** * 手机号 */ phoneNumber?: string; /** * 手机区号 */ areaCode?: string; /** * 短信验证码 */ smsCode?: string; } /** * 取消短信直播预约入参 */ export declare interface CancelSmsLiveBookingOptions { /** 手机号 */ phoneNumber: string; /** 区号 */ areaCode: string; /** 频道 id */ otherChannelId?: string; } /** * 取消提现参数 */ export declare interface CancelWithdrawParams { /** 提现单号 */ outBillNo: string; /** 提现 id */ withdrawId: string; } /** * 取消微信预约入参 */ export declare interface CancelWxLiveBookingOptions { /** 频道 id */ otherChannelId?: string; } declare interface ChangeVidParams { vid: string; autoplay?: boolean; statistics?: VodPlayerStatistics; ts?: number; sign?: string; playsafe?: string; } declare interface Channel { /** 频道 ID */ channelId: string; /** 频道名称 */ name: string; } /** * 频道页面广告设置 */ export declare interface ChannelAdvertSetting { /** 页面广告开关 */ pageAdvertEnabled: boolean; /** 允许关闭页面广告 */ closeAdvertEnabled: boolean; /** 页面广告列表 */ pageAdvertList: PageAdvertItem[]; } export declare type ChannelAgreementConfig = { [key in LanguageType]: { /** 内容 */ content: string; /** 弹窗标题 */ dialogTitle: string; /** 弹窗内容 */ dialogContent: string; }; }; /** * 频道协议配置 */ export declare interface ChannelAgreementData { /** 弹窗标题 */ title: string; /** 弹窗标题(英文) */ titleEn: string; /** 弹窗内容 */ content: string; /** 弹窗内容(英文) */ contentEn: string; /** 内容 */ contentTip: string; /** 内容(英文) */ contentTipEn: string; } /** * AI 相关频道配置 */ export declare interface ChannelAIConfig { /** AI 助手开关,默认关 */ aiAssistantEnabled: YN; /** AI 助手Id */ aiAssistantId: number | null; /** AI 助手名称 */ aiAssistantName: string | null; } /** 音频模式 */ export declare enum ChannelAudioMode { /** 特殊直播音频模式 */ CustomLiveAudio = "CustomLiveAudio", /** 正常音视频模式 */ NormalAudio = "NormalAudio", /** 纯音频模式 */ OnlyAudio = "OnlyAudio", /** VR 音频模式 */ VrAudio = "VrAudio" } /** 观看条件设置 */ export declare interface ChannelAuthSetting { /** 登记观看的登记表设置列表 */ authInfoFields?: AuthInfoItem[]; /** 观看条件列表 */ authSettings: AuthSettingItem[]; /** 强制微信授权,默认关 */ forceWxAuth: YN; /** 强制微信授权持久化(长时间授权态),默认关 */ wxPersistentAuthEnabled: YN; } export declare interface ChannelBasicDetailOptions { language: string; } export declare interface ChannelBasicDetailRequestParams { channelId: string; language: string; } /** 频道基础信息 */ export declare interface ChannelBasicInfo { /** 频道标题 */ title: string; /** 频道主持人 */ publisher: string; /** 频道描述 */ description: string; } /** * 频道设置 */ export declare type ChannelConfig = ChannelDetail['channelConfig']; /** * 频道配置 */ declare interface ChannelConfig_2 { /** * 埋点上报总开关 */ watchEventTrackEnabled?: boolean; /** * 互动事件上报开关 */ productTrackEnabled?: boolean; /** * 当前推送的商品信息 */ channelProductPushingStatusVO?: ChannelProductPushingStatusInfo; /** * 商品讲解开关 */ productExplainEnabled?: boolean; /** * 商品热卖中开关 */ productHotEffectEnabled?: boolean; /** * 商品热卖中文案 */ productHotEffectTips?: ChannelProductHotEffectTips; /** * 点击商品的封面/标题区域是否直接跳转外链 */ outLinkProductRedirectEnabled?: boolean; /** * 商品订单入口是否显示 */ productPayOrderEnabled?: boolean; } /** * 观看页频道设置(基础) */ export declare interface ChannelConfigBasic { /** 音频直播开关 */ audioOnlyEnabled: YN; /** 授权观看条件下 PC 端是否做 302 跳转到观看页 */ authPcRedirectEnabled: YN; /** 微软 AD 授权开关 */ azureADEnabled: YN; /** 直播播放器的弹幕速度 */ barrageSpeed: string | number; /** 直播播放器的弹幕字号 */ barrageSize: string | number; /** 直播短信预约开关 */ bookingEnabled: YN; /** 微信预约弹层提示文案 */ bookingTips: string; /** 隐藏品牌开关 */ brandHideEnabled: YN; /** 频道直播状态轮训间隔,单位:秒 */ channelLiveStatusQueryFrequency: number; /** pv 接口轮询间隔,单位:秒 */ channelWatchQueryFrequency: number; /** 聊天室虚拟人数功能开关 */ chatRobotEnabled: YN; /** 是否开启短信图片验证码开关 */ checkSmsImageEnabled: YN; /** 是否关闭了弹幕功能 */ closeDanmuEnabled: YN; /** 是否关闭提现功能 */ closeWithdrawEnabled: YN; /** 双语直播开关 */ cnAndEnLiveEnabled: YN; /** 直播倒计时开关 */ countEnabled: YN; /** 播放器封面图缩放模式 */ coverImgType: 'cover' | 'contain'; /** 默认码率 */ defaultCodeRate: number | string | null; /** 情绪反馈开关,与点赞互斥 */ emotionEnabled: YN; /** 直播间英语独立配置开关 */ englishSettingEnabled: YN; /** 是否只看主持人信息 */ filterManagerMsgEnabled: YN; /** 播放器全屏方案 */ fullScreenType: FullScreenMode; /** 是否跳过微信授权 */ ignoreWx: YN; /** 音频模式类型 */ isOnlyAudio: ApiAudioModeType; /** 日文语言切换(仅用作将英文的文案显示成日文) */ japLangEnabled: YN; /** 竖屏播放器是否允许全屏,默认不允许 */ playerFullScreen: 'allow' | 'disallow'; /** 直播 H5 播放器是否使用灰度版本 */ liveH5PlayerGrayEnabled: YN; /** 直播 H5 播放器灰度版本 */ liveH5PlayerGrayVersion: string; /** 直播移动端播放器灰度开关 */ liveMobilePlayerGrayEnabled: YN; /** 直播移动端播放器灰度版本 */ liveMobilePlayerGrayVersion: string; /** 移动端下页面浏览次数显示位置 */ mobilePvShowLocation: PageViewShowLocation; /** * 多语言开关(超管) * @version 从 v1.1.0 开始不再使用该字段,改用 allowSwitchLangEnabled * */ multilingualEnabled: YN; /** 允许观众切换语言开关(后台) */ allowSwitchLangEnabled: YN; /** 多码率开关 */ multirateEnabled: YN; /** 码率列表,用英文逗号隔开 */ multirates: string | null; /** 新版连麦 */ newMicEnabled: YN; /** 泛域名开关 */ polyvWatchDomainEnabled: YN; /** ppt 检查 drawMark 开关 */ pptCheckDrawMarkEnabled: YN; /** ppt avif 图片格式开关 */ pptUserAvifEnabled: YN; /** 商品库事件上报开关 */ productTrackEnabled: YN; /** 商品库链接跳转提示 */ productLinkJumpTipEnabled: YN; /** 商品入口位置 */ productEntryPosition: ProductEntryPosition; /** 商品直接跳转外链开关 */ outLinkProductRedirectEnabled: YN; /** 无延迟计费开关 */ pureRtcAvailState: YN; /** 无延迟直播开关 */ pureRtcEnabled: YN; /** 是否显示页面浏览次数 */ pvShowEnabled: YN; /** 观众发送图片开关 */ viewerSendImgEnabled: YN; /** 提问发送图片开关 */ questionImageEnabled: YN; /** 快直播开关 */ quickLiveEnabled: YN; /** 引用回复开关 */ quoteReplyEnabled: YN; /** 招聘直播开关 */ recruitmentEnabled: YN; /** 红包类型 */ redPackCurrencyType: RedpackCurrencyType; /** 调整红包金额 & 数量上限开关 */ redPackCustomAmountEnabled: YN; /** 观众发送红包的最大金额 */ redPackViewerMaxAmount: number; /** 观众发送红包的最大数量 */ redPackViewerMaxCount: number; /** 直播推流比例:高 */ resolutionHeight: number; /** 直播推流比例:宽 */ resolutionWidth: number; /** 聊天室并发限制开关 */ restrictChatEnabled: YN; /** 是否订阅 rtc 音频流开关 */ rtcAudioSubEnabled: YN; /** 嘉宾云席开关 */ seatEnabled: YN; /** 点赞(送花)开关 */ sendFlowersEnabled: YN; /** 单击点赞(送花)开关 */ sendFlowersSingleClickEnabled: YN; /** 长按点赞(送花)开关 */ sendFlowersHoldEnabled: YN; /** 引导页开关 */ splashEnabled: YN; /** 引导页大图地址 */ splashLargeImg: string | null; /** 引导页布局 */ splashLayout: MobileSplashLayout; /** 投票功能 */ voteActiveEnabled: YN; /** 反馈功能开关 */ watchFeedbackEnabled: YN; /** 欢迎语开关 */ welcomeEnabled: YN; /** 超管后台微信功能开关 */ weixinAccountFunctionEnabled: YN; /** 超管后台中微信支付开关 */ weixinPayEnabled: YN; /** 白板 SDK 开关 */ whiteboardSdkEnabled: YN; /** 企微授权开关 */ wxWorkAuthSwitch: YN; /** 是否绑定企微(后端有额外的业务逻辑处理) */ wxWorkStatusSwitch: YN; /** 企微好友观看限制开关 */ wxWorkFriendWatchEnabled: YN; /** (超管)企微员工邀请开关 */ wxWorkInviteEnabled: YN; /** 私有云场景下,表示拉内网流还是外网流 */ zone: ZoneType; /** 是否自动播放 */ autoPlayEnabled: YN; /** 移动端音频播放开关 */ mobileAudioEnabled: YN; /** 聊天室在线人数显示开关 */ chatOnlineNumberEnable: YN; /** 企微是否已过期 */ enterpriseWechatExpire: YN; /** 自定义favicon */ faviconCustomUrl: string | null; /** 最大提现额度 */ freePayAmount: number; /** 微信支付类型 */ weixinPayType: WeixinPayType; /** 是否显示自定义消息 */ showCustomMessageEnabled: YN; /** 是否启用互动红包 */ userRedpackEnabled: YN; /** 是否启用互动报名抽奖 */ enrollLotteryEnabled: YN; /** 展示下一场次倒计时开关,默认关 */ showCountdownEnabled: YN; /** 海外自动切换线路开关 */ overseasAutoSwitchEnabled: YN; /** 邀请海报开关,默认开 */ invitePosterEnabled: YN; /** 邀约明细下载开关,默认关 */ inviteDetailExportEnabled: YN; /** 分享开关,默认开 */ shareBtnEnabled: YN; /** 分享开关,默认开 */ shareEnabled: YN; /** 特殊授权的观众能否进行微信微信授权,默认关 */ watchCustomWeixinAuthEnabled: YN; /** 直播介绍上传的长图压缩开关,默认开 */ compressImageEnabled: YN; /** 展示预约人数开关,默认开 */ displayBookingNumberEnabled: YN; /** 管理后台-观看页语言设置 */ watchLangType: 'follow_browser' | LanguageType; /** 是否启用手机号脱敏,默认关 */ badwordMobileEnabled: YN; /** 隐藏观众昵称功能,默认关 */ hideViewerNicknameEnabled: YN; /** 是否处于直播测试模式,默认关 */ isDebug: YN; /** 展示黄脸表情(默认表情),默认开 */ showDefaultEmoteEnabled: YN; /** 展示图片表情(收藏表情),默认开 */ showCollectEmoteEnabled: YN; /** 分享是否使用回放视频标题,默认关 */ shareTitleFollowPlaybackVideoEnabled: YN; /** 是否启用观看页营销埋点,默认关 */ watchEventTrackEnabled: YN; /** 实时字幕开关,默认关 */ realTimeSubtitleEnabled: YN; /** 实时字幕翻译开关,默认关 */ subtitleTranslationEnabled: YN; /** 实时字幕语言类型 */ subtitleSourceLanguage: SubtitleSourceLanguage; /** 实时字幕翻译语言类型 */ subtitleTranslationLanguage: SubtitleSourceTranslateLanguage; /** 实时字幕翻译语言类型(可选列表) */ subtitleTranslationLanguages: SubtitleSourceTranslateLanguage[]; /** 实时字幕显示数量限制开关,默认关 */ realTimeSubtitleDisplayNumberLimitEnabled: YN; /** 实时字幕最多显示条数 */ realTimeSubtitleDisplayNumber: number; /** 实时字幕延迟时长(仅针对无延迟) */ realTimeSubtitleDisplayDelay: number; /** 伪直播实时字幕开关,默认关 */ realDiskVideoRealTimeSubtitleEnabled: YN; /** SaaS 观看时长开关 */ viewerWatchDurationStatsChannelEnabled: YN; /** 手机号实名认证开关 */ viewerVerificationEnabled: YN; /** 微信环境支持修改昵称开关,默认关 */ wxEnvResetNickNameEnabled: YN; /** H5 有延迟播放器连麦开关 */ webH5LinkMicEnabled: YN; /** 根据时间戳获取聊天历史记录 */ getChatHistoryByTimestampEnabled: YN; /** 直播时是否显示播放按钮, 默认开 */ stopLivePlayEnabled: YN; /** AI 助手功能计费开关,值为 Y 时可使用 AI 功能 */ aiAssistantAvailState: YN; /** 抽奖按钮中文文案 */ lotteryGiftButtonTextCH: string; /** 抽奖按钮英文文案 */ lotteryGiftButtonTextEN: string; /** 一客一码功能开关(超管),默认关 */ userSaleShareEnabled: YN; /** 一客一码短信验证码开关,默认关 */ inviteCustomerSmsCodeEnabled: YN; /** 一客一码手机号验证开关,默认关 */ inviteCustomerMobileCheckEnabled: YN; /** 头衔展示开关,默认关 */ viewerActorEnabled: YN; /** 后台观众翻页 */ viewerPptTurningEnabled: YN; /** 一客一码使用场景,默认:wechat */ inviteCustomerUsageScenario?: 'wechat' | 'browser'; /** 用户系统 */ watchUserSystemEnabled: YN; /** 公司名 */ company: string | null; /** 公司 logo */ logoUrl: string | null; /** 素材库开关 */ materialEnabled: YN; /** 提示语数据 */ productLinkJumpTipDetail?: ProductLinkJumpTipDetail; /** 是否显示热卖特效 */ productHotEffectEnabled: YN; /** 热卖词数据 */ productHotEffectTips?: ProductHotEffectTips; /** 抽奖隐私协议内容 */ lotteryPrivacy: string; /** 抽奖版本 */ lotteryVersion: 'v1' | 'v2'; /** 抽奖隐私协议开关 */ lotteryActivityPrivacyEnabled: YN; /** 商品订单入口是否显示 */ productPayOrderEnabled: YN; /** 商品是否支持直接购买开关 */ innerProduceOrderEnabled: YN; /** 竖屏在线列表开关 */ portraitOnlineListEnabled: YN; /** 分组开关 */ chatViewerGroupEnabled: YN; /** Webview 后台小窗是否开启 */ pictureInPictureEnabled: YN; /** Webview 退出应用IOS后台小窗是否开启 */ pictureInPictureIOSEnabled: YN; /** 个人中心开关 */ personalCenterEnabled: YN; /** 监播端跑马灯开关 */ marqueeEnabled: YN; /** 顶部引导条配置 */ topGuideBar?: ChannelDetailTopGuide; /** 其他直播预约提示语 */ otherChannelBookingTips: { bookingTips: string; channelId: string; }[]; /** 频道类型 */ streamType: ChannelStreamType; /** 连麦人数限制 */ linkMicLimit: number | null; /** 优惠券开关 */ couponEnabled: YN; /** 邀请观看审核开关 */ inviteWatchAuditEnabled: YN; /** 聊天消息布局 */ chatMessageLayout: ChatMessageLayout; portraitChatMessageLayout: ChatMessageLayout; /** 头像是否显示 */ chatMessageAvatarDisplay: YN; portraitChatMessageAvatarDisplay: YN; /** 最后一次推流时间 */ lastPushStreamTime: number | null; /** 移动端投诉按钮位置 CONTROL_STRIP_INNER,EXTERNAL */ mobileComplaintButtonPosition: string; /** 当前频道正在推送的商品信息 */ channelProductPushingStatusVO: ChannelProductPushingStatusInfo_2; /** 商品讲解开关 */ productExplainEnabled: YN; /** 直播新场次开关 */ newSessionEnabled: YN; /** 混合流渲染模式 */ mixStreamRenderMode: MixStreamRenderMode; /** 聊天室通知 */ chatCustomIntroduction: string | null; /** 聊天室通知(双语) */ chatCustomIntroductionEn: string | null; /** 安卓增强全屏模式 */ androidFullScreenEnhancedEnabled: YN; /** 低延迟智能播放开关 */ lowLatencyIntelligentPlayEnabled: YN; /** 直播广场 */ liveSquare: LiveSquare; /** 用户体系登录注册方式, 用于判断是否需要企微静默授权 */ watchUserSystemRegisterLoginType: string; } /** * 观看页频道设置(用户) */ export declare interface ChannelConfigViewer { /** 聊天室翻译开关 */ chatTranslateEnabled: YN; /** 红包开关 */ redpackEnabled: YN; /** 双师大房间频道号 */ transmitMasterChannelId: string | number | null; /** 双师大房间流名称 */ transmitMasterStream: string | null; /** 聊天室是否长时间未使用 */ watchChatEnabled: YN; /** RTC 供应商类型 */ rtcType: RtcType; /** 是否显示邀请海报,除了后台开关配置外,后端还会判断 openId */ showInviteAccess: YN; /** 跑马灯类型 */ marqueeType: MarqueeType; /** 频道转播场景 */ transmitType: ChannelTransmitType; /** 抽奖手动开关 */ lotteryManualEndEnabled: YN; /** 条件抽奖开关 */ conditionLotteryEnabled: YN; /** 条件抽奖是否自动弹窗 */ conditionLotterySPAutoPopEnabled: YN; /** 水印开关 */ watermarkRestrict: YN; /** 水印内容 */ watermarkType: WatermarkType; /** 水印字体大小 */ watermarkFontSize: WatermarkFontSize; /** 水印透明度,0~100,100 为完全透明 */ watermarkOpacity: string; /** 水印内容 */ watermarkContent: string; /** 唯一登录校验开关 */ singleSessionVerify: YN; /** 唯一登录校验轮训频率,单位:秒 */ channelVerifyQueryFrequency: number; /** 连麦排序显示开关 */ showJoinQueueNumberEnabled: YN; /** 播放器新版暂停样式开关 */ newPlayerPauseStyleEnabled: YN; } /** * 倒计时设置 */ export declare interface ChannelCountdownSetting { /** 直播开始时间,单位:时间戳 */ liveStartTime: number | undefined; /** 倒计时开关 */ countdownEnabled: boolean; /** 回放时是否显示下一场倒计时 */ playbackShowCountdownEnabled: boolean; } /** * 频道详情 */ export declare type ChannelDetail = ChannelDetailBasic & ChannelDetailViewer; /** * 频道详情操作 */ export declare interface ChannelDetailAction { /** 是否需要跳转到主会场 */ mainChannelRedirect: YN; /** 是否需要跳转到分会场 */ subMeetingChannelRedirect: YN; /** 跳转分会场的频道号 */ subMeetingChannelId: number | null; } /** * 频道广告相关类型 */ export declare interface ChannelDetailAdvertSetting extends PageAdvertImageSetting, PageAdvertTextSetting, PageAdvertHrefSetting, HeadAdvertSetting, StopAdvertSetting, IconAdvertSetting { /** 页面广告列表 */ pageAdvertList?: PageAdvertListItem[]; /** 页面广告开关 */ pageAdvertEnabled: YN; /** 允许关闭页面广告 */ closeAdvertEnabled: YN; } /** * 频道详情(基础) */ export declare interface ChannelDetailBasic { /** 观看条件设置 */ authSetting: ChannelAuthSetting | null; /** 观看页频道设置,包括用户设置 */ channelConfig: Readonly<ChannelConfigBasic>; /** 频道信息 */ channelInfo: Readonly<ChannelInfoBasic>; /** 频道菜单列表 */ channelMenus: ChannelMenuItem[]; /** 观看页定制频道信息 */ customChannelSetting: Readonly<CustomChannelSetting>; /** 域名信息 */ domain: Readonly<ChannelDomain>; /** 特效设置 */ effect: Readonly<ChannelDetailEffectSetting>; /** 报名观看设置 */ enrollSetting?: ChannelEnrollSetting; /** 页脚设置 */ footerSetting: Readonly<ChannelFooterSetting>; /** 直播状态数据 */ liveStatus: Readonly<ChannelLiveStatusBasic>; /** 多语言列表 */ mulitLangList?: ChannelMultiLangItem[]; /** 分会场设置 */ multiMeetingSetting?: ChannelMultiMeetingSetting; /** 频道主题设置 */ theme: Readonly<ChannelTheme>; /** 互动设置 */ interactionSetting: Readonly<InteractionSetting>; /** 频道观看数据 */ watchData: ChannelWatchData; /** 精彩看点设置 */ timeAxisMark: ChannelTimeAxisMarkSetting; /** 直播时移设置 */ timeShift: ChannelTimeShiftSetting; /** 基础回放设置 */ playback: ChannelDetailBasicPlayback; /** 云席设置 */ seatSetting?: DetailSeatSetting; /** AI 配置 */ channelAiConfig: ChannelAIConfig; /** 讲师信息 */ channelTeacher: ChannelDetailTeacherInfo; /** * 用户配置 * @version v1.11.0 * */ userConfig: GlobalUserConfig; } /** * 基础回放设置 */ export declare interface ChannelDetailBasicPlayback { /** 回放视频名称,需要通过 vid 入参才不为 null */ playbackVideoName: string | null; /** 是否支持快进快退 */ fastForwardBackwardEnabled: YN; } export declare interface ChannelDetailChatInfo { /** 房间号 */ channelRoomId: string | null; /** 聊天室连接 token */ chatToken: string; } /** * 回传参数对象 */ export declare interface ChannelDetailEchoParams { /** 渠道 id */ promoteId: string | null; } /** * 频道消息特效设置 */ export declare interface ChannelDetailEffectSetting { /** 访问特效开关 */ visitEffectEnabled: YN; /** 用户访问直播间 */ joinVisitEffectTip: string; /** 购买转化特效开关 */ productEffectEnabled: YN; /** 用户点击商品-普通商品 */ clickOrdinaryProductEffectTip: string; /** 用户点击商品-金融商品 */ clickFinancialProductEffectTip: string; /** 用户点击商品-职位商品 */ clickJobProductEffectTip: string; /** 用户下单商品-普通商品 */ orderProductEffectTip: string; /** 参与互动特效开关 */ interactionEffectEnabled: YN; /** 用户签到成功 */ checkinInteractionEffectTip: string; /** 用户打赏成功特效 */ donateInteractionEffectTip: string; } declare interface ChannelDetailPlaybackInfo { /** 是否开启回放,默认关 */ enablePlayBack: YN; /** 频道播放模式 */ playMode: ChannelPlayMode; /** 聊天重放开关 */ chatPlaybackEnabled: YN; /** 卡片推送重放开关 */ cardPushPlaybackEnabled: YN; /** 签到重放开关 */ checkInPlaybackEnabled: YN; /** 问卷重放开关 */ questionnairePlaybackEnabled: YN; /** 答题卡重放开关 */ qaPlaybackEnabled: YN; /** 商品库重放开关 */ productPlaybackEnabled: YN; /** 是否存在回放视频 */ hasPlaybackVideo: YN; /** 是否存在暂存文件 */ hasRecordFile: YN; /** 回放来源 */ playbackOrigin: PlaybackOrigin; /** 暂存对象 */ recordFile: PlaybackRecordFile | null; /** 回放对象 */ targetPlaybackVideo: PlaybackVideoTarget | null; /** 章节开关 */ sectionEnabled: YN; /** 回放方式 */ type: PlaybackMode; /** 播放场次号 */ targetSessionId: string | null; /** 点播场次号 */ vodSessionId: string | null; /** 点播地址 */ vodUrl: string | null; /** 点播用户状态 */ vodUserStatus: YN; /** 回放字幕列表 */ subtitleList: ReplaySubtitleItem[]; /** 回放时是否显示倍速按钮,默认开 */ playbackMultiplierEnabled: YN; /** 回放时是否显示进度条,默认开 */ playbackProgressBarEnabled: YN; /** 回放时是否显示左下角播放/暂停按钮,默认开 */ showPlayButtonEnabled: YN; /** 回放时是否循环播放,列表播放播放完最后一个视频会暂停播放,默认开 */ loopPlayEnabled: YN; /** 回放时 回放大纲开关 默认开 */ aiSummaryEnabled: YN; /** 回放列表是否显示开始时间, 默认开 */ listLiveStartTimeEnabled: YN; } /** * 播放器设置 */ export declare interface ChannelDetailPlayerSetting { /** 弹幕是否默认显示 */ showDanmuInfoEnabled: YN; /** 播放器 logo 图片地址 */ logoImage: string | null; /** 播放器 logo 跳转地址 */ logoHref: string | null; /** 播放器 logo 透明度,0~1 */ logoOpacity: number; /** 播放器 logo 位置 */ logoPosition: PlayerLogoPosition; /** 安卓下是否显示倍速按钮 */ androidXSpeedPlayEnabled: YN; } /** * 公众号关注信息 */ export declare interface ChannelDetailPromotion { /** 关注是否自动打开 */ followAutoShow: YN; /** 关注开关 */ followEnabled: YN; /** 关注入口文案 */ followEntrance: string; /** 关注图片 */ followImage: string; /** 移动端关注提示 */ followTips: string; /** PC端关注提示 */ pcFollowTips: string; /** 邀约明细开关,默认关 */ inviteDetailEnabled: YN; } export declare interface ChannelDetailRequestParams { /** 频道号 */ channelId: string; } export declare interface Chan