@wscsports/blaze-web-sdk 0.3.1701 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,8 @@
1
+ type PlayContentOptions = {
2
+ dataSource: BlazeDataSourceType;
3
+ actionHandlers?: ActionHandler[];
4
+ style?: StoryPlayerStyle | VideoPlayerStyle;
5
+ };
1
6
  export declare function setDoNotTrack(value: boolean): void;
2
7
  export declare function setGeoLocation(value: string): void;
3
8
  export declare function setExternalUserId(value: string): Promise<void>;
@@ -7,6 +12,7 @@ export declare function WidgetGridView(containerId: string, options: IWidgetView
7
12
  export declare function WidgetEmbeddedStory(containerId: string, options: IWidgetViewOptions): IWidgetView;
8
13
  export declare function Theme(theme: ThemeType, contentType: 'moment'): IWidgetTheme<MomentPlayerStyle>;
9
14
  export declare function Theme(theme: ThemeType, contentType: 'story'): IWidgetTheme<StoryPlayerStyle>;
15
+ export declare function Theme(theme: ThemeType, contentType: 'video'): IWidgetTheme<VideoPlayerStyle>;
10
16
  export declare function Theme(theme: ThemeType): IWidgetTheme<StoryPlayerStyle>;
11
17
  export declare function addDelegateListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void;
12
18
  export declare const Delegations: typeof Delegation;
@@ -16,9 +22,11 @@ export declare function pauseCurrentPlayer(): void;
16
22
  export declare function resumeCurrentPlayer(): void;
17
23
  export declare function setGoogleCustomNativeAdsHandler(handler: CustomNativeAdHandler): void;
18
24
  export declare function setImaHandler(handler: ImaAdHandler): void;
19
- export declare function playStory(storyId: string, style?: StoryPlayerStyle): Promise<void>;
20
- export declare function playStories(dataSource: BlazeDataSourceType, style?: StoryPlayerStyle): Promise<void>;
25
+ export declare function playStory(storyId: string, style?: StoryPlayerStyle, actionHandlers?: ActionHandler[]): Promise<void>;
26
+ export declare function playStories(dataSource: BlazeDataSourceType, style?: StoryPlayerStyle, actionHandlers?: ActionHandler[]): Promise<void>;
27
+ export declare function playContent(contentType: ContentType, options: PlayContentOptions): Promise<void>;
21
28
  export declare function setAbTestParams(abTestParams: BlazeAbTestType): void;
29
+ export declare function getAppContextManager(): Record<string, any>;
22
30
  declare const _default: {
23
31
  Initialize: typeof Initialize;
24
32
  WidgetGridView: typeof WidgetGridView;
@@ -38,7 +46,9 @@ declare const _default: {
38
46
  setExternalUserId: typeof setExternalUserId;
39
47
  playStory: typeof playStory;
40
48
  playStories: typeof playStories;
49
+ playContent: typeof playContent;
41
50
  setAbTestParams: typeof setAbTestParams;
51
+ getAppContextManager: typeof getAppContextManager;
42
52
  };
43
53
  export default _default;
44
54
 
@@ -47,7 +57,7 @@ export interface IAPIOptions {
47
57
  analyticsBaseUrl: string | undefined;
48
58
  }
49
59
  export interface IRequestOptions {
50
- init?: Pick<RequestInit, 'method' | 'body' | 'headers' | 'credentials'>;
60
+ init?: Pick<RequestInit, 'method' | 'body' | 'headers' | 'credentials' | 'keepalive'>;
51
61
  baseUrl?: string;
52
62
  urlSearchParams?: {};
53
63
  auth?: boolean;
@@ -68,6 +78,7 @@ export declare enum Category {
68
78
  Story = "story",
69
79
  Moment = "moment",
70
80
  Widget = "widget",
81
+ Video = "video",
71
82
  Ad = "ad",
72
83
  Interaction = "interaction"
73
84
  }
@@ -156,6 +167,7 @@ export declare class AnalyticsEvent {
156
167
  story: Partial<StoryEvent> | undefined;
157
168
  moment: Partial<MomentEvent> | undefined;
158
169
  widget: Partial<WidgetEvent> | undefined;
170
+ video: Partial<VideoEvent> | undefined;
159
171
  ad: Partial<AdEvent> | undefined;
160
172
  interaction: Partial<InteractionEvent> | undefined;
161
173
  }
@@ -187,6 +199,9 @@ export declare class StoryEvent {
187
199
  'player_orientation': ContentAspectRatio;
188
200
  'cc_state': string;
189
201
  'content_extra_info': string;
202
+ 'custom_action_button_name': string;
203
+ 'enrichment_layer_id': string;
204
+ 'enrichment_layer_url': string;
190
205
  }
191
206
  export declare class MomentEvent {
192
207
  'moments_session_id': string;
@@ -200,11 +215,12 @@ export declare class MomentEvent {
200
215
  'moment_duration': number;
201
216
  'moment_duration_viewed_percent': number;
202
217
  'playback_action_method': string;
203
- 'audio_state': string;
218
+ 'audio_state': 'Mute' | 'Unmute';
204
219
  'loop_number': string;
205
220
  'gesture_type': MomentGestureType;
206
221
  'cc_state': string;
207
222
  'content_extra_info': string;
223
+ 'custom_action_button_name': string;
208
224
  }
209
225
  export declare class WidgetEvent {
210
226
  'page_view_id': string;
@@ -229,6 +245,28 @@ export declare class WidgetEvent {
229
245
  'page_type': string;
230
246
  'page_size': string;
231
247
  }
248
+ export declare class VideoEvent {
249
+ 'video_session_id': string;
250
+ 'video_id': string;
251
+ 'video_title': string;
252
+ 'video_duration': number;
253
+ 'video_start_trigger': string;
254
+ 'video_time_start': number;
255
+ 'video_time_end': number;
256
+ 'video_end_trigger': string;
257
+ 'next_video_id': string;
258
+ 'cta_config': CtaConfiguration | string;
259
+ 'screen_state': ScreenChangeState;
260
+ 'player_orientation': string;
261
+ 'device_orientation': string;
262
+ 'audio_state': string;
263
+ 'cc_state': string;
264
+ 'quality': string;
265
+ 'seek_type': string;
266
+ 'seek_total_time': number;
267
+ 'seek_direction': string;
268
+ 'content_extra_info': string;
269
+ }
232
270
  export declare class AdEvent {
233
271
  'advertiser_id': string;
234
272
  'advertiser_name': string;
@@ -270,6 +308,9 @@ export declare class ImaAdEvent {
270
308
  'ima_ad_provider': string;
271
309
  'player_orientation': ContentAspectRatio;
272
310
  'content_extra_info': string;
311
+ 'ad_index': string;
312
+ 'audio_state': string;
313
+ 'content_type': string;
273
314
  }
274
315
  export declare class InteractionEvent {
275
316
  'interaction_id': string;
@@ -295,8 +336,9 @@ export declare abstract class BaseWidget extends HTMLElement {
295
336
  removeElement(): void;
296
337
  }
297
338
 
339
+ type BlazeSourceType = 'labels' | 'ids';
298
340
  export interface BlazeDataSourceType {
299
- type: 'labels' | 'ids';
341
+ type: BlazeSourceType;
300
342
  labels?: string | string[] | BlazeWidgetLabel;
301
343
  labelsPriority?: string | string[] | BlazeWidgetLabel[];
302
344
  ids?: string[];
@@ -330,19 +372,20 @@ export declare const Platform: {
330
372
  readonly Embedded: "embedded";
331
373
  readonly Desktop: "desktop";
332
374
  };
333
- type ScreenOrientation = 'landscape' | 'portrait';
375
+ export declare const DEVICE_EVENTS: {
376
+ SCREEN_ORIENTATION_CHANGE: string;
377
+ };
334
378
  type Platform = 'console' | 'mobile' | 'tablet' | 'smarttv' | 'wearable' | 'embedded' | 'desktop';
335
379
  type OS = 'AIX' | 'Amiga OS' | 'Android' | 'Arch' | 'Bada' | 'BeOS' | 'BlackBerry' | 'CentOS' | 'Chromium OS' | 'Contiki' | 'Fedora' | 'Firefox OS' | 'FreeBSD' | 'Debian' | 'DragonFly' | 'Gentoo' | 'GNU' | 'Haiku' | 'Hurd' | 'iOS' | 'Joli' | 'Linpus' | 'Linux' | 'Mac OS' | 'Mageia' | 'Mandriva' | 'MeeGo' | 'Minix' | 'Mint' | 'Morph OS' | 'NetBSD' | 'Nintendo' | 'OpenBSD' | 'OpenVMS' | 'OS/2' | 'Palm' | 'PCLinuxOS' | 'Plan9' | 'Playstation' | 'QNX' | 'RedHat' | 'RIM Tablet OS' | 'RISC OS' | 'Sailfish' | 'Series40' | 'Slackware' | 'Solaris' | 'SUSE' | 'Symbian' | 'Tizen' | 'Ubuntu' | 'UNIX' | 'VectorLinux' | 'WebOS' | 'Windows Phone/Mobile' | 'Zenwalk';
336
380
  type Browser = 'Amaya' | 'Android Browser' | 'Arora' | 'Avant' | 'Baidu' | 'Blazer' | 'Bolt' | 'Camino' | 'Chimera' | 'Chrome' | 'Chromium' | 'Comodo Dragon' | 'Conkeror' | 'Dillo' | 'Dolphin' | 'Doris' | 'Edge' | 'Epiphany' | 'Fennec' | 'Firebird' | 'Firefox' | 'Flock' | 'GoBrowser' | 'iCab' | 'ICE Browser' | 'IceApe' | 'IceCat' | 'IceDragon' | 'Iceweasel' | 'IE' | 'Iron' | 'Jasmine' | 'K-Meleon' | 'Konqueror' | 'Kindle' | 'Links' | 'Lunascape' | 'Lynx' | 'Maemo' | 'Maxthon' | 'Midori' | 'Minimo' | 'MIUI Browser' | 'Safari' | 'Mosaic' | 'Mozilla' | 'Netfront' | 'Netscape' | 'NetSurf' | 'Nokia' | 'OmniWeb' | 'Opera' | 'Phoenix' | 'Polaris' | 'QQBrowser' | 'RockMelt' | 'Silk' | 'Skyfire' | 'SeaMonkey' | 'SlimBrowser' | 'Swiftfox' | 'Tizen' | 'UCBrowser' | 'Vivaldi' | 'w3m' | 'Yandex' | 'Mobile Safari';
337
381
  declare class DeviceDetector {
338
382
  private static instance;
339
383
  private parser;
340
- private resizeListener;
384
+ private boundResizeListener;
341
385
  OS: OS;
342
386
  platform: Platform;
343
387
  browser: Browser;
344
- screenOrientation: ScreenOrientation;
345
- private orientationChangeEvent;
388
+ screenOrientation: DeviceScreenOrientation;
346
389
  private constructor();
347
390
  removeResizeListener(): void;
348
391
  static getInstance(): DeviceDetector;
@@ -355,6 +398,7 @@ declare class DeviceDetector {
355
398
  private getScreenOrientation;
356
399
  private handleResize;
357
400
  isIOSMobileTabletSafari(): boolean;
401
+ get isFullscreenSupported(): boolean;
358
402
  }
359
403
  export declare const deviceDetector: DeviceDetector;
360
404
 
@@ -369,6 +413,23 @@ export declare class EventsListener {
369
413
  removeAll(): void;
370
414
  }
371
415
 
416
+ export declare class FullscreenManager {
417
+ private isFullscreen;
418
+ private isProgrammaticChange;
419
+ private container;
420
+ private boundOnFullscreenChange;
421
+ onFullscreenChangeByBrowser: (() => void) | undefined;
422
+ constructor(container: HTMLElement);
423
+ toggleFullscreen(): Promise<void>;
424
+ waitForFullscreenExit(): Promise<void>;
425
+ private enterFullscreen;
426
+ exitFullscreen(): Promise<void>;
427
+ private handleFullscreenChange;
428
+ isFullscreenMode(): boolean;
429
+ private attachEventListeners;
430
+ destroy(): void;
431
+ }
432
+
372
433
  export * from './analytics.class';
373
434
  export * from './base-element.class';
374
435
  export * from './debounce';
@@ -380,6 +441,8 @@ export * from './singleton.class';
380
441
  export * from './throttle';
381
442
  export * from './url';
382
443
  export * from './data-source.class';
444
+ export * from './fullscreen-manager.class';
445
+ export * from './visiblity-manager.class';
383
446
 
384
447
  export declare class BlazeWidgetLabel {
385
448
  value: string;
@@ -418,7 +481,7 @@ export declare function Singleton<T>(): {
418
481
  };
419
482
 
420
483
  export type EventHandler<E extends Event> = (event: E) => void;
421
- export declare function throttle<T extends Event>(func: EventHandler<T>, _delay: number): (event: T) => Promise<void>;
484
+ export declare function throttle<F extends (...args: any[]) => void>(func: F, _delay: number): (...args: Parameters<F>) => Promise<void>;
422
485
 
423
486
  interface UpdateLocationContentHashParams {
424
487
  contentType?: ContentType;
@@ -435,6 +498,7 @@ export declare class URLManager {
435
498
  static isBackWasCalled: boolean;
436
499
  static isAutoAdvancingEnabled: boolean;
437
500
  static resetLocationAfterContentClose(): void;
501
+ static get shouldModifyUrlWithId(): boolean;
438
502
  static resetLocation(): void;
439
503
  static updateLocationContentHash(params: UpdateLocationContentHashParams): void;
440
504
  static getHashMatch(): boolean;
@@ -449,6 +513,26 @@ export declare class URLManager {
449
513
  static navigateTo(navigationFeature: 'AUTO_ADVANCE'): Promise<void>;
450
514
  }
451
515
 
516
+ export interface IVideoPlayerController {
517
+ isConnected: boolean;
518
+ resumeAfterFocus: boolean;
519
+ pause(): void;
520
+ resume(): void;
521
+ currentVideoItem: BlazeVideoElement;
522
+ }
523
+ export declare class VisibilityManager {
524
+ private controller;
525
+ private boundHandleVisibilityChange;
526
+ private boundHandleFocus;
527
+ private BoundHandleBlur;
528
+ constructor(controller: IVideoPlayerController);
529
+ private attachEventListeners;
530
+ private handleVisibilityChange;
531
+ private handleBlur;
532
+ private handleFocus;
533
+ detach(): void;
534
+ }
535
+
452
536
  export declare class BlazeAlert extends BaseWidget {
453
537
  titleContainer: HTMLDivElement;
454
538
  textContainer: HTMLDivElement;
@@ -479,7 +563,6 @@ type DrawerAttributes = 'open' | 'background-color' | 'border-color' | 'border-r
479
563
  export declare class BlazeDrawer extends BaseWidget {
480
564
  backdropContainer: BlazeDiv;
481
565
  drawerContainer: BlazeDiv;
482
- isOpen: boolean;
483
566
  drawerOptions: IDrawerOptions | undefined;
484
567
  drawerComponent: BaseWidget | undefined;
485
568
  onOpen: (() => void) | undefined;
@@ -496,8 +579,8 @@ export declare class BlazeDrawer extends BaseWidget {
496
579
  init(options: IDrawerOptions): void;
497
580
  private buildBackdrop;
498
581
  private buildModal;
499
- open(): Promise<void>;
500
- close(): Promise<void>;
582
+ open(): void;
583
+ close(): void;
501
584
  private animateDrawer;
502
585
  }
503
586
 
@@ -523,7 +606,11 @@ export * from './typography';
523
606
 
524
607
  export declare class BlazeLoader extends HTMLElement {
525
608
  constructor();
609
+ static get observedAttributes(): string[];
610
+ attributeChangedCallback(name: string, oldValue: string, newValue: string): void;
526
611
  connectedCallback(): void;
612
+ private updateLoaderSize;
613
+ private updateLoaderColor;
527
614
  }
528
615
 
529
616
  export declare class BlazeWidgetItemSkeleton extends BaseWidget {
@@ -551,18 +638,35 @@ export declare class BlazeTypography extends BaseWidget {
551
638
  get fontSize(): ".8rem" | "1rem" | ".5rem";
552
639
  }
553
640
 
554
- type AttributeType = 'disabled' | 'blaze-btn-hidden' | 'blaze-btn-visible' | 'height' | 'width' | 'icon-color' | 'order';
641
+ export type ButtonAttribute = (typeof BUTTON_ATTRIBUTES)[keyof typeof BUTTON_ATTRIBUTES];
642
+ export declare const BUTTON_ATTRIBUTES: {
643
+ readonly Disabled: "disabled";
644
+ readonly BlazeBtnHidden: "blaze-btn-hidden";
645
+ readonly BlazeBtnVisible: "blaze-btn-visible";
646
+ readonly Height: "height";
647
+ readonly Width: "width";
648
+ readonly IconColor: "icon-color";
649
+ readonly Order: "order";
650
+ readonly ButtonDesktopAnimation: "button-desktop-animation";
651
+ };
555
652
  export declare class BlazeButton extends BaseWidget {
556
653
  buttonElement: HTMLButtonElement;
654
+ buttonIcon: string;
655
+ isAnimationOnDesktopInitialized: boolean;
557
656
  get refElement(): ShadowRoot | this;
558
657
  constructor();
559
- static observedAttributes: string[];
658
+ static get observedAttributes(): ("height" | "order" | "width" | "icon-color" | "blaze-btn-visible" | "disabled" | "blaze-btn-hidden" | "button-desktop-animation")[];
659
+ private onMouseEnter;
660
+ private onMouseLeave;
661
+ private onClick;
560
662
  connectedCallback(): void;
561
663
  disconnectedCallback(): void;
562
- attributeChangedCallback(name: AttributeType, oldValue: string, newValue: string): void;
664
+ attributeChangedCallback(name: ButtonAttribute, oldValue: string, newValue: string): void;
563
665
  get height(): string | number | boolean;
564
666
  get width(): string | number | boolean;
565
667
  setIconUrl(value: string): void;
668
+ setIconUrlAnimation(value: string): void;
669
+ private applyIconStyles;
566
670
  private setIsHidden;
567
671
  private setIsVisible;
568
672
  private setIsDisabled;
@@ -570,6 +674,45 @@ export declare class BlazeButton extends BaseWidget {
570
674
  private setWidth;
571
675
  }
572
676
 
677
+ export declare const CTA_BUTTON_ATTRIBUTES: {
678
+ HiddenBtn: string;
679
+ Width: string;
680
+ Height: string;
681
+ Margin: string;
682
+ Text: string;
683
+ Href: string;
684
+ IconUrl: string;
685
+ IconSize: string;
686
+ IconColor: string;
687
+ ArrowIconDisplay: string;
688
+ ArrowIconColor: string;
689
+ DisplayIcon: string;
690
+ };
691
+ export declare class BlazeCallToActionButton extends BaseWidget {
692
+ private anchorButtonElement;
693
+ private iconButtonElement;
694
+ private iconArrowElement;
695
+ private ctaTextElement;
696
+ private isButtonCreated;
697
+ private animationTimeouts;
698
+ constructor();
699
+ private initializeAttributes;
700
+ private initializeStyles;
701
+ static get observedAttributes(): string[];
702
+ connectedCallback(): void;
703
+ disconnectedCallback(): void;
704
+ attributeChangedCallback(name: keyof typeof CTA_BUTTON_ATTRIBUTES, oldValue: string, newValue: string): void;
705
+ private createButton;
706
+ private animateElement;
707
+ animateButton(animationType: AnimationType): void;
708
+ animateIcon(animationType: AnimationType): void;
709
+ setAnchorButtonStyles(styles: Partial<CSSStyleDeclaration>): void;
710
+ setCtaTextStyle(styles: Partial<CSSStyleDeclaration>): void;
711
+ setCtaIconStyles(styles: Partial<CSSStyleDeclaration>): void;
712
+ clearAllAnimations(): void;
713
+ getIconElement(): BlazeButton;
714
+ }
715
+
573
716
  type AttributeType = 'hidden-btn' | 'width' | 'height' | 'margin' | 'text' | 'href' | 'icon-url' | 'icon-size' | 'icon-color' | 'arrow-icon-display' | 'arrow-icon-color' | 'display-icon';
574
717
  export declare class BlazeCtaButton extends BaseWidget {
575
718
  anchorButtonElement: HTMLAnchorElement;
@@ -599,6 +742,7 @@ export declare class BlazeCtaButton extends BaseWidget {
599
742
  export * from './share-button';
600
743
  export * from './button';
601
744
  export * from './cta-button';
745
+ export * from './call-to-action.button';
602
746
 
603
747
  export type ShareButtonType = 'copy-link' | 'linked-in';
604
748
  type AttributeType = 'size' | 'button-type';
@@ -639,7 +783,8 @@ export declare enum StoryAction {
639
783
  Expand = "expand",
640
784
  Minimize = "minimize",
641
785
  ClosedCaptionsOff = "cc_off",
642
- ClosedCaptionsOn = "cc_on"
786
+ ClosedCaptionsOn = "cc_on",
787
+ CustomActionButtonClick = "custom_action_button_click"
643
788
  }
644
789
  export declare enum MomentAction {
645
790
  MomentsPlaylistStart = "moments_playlist_start",
@@ -655,7 +800,25 @@ export declare enum MomentAction {
655
800
  PlaybackPause = "playback_pause",
656
801
  PlaybackPlay = "playback_play",
657
802
  ClosedCaptionsOff = "cc_off",
658
- ClosedCaptionsOn = "cc_on"
803
+ ClosedCaptionsOn = "cc_on",
804
+ CustomActionButtonClick = "custom_action_button_click"
805
+ }
806
+ export declare enum VideoAction {
807
+ VideoStart = "video_start",
808
+ VideoEnd = "video_end",
809
+ PlaybackPause = "playback_pause",
810
+ PlaybackPlay = "playback_play",
811
+ Seek = "seek",
812
+ Like = "like",
813
+ Unlike = "unlike",
814
+ Share = "share",
815
+ Audio = "audio",
816
+ CtaVisible = "cta_visible",
817
+ CtaClick = "cta_click",
818
+ CtaDismissed = "cta_dismissed",
819
+ ClosedCaptionsOff = "cc_off",
820
+ ClosedCaptionsOn = "cc_on",
821
+ ScreenChange = "screen_change"
659
822
  }
660
823
  export declare enum WidgetAction {
661
824
  Load = "widget_load",
@@ -663,14 +826,17 @@ export declare enum WidgetAction {
663
826
  Click = "widget_click"
664
827
  }
665
828
  export declare enum AdAction {
829
+ Requested = "ad_requested",
666
830
  View = "ad_view",
667
831
  Exit = "ad_exit",
668
832
  Click = "ad_click",
833
+ BannerRequested = "banner_ad_requested",
669
834
  BannerView = "banner_ad_view",
670
835
  BannerLoad = "banner_ad_load",
671
836
  BannerClick = "banner_ad_click"
672
837
  }
673
838
  export declare enum ImaAdAction {
839
+ REQUESTED = "ima_ad_requested",
674
840
  ALL_ADS_COMPLETED = "ima_all_ads_completed",
675
841
  CLICK = "ima_ad_clicked",
676
842
  COMPLETED = "ima_ad_completed",
@@ -693,18 +859,8 @@ export declare enum InteractionAction {
693
859
  PlaybackPause = "playback_pause",
694
860
  PlaybackPlay = "playback_play"
695
861
  }
696
- export declare const StoryToAdActionMapper: {
697
- story_page_start: AdAction;
698
- story_page_exit: AdAction;
699
- cta_click: AdAction;
700
- };
701
- export declare const MomentToAdActionMapper: {
702
- moment_start: AdAction;
703
- moment_exit: AdAction;
704
- cta_click: AdAction;
705
- };
706
862
  type ExposedFields = {
707
- [key in StoryAction | MomentAction | WidgetAction | AdAction]?: string[];
863
+ [key in StoryAction | MomentAction | WidgetAction | AdAction | VideoAction]?: string[];
708
864
  };
709
865
  export declare const exposedFieldsByAction: ExposedFields;
710
866
 
@@ -736,15 +892,27 @@ export declare const ONE_SECOND = 1000;
736
892
  export declare const ONE_AND_HALF_SECOND = 1500;
737
893
  export declare const FAIL_TO_LOAD_TIMEOUT_MS = 3000;
738
894
 
895
+ export declare const DB_NAMES: {
896
+ readonly MOMENTS: "moments";
897
+ readonly INTERACTIONS: "interactions";
898
+ readonly USER: "user";
899
+ readonly STORIES: "stories";
900
+ readonly VIDEOS: "videos";
901
+ };
739
902
  export declare class Database implements IDatabase {
740
903
  private readonly options;
741
904
  constructor(options: IDatabaseOptions);
742
905
  dbInstance?: IDBDatabase;
743
- init(options: IDatabaseInitOptions): Promise<void>;
744
- createTransaction(tableName: string, mode: 'readonly' | 'readwrite'): IDBObjectStore | undefined;
906
+ init(): Promise<void>;
907
+ private openDatabase;
908
+ private onUpgradeNeeded;
909
+ private onOpen;
910
+ private onError;
911
+ private deleteDatabase;
912
+ createTransaction(tableName: string, mode: 'readonly' | 'readwrite'): IDBObjectStore | null;
745
913
  get<T>(tableName: string, key: string): Promise<IResponse<T>>;
746
914
  update<T>(tableName: string, value: any): Promise<IResponse<T>>;
747
- private clearAndRecreateDatabase;
915
+ private throttledReinit;
748
916
  }
749
917
 
750
918
  export * from './database';
@@ -782,6 +950,11 @@ export interface AppConfiguration {
782
950
  };
783
951
  }
784
952
 
953
+ export type ContentEntities = {
954
+ gameId: string | null;
955
+ teamId: string | null;
956
+ playerId: string | null;
957
+ };
785
958
  export interface IContent {
786
959
  id: string;
787
960
  title: string;
@@ -791,16 +964,12 @@ export interface IContent {
791
964
  hasViewed: boolean;
792
965
  type?: string;
793
966
  isAd: boolean;
794
- entities?: {
795
- gameId: string | null;
796
- teamId: string | null;
797
- playerId: string | null;
798
- };
967
+ entities?: ContentEntities;
799
968
  bannerAdInfo?: IBannerAdInfo;
800
969
  closedCaptions?: IClosedCaption[];
801
970
  }
802
971
 
803
- export interface ICTA {
972
+ export interface ICta {
804
973
  type: 'Deeplink' | 'Web' | null;
805
974
  text: string;
806
975
  url: string;
@@ -809,6 +978,13 @@ export interface ICTA {
809
978
  enhancements: EnhancementsType;
810
979
  }
811
980
 
981
+ export interface IEntity {
982
+ gameId: string | null;
983
+ teamId: string | null;
984
+ playerId: string | null;
985
+ roundId: string | null;
986
+ }
987
+
812
988
  export * from './ad-info.interface';
813
989
  export * from './content.interface';
814
990
  export * from './cta.interface';
@@ -820,8 +996,32 @@ export * from './page.interface';
820
996
  export * from './rendition.interface';
821
997
  export * from './story.interface';
822
998
  export * from './thumbnail.interface';
823
-
824
- export type InteractionType = 'Poll' | 'Quiz';
999
+ export * from './video.interface';
1000
+ export * from './entity.interface';
1001
+ export * from './app-configuration';
1002
+
1003
+ export type InteractionType = 'Poll' | 'Quiz' | 'Enrichment';
1004
+ type InteractionRelative = 'Player' | 'Screen';
1005
+ export type InteractionObjectYPosition = 'BottomToTop' | 'TopToTop' | 'BottomToBottom' | 'TopToBottom' | 'CenterToTop' | 'CenterToBottom' | 'CenterY';
1006
+ export type InteractionObjectXPosition = 'StartToStart' | 'EndToEnd' | 'StartToEnd' | 'EndToStart' | 'CenterToStart' | 'CenterToEnd' | 'CenterX';
1007
+ type PositionType = {
1008
+ xOffset?: number;
1009
+ xPosition?: InteractionObjectXPosition;
1010
+ xRelativeTo?: InteractionRelative;
1011
+ yOffset?: number;
1012
+ yPosition?: InteractionObjectYPosition;
1013
+ yRelativeTo?: InteractionRelative;
1014
+ };
1015
+ type SizeType = {
1016
+ absoluteHeight?: number;
1017
+ absoluteWidth?: number;
1018
+ heightRatio?: number;
1019
+ widthRatio?: number;
1020
+ };
1021
+ export type InteractionBounds = {
1022
+ position?: PositionType;
1023
+ size?: SizeType;
1024
+ };
825
1025
  export type Interaction = {
826
1026
  id: string;
827
1027
  type: InteractionType;
@@ -832,6 +1032,7 @@ export type Interaction = {
832
1032
  relativeWidth: number;
833
1033
  initData: string;
834
1034
  designOverridesStr: string;
1035
+ bounds?: InteractionBounds;
835
1036
  };
836
1037
  export type InteractionDB = Pick<Interaction, 'id' | 'initData'> & {
837
1038
  userResponse?: string;
@@ -878,7 +1079,7 @@ export interface IMoment extends IContent {
878
1079
  rendition: IRendition;
879
1080
  type: string;
880
1081
  };
881
- cta: ICTA;
1082
+ cta: ICta;
882
1083
  adPath?: string;
883
1084
  subtitle?: string;
884
1085
  description?: string;
@@ -902,7 +1103,7 @@ export interface IContentPage extends IBasePage {
902
1103
  isSkippable: boolean;
903
1104
  thumbnail: IThumbnail;
904
1105
  baseLayer: ILayer;
905
- cta: ICTA;
1106
+ cta: ICta;
906
1107
  shouldShowImaAd?: boolean;
907
1108
  adInfo?: IAdInfo;
908
1109
  interaction?: Interaction;
@@ -918,6 +1119,8 @@ export type IPage = IAdPage | IContentPage;
918
1119
  export interface IRendition {
919
1120
  url: string;
920
1121
  aspectRatio: ContentAspectRatio;
1122
+ bitRate: number;
1123
+ fileSize: number;
921
1124
  }
922
1125
 
923
1126
  export interface IStory extends IContent {
@@ -933,6 +1136,38 @@ export interface IThumbnail {
933
1136
  renditions?: IRendition[];
934
1137
  }
935
1138
 
1139
+ export interface IVideo extends IContent {
1140
+ description: string;
1141
+ isLive: boolean;
1142
+ pages: IPage[];
1143
+ adInfo?: IAdInfo;
1144
+ duration: number;
1145
+ poster: IThumbnail;
1146
+ cta: ICta;
1147
+ baseLayer: ILayer;
1148
+ subtitle: string;
1149
+ likes: number;
1150
+ }
1151
+ export interface VideoDBData {
1152
+ liked: boolean | PromiseLike<boolean>;
1153
+ id: string;
1154
+ currentTime: number;
1155
+ posterCurrentTime: string;
1156
+ }
1157
+
1158
+ export declare enum ActionHandlerId {
1159
+ AddCustomActionButton = "addCustomActionButton"
1160
+ }
1161
+
1162
+ export declare enum ButtonState {
1163
+ Play = 0,
1164
+ Pause = 1,
1165
+ Mute = 2,
1166
+ Unmute = 3,
1167
+ CC_ON = 4,
1168
+ CC_OFF = 5
1169
+ }
1170
+
936
1171
  export declare enum ErrorCode {
937
1172
  FailedToFindContainerId = 1,
938
1173
  FailedContainerIdHasWidgetAlready = 2,
@@ -942,6 +1177,8 @@ export declare enum ErrorCode {
942
1177
  FailedToHaveLabels = 103,
943
1178
  FailedLoadingMoments = 110,
944
1179
  FailedEnrichMoments = 111,
1180
+ FailedLoadingVideos = 120,
1181
+ FailedEnrichVideos = 121,
945
1182
  VisualViewportScaled = 150,
946
1183
  VideoError = 200,
947
1184
  PreviewStoryNotFound = 300,
@@ -949,13 +1186,13 @@ export declare enum ErrorCode {
949
1186
  PreviewMomentNotFound = 310,
950
1187
  PreviewMomentLoadFailed = 311
951
1188
  }
1189
+ export declare const ErrorLoadingCodeMapper: Record<ContentType, ErrorCode>;
952
1190
 
953
1191
  export declare enum Delegation {
954
1192
  onEventTriggered = "blaze-event-triggered",
955
1193
  onErrorThrown = "blaze-error-event",
956
1194
  onPlayerDidAppear = "blaze-player-did-appear",
957
1195
  onPlayerDismissed = "blaze-player-dismissed",
958
- onGetAds = "blaze-get-ads",
959
1196
  onWidgetDataLoadStarted = "blaze-widget-data-load-started",
960
1197
  onWidgetDataLoadCompleted = "blaze-widget-data-load-completed",
961
1198
  onWidgetPlayerDismissed = "blaze-widget-player-dismissed",
@@ -970,6 +1207,7 @@ export declare enum InternalEvent {
970
1207
  FULL_SCREEN_CLICK = "full_screen_click",
971
1208
  AD_ENDED = "ad_ended",
972
1209
  AD_RESUMED = "ad_resumed",
1210
+ AD_STARTED = "ad_started",
973
1211
  BANNER_ANALYTICS = "banner_analytics"
974
1212
  }
975
1213
  export interface InternalEventDetails {
@@ -993,9 +1231,12 @@ export declare const HttpStatus: {
993
1231
  export * from './error-codes.enum';
994
1232
  export * from './event.enum';
995
1233
  export * from './http-status.enum';
1234
+ export * from './button.enum';
1235
+ export * from './action-handler-id.enum';
996
1236
 
997
1237
  export interface WidgetsTagNameMap {
998
1238
  'blaze-sdk': BlazeWidgetSDK;
1239
+ 'blaze-widget-vast-ad': BlazeWidgetVastAd;
999
1240
  'blaze-widget-ad': BlazeWidgetAd;
1000
1241
  'blaze-widget-embedded-story': BlazeWidgetEmbeddedStory;
1001
1242
  'blaze-widget-modal': BlazeWidgetModal;
@@ -1014,6 +1255,12 @@ export interface WidgetsTagNameMap {
1014
1255
  'blaze-widget-interaction': BlazeWidgetInteraction;
1015
1256
  'blaze-widget-banner-ad': BlazeWidgetBannerAd;
1016
1257
  'blaze-widget-captions': BlazeWidgetCaptions;
1258
+ 'blaze-video-element': BlazeVideoElement;
1259
+ 'blaze-video-long-form-overlay': BlazeLongFormControlsOverlay;
1260
+ 'blaze-widget-video-player': BlazeWidgetVideoPlayer;
1261
+ 'blaze-video-modal': BlazeWidgetVideoModal;
1262
+ 'blaze-video-navigation-overlay': BlazeVideoNavigationOverlay;
1263
+ 'blaze-video-seek-bar': BlazeVideoSeekBar;
1017
1264
  'blaze-loader': BlazeLoader;
1018
1265
  'blaze-chip': BlazeChip;
1019
1266
  'blaze-image': BlazeImage;
@@ -1023,10 +1270,13 @@ export interface WidgetsTagNameMap {
1023
1270
  'blaze-share-button': BlazeShareButton;
1024
1271
  'blaze-button': BlazeButton;
1025
1272
  'blaze-button-cta': BlazeCtaButton;
1273
+ 'blaze-call-to-action-button': BlazeCallToActionButton;
1026
1274
  'blaze-typography': BlazeTypography;
1275
+ 'blaze-timer': BlazeTimer;
1027
1276
  }
1028
1277
  interface WidgetsTagNameOptionsMap {
1029
1278
  'blaze-sdk': {};
1279
+ 'blaze-widget-vast-ad': {};
1030
1280
  'blaze-widget-ad': {};
1031
1281
  'blaze-widget-embedded-story': {};
1032
1282
  'blaze-widget-modal': {};
@@ -1047,6 +1297,13 @@ interface WidgetsTagNameOptionsMap {
1047
1297
  'blaze-widget-interaction': {};
1048
1298
  'blaze-widget-banner-ad': {};
1049
1299
  'blaze-widget-captions': {};
1300
+ 'blaze-video-element': {};
1301
+ 'blaze-video-long-form-overlay': {};
1302
+ 'blaze-widget-video-player': {};
1303
+ 'blaze-video-modal': {};
1304
+ 'blaze-video-navigation-overlay': {};
1305
+ 'blaze-video-seek-bar': {};
1306
+ 'blaze-timer': {};
1050
1307
  'blaze-loader': {};
1051
1308
  'blaze-chip': {};
1052
1309
  'blaze-image': {};
@@ -1056,6 +1313,7 @@ interface WidgetsTagNameOptionsMap {
1056
1313
  'blaze-share-button': {};
1057
1314
  'blaze-button': {};
1058
1315
  'blaze-button-cta': {};
1316
+ 'blaze-call-to-action-button': {};
1059
1317
  'blaze-typography': {};
1060
1318
  }
1061
1319
  export declare abstract class WidgetsFactory {
@@ -1068,7 +1326,12 @@ export * from './elements.factory';
1068
1326
  export * from './player.factory';
1069
1327
 
1070
1328
  export declare class PlayerViewFactory {
1071
- static create(dataSource: BlazeDataSourceType, style: StoryPlayerStyle): Promise<void>;
1329
+ static create(type: ContentType, dataSource: BlazeDataSourceType, options: {
1330
+ style: StoryPlayerStyle | VideoPlayerStyle;
1331
+ actionHandlers?: ActionHandler[];
1332
+ }): Promise<void>;
1333
+ static createStory(dataSource: BlazeDataSourceType, style: StoryPlayerStyle, actionHandlers?: ActionHandler[]): Promise<void>;
1334
+ static createVideos(dataSource: BlazeDataSourceType, style: VideoPlayerStyle): Promise<void>;
1072
1335
  }
1073
1336
 
1074
1337
  export * from './widget-theme.guard';
@@ -1097,12 +1360,15 @@ export declare const playResumeIconSvg = "data:image/svg+xml;base64,PHN2ZyB3aWR0
1097
1360
  export declare const pauseResumeIconSvg = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgaWQ9InBsYXlfYXJyb3ciPgo8cmVjdCB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHJ4PSIyNCIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC42Ii8+CjxwYXRoIGlkPSJwYXVzZSIgZD0iTTI3IDM2VjEySDMzVjM2SDI3Wk0xNSAzNlYxMkgyMVYzNkgxNVoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuOTIiLz4KPC9nPgo8L3N2Zz4K";
1098
1361
  export declare const arrowUpCtaIconSvg = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyMCA4IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJtMTggNy43LTAuNy0wLjItNy4zLTQtNy4zIDRjLTAuNyAwLjQtMS42IDAuMi0yLTAuNi0wLjQtMC43LTAuMS0xLjYgMC42LTJsOC00LjRhMiAyIDAgMCAxIDEuNSAwbDggNC40YzAuNyAwLjQgMSAxLjMgMC42IDItMC40IDAuNS0wLjkgMC44LTEuNCAwLjh6Ii8+Cjwvc3ZnPgo=";
1099
1362
  export declare const externalLinkIconSvg = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgY3Jvc3NvcmlnaW49ImFub255bW91cyI+CjxwYXRoIGQ9Im0xMiAwYzYuNiAwIDEyIDUuNCAxMiAxMnMtNS40IDEyLTEyIDEyLTEyLTUuNC0xMi0xMiA1LjQtMTIgMTItMTJ6IiBmaWxsLW9wYWNpdHk9Ii4xIi8+CjxwYXRoIGQ9Im0xMy44IDE0LjYgMC4yIDAuNS0wLjIgMC41LTEuNSAxLjRjLTAuNyAwLjctMS43IDEuMS0yLjcgMS4xYTQgNCAwIDAgMS0yLjctMS4xIDMuOSAzLjkgMCAwIDEtMS4xLTIuNyA0IDQgMCAwIDEgMS4xLTIuN2wxLjUtMS41IDAuNS0wLjEgMC41IDAuMiAwLjIgMC41LTAuMiAwLjUtMS41IDEuNWMtMC41IDAuNS0wLjcgMS4xLTAuNyAxLjdzMC4zIDEuMyAwLjcgMS43YzAuNSAwLjUgMS4xIDAuNyAxLjcgMC43czEuMy0wLjMgMS43LTAuN2wxLjUtMS41YzAuMy0wLjMgMC43LTAuMyAxIDB6bTMuMi03LjZhMy45IDMuOSAwIDAgMC0yLjctMS4xIDQgNCAwIDAgMC0yLjcgMS4xbC0xLjUgMS41LTAuMSAwLjQgMC4yIDAuNSAwLjUgMC4yIDAuNS0wLjIgMS41LTEuNWMwLjUtMC41IDEuMS0wLjcgMS43LTAuN3MxLjMgMC4zIDEuNyAwLjdjMC41IDAuNSAwLjcgMS4xIDAuNyAxLjdzLTAuMyAxLjMtMC43IDEuN2wtMS41IDEuNS0wLjIgMC41IDAuMiAwLjUgMC41IDAuMiAwLjUtMC4yIDEuNS0xLjVjMC43LTAuNyAxLjEtMS43IDEuMS0yLjctMC4xLTEtMC41LTEuOS0xLjItMi42em0tNy45IDcuMiAwLjIgMC41IDAuNSAwLjIgMC41LTAuMiA0LjUtNC41IDAuMi0wLjUtMC4yLTAuNWMtMC4zLTAuMi0wLjgtMC4yLTEgMC4xbC00LjUgNC41eiIvPgo8L3N2Zz4K";
1100
- export declare const fullscreenIconSvg = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPG1hc2sgaWQ9Im1hc2swXzkxNTFfNTE4OSIgc3R5bGU9Im1hc2stdHlwZTphbHBoYSIgbWFza1VuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeD0iMCIgeT0iMCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ij4KPHJlY3Qgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBmaWxsPSIjRDlEOUQ5Ii8+CjwvbWFzaz4KPGcgbWFzaz0idXJsKCNtYXNrMF85MTUxXzUxODkpIj4KPHBhdGggZD0iTTUgMjFDNC40NSAyMSAzLjk3OTE3IDIwLjgwNDIgMy41ODc1IDIwLjQxMjVDMy4xOTU4MyAyMC4wMjA4IDMgMTkuNTUgMyAxOVYxNUg1VjE5SDlWMjFINVpNMTUgMjFWMTlIMTlWMTVIMjFWMTlDMjEgMTkuNTUgMjAuODA0MiAyMC4wMjA4IDIwLjQxMjUgMjAuNDEyNUMyMC4wMjA4IDIwLjgwNDIgMTkuNTUgMjEgMTkgMjFIMTVaTTMgOVY1QzMgNC40NSAzLjE5NTgzIDMuOTc5MTcgMy41ODc1IDMuNTg3NUMzLjk3OTE3IDMuMTk1ODMgNC40NSAzIDUgM0g5VjVINVY5SDNaTTE5IDlWNUgxNVYzSDE5QzE5LjU1IDMgMjAuMDIwOCAzLjE5NTgzIDIwLjQxMjUgMy41ODc1QzIwLjgwNDIgMy45NzkxNyAyMSA0LjQ1IDIxIDVWOUgxOVoiIGZpbGw9IiNGMEYwRjAiLz4KPC9nPgo8L3N2Zz4K";
1363
+ export declare const fullscreenEnterIconSvg = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPG1hc2sgaWQ9Im1hc2swXzkxNTFfNTE4OSIgc3R5bGU9Im1hc2stdHlwZTphbHBoYSIgbWFza1VuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeD0iMCIgeT0iMCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ij4KPHJlY3Qgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBmaWxsPSIjRDlEOUQ5Ii8+CjwvbWFzaz4KPGcgbWFzaz0idXJsKCNtYXNrMF85MTUxXzUxODkpIj4KPHBhdGggZD0iTTUgMjFDNC40NSAyMSAzLjk3OTE3IDIwLjgwNDIgMy41ODc1IDIwLjQxMjVDMy4xOTU4MyAyMC4wMjA4IDMgMTkuNTUgMyAxOVYxNUg1VjE5SDlWMjFINVpNMTUgMjFWMTlIMTlWMTVIMjFWMTlDMjEgMTkuNTUgMjAuODA0MiAyMC4wMjA4IDIwLjQxMjUgMjAuNDEyNUMyMC4wMjA4IDIwLjgwNDIgMTkuNTUgMjEgMTkgMjFIMTVaTTMgOVY1QzMgNC40NSAzLjE5NTgzIDMuOTc5MTcgMy41ODc1IDMuNTg3NUMzLjk3OTE3IDMuMTk1ODMgNC40NSAzIDUgM0g5VjVINVY5SDNaTTE5IDlWNUgxNVYzSDE5QzE5LjU1IDMgMjAuMDIwOCAzLjE5NTgzIDIwLjQxMjUgMy41ODc1QzIwLjgwNDIgMy45NzkxNyAyMSA0LjQ1IDIxIDVWOUgxOVoiIGZpbGw9IiNGMEYwRjAiLz4KPC9nPgo8L3N2Zz4K";
1364
+ export declare const fullscreenExitIconSvg = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAtOTYwIDk2MCA5NjAiIHdpZHRoPSIyNHB4IiBmaWxsPSIjNWY2MzY4Ij48cGF0aCBkPSJNMjQwLTEyMHYtMTIwSDEyMHYtODBoMjAwdjIwMGgtODBabTQwMCAwdi0yMDBoMjAwdjgwSDcyMHYxMjBoLTgwWk0xMjAtNjQwdi04MGgxMjB2LTEyMGg4MHYyMDBIMTIwWm01MjAgMHYtMjAwaDgwdjEyMGgxMjB2ODBINjQwWiIvPjwvc3ZnPg==";
1101
1365
  export declare const arrowDownMomentIconSvg = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTYuNjY2NjcgMThWNS43MzMzMkwxLjg2NjY3IDEwLjUzMzNMMCA4LjY2NjY2TDggMC42NjY2NTZMMTYgOC42NjY2NkwxNC4xMzMzIDEwLjUzMzNMOS4zMzMzMyA1LjczMzMyVjE4SDYuNjY2NjdaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjkyIi8+Cjwvc3ZnPgo=";
1102
1366
  export declare const arrowUpMomentIconSvg = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgdHJhbnNmb3JtPSJzY2FsZSgxIC0xKSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTYuNjY2NjcgMThWNS43MzMzMkwxLjg2NjY3IDEwLjUzMzNMMCA4LjY2NjY2TDggMC42NjY2NTZMMTYgOC42NjY2NkwxNC4xMzMzIDEwLjUzMzNMOS4zMzMzMyA1LjczMzMyVjE4SDYuNjY2NjdaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjkyIi8+Cjwvc3ZnPgo=";
1103
1367
  export declare const newPageIcon = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPG1hc2sgaWQ9Im1hc2swXzk0NDlfOTc2NyIgc3R5bGU9Im1hc2stdHlwZTphbHBoYSIgbWFza1VuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeD0iMCIgeT0iMCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ij4KPHJlY3Qgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBmaWxsPSIjRDlEOUQ5Ii8+CjwvbWFzaz4KPGcgbWFzaz0idXJsKCNtYXNrMF85NDQ5Xzk3NjcpIj4KPHBhdGggZD0iTTUgMjFDNC40NSAyMSAzLjk3OTE3IDIwLjgwNDIgMy41ODc1IDIwLjQxMjVDMy4xOTU4MyAyMC4wMjA4IDMgMTkuNTUgMyAxOVY1QzMgNC40NSAzLjE5NTgzIDMuOTc5MTcgMy41ODc1IDMuNTg3NUMzLjk3OTE3IDMuMTk1ODMgNC40NSAzIDUgM0gxMlY1SDVWMTlIMTlWMTJIMjFWMTlDMjEgMTkuNTUgMjAuODA0MiAyMC4wMjA4IDIwLjQxMjUgMjAuNDEyNUMyMC4wMjA4IDIwLjgwNDIgMTkuNTUgMjEgMTkgMjFINVpNOS43IDE1LjdMOC4zIDE0LjNMMTcuNiA1SDE0VjNIMjFWMTBIMTlWNi40TDkuNyAxNS43WiIgZmlsbD0iI0YwRjBGMCIvPgo8L2c+Cjwvc3ZnPgo=";
1104
1368
  export declare const closedCaptionsOnIconSvg = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPG1hc2sgaWQ9Im1hc2swXzIxOF80NzAiIHN0eWxlPSJtYXNrLXR5cGU6YWxwaGEiIG1hc2tVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjAiIHk9IjAiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCI+CjxyZWN0IHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgZmlsbD0iI0Q5RDlEOSIvPgo8L21hc2s+CjxnIG1hc2s9InVybCgjbWFzazBfMjE4XzQ3MCkiPgo8cGF0aCBkPSJNNSAyMEM0LjQ1IDIwIDMuOTc5MTcgMTkuODA0MiAzLjU4NzUgMTkuNDEyNUMzLjE5NTgzIDE5LjAyMDggMyAxOC41NSAzIDE4VjZDMyA1LjQ1IDMuMTk1ODMgNC45NzkxNyAzLjU4NzUgNC41ODc1QzMuOTc5MTcgNC4xOTU4MyA0LjQ1IDQgNSA0SDE5QzE5LjU1IDQgMjAuMDIwOCA0LjE5NTgzIDIwLjQxMjUgNC41ODc1QzIwLjgwNDIgNC45NzkxNyAyMSA1LjQ1IDIxIDZWMThDMjEgMTguNTUgMjAuODA0MiAxOS4wMjA4IDIwLjQxMjUgMTkuNDEyNUMyMC4wMjA4IDE5LjgwNDIgMTkuNTUgMjAgMTkgMjBINVpNNSAxOEgxOVY2SDVWMThaTTcgMTVIMTBDMTAuMjgzMyAxNSAxMC41MjA4IDE0LjkwNDIgMTAuNzEyNSAxNC43MTI1QzEwLjkwNDIgMTQuNTIwOCAxMSAxNC4yODMzIDExIDE0VjEzSDkuNVYxMy41SDcuNVYxMC41SDkuNVYxMUgxMVYxMEMxMSA5LjcxNjY3IDEwLjkwNDIgOS40NzkxNyAxMC43MTI1IDkuMjg3NUMxMC41MjA4IDkuMDk1ODMgMTAuMjgzMyA5IDEwIDlIN0M2LjcxNjY3IDkgNi40NzkxNyA5LjA5NTgzIDYuMjg3NSA5LjI4NzVDNi4wOTU4MyA5LjQ3OTE3IDYgOS43MTY2NyA2IDEwVjE0QzYgMTQuMjgzMyA2LjA5NTgzIDE0LjUyMDggNi4yODc1IDE0LjcxMjVDNi40NzkxNyAxNC45MDQyIDYuNzE2NjcgMTUgNyAxNVpNMTQgMTVIMTdDMTcuMjgzMyAxNSAxNy41MjA4IDE0LjkwNDIgMTcuNzEyNSAxNC43MTI1QzE3LjkwNDIgMTQuNTIwOCAxOCAxNC4yODMzIDE4IDE0VjEzSDE2LjVWMTMuNUgxNC41VjEwLjVIMTYuNVYxMUgxOFYxMEMxOCA5LjcxNjY3IDE3LjkwNDIgOS40NzkxNyAxNy43MTI1IDkuMjg3NUMxNy41MjA4IDkuMDk1ODMgMTcuMjgzMyA5IDE3IDlIMTRDMTMuNzE2NyA5IDEzLjQ3OTIgOS4wOTU4MyAxMy4yODc1IDkuMjg3NUMxMy4wOTU4IDkuNDc5MTcgMTMgOS43MTY2NyAxMyAxMFYxNEMxMyAxNC4yODMzIDEzLjA5NTggMTQuNTIwOCAxMy4yODc1IDE0LjcxMjVDMTMuNDc5MiAxNC45MDQyIDEzLjcxNjcgMTUgMTQgMTVaIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjkyIi8+CjwvZz4KPC9zdmc+Cg==";
1105
1369
  export declare const closedCaptionsOffIconSvg = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPG1hc2sgaWQ9Im1hc2swXzIxOF80NjQiIHN0eWxlPSJtYXNrLXR5cGU6YWxwaGEiIG1hc2tVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjAiIHk9IjAiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCI+CjxyZWN0IHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgZmlsbD0iI0Q5RDlEOSIvPgo8L21hc2s+CjxnIG1hc2s9InVybCgjbWFzazBfMjE4XzQ2NCkiPgo8cGF0aCBkPSJNOS4wMjUwNSA5LjAwMDJMMTAuNTI1IDEwLjUwMDJINy41MDAwNVYxMy41MDAySDkuNTAwMDVWMTMuMDAwMkgxMVYxNC4wMDAyQzExIDE0LjI4MzUgMTAuOTA0MiAxNC41MjEgMTAuNzEyNSAxNC43MTI3QzEwLjUyMDkgMTQuOTA0NCAxMC4yODM0IDE1LjAwMDIgMTAgMTUuMDAwMkg3LjAwMDA1QzYuNzE2NzIgMTUuMDAwMiA2LjQ3OTIyIDE0LjkwNDQgNi4yODc1NSAxNC43MTI3QzYuMDk1ODggMTQuNTIxIDYuMDAwMDUgMTQuMjgzNSA2LjAwMDA1IDE0LjAwMDJWMTAuMDAwMkM2LjAwMDA1IDkuNzE2ODYgNi4wOTU4OCA5LjQ3OTM2IDYuMjg3NTUgOS4yODc3QzYuNDc5MjIgOS4wOTYwMyA2LjcxNjcyIDkuMDAwMiA3LjAwMDA1IDkuMDAwMkg5LjAyNTA1Wk02Ljg3NTA1IDQuMDAwMkgxOUMxOS41NSA0LjAwMDIgMjAuMDIwOSA0LjE5NjAzIDIwLjQxMjUgNC41ODc3QzIwLjgwNDIgNC45NzkzNiAyMSA1LjQ1MDIgMjEgNi4wMDAyVjE4LjEyNTJMMTkgMTYuMTI1MlY2LjAwMDJIOC44NzUwNUw2Ljg3NTA1IDQuMDAwMlpNMTggMTMuMDAwMlYxNC4wMDAyQzE4IDE0LjE1MDIgMTcuOTcwOSAxNC4yOTYgMTcuOTEyNSAxNC40Mzc3QzE3Ljg1NDIgMTQuNTc5NCAxNy43NjY3IDE0LjY5MTkgMTcuNjUgMTQuNzc1MkwxNi4zNzUgMTMuNTAwMkgxNi41VjEzLjAwMDJIMThaTTE2LjUgMTEuMDAwMlYxMC41MDAySDE0LjVWMTEuNjI1MkwxMyAxMC4xMjUyVjEwLjAwMDJDMTMgOS43MTY4NiAxMy4wOTU5IDkuNDc5MzYgMTMuMjg3NSA5LjI4NzdDMTMuNDc5MiA5LjA5NjAzIDEzLjcxNjcgOS4wMDAyIDE0IDkuMDAwMkgxN0MxNy4yODM0IDkuMDAwMiAxNy41MjA5IDkuMDk2MDMgMTcuNzEyNSA5LjI4NzdDMTcuOTA0MiA5LjQ3OTM2IDE4IDkuNzE2ODYgMTggMTAuMDAwMlYxMS4wMDAySDE2LjVaTTQuMjAwMDUgNC4xNzUyTDYuMDI1MDUgNi4wMDAySDUuMDAwMDVWMTguMDAwMkgxNS4xNzVMMC42NzUwNDkgMy41MDAyTDIuMTAwMDUgMi4wNzUyTDIxLjkgMjEuODc1MkwyMC40NzUgMjMuMzAwMkwxNy4xNzUgMjAuMDAwMkg1LjAwMDA1QzQuNDUwMDUgMjAuMDAwMiAzLjk3OTIyIDE5LjgwNDQgMy41ODc1NSAxOS40MTI3QzMuMTk1ODggMTkuMDIxIDMuMDAwMDUgMTguNTUwMiAzLjAwMDA1IDE4LjAwMDJWNi4wMDAyQzMuMDAwMDUgNS41ODM1MyAzLjExMjU1IDUuMjEyNyAzLjMzNzU1IDQuODg3N0MzLjU2MjU1IDQuNTYyNyAzLjg1MDA1IDQuMzI1MiA0LjIwMDA1IDQuMTc1MloiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuOTIiLz4KPC9nPgo8L3N2Zz4K";
1370
+ export declare const shareVideosIconSvg = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAtOTYwIDk2MCA5NjAiIHdpZHRoPSIyNHB4IiBmaWxsPSIjNWY2MzY4Ij48cGF0aCBkPSJNNjgwLTgwcS01MCAwLTg1LTM1dC0zNS04NXEwLTYgMy0yOEwyODItMzkycS0xNiAxNS0zNyAyMy41dC00NSA4LjVxLTUwIDAtODUtMzV0LTM1LTg1cTAtNTAgMzUtODV0ODUtMzVxMjQgMCA0NSA4LjV0MzcgMjMuNWwyODEtMTY0cS0yLTctMi41LTEzLjVUNTYwLTc2MHEwLTUwIDM1LTg1dDg1LTM1cTUwIDAgODUgMzV0MzUgODVxMCA1MC0zNSA4NXQtODUgMzVxLTI0IDAtNDUtOC41VDU5OC02NzJMMzE3LTUwOHEyIDcgMi41IDEzLjV0LjUgMTQuNXEwIDgtLjUgMTQuNVQzMTctNDUybDI4MSAxNjRxMTYtMTUgMzctMjMuNXQ0NS04LjVxNTAgMCA4NSAzNXQzNSA4NXEwIDUwLTM1IDg1dC04NSAzNVptMC04MHExNyAwIDI4LjUtMTEuNVQ3MjAtMjAwcTAtMTctMTEuNS0yOC41VDY4MC0yNDBxLTE3IDAtMjguNSAxMS41VDY0MC0yMDBxMCAxNyAxMS41IDI4LjVUNjgwLTE2MFpNMjAwLTQ0MHExNyAwIDI4LjUtMTEuNVQyNDAtNDgwcTAtMTctMTEuNS0yOC41VDIwMC01MjBxLTE3IDAtMjguNSAxMS41VDE2MC00ODBxMCAxNyAxMS41IDI4LjVUMjAwLTQ0MFptNDgwLTI4MHExNyAwIDI4LjUtMTEuNVQ3MjAtNzYwcTAtMTctMTEuNS0yOC41VDY4MC04MDBxLTE3IDAtMjguNSAxMS41VDY0MC03NjBxMCAxNyAxMS41IDI4LjVUNjgwLTcyMFptMCA1MjBaTTIwMC00ODBabTQ4MC0yODBaIi8+PC9zdmc+";
1371
+ export declare const linkIconSvg = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAtOTYwIDk2MCA5NjAiIHdpZHRoPSIyNHB4IiBmaWxsPSIjNWY2MzY4Ij48cGF0aCBkPSJNNDQwLTI4MEgyODBxLTgzIDAtMTQxLjUtNTguNVQ4MC00ODBxMC04MyA1OC41LTE0MS41VDI4MC02ODBoMTYwdjgwSDI4MHEtNTAgMC04NSAzNXQtMzUgODVxMCA1MCAzNSA4NXQ4NSAzNWgxNjB2ODBaTTMyMC00NDB2LTgwaDMyMHY4MEgzMjBabTIwMCAxNjB2LTgwaDE2MHE1MCAwIDg1LTM1dDM1LTg1cTAtNTAtMzUtODV0LTg1LTM1SDUyMHYtODBoMTYwcTgzIDAgMTQxLjUgNTguNVQ4ODAtNDgwcTAgODMtNTguNSAxNDEuNVQ2ODAtMjgwSDUyMFoiLz48L3N2Zz4=";
1106
1372
 
1107
1373
  type CustomNativeTargeting = Record<string, string | string[]>;
1108
1374
  type CustomNativeArgs = {
@@ -1133,6 +1399,7 @@ export interface IBlazeSDKOptions {
1133
1399
  runInShadowDom?: boolean;
1134
1400
  playerStyleCustomization?: Partial<StoryPlayerStyle>;
1135
1401
  shouldModifyUrlWithStoryId?: boolean;
1402
+ shouldModifyUrlWithContentId?: boolean;
1136
1403
  shouldDismissPlayer?: boolean;
1137
1404
  shouldCreateUser?: boolean;
1138
1405
  externalUserId?: string | null;
@@ -1174,7 +1441,7 @@ export interface IdsDataSourceParams {
1174
1441
  }
1175
1442
 
1176
1443
  export interface IDatabase {
1177
- init: (options: IDatabaseInitOptions) => Promise<void>;
1444
+ init: () => Promise<void>;
1178
1445
  get: <T>(tableName: string, key: string) => Promise<IResponse<T>>;
1179
1446
  update: <T>(tableName: string, value: any) => Promise<IResponse<T>>;
1180
1447
  }
@@ -1221,40 +1488,51 @@ export interface IHttpResponse<T = any> extends IResponse<T> {
1221
1488
  httpStatus?: number;
1222
1489
  }
1223
1490
 
1224
- export interface BlazeStoryIcons {
1225
- play: string;
1226
- pause: string;
1227
- mute: string;
1228
- unmute: string;
1229
- share: string;
1230
- fullscreen: string;
1231
- closedCaptionsOn: string;
1232
- closedCaptionsOff: string;
1233
- exitMobileTablet: string;
1234
- exitDesktop: string;
1491
+ export type SvgIconData = `data:image/svg+xml;base64,${string}`;
1492
+ export type BaseBlazeIcons = {
1493
+ play: SvgIconData;
1494
+ pause: SvgIconData;
1495
+ mute: SvgIconData;
1496
+ unmute: SvgIconData;
1497
+ share: SvgIconData;
1498
+ closedCaptionsOn: SvgIconData;
1499
+ closedCaptionsOff: SvgIconData;
1500
+ };
1501
+ export type BlazeStoryIcons = BaseBlazeIcons & {
1502
+ fullscreen: SvgIconData;
1503
+ exitMobileTablet: SvgIconData;
1504
+ exitDesktop: SvgIconData;
1505
+ customActionButtonOne?: SvgIconData;
1506
+ customActionButtonTwo?: SvgIconData;
1235
1507
  navigation: {
1236
- nextPage: string;
1237
- prevPage: string;
1238
- nextStory: string;
1239
- prevStory: string;
1508
+ nextPage: SvgIconData;
1509
+ prevPage: SvgIconData;
1510
+ nextStory: SvgIconData;
1511
+ prevStory: SvgIconData;
1240
1512
  };
1241
- }
1242
- export interface BlazeMomentIconsStyle {
1243
- play: string;
1244
- pause: string;
1245
- mute: string;
1246
- unmute: string;
1247
- share: string;
1248
- exit: string;
1249
- like: string;
1250
- unlike: string;
1251
- closedCaptionsOn: string;
1252
- closedCaptionsOff: string;
1513
+ };
1514
+ export type BlazeMomentIconsStyle = BaseBlazeIcons & {
1515
+ exit: SvgIconData;
1516
+ like: SvgIconData;
1517
+ unlike: SvgIconData;
1518
+ customActionButtonOne?: SvgIconData;
1519
+ customActionButtonTwo?: SvgIconData;
1253
1520
  navigation: {
1254
- nextMoment: string;
1255
- prevMoment: string;
1521
+ nextMoment: SvgIconData;
1522
+ prevMoment: SvgIconData;
1256
1523
  };
1257
- }
1524
+ };
1525
+ export type BlazeVideoIconsStyle = BaseBlazeIcons & {
1526
+ exit: SvgIconData;
1527
+ like: SvgIconData;
1528
+ unlike: SvgIconData;
1529
+ fullscreenEnter: SvgIconData;
1530
+ fullscreenExit: SvgIconData;
1531
+ navigation: {
1532
+ prevVideo: SvgIconData;
1533
+ nextVideo: SvgIconData;
1534
+ };
1535
+ };
1258
1536
 
1259
1537
  export * from './ad-handler.interface';
1260
1538
  export * from './behaviors.interface';
@@ -1295,7 +1573,7 @@ export interface IWidgetLabelBuilder {
1295
1573
  atLeastOneOf(...labels: Array<string | BlazeWidgetLabel>): BlazeWidgetLabel;
1296
1574
  }
1297
1575
 
1298
- export type ContentType = 'story' | 'moment';
1576
+ export type ContentType = 'story' | 'moment' | 'video';
1299
1577
  export interface IWidgetViewOptionsBase {
1300
1578
  labelsPriority?: string;
1301
1579
  orderType?: OrderType;
@@ -1307,6 +1585,7 @@ export interface IWidgetViewOptionsBase {
1307
1585
  perItemStyleOverrides?: PerItemStyleOverrides;
1308
1586
  shouldOrderWidgetByReadStatus?: boolean;
1309
1587
  contentIds?: string[];
1588
+ actionHandlers?: ActionHandler[];
1310
1589
  }
1311
1590
  export interface IWidgetViewOptionsWithLabels extends IWidgetViewOptionsBase {
1312
1591
  labels: string | string[] | BlazeWidgetLabel;
@@ -1328,17 +1607,17 @@ export type IWidgetViewOptions = IWidgetViewOptionsWithLabels | IWidgetViewOptio
1328
1607
  export interface IWidgetView extends HTMLElement {
1329
1608
  setTheme: (theme: IWidgetTheme | ThemeType) => void;
1330
1609
  getTheme: () => IWidgetTheme;
1331
- setLabels: (labels: string | string[] | BlazeWidgetLabel, options?: ISetWidgetOptions) => void;
1332
- setLabelsPriority: (labelsPriority: string | string[] | BlazeWidgetLabel[], options?: ISetWidgetOptions) => void;
1333
- setContentIds: (storyIds: string[], options?: ISetWidgetOptions) => void;
1334
1610
  reload: () => void;
1335
1611
  updateWidgetUI: () => void;
1336
1612
  setMaxItemsDisplaySize: (size: number) => void;
1337
1613
  setDelegations: (delegates: Record<Delegation, EventListenerOrEventListenerObject>) => void;
1338
1614
  updateOverrideStyles: (perItemStyleOverrides: PerItemStyleOverrides) => void;
1339
1615
  setId: (id: string) => void;
1340
- setMaxItemsSize: (size: number) => void;
1341
1616
  updateDataSource: (dataSource: BlazeDataSourceType) => void;
1617
+ setLabels: (labels: string | string[] | BlazeWidgetLabel, options?: ISetWidgetOptions) => void;
1618
+ setLabelsPriority: (labelsPriority: string | string[] | BlazeWidgetLabel[], options?: ISetWidgetOptions) => void;
1619
+ setContentIds: (storyIds: string[], options?: ISetWidgetOptions) => void;
1620
+ setMaxItemsSize: (size: number) => void;
1342
1621
  }
1343
1622
  export interface ISetWidgetOptions {
1344
1623
  shouldReloadData?: boolean;
@@ -1373,6 +1652,7 @@ declare abstract class AnalyticsServiceClass extends AnalyticsServiceClass_base
1373
1652
  bulkEvent(body: Partial<AnalyticsEvent>[]): Promise<any>;
1374
1653
  pushStoryEvent(action: StoryAction, body: Partial<StoryEvent>, label?: string | undefined, referrer?: ReferringEventInfo | undefined): void;
1375
1654
  pushMomentEvent(action: MomentAction, body: Partial<MomentEvent>, label?: string | undefined, referrer?: ReferringEventInfo | undefined): void;
1655
+ pushVideoEvent(action: VideoAction, body: Partial<VideoEvent>, label?: string | undefined, referrer?: ReferringEventInfo | undefined): void;
1376
1656
  pushAdEvent(action: AdAction, body: Partial<AdEvent>, label?: string | undefined, referrer?: ReferringEventInfo | undefined): void;
1377
1657
  pushImaAdEvent(action: ImaAdAction, body: Partial<ImaAdEvent>, label?: string | undefined, referrer?: ReferringEventInfo | undefined): void;
1378
1658
  pushInteractionEvent(action: InteractionAction, body: Partial<InteractionEvent>, label?: string | undefined, referrer?: ReferringEventInfo | undefined): void;
@@ -1389,6 +1669,7 @@ export interface ApiResponse<T> {
1389
1669
  }
1390
1670
  export type MomentsResponse = ApiResponse<IMoment>;
1391
1671
  export type StoriesResponse = ApiResponse<IStory>;
1672
+ export type VideosResponse = ApiResponse<IVideo>;
1392
1673
  declare const ApiServiceClass_base: {
1393
1674
  new (): {};
1394
1675
  _instance: ApiServiceClass;
@@ -1421,6 +1702,20 @@ declare abstract class ApiServiceClass extends ApiServiceClass_base implements I
1421
1702
  setLiked: boolean;
1422
1703
  }): Promise<void>;
1423
1704
  getStaticStories(): Promise<IStory | null>;
1705
+ getVideosByIds(ids: string[], orderType?: OrderType): Promise<{
1706
+ httpStatus?: number | undefined;
1707
+ data?: VideosResponse | undefined;
1708
+ error?: Error | undefined;
1709
+ }>;
1710
+ getVideosByLabels(labels: string, orderType?: OrderType, maxItems?: number, labelsPriority?: string): Promise<{
1711
+ httpStatus?: number | undefined;
1712
+ data?: VideosResponse | undefined;
1713
+ error?: Error | undefined;
1714
+ }>;
1715
+ updateVideosLikeStatus(options: {
1716
+ videoId: string;
1717
+ setLiked: boolean;
1718
+ }): Promise<void>;
1424
1719
  preview(storyId: string, publishedOnly?: boolean): Promise<import("../interfaces").IHttpResponse<IStory & {
1425
1720
  status: number;
1426
1721
  }>>;
@@ -1468,6 +1763,7 @@ declare abstract class ConfigServiceClass extends ConfigServiceClass_base implem
1468
1763
  private _staticContent;
1469
1764
  private _runInShadowDom;
1470
1765
  private _shouldModifyUrlWithStoryId;
1766
+ private _shouldModifyUrlWithContentId;
1471
1767
  private _shouldDismissPlayer;
1472
1768
  private _shouldAutoAdvance;
1473
1769
  private _autoAdvanceUrl;
@@ -1481,6 +1777,7 @@ declare abstract class ConfigServiceClass extends ConfigServiceClass_base implem
1481
1777
  private _excludeContentId;
1482
1778
  private _layoutDirection;
1483
1779
  private _shouldAllowClosedCaptions;
1780
+ private _appContext;
1484
1781
  protected constructor();
1485
1782
  init(options: IBlazeSDKOptions): Promise<void>;
1486
1783
  private _urls;
@@ -1509,6 +1806,7 @@ declare abstract class ConfigServiceClass extends ConfigServiceClass_base implem
1509
1806
  get playerStyleCustomization(): Partial<StoryPlayerStyle>;
1510
1807
  set playerStyleCustomization(value: Partial<StoryPlayerStyle>);
1511
1808
  get shouldModifyUrlWithStoryId(): boolean;
1809
+ get shouldModifyUrlWithContentId(): boolean;
1512
1810
  get shouldDismissPlayer(): boolean;
1513
1811
  get shouldAutoAdvance(): boolean;
1514
1812
  get autoAdvanceUrl(): string | undefined;
@@ -1523,6 +1821,8 @@ declare abstract class ConfigServiceClass extends ConfigServiceClass_base implem
1523
1821
  get layoutDirection(): LocaleDirectionType;
1524
1822
  set layoutDirection(value: LocaleDirectionType);
1525
1823
  get shouldAllowClosedCaptions(): boolean;
1824
+ get appContext(): Record<string, any>;
1825
+ set appContext(value: Record<string, any>);
1526
1826
  }
1527
1827
  export declare const ConfigService: ConfigServiceClass;
1528
1828
 
@@ -1534,9 +1834,6 @@ declare const DatabaseServiceClass_base: {
1534
1834
  declare abstract class DatabaseServiceClass extends DatabaseServiceClass_base implements IService {
1535
1835
  database: IDatabase;
1536
1836
  init(): Promise<void>;
1537
- onOpen(): Promise<void>;
1538
- onError(e: Event): Promise<void>;
1539
- onUpgradeNeeded(db: IDBDatabase): Promise<void>;
1540
1837
  getUserId(): Promise<IResponse<{
1541
1838
  id: string;
1542
1839
  value: string;
@@ -1551,11 +1848,16 @@ declare abstract class DatabaseServiceClass extends DatabaseServiceClass_base im
1551
1848
  enrichStories(stories: IStory[]): Promise<IStory[]>;
1552
1849
  updateInteraction(data: InteractionDB): Promise<any>;
1553
1850
  getInteraction(id: string): Promise<IResponse<InteractionDB> | null>;
1554
- updateLike(momentId: string, isLike: boolean): Promise<IResponse | null>;
1555
- getLike(momentId: string): Promise<IResponse<MomentDB> | null>;
1851
+ updateMomentLike(momentId: string, isLike: boolean): Promise<IResponse | null>;
1852
+ getMomentLike(momentId: string): Promise<IResponse<MomentDB> | null>;
1556
1853
  updateViewedMoment(momentId: string): Promise<any>;
1557
1854
  getViewedMoment(momentId: string): Promise<boolean>;
1558
1855
  enrichMoments(moments: IMoment[]): Promise<IMoment[]>;
1856
+ updateVideoReadStatus(videoId: string, poster: string): Promise<void>;
1857
+ getVideoData(videoId: string): Promise<VideoDBData | null>;
1858
+ updateVideoData(videoId: string, data: Partial<VideoDBData>): Promise<void>;
1859
+ getVideoLike(videoId: string): Promise<IResponse<VideoDBData> | null>;
1860
+ getVideoPosterById(videoId: string): Promise<string | undefined>;
1559
1861
  }
1560
1862
  export declare const DatabaseService: DatabaseServiceClass;
1561
1863
 
@@ -1631,6 +1933,7 @@ export * from './startup.service';
1631
1933
  export * from './user.service';
1632
1934
  export * from './video-cache.service';
1633
1935
  export * from './video-player.service';
1936
+ export * from './video.service';
1634
1937
  export * from './widgets.service';
1635
1938
  export * from './moment.service';
1636
1939
  export * from './story.service';
@@ -1656,8 +1959,10 @@ declare const LikeServiceClass_base: {
1656
1959
  declare abstract class LikeServiceClass extends LikeServiceClass_base implements IService {
1657
1960
  constructor();
1658
1961
  init(): Promise<void>;
1659
- updateLike(isLike: boolean, momentId: string): Promise<void>;
1660
- isLiked(momentId: string): Promise<boolean>;
1962
+ updateMomentLike(isLike: boolean, momentId: string): Promise<void>;
1963
+ isMomentLiked(momentId: string): Promise<boolean>;
1964
+ updateVideoLike(isLike: boolean, videoId: string): Promise<void>;
1965
+ isVideoLiked(videoId: string): Promise<boolean>;
1661
1966
  }
1662
1967
  export declare const LikeService: LikeServiceClass;
1663
1968
 
@@ -1805,8 +2110,8 @@ declare abstract class VideoPlayerServiceClass extends VideoPlayerServiceClass_b
1805
2110
  private _isClosedCaptioningEnabled;
1806
2111
  private _playReference;
1807
2112
  private _currentPlayedContentId;
2113
+ private _playerLayoutDisplay;
1808
2114
  muteStateBeforeAd: 'mute' | 'unmute' | 'no-ad';
1809
- playerLoadingSpinner: HTMLElement | undefined;
1810
2115
  constructor();
1811
2116
  init(): Promise<void>;
1812
2117
  get isMuted(): boolean;
@@ -1824,11 +2129,29 @@ declare abstract class VideoPlayerServiceClass extends VideoPlayerServiceClass_b
1824
2129
  set isModalOpen(value: boolean);
1825
2130
  get isSeekBarDragging(): boolean;
1826
2131
  set isSeekBarDragging(value: boolean);
1827
- get isClosedCaptioningEnabled(): boolean;
1828
- set isClosedCaptioningEnabled(value: boolean);
2132
+ get isClosedCaptionsEnabled(): boolean;
2133
+ set isClosedCaptionsEnabled(value: boolean);
2134
+ get playerLayout(): PlayerLayoutDisplay;
2135
+ set playerLayout(value: PlayerLayoutDisplay);
1829
2136
  }
1830
2137
  export declare const VideoPlayerService: VideoPlayerServiceClass;
1831
2138
 
2139
+ declare const VideoServiceClass_base: {
2140
+ new (): {};
2141
+ _instance: VideoServiceClass;
2142
+ getInstance(): VideoServiceClass;
2143
+ };
2144
+ declare abstract class VideoServiceClass extends VideoServiceClass_base implements IService {
2145
+ init(): Promise<void>;
2146
+ private loadHlsScript;
2147
+ fetchContent(dataSource: BlazeDataSourceType): Promise<VideosResponse>;
2148
+ enrichVideos(videos: IVideo[]): Promise<IVideo[]>;
2149
+ getVideoDataById(videoId: string): Promise<VideoDBData | null>;
2150
+ updateVideoDataById(videoId: string, data: Partial<VideoDBData>): Promise<void>;
2151
+ markVideoAsViewed(videoId: string, poster: string): Promise<void>;
2152
+ }
2153
+ export declare const VideoService: VideoServiceClass;
2154
+
1832
2155
  declare const WidgetsServiceClass_base: {
1833
2156
  new (): {};
1834
2157
  _instance: WidgetsServiceClass;
@@ -1864,6 +2187,7 @@ export declare class Presets {
1864
2187
  static Default: LayoutStyle;
1865
2188
  static DefaultStoryStyle: StoryPlayerStyle;
1866
2189
  static DefaultMomentStyle: MomentPlayerStyle;
2190
+ static DefaultVideoStyle: VideoPlayerStyle;
1867
2191
  }
1868
2192
 
1869
2193
  export interface IndicatorStyle {
@@ -1975,6 +2299,13 @@ type BlazeMomentsPlayerButtonsStyle = {
1975
2299
  share: BlazeMomentsPlayerButtonStyle;
1976
2300
  like_unlike: BlazeMomentsPlayerButtonStyle;
1977
2301
  closed_captions: BlazeMomentsPlayerButtonStyle;
2302
+ custom_action_button_one: BlazeMomentsPlayerButtonStyle;
2303
+ custom_action_button_two: BlazeMomentsPlayerButtonStyle;
2304
+ };
2305
+ type BlazeMomentsPlayerButtonStyle = {
2306
+ mobile: BlazeMomentsPlayerButtonDeviceStyle;
2307
+ tablet: BlazeMomentsPlayerButtonDeviceStyle;
2308
+ desktop: BlazeMomentsPlayerButtonDeviceStyle;
1978
2309
  };
1979
2310
  export type BlazeMomentsPlayerButtonDeviceStyle = {
1980
2311
  width: string;
@@ -1985,13 +2316,44 @@ export type BlazeMomentsPlayerButtonDeviceStyle = {
1985
2316
  borderRadius: string;
1986
2317
  backgroundColor: string;
1987
2318
  };
1988
- type BlazeMomentsPlayerButtonStyle = {
1989
- mobile: BlazeMomentsPlayerButtonDeviceStyle;
1990
- tablet: BlazeMomentsPlayerButtonDeviceStyle;
1991
- desktop: BlazeMomentsPlayerButtonDeviceStyle;
2319
+ export type BlazeButtonDeviceStyle = {
2320
+ width: string;
2321
+ height: string;
2322
+ color: string;
2323
+ padding: string;
2324
+ isVisible: boolean;
2325
+ borderRadius: string;
2326
+ backgroundColor: string;
2327
+ };
2328
+ export type BlazeButtonStyle = {
2329
+ mobile: BlazeButtonDeviceStyle;
2330
+ tablet: BlazeButtonDeviceStyle;
2331
+ desktop: BlazeButtonDeviceStyle;
2332
+ };
2333
+ export type BlazeTextDeviceStyle = {
2334
+ fontSize: string;
2335
+ fontWeight: FontWeightType;
2336
+ lineHeight?: string;
2337
+ letterSpacing?: string;
2338
+ textTransform?: TextTransformType;
2339
+ };
2340
+ export type BlazeTextStyle = {
2341
+ mobile: BlazeTextDeviceStyle;
2342
+ tablet: BlazeTextDeviceStyle;
2343
+ desktop: BlazeTextDeviceStyle;
2344
+ };
2345
+ export type BlazeVideosPlayerButtonsStyle = {
2346
+ mute_unmute: BlazeButtonStyle;
2347
+ exit: BlazeButtonStyle;
2348
+ share: BlazeButtonStyle;
2349
+ like_unlike: BlazeButtonStyle;
2350
+ closed_captions: BlazeButtonStyle;
2351
+ play_pause: BlazeButtonStyle;
2352
+ prev_next: BlazeButtonStyle;
2353
+ fullscreen: BlazeButtonStyle;
1992
2354
  };
1993
2355
  export type BlazeMomentsPlayerCtaStyle = {
1994
- cornerRadius: string;
2356
+ borderRadius: string;
1995
2357
  textSize: string;
1996
2358
  font: string;
1997
2359
  fontWeight: FontWeightType;
@@ -1999,6 +2361,9 @@ export type BlazeMomentsPlayerCtaStyle = {
1999
2361
  layoutPositioning: BlazeMomentsPlayerCTAPositioning;
2000
2362
  horizontalAlignment: BlazeMomentsPlayerCTAHorizontalAlignment;
2001
2363
  icon: BlazeMomentsPlayerCtaIconStyle;
2364
+ fontFamily: string;
2365
+ backgroundColor?: string;
2366
+ borderColor?: string;
2002
2367
  };
2003
2368
  type BlazeMomentsPlayerCTAPositioning = 'CTA_BELLOW_BOTTOM_BUTTONS_BOX' | 'CTA_NEXT_TO_BOTTOM_BUTTONS_BOX';
2004
2369
  type BlazeMomentsPlayerCTAHorizontalAlignment = 'START' | 'CENTER' | 'END' | 'FULL_AVAILABLE_WIDTH';
@@ -2014,14 +2379,15 @@ type BlazeSeekBarStyle = {
2014
2379
  isThumbVisible: boolean;
2015
2380
  backgroundColor: string;
2016
2381
  progressColor: string;
2382
+ bufferProgressColor?: string;
2017
2383
  height: string;
2018
- cornerRadius: string;
2384
+ borderRadius: string;
2019
2385
  thumbColor: string;
2020
2386
  thumbSize: string;
2021
2387
  };
2022
2388
  export type BlazeMomentsPlayerSeekBarStyle = {
2023
2389
  isVisible: boolean;
2024
- bottomSpacing: string;
2390
+ verticalSpacing: string;
2025
2391
  horizontalSpacing: string;
2026
2392
  playingState: BlazeSeekBarStyle;
2027
2393
  pausedState: BlazeSeekBarStyle;
@@ -2038,6 +2404,45 @@ export interface MomentPlayerStyle {
2038
2404
  seekBar: BlazeMomentsPlayerSeekBarStyle;
2039
2405
  ctaButton: BlazeMomentsPlayerCtaStyle;
2040
2406
  }
2407
+ export interface VideoPlayerStyle {
2408
+ headingText: BlazeVideosPlayerHeadingTextStyle;
2409
+ buttons: BlazeVideosPlayerButtonsStyle;
2410
+ backgroundColor: string;
2411
+ cta: BlazeVideosPlayerCtaStyle;
2412
+ seekBar: BlazeVideosPlayerSeekBarStyle;
2413
+ icons: BlazeVideoIconsStyle;
2414
+ }
2415
+ export type BlazeVideosPlayerHeadingTextStyle = {
2416
+ textStyle: BlazeTextStyle;
2417
+ contentSource: 'TITLE';
2418
+ isVisible: boolean;
2419
+ font: string;
2420
+ textColor: string;
2421
+ };
2422
+ export interface BlazeVideosPlayerSeekBarStyle {
2423
+ isVisible: boolean;
2424
+ verticalMargin: string;
2425
+ horizontalMargin: string;
2426
+ playingState: BlazeSeekBarStyle;
2427
+ pausedState: BlazeSeekBarStyle;
2428
+ }
2429
+ export interface BlazeVideosPlayerCtaStyle {
2430
+ borderRadius: string;
2431
+ text: BlazeTextStyle;
2432
+ fontFamily?: string;
2433
+ height: string;
2434
+ icon: BlazeVideosPlayerCtaIconStyle;
2435
+ visibility: BlazeVideoPlayerVisibility;
2436
+ borderColor: string;
2437
+ horizontalAlignment: ButtonPositionType;
2438
+ }
2439
+ export type BlazeVideosPlayerCtaIconStyle = {
2440
+ position: 'START';
2441
+ color: string;
2442
+ url: string;
2443
+ size: string;
2444
+ isVisible: boolean;
2445
+ };
2041
2446
  export interface CtaButtonStyle {
2042
2447
  isAnimated: boolean;
2043
2448
  isDisplayCtaModal: boolean;
@@ -2061,7 +2466,7 @@ export interface IconStyle {
2061
2466
  size: string;
2062
2467
  color: string;
2063
2468
  }
2064
- export interface IWidgetTheme<T = MomentPlayerStyle | StoryPlayerStyle> {
2469
+ export interface IWidgetTheme<T = MomentPlayerStyle | StoryPlayerStyle | VideoPlayerStyle> {
2065
2470
  layoutStyle: LayoutStyle;
2066
2471
  playerStyle: T;
2067
2472
  }
@@ -2085,12 +2490,23 @@ export type ThemeType = 'grid-2-columns' | 'grid-3-columns' | 'row-circle' | 'ro
2085
2490
  export declare class ThemeFactory {
2086
2491
  static create(name: ThemeType, contentType: 'moment'): IWidgetTheme<MomentPlayerStyle>;
2087
2492
  static create(name: ThemeType, contentType: 'story'): IWidgetTheme<StoryPlayerStyle>;
2493
+ static create(name: ThemeType, contentType: 'video'): IWidgetTheme<VideoPlayerStyle>;
2088
2494
  static create(name: ThemeType): IWidgetTheme<StoryPlayerStyle>;
2089
2495
  }
2090
- export declare function isStoryPlayerStyle(playerStyle: StoryPlayerStyle | MomentPlayerStyle): playerStyle is StoryPlayerStyle;
2091
- export declare function isMomentPlayerStyle(playerStyle: StoryPlayerStyle | MomentPlayerStyle): playerStyle is MomentPlayerStyle;
2496
+ export declare function isStoryPlayerStyle(playerStyle: StoryPlayerStyle | MomentPlayerStyle | VideoPlayerStyle): playerStyle is StoryPlayerStyle;
2497
+ export declare function isMomentPlayerStyle(playerStyle: StoryPlayerStyle | MomentPlayerStyle | VideoPlayerStyle): playerStyle is MomentPlayerStyle;
2498
+ export declare function isVideoPlayerStyle(playerStyle: StoryPlayerStyle | MomentPlayerStyle | VideoPlayerStyle): playerStyle is VideoPlayerStyle;
2092
2499
 
2093
2500
 
2501
+ export type CustomActionButtonOptions = {
2502
+ buttonName: string;
2503
+ onClick: (e: MouseEvent | Event, data: ContentEntities | null) => void;
2504
+ };
2505
+ export type ActionHandler = {
2506
+ actionId: `${ActionHandlerId}`;
2507
+ options: CustomActionButtonOptions;
2508
+ };
2509
+
2094
2510
  export type AnimationType = 'Growing' | 'Shrinking' | 'BottomToTop';
2095
2511
  export declare const animationCssMapper: {
2096
2512
  Growing: string;
@@ -2454,9 +2870,9 @@ export type ButtonPositionType = 'LEFT' | 'CENTER' | 'RIGHT';
2454
2870
  export declare const positionMap: {
2455
2871
  [key: string]: string;
2456
2872
  };
2457
- export type IconButtonType = 'MUTE_UNMUTE' | 'PLAY_PAUSE' | 'SHARE' | 'FULLSCREEN' | 'EXIT_PLAYER' | 'CLOSED_CAPTIONS' | 'LIKE_UNLIKE';
2458
- export type MomentTopContainerIconButtonType = 'MUTE_UNMUTE' | 'EXIT_PLAYER';
2459
- export type MomentBottomContainerIconButtonType = 'SHARE' | 'LIKE_UNLIKE' | 'CLOSED_CAPTIONS';
2873
+ export type IconButtonType = 'MUTE_UNMUTE' | 'PLAY_PAUSE' | 'SHARE' | 'FULLSCREEN' | 'EXIT_PLAYER' | 'CLOSED_CAPTIONS' | 'LIKE_UNLIKE' | 'CUSTOM_ACTION_BUTTON_ONE' | 'CUSTOM_ACTION_BUTTON_TWO';
2874
+ export type MomentTopContainerIconButtonType = 'MUTE_UNMUTE' | 'EXIT_PLAYER' | 'CUSTOM_ACTION_BUTTON_ONE' | 'CUSTOM_ACTION_BUTTON_TWO';
2875
+ export type MomentBottomContainerIconButtonType = 'SHARE' | 'LIKE_UNLIKE' | 'CLOSED_CAPTIONS' | 'CUSTOM_ACTION_BUTTON_ONE' | 'CUSTOM_ACTION_BUTTON_TWO';
2460
2876
  export type IconPropertiesType = {
2461
2877
  value: IconButtonType | StoryDirectionType;
2462
2878
  embeddedSize?: string;
@@ -2485,6 +2901,16 @@ export type IClosedCaption = {
2485
2901
  export type FontWeightType = 'normal' | 'bold' | 'bolder' | 'lighter' | 'inherit' | 'initial' | 'unset' | '100' | '200' | '300' | '400' | '500' | '600' | '700' | '800' | '900';
2486
2902
  export type TextTransformType = 'capitalize' | 'uppercase' | 'lowercase' | 'none';
2487
2903
 
2904
+ export type CtaVisibilityBehavior = 'AlwaysVisible' | 'VisibleAfterOverlayHidden';
2905
+ export type BlazeVideoPlayerVisibility = {
2906
+ duration: number;
2907
+ behavior: CtaVisibilityBehavior;
2908
+ };
2909
+ export type CtaConfiguration = {
2910
+ type: CtaVisibilityBehavior;
2911
+ visibile_duration: number;
2912
+ };
2913
+
2488
2914
  export type Direction = 'VerticalBackwards' | 'VerticalForwards' | 'HorizontalForwards' | 'HorizontalBackwards';
2489
2915
  export type NavigationType = 'Automatic' | 'Manual' | '';
2490
2916
  export type NavigationDirectionType = 'Forwards' | 'Backwards' | '';
@@ -2498,23 +2924,33 @@ export type EnvironmentType = 'prod' | 'uat';
2498
2924
  export type StoryGestureType = 'Swipe Up' | 'CTA Click';
2499
2925
  export type MomentGestureType = 'CTA Click';
2500
2926
 
2927
+ export * from './animation.type';
2501
2928
  export * from './attribute-parser';
2502
2929
  export * from './button.type';
2930
+ export * from './chip-status.type';
2503
2931
  export * from './client-platform.type';
2932
+ export * from './closed-captions.type';
2504
2933
  export * from './css.type';
2934
+ export * from './cta.type';
2505
2935
  export * from './direction.type';
2506
2936
  export * from './element.type';
2507
2937
  export * from './environment.type';
2938
+ export * from './gesture.type';
2508
2939
  export * from './item.type';
2509
2940
  export * from './label.type';
2510
2941
  export * from './locale.type';
2511
2942
  export * from './order.type';
2943
+ export * from './platform.type';
2512
2944
  export * from './play.type';
2945
+ export * from './player-layout.type';
2513
2946
  export * from './position.type';
2947
+ export * from './prefetch.type';
2948
+ export * from './ratio.type';
2514
2949
  export * from './severity.type';
2515
2950
  export * from './size.type';
2516
2951
  export * from './story-direction.type';
2517
2952
  export * from './thumbnail.type';
2953
+ export * from './trigger.type';
2518
2954
  export * from './user.type';
2519
2955
  export * from './widget.type';
2520
2956
  export * from './chip-status.type';
@@ -2524,6 +2960,8 @@ export * from './gesture.type';
2524
2960
  export * from './closed-captions.type';
2525
2961
  export * from './ratio.type';
2526
2962
  export * from './animation.type';
2963
+ export * from './screen.type';
2964
+ export * from './action-handler.type';
2527
2965
 
2528
2966
  export type EntitiesType = 'playerId' | 'teamId' | 'gameId' | 'roundId';
2529
2967
  export type PerItemStyleOverrides = Partial<Record<EntitiesType, Array<{
@@ -2538,9 +2976,13 @@ export type LocaleDirectionType = 'LTR' | 'RTL';
2538
2976
  export type OrderType = 'Manual' | 'AtoZ' | 'ZtoA' | 'RecentlyUpdatedFirst' | 'RecentlyUpdatedLast' | 'RecentlyCreatedFirst' | 'RecentlyCreatedLast';
2539
2977
  export type ContentOrderType = 'LIVE_CHIP' | 'STORY_TITLE' | 'PUBLISHED_DATE';
2540
2978
 
2979
+ export type Platform = 'mobile' | 'tablet' | 'desktop';
2980
+
2541
2981
  export declare const PlayTypeArray: readonly ["Widget", "Share", "SingleStory", "AutoAdvance"];
2542
2982
  export type PlayType = typeof PlayTypeArray[number];
2543
2983
 
2984
+ export type PlayerLayoutDisplay = 'fullscreen' | 'normal';
2985
+
2544
2986
  export type PositionInsideType = 'insideTopLeft' | 'insideTopRight' | 'insideTop' | 'insideTopMiddle' | 'insideBottomRight' | 'insideBottomLeft' | 'insideBottom' | 'insideBottomMiddle' | 'insideMiddle' | 'insideMiddleLeft' | 'insideMiddleRight';
2545
2987
  export type PositionOutsideType = 'outsideTop' | 'outsideTopLeft' | 'outsideTopRight' | 'outsideBottomLeft' | 'outsideBottomRight' | 'outsideBottom' | 'outsideRight' | 'outsideLeft';
2546
2988
  export type PositionType = PositionInsideType | PositionOutsideType;
@@ -2557,6 +2999,17 @@ export type PrefetchingPolicyType = 'low' | 'default';
2557
2999
 
2558
3000
  export type ContentAspectRatio = 'Vertical' | 'Horizontal';
2559
3001
 
3002
+ export type ScreenState = 'default_view' | 'full_screen';
3003
+ export type ScreenChangeState = {
3004
+ current_state: ScreenState;
3005
+ next_state?: ScreenState;
3006
+ };
3007
+ export type DeviceScreenOrientation = 'landscape' | 'portrait';
3008
+ export type DeviceScreenOrientationChangeEvent = {
3009
+ orientation: DeviceScreenOrientation;
3010
+ changedAt: number;
3011
+ };
3012
+
2560
3013
  export type SeverityType = 'error' | 'warning' | 'info' | 'success';
2561
3014
 
2562
3015
  export type SizeType = 'small' | 'medium' | 'large';
@@ -2569,7 +3022,7 @@ export type ThumbnailType = 'SQUARE_ICON' | 'VERTICAL_TWO_BY_THREE' | 'CUSTOM';
2569
3022
  export type ThumbnailShape = 'Circle' | 'Rectangle';
2570
3023
  export declare function thumbnailMapping(thumbnailType: ThumbnailType): ThumbnailApiType;
2571
3024
 
2572
- export type ExitTriggerType = 'Swipe' | 'Swipe Left' | 'Swipe Right' | 'Swipe Down' | 'Swipe Up' | 'Skip' | 'Close Button' | 'CTA Click' | 'Escape Button' | 'Stories Completed' | 'Story Completed' | '';
3025
+ export type ExitTriggerType = 'Swipe' | 'Swipe Left' | 'Swipe Right' | 'Swipe Down' | 'Swipe Up' | 'Skip' | 'Close Button' | 'CTA Click' | 'Escape Button' | 'Stories Completed' | 'Story Completed' | 'Video End' | '';
2573
3026
  export type StartTriggerType = 'Embedded Player in Viewport' | 'UI Button' | 'Widget' | 'Deeplink' | 'Swipe' | 'Skip' | 'SingleStory' | 'Share' | 'AutoAdvance' | '';
2574
3027
 
2575
3028
  export type GetUserTokenRequest = {
@@ -2586,6 +3039,8 @@ export type TokenData = {
2586
3039
 
2587
3040
  export type WidgetType = 'Row' | 'Grid';
2588
3041
 
3042
+ export declare function isImaAdInfo(ad: IAdInfo): ad is IImaAdInfo;
3043
+
2589
3044
  interface ChipSizeOptions {
2590
3045
  statusLiveStyle: IndicatorStyle;
2591
3046
  statusLiveUnreadStyle: IndicatorStyle;
@@ -2650,6 +3105,7 @@ export * from './helper';
2650
3105
  export * from './regex.utils';
2651
3106
  export * from './stopwatch';
2652
3107
  export * from './position.utils';
3108
+ export * from './ad-info.utils';
2653
3109
 
2654
3110
  export declare function calculatePosition(statusIndicatorPosition: PositionType): {
2655
3111
  isOutside: boolean;
@@ -2663,6 +3119,7 @@ export declare function calculatePosition(statusIndicatorPosition: PositionType)
2663
3119
 
2664
3120
  export declare const RegexStoryHash: RegExp;
2665
3121
  export declare const RegexMomentHash: RegExp;
3122
+ export declare const RegexVideoHash: RegExp;
2666
3123
 
2667
3124
  export declare class Stopwatch {
2668
3125
  isRunning: boolean;
@@ -2675,10 +3132,665 @@ export declare class Stopwatch {
2675
3132
  reset(): void;
2676
3133
  }
2677
3134
 
3135
+ export * from './commands/player-buttons.command';
3136
+ export * from './commands/video-commands';
3137
+ export * from './components/timer';
3138
+ export * from './components/video-seekbar';
3139
+ export * from './controls/long-form-player-overlay';
3140
+ export * from './controls/video-navigation-overlay';
3141
+ export * from './core/video';
3142
+ export * from './core/video-modal';
3143
+ export * from './core/video-player';
3144
+ export * from './factory/playback-strategy.factory';
3145
+ export * from './strategy/hls.strategy';
3146
+ export * from './interface/playback-strategy.interface';
3147
+ export * from './video-events';
3148
+
3149
+ export declare const KEY_CODES: {
3150
+ ARROW_UP: string;
3151
+ UP: string;
3152
+ PAGE_UP: string;
3153
+ ARROW_DOWN: string;
3154
+ DOWN: string;
3155
+ PAGE_DOWN: string;
3156
+ SPACE: string;
3157
+ ARROW_LEFT: string;
3158
+ ARROW_RIGHT: string;
3159
+ ESCAPE: string;
3160
+ };
3161
+ export declare const EVENTS: {
3162
+ KEYDOWN: string;
3163
+ CLICK: string;
3164
+ MOUSEENTER: string;
3165
+ MOUSELEAVE: string;
3166
+ MOUSEMOVE: string;
3167
+ BLUR: string;
3168
+ FOCUS: string;
3169
+ VISIBILITY_CHANGE: string;
3170
+ CAN_PLAY_THROUGH: string;
3171
+ PLAY: string;
3172
+ PLAYING: string;
3173
+ PAUSE: string;
3174
+ PAUSED: string;
3175
+ SEEKING: string;
3176
+ SEEKED: string;
3177
+ LOADED_METADATA: string;
3178
+ RESIZE: string;
3179
+ TIMEUPDATE: string;
3180
+ ERROR: string;
3181
+ ENDED: string;
3182
+ FULLSCREEN_CHANGE: string;
3183
+ FULLSCREEN_CHANGE_WEBKIT: string;
3184
+ FULLSCREEN_CHANGE_MOZ: string;
3185
+ CUE_CHANGE: string;
3186
+ DRAGSTART: string;
3187
+ DRAG: string;
3188
+ DROP: string;
3189
+ BEFOREUNLOAD: string;
3190
+ UNLOAD: string;
3191
+ RESIZE_WINDOW: string;
3192
+ };
3193
+ export declare const VIDEO_EVENTS: {
3194
+ readonly PLAY: "play-video";
3195
+ readonly PAUSE: "pause-video";
3196
+ readonly MUTE: "mute-video";
3197
+ readonly UNMUTE: "unmute-video";
3198
+ readonly SEEK: "seek-video";
3199
+ readonly FULLSCREEN: "fullscreen-video";
3200
+ readonly SHARE: "share-video";
3201
+ readonly LIKE: "like-video";
3202
+ readonly TIME_UPDATE: "time-update";
3203
+ readonly NAVIGATION_PREV: "navigate-prev";
3204
+ readonly NAVIGATION_NEXT: "navigate-next";
3205
+ readonly LOADER_DISPLAY: "loader-display";
3206
+ readonly LOADER_HIDE: "loader-hide";
3207
+ readonly ERROR: "video-error";
3208
+ readonly UPDATE_NAVIGATION: "update-navigation";
3209
+ readonly CTA_CLICKED: "cta-clicked";
3210
+ readonly CTA_VISIBILE: "cta-visible";
3211
+ readonly CTA_DISMISS: "cta-dismiss";
3212
+ readonly RESET_INACTIVITY_TIMER: "reset-inactivity-timer";
3213
+ readonly CLOSE_PLAYER: "close-player";
3214
+ readonly CLOSED_CAPTIONS_ON: "closed-captions";
3215
+ readonly CLOSED_CAPTIONS_OFF: "closed-captions-off";
3216
+ readonly DISPLAY_HIDE_OVERLAY_FROM_CTA: "display-hide-overlay-from-cta";
3217
+ readonly DISPLAY_SEEKED_TIME: "display-seeked-time";
3218
+ readonly UPDATE_CLOSED_CAPTIONS_LOCATION: "update-closed-captions-location";
3219
+ };
3220
+
3221
+ export interface Command {
3222
+ execute(...args: any[]): void;
3223
+ }
3224
+ export declare class PlayCommand implements Command {
3225
+ private playbackStrategy;
3226
+ constructor(playbackStrategy: PlaybackStrategy);
3227
+ execute(...args: any[]): Promise<PlayResult>;
3228
+ }
3229
+ export declare class PauseCommand implements Command {
3230
+ private playbackStrategy;
3231
+ constructor(playbackStrategy: PlaybackStrategy);
3232
+ execute(...args: any[]): void;
3233
+ }
3234
+ export declare class ToggleMuteCommand implements Command {
3235
+ private playbackStrategy;
3236
+ constructor(playbackStrategy: PlaybackStrategy);
3237
+ execute(...args: any[]): void;
3238
+ }
3239
+ export declare class MuteCommand implements Command {
3240
+ private playbackStrategy;
3241
+ constructor(playbackStrategy: PlaybackStrategy);
3242
+ execute(): void;
3243
+ }
3244
+ export declare class UnmuteCommand implements Command {
3245
+ private playbackStrategy;
3246
+ constructor(playbackStrategy: PlaybackStrategy);
3247
+ execute(): void;
3248
+ }
3249
+ export declare class ToggleFullscreenCommand implements Command {
3250
+ private playbackStrategy;
3251
+ private videoElement;
3252
+ constructor(playbackStrategy: PlaybackStrategy, videoElement: BlazeVideoElement);
3253
+ execute(...args: any[]): Promise<void>;
3254
+ }
3255
+ export declare class SeekCommand implements Command {
3256
+ private playbackStrategy;
3257
+ constructor(playbackStrategy: PlaybackStrategy);
3258
+ execute(seekTime: number): void;
3259
+ }
3260
+ export declare class LikeVideoCommand implements Command {
3261
+ private videoElement;
3262
+ constructor(videoElement: BlazeVideoElement);
3263
+ execute(...args: any[]): Promise<void>;
3264
+ }
3265
+
3266
+ export declare class VideoPlayerCommands {
3267
+ private playbackStrategy;
3268
+ private videoElement;
3269
+ private commands;
3270
+ constructor(playbackStrategy: PlaybackStrategy, videoElement: BlazeVideoElement);
3271
+ executeCommand(commandName: string, ...args: any[]): Promise<any>;
3272
+ }
3273
+
3274
+ export type TimerLayout = 'player' | 'seeking';
3275
+ interface IBlazeTimer {
3276
+ updateCurrentTime(currentTime: number): void;
3277
+ updateTotalTime(totalTime: number): void;
3278
+ resetTimer(): void;
3279
+ setLayout(layout: TimerLayout): void;
3280
+ }
3281
+ export declare class BlazeTimer extends HTMLElement implements IBlazeTimer {
3282
+ private shadow;
3283
+ private currentTimeText;
3284
+ private totalTimeText;
3285
+ private totalTimeDivider;
3286
+ constructor();
3287
+ connectedCallback(): void;
3288
+ disconnectedCallback(): void;
3289
+ set hidden(value: boolean);
3290
+ private attachStyles;
3291
+ private createDOM;
3292
+ updateCurrentTime(currentTime: number): void;
3293
+ updateTotalTime(totalTime: number): void;
3294
+ resetTimer(): void;
3295
+ setLayout(layout: TimerLayout): void;
3296
+ private applySeekingLayout;
3297
+ private applyPlayerLayout;
3298
+ private formatTime;
3299
+ private padZero;
3300
+ }
3301
+
3302
+ export declare class BlazeVideoSeekBar extends HTMLElement {
3303
+ private isInit;
3304
+ private isMouseIn;
3305
+ private isClicked;
3306
+ private isSeeking;
3307
+ private seekBarStyle;
3308
+ private playbackPart;
3309
+ private progressBarState;
3310
+ private videoState;
3311
+ private seekType;
3312
+ private lastProgress;
3313
+ private timeoutPlayingStyle;
3314
+ private timeoutPauseStyle;
3315
+ private timeoutPlay;
3316
+ onPause?: () => void;
3317
+ onResume?: () => void;
3318
+ onStartSeeking?: () => void;
3319
+ onEndSeeking?: () => void;
3320
+ private listeners;
3321
+ private boundOnTouchMove;
3322
+ private boundOnMouseMove;
3323
+ private boundOnClick;
3324
+ private boundOnMouseOut;
3325
+ private boundOnMouseIn;
3326
+ private boundOnStartDrag;
3327
+ private boundOnEndDrag;
3328
+ private progressBarContainer;
3329
+ private progressBarFill;
3330
+ private progressBarKnob;
3331
+ private progressBarBuffer;
3332
+ private progress;
3333
+ constructor();
3334
+ connectedCallback(): void;
3335
+ disconnectedCallback(): void;
3336
+ setTheme(style: BlazeVideosPlayerSeekBarStyle): void;
3337
+ private createPlaybackPart;
3338
+ private setupEventListeners;
3339
+ private handleOnStartDrag;
3340
+ private handleOnEndDrag;
3341
+ private handleOnClick;
3342
+ private handleMouseDrag;
3343
+ private handleTouchMove;
3344
+ private handleSeek;
3345
+ private handleOnMouseOut;
3346
+ private handleOnMouseIn;
3347
+ private updateVideoSeekBar;
3348
+ private styleProgressContainer;
3349
+ private updateProgressBarStyles;
3350
+ onContentPaused(): void;
3351
+ onContentResumed(): void;
3352
+ updateProgressBar(currentTime: number, duration: number): void;
3353
+ updateBuffer(buffer: number): void;
3354
+ private debouncedSeekBarUpdate;
3355
+ updateSeekBar(progress: number): void;
3356
+ reset(): void;
3357
+ resetProgressBar(): void;
3358
+ private applyPlayingSeekBarStyle;
3359
+ private applyPauseSeekBarStyle;
3360
+ }
3361
+
3362
+ export declare class BlazeLongFormControlsOverlay extends HTMLElement {
3363
+ private shadow;
3364
+ private isInitialize;
3365
+ private videoInfoText;
3366
+ private bottomContainerCta;
3367
+ private playerLayout;
3368
+ private closeButton;
3369
+ private shareButton;
3370
+ private likeButton;
3371
+ private fullscreenButton;
3372
+ private muteButton;
3373
+ private closedCaptionButton;
3374
+ private ctaButton;
3375
+ private ctaTimeout;
3376
+ private ctaVisiblity;
3377
+ private currentMuteState;
3378
+ private currentClosedCaptionState;
3379
+ videoSeekBar: BlazeVideoSeekBar;
3380
+ videoTimer: BlazeTimer;
3381
+ videoNavigationOverlay: BlazeVideoNavigationOverlay;
3382
+ gradientOverlayBottom: BlazeDiv;
3383
+ gradientOverlayTop: BlazeDiv;
3384
+ loader: BlazeLoader;
3385
+ private boundOnFullscreenClick;
3386
+ private boundOnShareClick;
3387
+ private boundOnLikeClick;
3388
+ private boundOnMuteClick;
3389
+ private boundOnCtaClick;
3390
+ private boundOnCloseClick;
3391
+ private boundOnClosedCaptionClick;
3392
+ private boundOnScreenOrientationChange;
3393
+ private boundOnCtaContainerClick;
3394
+ isOverlayChangesBlocked: boolean;
3395
+ constructor();
3396
+ connectedCallback(): void;
3397
+ disconnectedCallback(): void;
3398
+ private initialize;
3399
+ hidePlayerOverlayWhileSeeking(): void;
3400
+ showPlayerOverlayAfterSeeking(): void;
3401
+ setTheme(playerStyle: VideoPlayerStyle): void;
3402
+ static get observedAttributes(): string[];
3403
+ attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
3404
+ showLoader(): void;
3405
+ hideLoader(): void;
3406
+ hidePlayerOverlay(): void;
3407
+ showPlayerOverlay(): void;
3408
+ private animateOverlayVisibility;
3409
+ private handleScreenOrientationChange;
3410
+ setClosedCaptionState(state: 'enabled' | 'disabled'): void;
3411
+ get title(): string;
3412
+ set title(value: string);
3413
+ get isCtaRendered(): boolean;
3414
+ set isCtaRendered(value: boolean);
3415
+ setCta(data: ICta): void;
3416
+ removeCta(): void;
3417
+ private setCtaButtonStyles;
3418
+ private handleCtaClick;
3419
+ private attachStyles;
3420
+ private createDOM;
3421
+ private getDeviceStyle;
3422
+ private getButtonStyle;
3423
+ private getLikeButtonStyle;
3424
+ private getHeadingTextStyle;
3425
+ private setHeadingStyle;
3426
+ private setButtonStyle;
3427
+ private createTopContainer;
3428
+ private createBottomContainer;
3429
+ private createControls;
3430
+ private createBottomRightIcons;
3431
+ private createBottomLeftIcons;
3432
+ private attachEventListeners;
3433
+ private detachEventListeners;
3434
+ private handleCtaContainerClick;
3435
+ private handleFullscreenClick;
3436
+ private handleShareClick;
3437
+ private handleLikeClick;
3438
+ private handleCloseClick;
3439
+ private handleClosedCaptionClick;
3440
+ private handleMuteClick;
3441
+ updateClosedCaptionButtonIcon(forceOn?: boolean): void;
3442
+ setMuteState(isMuted: boolean): void;
3443
+ private updateMuteButtonIcon;
3444
+ toggleMute(isMuted: boolean): void;
3445
+ updateMute(isMuted: boolean): void;
3446
+ setFullscreenState(isFullscreen?: boolean): void;
3447
+ setVideoDuration(duration: number): void;
3448
+ setCurrentTime(currentTime: number): void;
3449
+ private updateVideoInfoText;
3450
+ setLikedState(isLiked: boolean): void;
3451
+ }
3452
+
3453
+ type NavigationPlayerStyle = {
3454
+ play: string;
3455
+ pause: string;
3456
+ navigation: {
3457
+ prevVideo: string;
3458
+ nextVideo: string;
3459
+ };
3460
+ prev_next: BlazeButtonStyle;
3461
+ play_pause: BlazeButtonStyle;
3462
+ };
3463
+ export declare const NAVIGATION_OVERLAY_ATTRIBUTES: {
3464
+ readonly Hidden: "hidden";
3465
+ readonly Layout: "layout";
3466
+ readonly HasPrev: "has-prev";
3467
+ readonly HasNext: "has-next";
3468
+ };
3469
+ export declare class BlazeVideoNavigationOverlay extends HTMLElement {
3470
+ private shadow;
3471
+ private nextButton;
3472
+ private prevButton;
3473
+ private playPauseButton;
3474
+ private isPlaying;
3475
+ private navigationStyle;
3476
+ private boundOnPrevClick;
3477
+ private boundOnNextClick;
3478
+ private boundOnPlayStopClick;
3479
+ private boundOnPlay;
3480
+ loader: BlazeLoader;
3481
+ private _platform;
3482
+ constructor();
3483
+ static get observedAttributes(): ("hidden" | "layout" | "has-next" | "has-prev")[];
3484
+ attributeChangedCallback(name: string, oldValue: string, newValue: string): void;
3485
+ private applyAttribute;
3486
+ connectedCallback(): void;
3487
+ disconnectedCallback(): void;
3488
+ initializeStyles(): void;
3489
+ private setStyle;
3490
+ setTheme(style: NavigationPlayerStyle): void;
3491
+ get platform(): Platform;
3492
+ set platform(value: Platform);
3493
+ private setButtonStyle;
3494
+ createDom(): void;
3495
+ private attachEventListeners;
3496
+ private removeEventListeners;
3497
+ private setButtonDisabled;
3498
+ private onPrevClick;
3499
+ private onNextClick;
3500
+ private onPlayStopClick;
3501
+ setPlaying(isPlaying: boolean): void;
3502
+ showLoader(): void;
3503
+ hideLoader(): void;
3504
+ hideOverlay(): void;
3505
+ showOverlay(): void;
3506
+ }
3507
+
3508
+ export declare class BlazeWidgetVideoModal extends BlazeWidgetModal {
3509
+ parentWidget: HTMLElement;
3510
+ playerLayout: VideoPlayerStyle;
3511
+ data: IVideo[];
3512
+ onClose: (() => void) | undefined;
3513
+ onOpen: (() => void) | undefined;
3514
+ boundOnResizeEventDelay: (this: Window, ev: UIEvent) => void;
3515
+ boundOnKeyDown: (ev: KeyboardEvent) => void;
3516
+ boundOnBeforeUnload: () => void;
3517
+ constructor(parentWidget: HTMLElement, playerLayout: VideoPlayerStyle);
3518
+ get currentPlayedContent(): BlazeVideoElement;
3519
+ connectedCallback(): void;
3520
+ disconnectedCallback(): void;
3521
+ setTheme(playerStyle: VideoPlayerStyle): void;
3522
+ setModalContent(data: IVideo[]): void;
3523
+ onBeforeUnload(): null;
3524
+ dispatchExitEvent(): void;
3525
+ close(): Promise<void>;
3526
+ open(): void;
3527
+ play(): void;
3528
+ onKeyDown(ev: KeyboardEvent): void;
3529
+ render(): void;
3530
+ onResize(): void;
3531
+ onResizeEventDelay(): void;
3532
+ }
3533
+
3534
+ /// <reference types="hammerjs" />
3535
+ export declare class BlazeWidgetVideoPlayer extends WidgetAbstractPlayer implements IVideoPlayerController {
3536
+ private boundOnNavigationPrev;
3537
+ private boundOnNavigationNext;
3538
+ private boundOnResize;
3539
+ private boundOnScreenChangeByBrowser;
3540
+ private boundOnKeyDown;
3541
+ private visibilityManager;
3542
+ private fullscreenManager;
3543
+ resumeAfterFocus: boolean;
3544
+ constructor();
3545
+ connectedCallback(): void;
3546
+ disconnectedCallback(): void;
3547
+ destroy(): void;
3548
+ get currentVideoItem(): BlazeVideoElement;
3549
+ setupEventListeners(): void;
3550
+ detachEventListeners(): void;
3551
+ tryToCloseFullscreen(): Promise<void>;
3552
+ toggleFullscreen(): Promise<void>;
3553
+ private handleScreenChangeByBrowser;
3554
+ applyStyles(): void;
3555
+ setupContainer(): Promise<void>;
3556
+ private updateContainerStyles;
3557
+ private calculateDesktopStyles;
3558
+ handleDirection(direction: NavigationDirectionType): Promise<void>;
3559
+ handlePrevDirection(): void;
3560
+ handleNextDirection(): void;
3561
+ setContent(contentList: BlazeVideoElement[]): void;
3562
+ load(): Promise<void>;
3563
+ play(): Promise<void>;
3564
+ resume(): Promise<void>;
3565
+ pause(): void;
3566
+ restart(): void;
3567
+ private updateOverlayNavigationPlayingState;
3568
+ private updateOverlayNavigationButtons;
3569
+ handleNavigationKeyPress(event: KeyboardEvent): void;
3570
+ createAnimation(content: any, direction: ContentDirection, targetIndex: number): AnimeTimelineInstance;
3571
+ handleAnimationStart(content: BlazeVideoElement, direction: ContentDirection): void;
3572
+ handleAnimationCompletion(content: any, mode: ContentDirection): Promise<void>;
3573
+ loadAndPlayContent(): Promise<void>;
3574
+ preloadAdjacentContent(direction: ContentDirection): Promise<void>;
3575
+ prefetchPosters(): Promise<void>;
3576
+ onAnimationEnd(): void;
3577
+ handleMoveSwipe(ev: HammerInput): void;
3578
+ handleEndSwipe(ev: HammerInput): void;
3579
+ resetStyles(): void;
3580
+ render(): void;
3581
+ }
3582
+
3583
+ export declare class BlazeVideoElement extends BlazeWidgetVideoBase {
3584
+ private shadow;
3585
+ video: HTMLVideoElement;
3586
+ playerStyle: VideoPlayerStyle;
3587
+ private playbackStrategy;
3588
+ private playerCommands;
3589
+ private captionsElement;
3590
+ private posterOverlayElement;
3591
+ videoOverlay: BlazeLongFormControlsOverlay;
3592
+ shareModal: BlazeWidgetShareModal;
3593
+ private widgetVastAd;
3594
+ private adPercentageShownPlaces;
3595
+ private lastSavedTime;
3596
+ private lastSeekAction;
3597
+ private shouldSaveAfterSeek;
3598
+ private loaderTimeoutId;
3599
+ private inactivityTimeout;
3600
+ private inactivityEvents;
3601
+ contentType: string;
3602
+ data: IVideo;
3603
+ isActionBlocked: boolean;
3604
+ private isInitializing;
3605
+ private isLoaded;
3606
+ private lastMarkedVideoIdAsViewed;
3607
+ private videoSessionId;
3608
+ private aspectRatio;
3609
+ startTrigger: StartTriggerType;
3610
+ exitTrigger: ExitTriggerType;
3611
+ navigationType: NavigationType;
3612
+ refContentModal: BlazeWidgetVideoModal | undefined;
3613
+ widgetParentItem?: BlazeWidgetItem;
3614
+ modal: BlazeWidgetVideoModal | undefined;
3615
+ isActive: any;
3616
+ navigationDirection: any;
3617
+ private boundHandleLoaderDisplay;
3618
+ private boundHandleLoaderHide;
3619
+ private boundHandleTimeUpdate;
3620
+ private boundHandleLoadedMetadata;
3621
+ private boundHandleVideoEnded;
3622
+ private boundHandleSeekDebounce;
3623
+ private boundHandleClick;
3624
+ private boundHandleMouseIn;
3625
+ private boundHandleMouseOut;
3626
+ private boundHandleMouseMove;
3627
+ private boundHandleOverlayEvents;
3628
+ private boundHandleAdStarted;
3629
+ private boundHandleAdEnded;
3630
+ constructor();
3631
+ connectedCallback(): void;
3632
+ disconnectedCallback(): void;
3633
+ attributeChangedCallback(name: string, oldValue: any, newValue: any): void;
3634
+ setTheme(playerStyle: VideoPlayerStyle): void;
3635
+ setWidgetItemParent(widgetItem: BlazeWidgetItem): void;
3636
+ setData(data: IVideo): void;
3637
+ setModal(modal: BlazeWidgetVideoModal): void;
3638
+ setIsPlaying(isPlaying: boolean): void;
3639
+ load(): Promise<void>;
3640
+ private setupClosedCaptions;
3641
+ private setClosedCaptions;
3642
+ private setCta;
3643
+ private setTitle;
3644
+ private setLiked;
3645
+ private setVideoId;
3646
+ private createSnapshot;
3647
+ unload(): void;
3648
+ private initialize;
3649
+ private setupStyles;
3650
+ private setupVideoElement;
3651
+ private setupOverlay;
3652
+ private setupShareModal;
3653
+ private setupEventListeners;
3654
+ destroy(): void;
3655
+ private startOverlayAutoHideTimer;
3656
+ private clearOverlayTimer;
3657
+ private handleMouseIn;
3658
+ private handleMouseOut;
3659
+ private handleMouseMove;
3660
+ private handleClick;
3661
+ private showPlayerOverlay;
3662
+ private hidePlayerOverlay;
3663
+ private createPosterOverlay;
3664
+ private updatePosterOverlay;
3665
+ private handleVideoEnded;
3666
+ showLoaderWithDelay(): void;
3667
+ private hideLoader;
3668
+ private handleLoaderDisplay;
3669
+ private handleLoaderHide;
3670
+ private handleOverlayEvents;
3671
+ private handleCtaClick;
3672
+ setPlayerLayoutToNormal(): void;
3673
+ private handleSeekRequest;
3674
+ private handleSeek;
3675
+ private handleShareClick;
3676
+ pause(): void;
3677
+ play(): Promise<void>;
3678
+ updateMuteButtonState(isMuted: boolean): void;
3679
+ private handleLoadedMetadata;
3680
+ updateWidgetStatusReadUnread(): void;
3681
+ private handleVideoTimeUpdate;
3682
+ private saveCurrentTime;
3683
+ private handleAdStarted;
3684
+ private handleAdEnded;
3685
+ static get observedAttributes(): string[];
3686
+ get mute(): boolean;
3687
+ set muted(value: boolean);
3688
+ get videoId(): string;
3689
+ set videoId(value: string);
3690
+ get title(): string;
3691
+ set title(value: string);
3692
+ get isLiked(): boolean;
3693
+ set isLiked(value: boolean);
3694
+ get isPlayingAd(): boolean;
3695
+ set isPlayingAd(value: boolean);
3696
+ private applyAttribute;
3697
+ updatePlayerButtonIcons(): void;
3698
+ resetPosition(): void;
3699
+ render(): void;
3700
+ getRefferingObject(): ReferringEventInfo;
3701
+ event(action: VideoAction, data: Partial<VideoEvent>, label?: string | undefined): Promise<void>;
3702
+ private tryToPlayAd;
3703
+ }
3704
+
3705
+ export declare class PlaybackStrategyFactory {
3706
+ static createStrategy(video: HTMLVideoElement, strategyType: string): PlaybackStrategy;
3707
+ }
3708
+
3709
+ export interface PlayResult {
3710
+ status: PlayStatus;
3711
+ error?: unknown;
3712
+ }
3713
+ export declare enum PlayStatus {
3714
+ Success = "SUCCESS",
3715
+ Failed = "FAILED"
3716
+ }
3717
+ export interface PlaybackStrategy {
3718
+ play(): Promise<PlayResult>;
3719
+ pause(): void;
3720
+ initialize(videoOverlay: BlazeLongFormControlsOverlay): void;
3721
+ toggleMute(): void;
3722
+ setMuted(muted: boolean): void;
3723
+ isMuted(): boolean;
3724
+ toggleFullscreen(): void;
3725
+ seek(time: number): void;
3726
+ getDuration(): number;
3727
+ loadSource(src: string, bitRate: number, startingTime: number): void;
3728
+ unload(): void;
3729
+ destroy(): void;
3730
+ }
3731
+
3732
+ export declare class HLSStrategy implements PlaybackStrategy {
3733
+ private hls?;
3734
+ private videoOverlay?;
3735
+ private video;
3736
+ private initialBitrateBps;
3737
+ private retryCount;
3738
+ private maxRetries;
3739
+ private lastTime;
3740
+ private playbackWatchdogTimeout?;
3741
+ private loaderTimeout?;
3742
+ private recoveryTimeout?;
3743
+ private seekRecoveryListener?;
3744
+ private boundOnManifestParsed;
3745
+ private boundOnBufferAppended;
3746
+ private boundOnFragParsed;
3747
+ private boundOnLoadedMetadata;
3748
+ private boundOnPlaying;
3749
+ private boundOnCanPlay;
3750
+ private boundOnError;
3751
+ private boundOnNativeError;
3752
+ constructor(video: HTMLVideoElement);
3753
+ initialize(videoOverlay: BlazeLongFormControlsOverlay): void;
3754
+ loadSource(src: string, initialBitrate: number, startingTime?: number): void;
3755
+ unload(): void;
3756
+ destroy(): void;
3757
+ private waitForVideoCondition;
3758
+ play(): Promise<PlayResult>;
3759
+ private startPlaybackWatchdog;
3760
+ private handlePlaybackTimeout;
3761
+ pause(): void;
3762
+ getDuration(): number;
3763
+ isMuted(): boolean;
3764
+ seek(clampedSeek: number): void;
3765
+ setMuted(muted: boolean): void;
3766
+ toggleMute(): void;
3767
+ mute(): void;
3768
+ unmute(): void;
3769
+ toggleFullscreen(): void;
3770
+ private updateBuffer;
3771
+ private handleManifestParsed;
3772
+ private handleBufferAppended;
3773
+ private handleFragParsed;
3774
+ private handleError;
3775
+ private isSlowConnection;
3776
+ private nudgePlayback;
3777
+ private handleNetworkError;
3778
+ private handleOnlineNetworkRecovery;
3779
+ private recoverNativeHls;
3780
+ private handleMediaError;
3781
+ private reloadStream;
3782
+ private showLoader;
3783
+ private hideLoader;
3784
+ private handlePlaying;
3785
+ private handleNativeError;
3786
+ private handleLoadedMetadata;
3787
+ }
3788
+
2678
3789
  export * from './widget-video-base';
2679
3790
  export * from './widget-player';
2680
3791
  export * from './ad/widget-ad';
2681
3792
  export * from './ad/widget-banner-ad';
3793
+ export * from './ad/widget-vast-ad';
2682
3794
  export * from './widget-embedded-story';
2683
3795
  export * from './widget-interaction';
2684
3796
  export * from './widget-item';
@@ -2697,7 +3809,14 @@ export * from './widget-video';
2697
3809
  export * from './moment/widget-moment-seek-bar';
2698
3810
  export * from './widget-cta-modal';
2699
3811
  export * from './widget-captions';
3812
+ export * from '../video/core/video';
2700
3813
 
3814
+ type Position = {
3815
+ top?: string;
3816
+ left?: string;
3817
+ right?: string;
3818
+ bottom?: string;
3819
+ };
2701
3820
  export declare class BlazeWidgetCaptions extends HTMLElement {
2702
3821
  private parser;
2703
3822
  private container;
@@ -2716,7 +3835,6 @@ export declare class BlazeWidgetCaptions extends HTMLElement {
2716
3835
  private checkContainerContent;
2717
3836
  private handleTimeUpdate;
2718
3837
  private handleSeekUpdate;
2719
- updateTime(currentTime: number): void;
2720
3838
  private setupTimeUpdateHandling;
2721
3839
  private cleanup;
2722
3840
  private updateVisibility;
@@ -2724,6 +3842,7 @@ export declare class BlazeWidgetCaptions extends HTMLElement {
2724
3842
  initialize(video: HTMLVideoElement, captions: ICaptionFile[]): Promise<void>;
2725
3843
  private setupCaptions;
2726
3844
  private updateCaptions;
3845
+ setAbsolutePosition(position: Position): void;
2727
3846
  }
2728
3847
 
2729
3848
  export declare abstract class BlazeWidgetContent extends HTMLElement {
@@ -2744,7 +3863,7 @@ export declare abstract class BlazeWidgetContent extends HTMLElement {
2744
3863
  boundOnVisibilityChangeEvent: () => void;
2745
3864
  widgetParentItem: BlazeWidgetItem;
2746
3865
  sessionId: string;
2747
- refContentModal?: BlazeWidgetStoryModal | BlazeWidgetMomentModal;
3866
+ refContentModal?: BlazeWidgetStoryModal | BlazeWidgetMomentModal | BlazeWidgetVideoModal;
2748
3867
  abstract aspectRatio?: ContentAspectRatio;
2749
3868
  constructor();
2750
3869
  connectedCallback(): void;
@@ -2855,11 +3974,13 @@ export declare class BlazeWidgetInteraction extends BaseWidget {
2855
3974
  private focusMainWindow;
2856
3975
  private initInteraction;
2857
3976
  private orientationChange;
3977
+ private hideIframe;
3978
+ private showIframe;
2858
3979
  }
2859
3980
 
2860
3981
  export interface BlazeWidgetItemOptions {
2861
3982
  layout: LayoutStyle;
2862
- content: IStory | IMoment;
3983
+ content: IStory | IMoment | IVideo;
2863
3984
  }
2864
3985
  export declare class BlazeWidgetItem extends BaseWidget {
2865
3986
  protected options: BlazeWidgetItemOptions;
@@ -2881,7 +4002,7 @@ export declare class BlazeWidgetItem extends BaseWidget {
2881
4002
  get parentRef(): BlazeWidgetLayout;
2882
4003
  statusIndicatorSettings: IndicatorStyle;
2883
4004
  paddingItem: PositionOffset;
2884
- content: IStory | IMoment;
4005
+ content: IStory | IMoment | IVideo;
2885
4006
  onClick: (() => void) | undefined;
2886
4007
  private boundOnWidgetClick;
2887
4008
  constructor(options: BlazeWidgetItemOptions);
@@ -2921,8 +4042,9 @@ export declare class BlazeWidgetItem extends BaseWidget {
2921
4042
  export declare class BlazeWidgetLayout extends BlazeWidgetScrollable implements Observable, IWidgetView {
2922
4043
  storysModal: BlazeWidgetStoryModal | undefined;
2923
4044
  momentsModal: BlazeWidgetMomentModal | undefined;
4045
+ videosModal: BlazeWidgetVideoModal | undefined;
2924
4046
  defaultAdsInfo: IAdInfo | undefined;
2925
- content: IStory[] | IMoment[];
4047
+ content: IStory[] | IMoment[] | IVideo[];
2926
4048
  skeletonContainer: BlazeDiv | undefined;
2927
4049
  widgetItems: BlazeWidgetItem[];
2928
4050
  preset: IWidgetTheme | undefined;
@@ -2937,6 +4059,7 @@ export declare class BlazeWidgetLayout extends BlazeWidgetScrollable implements
2937
4059
  heightObserver: MutationObserver;
2938
4060
  reloadTimeout: NodeJS.Timeout | undefined;
2939
4061
  analyticsStack: Record<WidgetAction, boolean>;
4062
+ actionHandlers: ActionHandler[];
2940
4063
  onResizeEvent: (this: Window, ev: UIEvent) => void;
2941
4064
  shouldReloadWhenPlayerIsClosed: boolean;
2942
4065
  shouldReloadData: boolean;
@@ -2961,6 +4084,7 @@ export declare class BlazeWidgetLayout extends BlazeWidgetScrollable implements
2961
4084
  set contentIds(value: string);
2962
4085
  setContentIds(ids: string[], options?: ISetWidgetOptions): void;
2963
4086
  setLabelsPriority(labelsPriority: string | string[] | BlazeWidgetLabel[], options?: ISetWidgetOptions): void;
4087
+ setActionHandlers(actionHandlers: ActionHandler[]): void;
2964
4088
  setLabels(labels: string | string[] | BlazeWidgetLabel, options?: ISetWidgetOptions): void;
2965
4089
  getTheme(): IWidgetTheme;
2966
4090
  setTheme(theme: IWidgetTheme | ThemeType): void;
@@ -2982,6 +4106,7 @@ export declare class BlazeWidgetLayout extends BlazeWidgetScrollable implements
2982
4106
  private onItemClick;
2983
4107
  private loadContent;
2984
4108
  private handleStoryContent;
4109
+ private handleVideoContent;
2985
4110
  private handleMomentContent;
2986
4111
  handleAssetsExpiry(data: {
2987
4112
  assetsExpiryTime: string;
@@ -3032,18 +4157,18 @@ export declare class BlazeWidgetLayout extends BlazeWidgetScrollable implements
3032
4157
  widgetType(): WidgetType;
3033
4158
  }
3034
4159
 
3035
- /// <reference types="hammerjs" />
3036
4160
  export declare class BlazeWidgetModal extends BaseWidget {
3037
- player: BlazeWidgetStoryPlayer | BlazeWidgetMomentPlayer;
4161
+ player: BlazeWidgetStoryPlayer | BlazeWidgetMomentPlayer | BlazeWidgetVideoPlayer;
3038
4162
  isOpen: boolean;
3039
4163
  exitButtonElement: BlazeButton;
3040
4164
  exitButtonWrapperElement: BlazeDiv;
4165
+ blazeSdk: BlazeWidgetSDK;
3041
4166
  hammer: HammerManager | null;
3042
4167
  isMultiTouch: boolean;
3043
4168
  boundOnResizeEvent: (this: Window, ev: UIEvent) => void;
3044
4169
  boundOnPopStateEvent: (ev: PopStateEvent) => void;
3045
4170
  onContentChange?: (mode: ContentDirection) => void;
3046
- constructor(type: 'story' | 'moment');
4171
+ constructor(type: ContentType);
3047
4172
  connectedCallback(): void;
3048
4173
  disconnectedCallback(): void;
3049
4174
  onResize(): void;
@@ -3060,13 +4185,13 @@ export declare class BlazeWidgetModal extends BaseWidget {
3060
4185
  close(): void;
3061
4186
  }
3062
4187
 
3063
- export type BlazeWidgetContent = BlazeWidgetStory | BlazeWidgetMoment;
4188
+ export type BlazeWidgetContent = BlazeWidgetStory | BlazeWidgetMoment | BlazeVideoElement;
3064
4189
  export declare abstract class WidgetAbstractPlayer extends BaseWidget {
3065
4190
  index: number;
3066
4191
  container: BlazeDiv;
3067
4192
  numberOfContentInList: number;
3068
- contentList: BlazeWidgetStory[] | BlazeWidgetMoment[];
3069
- playerContentList: BlazeWidgetStory[] | BlazeWidgetMoment[];
4193
+ contentList: BlazeWidgetStory[] | BlazeWidgetMoment[] | BlazeVideoElement[];
4194
+ playerContentList: BlazeWidgetStory[] | BlazeWidgetMoment[] | BlazeVideoElement[];
3070
4195
  srcBackground: HTMLCanvasElement;
3071
4196
  destBackground: HTMLCanvasElement;
3072
4197
  backgroundAnimation?: Animation;
@@ -3074,7 +4199,7 @@ export declare abstract class WidgetAbstractPlayer extends BaseWidget {
3074
4199
  hammer: HammerManager;
3075
4200
  gestureActionLimitThreshold: number;
3076
4201
  edgeScreenThreshold: number;
3077
- isEdgeThreshold: Boolean;
4202
+ isEdgeThreshold: boolean;
3078
4203
  isNavigationBlocked: boolean;
3079
4204
  isCloseAnimationStarted: boolean;
3080
4205
  currentNextAnimation?: anime.AnimeInstance;
@@ -3088,7 +4213,7 @@ export declare abstract class WidgetAbstractPlayer extends BaseWidget {
3088
4213
  constructor();
3089
4214
  seekContentById(contentId: string): void;
3090
4215
  cleanPlayerContentList(): void;
3091
- abstract setContent(content: BlazeWidgetStory[] | BlazeWidgetMoment[]): void;
4216
+ abstract setContent(content: BlazeWidgetStory[] | BlazeWidgetMoment[] | BlazeVideoElement[]): void;
3092
4217
  muteVideoOnIOSOrMacTablet(): void;
3093
4218
  setupHammer(direction?: number): void;
3094
4219
  cleanupHammer(): void;
@@ -3113,11 +4238,11 @@ export declare abstract class WidgetAbstractPlayer extends BaseWidget {
3113
4238
  abstract handleAnimationCompletion(content: BlazeWidgetStory | BlazeWidgetMoment, mode: ContentDirection): void;
3114
4239
  get directionBackwards(): 2 | 4;
3115
4240
  get directionForwards(): 2 | 4;
3116
- processAnimation(event: HammerInput, content: BlazeWidgetMoment | BlazeWidgetStory, currentAnimation?: AnimeInstance | null | undefined): void;
4241
+ processAnimation(event: HammerInput, content: BlazeWidgetMoment | BlazeWidgetStory | BlazeVideoElement, currentAnimation?: AnimeInstance | null | undefined): void;
3117
4242
  unloadFromPlayerList(): void;
3118
4243
  handleAnimationEnd(direction: ContentDirection): void;
3119
4244
  abstract loadAndPlayContent(): void;
3120
- abstract onKeyDown(event: KeyboardEvent): void;
4245
+ abstract handleNavigationKeyPress(event: KeyboardEvent): void;
3121
4246
  handleSmallGestures(animation: AnimeInstance, content: BlazeWidgetStory | BlazeWidgetMoment): void;
3122
4247
  abstract resetStyles(): void;
3123
4248
  resetPosition(): void;
@@ -3125,6 +4250,7 @@ export declare abstract class WidgetAbstractPlayer extends BaseWidget {
3125
4250
  isContentDirectionInPlayerListValid(direction: ContentDirection | null): boolean;
3126
4251
  isBlazeWidgetStory(content: BlazeWidgetContent[]): content is BlazeWidgetStory[];
3127
4252
  isBlazeWidgetMoment(content: BlazeWidgetContent[]): content is BlazeWidgetMoment[];
4253
+ isBlazeWidgetVideo(content: BlazeWidgetContent[]): content is BlazeVideoElement[];
3128
4254
  }
3129
4255
 
3130
4256
  export declare class BlazeWidgetScrollable extends BaseWidget {
@@ -3144,7 +4270,7 @@ export declare class BlazeWidgetScrollable extends BaseWidget {
3144
4270
 
3145
4271
  export type playRefType = 'Share' | 'SingleStory' | 'AutoAdvance';
3146
4272
  export declare class BlazeWidgetSDK extends BaseWidget {
3147
- modal: BlazeWidgetStoryModal | BlazeWidgetMomentModal;
4273
+ modal: BlazeWidgetStoryModal | BlazeWidgetMomentModal | BlazeWidgetVideoModal;
3148
4274
  boundOnResizeEvent: (this: Window, ev: UIEvent) => void;
3149
4275
  boundOnResizeEventDelay: () => void;
3150
4276
  static get observedAttributes(): string[];
@@ -3154,17 +4280,18 @@ export declare class BlazeWidgetSDK extends BaseWidget {
3154
4280
  onResizeEventDelay(): void;
3155
4281
  onResize(): void;
3156
4282
  handleLoadingContent(): void;
3157
- checkUrlForContent(): {
4283
+ extractContentIdsFromUrl(): {
3158
4284
  isStoryMatch: boolean;
3159
- storyIds: string | null;
4285
+ storyId: string | null;
3160
4286
  isMomentMatch: boolean;
3161
- momentIds: string | null;
4287
+ momentId: string | null;
4288
+ isVideoMatch: boolean;
4289
+ videoId: string | null;
3162
4290
  };
3163
4291
  setPlayerStyleCustomization(playerStyleCustomization: Partial<StoryPlayerStyle>): void;
3164
4292
  handleContentLoad(contentType: ContentType, playReference: playRefType, contentIds: string): Promise<void>;
3165
4293
  handleStaticContentLoad(playReference: playRefType): Promise<void>;
3166
- enrichContent(content: IStory[]): Promise<IStory[]>;
3167
- setupModalAndLoadContent(contentType: ContentType, playReference: playRefType, content: IStory | IMoment): Promise<void>;
4294
+ setupModalAndLoadContent(contentType: ContentType, playReference: playRefType, content: IStory | IMoment | IVideo): Promise<void>;
3168
4295
  attributeChangedCallback(name: string, oldValue: string, newValue: string): void;
3169
4296
  private getConfigAttributes;
3170
4297
  private initialize;
@@ -3200,13 +4327,13 @@ export declare class BlazeWidgetShareModal extends BaseWidget {
3200
4327
  }
3201
4328
 
3202
4329
  export declare class BlazeWidgetVideoBase extends HTMLElement {
3203
- data: IPage | undefined;
4330
+ data: IPage | IVideo | undefined;
3204
4331
  shouldShowImaAd?: boolean;
3205
4332
  isCurrentlyTryingToRunImaAd?: boolean;
3206
4333
  _isAd?: boolean | undefined;
3207
4334
  adsManager?: any;
3208
4335
  constructor();
3209
- setData(data: IPage): void;
4336
+ setData(data: IPage | IVideo): void;
3210
4337
  loadPoster(): void;
3211
4338
  play(): void;
3212
4339
  restartVideo(): void;
@@ -3268,8 +4395,9 @@ export declare class BlazeWidgetVideo extends BlazeWidgetVideoBase {
3268
4395
  connectedCallback(): void;
3269
4396
  disconnectedCallback(): void;
3270
4397
  setData(data: IPage): void;
4398
+ private isEnableInteractions;
3271
4399
  loadClosedCaptions(): Promise<void>;
3272
- getVideoDuration(): Promise<number>;
4400
+ getVideoDuration(existingVideo?: HTMLVideoElement): Promise<number>;
3273
4401
  loadPoster(): void;
3274
4402
  display(): void;
3275
4403
  hide(): void;
@@ -3294,10 +4422,10 @@ export declare class BlazeWidgetVideo extends BlazeWidgetVideoBase {
3294
4422
  get isAd(): boolean;
3295
4423
  render(): void;
3296
4424
  restartVideo(): void;
3297
- initializeIMA(): void;
3298
- buildImaUrl(iamData: IImaAdInfo, pageIndex?: number): string;
4425
+ initializeIMA(): Promise<void>;
4426
+ buildImaUrl(iamData: IImaAdInfo, pageIndex?: number): Promise<string>;
3299
4427
  buildAndSetCustParams(iamData: IImaAdInfo, newUrl: URL, pageIndex?: number): void;
3300
- setSearchParamIfNotNull(newUrl: URL, key: string, value?: string): void;
4428
+ setSearchParamIfNotNullOrZero(newUrl: URL, key: string, value?: string | number): void;
3301
4429
  addAniviewMacrosToUrl(newUrl: URL): void;
3302
4430
  addGoogleAdsMacrosToUrl(newUrl: URL): void;
3303
4431
  onAdsManagerLoaded(adsManagerLoadedEvent: any): void;
@@ -3355,6 +4483,7 @@ export declare class BlazeWidgetAd extends BlazeWidgetVideoBase {
3355
4483
  isAdContainerConnectedToDOM(): Promise<boolean>;
3356
4484
  private destroyAd;
3357
4485
  handleCtaSwipeUp(): void;
4486
+ private event;
3358
4487
  }
3359
4488
 
3360
4489
  export declare class BlazeWidgetBannerAd extends HTMLElement {
@@ -3367,10 +4496,44 @@ export declare class BlazeWidgetBannerAd extends HTMLElement {
3367
4496
  private raiseAnalyticsEventToParent;
3368
4497
  }
3369
4498
 
3370
- export type BlazeWidgetContentType = BlazeWidgetMoment[] & BlazeWidgetStory[];
4499
+ export declare class BlazeWidgetVastAd extends HTMLElement {
4500
+ private contentType;
4501
+ private getReferringObject?;
4502
+ private adDisplayContainer?;
4503
+ private adsManager?;
4504
+ private adsLoader?;
4505
+ private adContainer;
4506
+ private adLoaderContainer;
4507
+ private videoElement?;
4508
+ private currentAdTag;
4509
+ private boundedOnBlur;
4510
+ private boundedOnFocus;
4511
+ private boundedOnVisibilityChange;
4512
+ private boundedOnWindowResize;
4513
+ adIndex: number;
4514
+ get googleIMA(): any;
4515
+ constructor(contentType: ContentType, getReferringObject?: (() => ReferringEventInfo) | undefined);
4516
+ private initializeGoogleIma;
4517
+ private buildImaUrl;
4518
+ startAd(videoElement: HTMLVideoElement, tag: string): Boolean;
4519
+ private onAdsManagerLoaded;
4520
+ private loadAds;
4521
+ private onAdEvent;
4522
+ private onAdError;
4523
+ private onAdClick;
4524
+ private onContentPauseRequested;
4525
+ private onContentResumeRequested;
4526
+ private onBlur;
4527
+ private onFocus;
4528
+ private onVisibilityChange;
4529
+ private onWindowResize;
4530
+ }
4531
+
4532
+ export type BlazeWidgetContentType = BlazeWidgetMoment[] & BlazeWidgetStory[] & BlazeVideoElement[];
3371
4533
  export declare class BlazeWidgetMomentModal extends BlazeWidgetModal {
3372
4534
  parentWidget: HTMLElement;
3373
4535
  playerLayout: MomentPlayerStyle;
4536
+ actionHandlers?: ActionHandler[] | undefined;
3374
4537
  data: IMoment[];
3375
4538
  playlistSessionId: string;
3376
4539
  navigationButtonsContainerElement: BlazeDiv;
@@ -3381,7 +4544,7 @@ export declare class BlazeWidgetMomentModal extends BlazeWidgetModal {
3381
4544
  boundOnKeyDown: (ev: KeyboardEvent) => void;
3382
4545
  boundOnNavigationChange: (ev: Event) => void;
3383
4546
  boundOnResizeEventDelay: (this: Window, ev: UIEvent) => void;
3384
- constructor(parentWidget: HTMLElement, playerLayout: MomentPlayerStyle);
4547
+ constructor(parentWidget: HTMLElement, playerLayout: MomentPlayerStyle, actionHandlers?: ActionHandler[] | undefined);
3385
4548
  connectedCallback(): void;
3386
4549
  disconnectedCallback(): void;
3387
4550
  setTheme(playerStyle: MomentPlayerStyle): void;
@@ -3421,7 +4584,7 @@ export declare class BlazeWidgetMomentPlayer extends WidgetAbstractPlayer {
3421
4584
  handlePrevDirection(): void;
3422
4585
  handleNextDirection(): void;
3423
4586
  releaseMomentFromMemory(moment: BlazeWidgetMoment): void;
3424
- updateItemData(itemToReplaceWith: BlazeWidgetMoment & BlazeWidgetStory, nextItemToInsert: BlazeWidgetMoment | BlazeWidgetStory): void;
4587
+ updateItemData(itemToReplaceWith: BlazeWidgetMoment & BlazeWidgetStory & BlazeVideoElement, nextItemToInsert: BlazeWidgetMoment | BlazeWidgetStory | BlazeVideoElement): void;
3425
4588
  createAnimation(content: BlazeWidgetMoment, direction: ContentDirection, targetIndex: number): AnimeTimelineInstance;
3426
4589
  handleAnimationStart(content: BlazeWidgetMoment, direction: ContentDirection): void;
3427
4590
  handleAnimationCompletion(content: BlazeWidgetMoment, mode: ContentDirection): Promise<void>;
@@ -3433,7 +4596,7 @@ export declare class BlazeWidgetMomentPlayer extends WidgetAbstractPlayer {
3433
4596
  pause(): void;
3434
4597
  onAnimationEnd(): void;
3435
4598
  handleWheel(evt: WheelEvent): void;
3436
- onKeyDown(event: KeyboardEvent): void;
4599
+ handleNavigationKeyPress(event: KeyboardEvent): void;
3437
4600
  changeContent(direction: ContentDirection): void;
3438
4601
  handleMuteClicked(): void;
3439
4602
  loadContentBatch(): void;
@@ -3518,10 +4681,11 @@ export declare class BlazeWidgetMoment extends BlazeWidgetContent {
3518
4681
  seekBar: BlazeWidgetMomentSeekBar;
3519
4682
  shareModal: BlazeWidgetShareModal | undefined;
3520
4683
  data: IMoment;
3521
- type: string;
4684
+ contentType: string;
3522
4685
  momentIndex: number;
3523
4686
  loopNumber: number;
3524
4687
  isLiked: boolean;
4688
+ actionHandlers: ActionHandler[];
3525
4689
  onClose: () => void;
3526
4690
  boundOnCtaClicked: (event: Event) => void;
3527
4691
  boundPlayPauseButtonClick: (event: MouseEvent) => void;
@@ -3543,6 +4707,8 @@ export declare class BlazeWidgetMoment extends BlazeWidgetContent {
3543
4707
  shareButtonElement: BlazeButton;
3544
4708
  playPauseButtonElement: BlazeButton;
3545
4709
  closedCaptionButtonElement: BlazeButton;
4710
+ customActionButtonOneElement: BlazeButton;
4711
+ customActionButtonTwoElement: BlazeButton;
3546
4712
  headBodyContainer: BlazeDiv;
3547
4713
  headElement: BlazeDiv;
3548
4714
  bodyElement: BlazeDiv;
@@ -3556,6 +4722,7 @@ export declare class BlazeWidgetMoment extends BlazeWidgetContent {
3556
4722
  originalVideoRef: BlazeWidgetVideo | undefined;
3557
4723
  constructor(playerStyle?: MomentPlayerStyle | undefined);
3558
4724
  setPlayerStyle(style: MomentPlayerStyle): void;
4725
+ setActionHandlers(actionHandlers: ActionHandler[]): void;
3559
4726
  connectedCallback(): void;
3560
4727
  disconnectedCallback(): void;
3561
4728
  setTheme(playerStyle: MomentPlayerStyle): void;
@@ -3602,7 +4769,6 @@ export declare class BlazeWidgetMoment extends BlazeWidgetContent {
3602
4769
  private handleOnClosedCaptionClick;
3603
4770
  private toggleCaptionsVisibility;
3604
4771
  handleOnShareClick(): Promise<void>;
3605
- onShareModalButtonClick(shareButton: BlazeShareButton): Promise<void>;
3606
4772
  loadMoments(): Promise<void>;
3607
4773
  load(loadingType?: 'direct' | 'cache'): Promise<void>;
3608
4774
  unload(): Promise<void>;
@@ -3617,9 +4783,10 @@ export declare class BlazeWidgetMoment extends BlazeWidgetContent {
3617
4783
  }): Promise<void>;
3618
4784
  updateContent(momentContentData: MomentContentParams): void;
3619
4785
  updateLikeCount(likes?: number): Promise<void>;
3620
- updateCta(cta: ICTA): void;
4786
+ updateCta(cta: ICta): void;
3621
4787
  onCtaClick(event: Event): boolean;
3622
4788
  play(): void;
4789
+ handleOnCustomActionButtonClick(e: MouseEvent, handlerOptions: CustomActionButtonOptions): void;
3623
4790
  handleOnClose(): void;
3624
4791
  handleOnLikeClick(): void;
3625
4792
  pause(): void;
@@ -3635,13 +4802,14 @@ export declare class BlazeWidgetMoment extends BlazeWidgetContent {
3635
4802
  export declare class BlazeWidgetStoryModal extends BlazeWidgetModal {
3636
4803
  parentWidget: HTMLElement;
3637
4804
  playerLayout: StoryPlayerStyle;
4805
+ actionHandlers?: ActionHandler[] | undefined;
3638
4806
  onOpen?: () => void;
3639
4807
  onClose?: (options?: ISmoothOpenCloseModal) => void;
3640
4808
  boundOnResizeEventDelay: (this: Window, ev: UIEvent) => void;
3641
4809
  boundOnKeyDown: (ev: KeyboardEvent) => void;
3642
4810
  boundOnBeforeUnload: () => void;
3643
4811
  private currentState;
3644
- constructor(parentWidget: HTMLElement, playerLayout: StoryPlayerStyle);
4812
+ constructor(parentWidget: HTMLElement, playerLayout: StoryPlayerStyle, actionHandlers?: ActionHandler[] | undefined);
3645
4813
  connectedCallback(): void;
3646
4814
  disconnectedCallback(): void;
3647
4815
  onBeforeUnload(): null | undefined;
@@ -3691,7 +4859,7 @@ export declare class BlazeWidgetStoryPlayer extends WidgetAbstractPlayer {
3691
4859
  exitTrigger?: ExitTriggerType;
3692
4860
  navigationType?: NavigationType;
3693
4861
  }): void;
3694
- onKeyDown(event: KeyboardEvent): false | undefined;
4862
+ handleNavigationKeyPress(event: KeyboardEvent): false | undefined;
3695
4863
  render(): void;
3696
4864
  loadContentBatch(): void;
3697
4865
  playToggleCurrentStory(): void;
@@ -3700,6 +4868,7 @@ export declare class BlazeWidgetStoryPlayer extends WidgetAbstractPlayer {
3700
4868
  export declare class BlazeWidgetStory extends BlazeWidgetContent {
3701
4869
  playerStyle: StoryPlayerStyle;
3702
4870
  mode: ScreenMode;
4871
+ actionHandlers: ActionHandler[];
3703
4872
  pages: BlazeWidgetVideoBase[];
3704
4873
  data: IStory;
3705
4874
  shareModal: BlazeWidgetShareModal | undefined;
@@ -3712,7 +4881,7 @@ export declare class BlazeWidgetStory extends BlazeWidgetContent {
3712
4881
  resumeAfterBlurButton: BlazeButton | undefined;
3713
4882
  aspectRatio?: ContentAspectRatio;
3714
4883
  pageIndex: number;
3715
- type: string;
4884
+ contentType: string;
3716
4885
  progressElement: HTMLElement;
3717
4886
  onPageStart?: () => void;
3718
4887
  onPrevStory?: (navigation: NavigationType) => void;
@@ -3726,6 +4895,8 @@ export declare class BlazeWidgetStory extends BlazeWidgetContent {
3726
4895
  exitMobileTabletButtonElement?: BlazeButton;
3727
4896
  fullScreenElement?: BlazeButton;
3728
4897
  closedCaptionsButtonElement?: BlazeButton;
4898
+ customActionButtonOneElement?: BlazeButton;
4899
+ customActionButtonTwoElement?: BlazeButton;
3729
4900
  topContainer: BlazeDiv;
3730
4901
  bottomContainer: BlazeDiv;
3731
4902
  contentWrapper: BlazeDiv;
@@ -3752,12 +4923,14 @@ export declare class BlazeWidgetStory extends BlazeWidgetContent {
3752
4923
  requestAnimationId: number | null;
3753
4924
  shouldShowImaAdOnStart: boolean;
3754
4925
  bannerAdElement?: BlazeWidgetBannerAd;
3755
- constructor(playerStyle: StoryPlayerStyle, mode: ScreenMode);
4926
+ get currentPageIndexWithoutCustomAds(): number;
4927
+ constructor(playerStyle: StoryPlayerStyle, mode: ScreenMode, actionHandlers?: ActionHandler[]);
3756
4928
  isButtonVisible(iconName: IconButtonType | StoryDirectionType): boolean | undefined;
3757
4929
  private createPlayerButtonsAndAppendToButtonsContainer;
3758
4930
  private createNavigationButtonsAndAppendToWidgetStoryContainer;
3759
4931
  private createResumeAfterBlurButton;
3760
4932
  private applyIconStyle;
4933
+ onCustomActionButtonClick(e: Event, handlerOptions: CustomActionButtonOptions): void;
3761
4934
  onShareClick(): Promise<void>;
3762
4935
  private onClosedCaptionClick;
3763
4936
  private updateCtaButtonLayout;