export interface AnalyticsDebugConfig { fields?: string[]; } export interface CollectorConfig { backendUrl?: string; enabled?: boolean; cookiesEnabled?: boolean; cookiesDomain?: string; cookiesMaxAge?: number; origin?: string; ssaiEngagementTrackingEnabled?: boolean; } export interface AnalyticsConfig { config?: CollectorConfig; debug?: boolean | AnalyticsDebugConfig; key?: string; playerKey?: string; deviceType?: string; deviceClass?: "Console" | "Desktop" | "Other" | "Phone" | "STB" | "Tablet" | "TV" | "Wearable"; player?: string; userId?: string; customUserId?: string; cdnProvider?: string; videoId?: string; title?: string; isLive?: boolean; customData1?: any; customData2?: any; customData3?: any; customData4?: any; customData5?: any; customData6?: any; customData7?: any; customData8?: any; customData9?: any; customData10?: any; customData11?: any; customData12?: any; customData13?: any; customData14?: any; customData15?: any; customData16?: any; customData17?: any; customData18?: any; customData19?: any; customData20?: any; customData21?: any; customData22?: any; customData23?: any; customData24?: any; customData25?: any; customData26?: any; customData27?: any; customData28?: any; customData29?: any; customData30?: any; customData31?: any; customData32?: any; customData33?: any; customData34?: any; customData35?: any; customData36?: any; customData37?: any; customData38?: any; customData39?: any; customData40?: any; customData41?: any; customData42?: any; customData43?: any; customData44?: any; customData45?: any; customData46?: any; customData47?: any; customData48?: any; customData49?: any; customData50?: any; experimentName?: string; } export interface CustomDataValues { customData1?: string; customData2?: string; customData3?: string; customData4?: string; customData5?: string; customData6?: string; customData7?: string; customData8?: string; customData9?: string; customData10?: string; customData11?: string; customData12?: string; customData13?: string; customData14?: string; customData15?: string; customData16?: string; customData17?: string; customData18?: string; customData19?: string; customData20?: string; customData21?: string; customData22?: string; customData23?: string; customData24?: string; customData25?: string; customData26?: string; customData27?: string; customData28?: string; customData29?: string; customData30?: string; customData31?: string; customData32?: string; customData33?: string; customData34?: string; customData35?: string; customData36?: string; customData37?: string; customData38?: string; customData39?: string; customData40?: string; customData41?: string; customData42?: string; customData43?: string; customData44?: string; customData45?: string; customData46?: string; customData47?: string; customData48?: string; customData49?: string; customData50?: string; experimentName?: string; } /** * Minimal set of shared methods among all collectors */ export interface AdapterAPI { get version(): string; getCurrentImpressionId: () => string | undefined; getUserId: () => string | undefined; setCustomData: (values: CustomDataValues) => void; setCustomDataOnce: (values: CustomDataValues) => void; sourceChange: (config: AnalyticsConfig) => void; } export type AdPosition = "preroll" | "midroll" | "postroll"; export type SsaiAdBreakMetadata = { adPosition?: AdPosition; }; export type SsaiAdMetadata = { adId?: string; adSystem?: string; customData?: CustomDataValues; }; export type SsaiAdQuartile = "first" | "midpoint" | "third" | "completed"; export type SsaiAdQuartileMetadata = { failedBeaconUrl?: string; }; export interface SsaiApi { adBreakStart(adBreakMetadata?: SsaiAdBreakMetadata): void; adStart(adMetadata?: SsaiAdMetadata): void; adQuartileFinished(adQuartile: SsaiAdQuartile, adQuartileMetadata?: SsaiAdQuartileMetadata): void; adBreakEnd(): void; } export interface AnalyticsStateMachineOptions { starttime: any; } export declare class AmazonIVSAdapter implements AdapterAPI { private readonly internalAdapter; private readonly analytics; constructor(config: AnalyticsConfig, player: any, opts?: AnalyticsStateMachineOptions); private wrapPlayerLoad; static readonly version: string; get version(): string; getCurrentImpressionId(): string | undefined; getUserId(): string | undefined; setCustomData(values: CustomDataValues): void; setCustomDataOnce(values: CustomDataValues): void; sourceChange(config: AnalyticsConfig): void; } export declare class Bitmovin8Adapter implements AdapterAPI { private readonly internalAdapter; private readonly analytics; constructor(player: any, opts?: AnalyticsStateMachineOptions); readonly ssai: SsaiApi; private wrapPlayerLoad; static readonly version: string; get version(): string; getCurrentImpressionId(): string | undefined; getUserId(): string | undefined; setCustomData(values: CustomDataValues): void; setCustomDataOnce(values: CustomDataValues): void; sourceChange(config: AnalyticsConfig): void; } export declare const PlayerModule: { readonly name: "analytics"; readonly module: { readonly Analytics: typeof Bitmovin8Adapter; }; readonly hooks: { readonly setup: (module: any, player: any) => Promise; }; }; export declare const BitmovinPwxAnalyticsPackage: any; export declare class CAFv3Adapter implements AdapterAPI { private readonly internalAdapter; private readonly analytics; constructor(config: AnalyticsConfig, castReceiverContext: any, opts?: AnalyticsStateMachineOptions); static readonly version: string; get version(): string; getCurrentImpressionId(): string | undefined; getUserId(): string | undefined; setCustomData(values: CustomDataValues): void; setCustomDataOnce(values: CustomDataValues): void; sourceChange(config: AnalyticsConfig): void; } export declare class DashjsAdapter implements AdapterAPI { private readonly internalAdapter; private readonly analytics; constructor(config: AnalyticsConfig, player: any, opts?: AnalyticsStateMachineOptions); static readonly version: string; get version(): string; getCurrentImpressionId(): string | undefined; getUserId(): string | undefined; setCustomData(values: CustomDataValues): void; setCustomDataOnce(values: CustomDataValues): void; sourceChange(config: AnalyticsConfig): void; } export declare class HlsAdapter implements AdapterAPI { private readonly internalAdapter; private readonly analytics; constructor(config: AnalyticsConfig, player: any, opts?: AnalyticsStateMachineOptions); static readonly version: string; get version(): string; getCurrentImpressionId(): string | undefined; getUserId(): string | undefined; setCustomData(values: CustomDataValues): void; setCustomDataOnce(values: CustomDataValues): void; sourceChange(config: AnalyticsConfig): void; } export declare class HTMLVideoElementAdapter implements AdapterAPI { private readonly internalAdapter; private readonly analytics; constructor(config: AnalyticsConfig, player: HTMLVideoElement, opts?: AnalyticsStateMachineOptions, sourceMetadata?: { audioCodec?: string; audioLanguage?: string; streamFormat?: string; videoCodec?: string; }); get sessionMetadata(): { setAudioLanguage(audioLanguage: string): void; setSubtitleEnabled(enabled: boolean): void; setSubtitleLanguage(subtitleLanguage: string): void; }; static readonly version: string; get version(): string; getCurrentImpressionId(): string | undefined; getUserId(): string | undefined; setCustomData(values: CustomDataValues): void; setCustomDataOnce(values: CustomDataValues): void; sourceChange(config: AnalyticsConfig, sourceMetadata?: { audioCodec?: string; audioLanguage?: string; streamFormat?: string; videoCodec?: string; }): void; } export declare class ShakaAdapter implements AdapterAPI { private readonly internalAdapter; private readonly analytics; constructor(config: AnalyticsConfig, player: any, opts?: AnalyticsStateMachineOptions); private wrapPlayerLoad; static readonly version: string; get version(): string; getCurrentImpressionId(): string | undefined; getUserId(): string | undefined; setCustomData(values: CustomDataValues): void; setCustomDataOnce(values: CustomDataValues): void; sourceChange(config: AnalyticsConfig): void; } export declare class VideojsAdapter implements AdapterAPI { private readonly internalAdapter; private readonly analytics; constructor(config: AnalyticsConfig, player: any, opts?: AnalyticsStateMachineOptions); static readonly version: string; get version(): string; getCurrentImpressionId(): string | undefined; getUserId(): string | undefined; setCustomData(values: CustomDataValues): void; setCustomDataOnce(values: CustomDataValues): void; sourceChange(config: AnalyticsConfig): void; } declare enum CdnProvider { AKAMAI = "akamai", BITGRAVITY = "bitgravity", CHINACACHE = "chinacache", CLOUDFLARE = "cloudflare", CLOUDFRONT = "cloudfront", FASTLY = "fastly", MAXCDN = "maxcdn" } declare enum Player { AMAZON_IVS = "amazonivs", BITMOVIN = "bitmovin", BITMOVIN_PWX = "bitmovin-pwx", CHROMECAST_SHAKA = "chromecast-shaka", DASHJS = "dashjs", HLSJS = "hlsjs", HTML5 = "html5", JW = "jw", RADIANT = "radiant", SHAKA = "shaka", VIDEOJS = "videojs" } declare const VERSION: string; export declare const adapters: { AmazonIVSAdapter: typeof AmazonIVSAdapter; Bitmovin8Adapter: typeof Bitmovin8Adapter; CAFv3Adapter: typeof CAFv3Adapter; DashjsAdapter: typeof DashjsAdapter; HTMLVideoElementAdapter: typeof HTMLVideoElementAdapter; HlsAdapter: typeof HlsAdapter; ShakaAdapter: typeof ShakaAdapter; VideojsAdapter: typeof VideojsAdapter; }; declare const _default: { PlayerModule: { readonly name: "analytics"; readonly module: { readonly Analytics: typeof Bitmovin8Adapter; }; readonly hooks: { readonly setup: (module: any, player: any) => Promise; }; }; }; export { CdnProvider as CdnProviders, Player as Players, VERSION as version, _default as default, };