/* eslint-disable */
/* tslint:disable */
/**
 * This is an autogenerated file created by the Stencil compiler.
 * It contains typing information for all components that exist in this project.
 */
import { HTMLStencilElement, JSXBase } from "./stencil-public-runtime";
import { ActionBarConfig, ButtonLinkObject, CTA, DynamicOverlay, EmailCollection, i18nConfig, MutedOverlay, PlaylistItem, presetAttributes, YoutubeConfig } from "./interfaces";
export { ActionBarConfig, ButtonLinkObject, CTA, DynamicOverlay, EmailCollection, i18nConfig, MutedOverlay, PlaylistItem, presetAttributes, YoutubeConfig } from "./interfaces";
export namespace Components {
    interface PrestoActionBar {
        "config": ActionBarConfig;
        "direction"?: 'rtl';
        "player": any;
        "youtube"?: YoutubeConfig;
    }
    interface PrestoActionBarController {
        "config": ActionBarConfig;
        "currentTime": number;
        "direction"?: 'rtl';
        "duration": number;
        "ended": boolean;
        "youtube"?: YoutubeConfig;
    }
    interface PrestoActionBarUi {
        "open"?: boolean;
    }
    interface PrestoAudio {
        "audioAttributes": object;
        "autoplay": boolean;
        "getRef"?: (elm?: HTMLAudioElement) => void;
        "mediaTitle": string;
        "player": any;
        "poster": string;
        "preload": string;
        "preset": presetAttributes;
        "provider": string;
        "src": string;
        "tracks": { label: string; src: string; srcLang: string }[];
    }
    interface PrestoBunny {
        "autoplay": boolean;
        "getRef"?: (elm?: HTMLVideoElement) => void;
        "player": any;
        "playsinline": boolean;
        "poster": string;
        "preload": string;
        "provider": string;
        "src": string;
        "tracks": { label: string; src: string; srcLang: string }[];
        "videoAttributes": object;
    }
    interface PrestoBusinessSkin {
    }
    /**
     * This component is needed to prevent re-rendering of
     * main component with currentTime changes.
     */
    interface PrestoCtaOverlay {
        "direction"?: 'rtl';
        "i18n": i18nConfig;
        "player": any;
        "preset": presetAttributes;
        "provider": string;
    }
    interface PrestoCtaOverlayController {
        "cta"?: CTA;
        "currentTime": number;
        "direction"?: 'rtl';
        "duration": number;
        "ended": boolean;
        "i18n": i18nConfig;
        "provider": string;
    }
    interface PrestoCtaOverlayUi {
        "allowRewatch": boolean;
        "allowSkip": boolean;
        "bottomText": string;
        "buttonLink": ButtonLinkObject;
        "buttonText": string;
        "buttonType": 'link' | 'time';
        "defaultHeadline": string;
        "direction"?: 'rtl';
        /**
          * Props
         */
        "headline": string;
        "i18n": i18nConfig;
        "provider": string;
        "showButton": boolean;
        "type": string;
    }
    interface PrestoDynamicOverlayUi {
        /**
          * When set, the underlying button will be rendered as an `<a>` with this `href` instead of a `<button>`.
         */
        "href": string;
        /**
          * @default 'top-right'
         */
        "position": 'top-left' | 'top-right';
        /**
          * Tells the browser where to open the link. Only used when `href` is set.
         */
        "target": '_blank' | '_parent' | '_self' | '_top';
    }
    interface PrestoDynamicOverlays {
        "enabled": boolean;
        "overlays": Array<DynamicOverlay>;
        "player": any;
        "preset": presetAttributes;
    }
    /**
     * This component is needed to prevent re-rendering of
     * main component with currentTime changes.
     */
    interface PrestoEmailOverlay {
        "direction"?: 'rtl';
        "i18n": i18nConfig;
        "player": any;
        "preset": presetAttributes;
        "provider": string;
        "videoId": number;
    }
    interface PrestoEmailOverlayController {
        "currentTime": number;
        "direction"?: 'rtl';
        "duration": number;
        "emailCollection"?: EmailCollection;
        "ended": boolean;
        "i18n": i18nConfig;
        "presetId": number;
        "provider": string;
        "videoId": number;
    }
    interface PrestoEmailOverlayUi {
        "allowSkip": boolean;
        "borderRadius": number;
        "bottomText": string;
        "buttonText": string;
        "direction"?: 'rtl';
        "errorMessage": string;
        /**
          * Props
         */
        "headline": string;
        "i18n": i18nConfig;
        "isLoading": boolean;
        "provider": string;
        "type": string;
    }
    interface PrestoModernSkin {
    }
    interface PrestoMutedOverlay {
        "mutedOverlay": MutedOverlay;
        "mutedPreview": boolean;
        "preset": presetAttributes;
    }
    interface PrestoPlayer {
        /**
          * @default {}
         */
        "actionBar": any;
        "analytics": boolean;
        "audioAttributes": object;
        "automations": boolean;
        "autoplay": boolean;
        /**
          * @default {}
         */
        "blockAttributes": any;
        /**
          * @default {}
         */
        "branding": any;
        /**
          * @default []
         */
        "chapters": any;
        "classes": string;
        /**
          * @default {}
         */
        "config": any;
        "css"?: string;
        "currentTime": number;
        "direction"?: 'rtl';
        /**
          * Toggle Fullscreen
          * @returns Plyr
         */
        "fullscreenToggle": (open: boolean) => Promise<any>;
        /**
          * Go to and play
          * @param time number
         */
        "goToAndPlay": (time: number) => Promise<void>;
        /**
          * @default {}
         */
        "i18n": any;
        "iconUrl": string;
        /**
          * @default false
         */
        "isAdmin": boolean;
        "lazyLoadYoutube": boolean;
        "markers": any;
        "mediaTitle": string;
        /**
          * Remove an event listener for the specified event.
          * @param event String
          * @param func Function
          * @returns Plyr
         */
        "off": (event: string, func: Function) => Promise<any>;
        /**
          * Add an event listener for the specified event.
          * @param event String
          * @param func Function
          * @returns Plyr
         */
        "on": (event: string, func: Function) => Promise<any>;
        /**
          * Add an event listener for the specified event.
          * @param event String
          * @param func Function
          * @returns Plyr
         */
        "once": (event: string, func: Function) => Promise<any>;
        /**
          * @default {}
         */
        "overlays": any;
        /**
          * Pause video
          * @returns Plyr
         */
        "pause": () => Promise<any>;
        /**
          * Play video
          * @returns Plyr
         */
        "play": (unmute?: boolean) => Promise<void>;
        "playsinline": boolean;
        "poster": string;
        "preload": 'metadata' | 'none' | 'auto';
        /**
          * @default {}
         */
        "preset": any;
        "provider": string;
        "providerVideoId": string;
        /**
          * Play video
          * @returns Plyr
         */
        "restart": () => Promise<any>;
        /**
          * @default {}
         */
        "search": any;
        "src": string;
        /**
          * Pause video
          * @returns Plyr
         */
        "stop": () => Promise<any>;
        /**
          * @default []
         */
        "tracks": any;
        "type": string;
        /**
          * @default {}
         */
        "videoAttributes": any;
        "videoId": number;
        /**
          * @default {}
         */
        "youtube": any;
    }
    interface PrestoPlayerButton {
        /**
          * Disables the button.
          * @default false
         */
        "disabled"?: boolean;
        /**
          * Tells the browser to download the linked file as this filename. Only used when `href` is set.
         */
        "download": string;
        /**
          * Draws the button with a caret for use with dropdowns, popovers, etc.
          * @default false
         */
        "full"?: boolean;
        /**
          * When set, the underlying button will be rendered as an `<a>` with this `href` instead of a `<button>`.
         */
        "href": string;
        /**
          * An optional name for the button. Ignored when `href` is set.
         */
        "name": string;
        /**
          * The button's size.
          * @default 'medium'
         */
        "size": 'small' | 'medium' | 'large';
        /**
          * Indicates if activating the button should submit the form. Ignored when `href` is set.
          * @default false
         */
        "submit"?: boolean;
        /**
          * Tells the browser where to open the link. Only used when `href` is set.
         */
        "target": '_blank' | '_parent' | '_self' | '_top';
        /**
          * The button's type.
          * @default 'default'
         */
        "type": 'default' | 'primary' | 'success' | 'info' | 'warning' | 'danger' | 'text';
        /**
          * An optional value for the button. Ignored when `href` is set.
         */
        "value": string;
    }
    interface PrestoPlayerSkeleton {
        /**
          * @default 'sheen'
         */
        "effect": 'pulse' | 'sheen' | 'none';
    }
    interface PrestoPlayerSpinner {
    }
    interface PrestoPlaylist {
        /**
          * Title for the Playlist
         */
        "heading": string;
        /**
          * Array of videos from the Playlist
         */
        "items": Array<PlaylistItem>;
        /**
          * Count prefix string for the Playlist - Plural
         */
        "listTextPlural": string;
        /**
          * Count prefix string for the Playlist - Singular
         */
        "listTextSingular": string;
        /**
          * Transition duration for next video.
          * @default 5
         */
        "transitionDuration": number;
    }
    interface PrestoPlaylistItem {
        /**
          * Active status
          * @default false
         */
        "active": boolean;
        /**
          * Playing status
          * @default false
         */
        "playing": boolean;
    }
    interface PrestoPlaylistOverlay {
        /**
          * Flag to handle if this item is the last item in the list.
          * @default false
         */
        "isLastItem": boolean;
        /**
          * String for the Button that says `Next Video`
         */
        "nextItemString": string;
        /**
          * Title of the upcoming next playlist item
         */
        "nextItemTitle": string;
        /**
          * Visibility flag for the Overlay
          * @default false
         */
        "show": boolean;
        /**
          * Transition duration for next video.
          * @default 5
         */
        "transitionDuration": number;
    }
    interface PrestoPlaylistUi {
    }
    interface PrestoSearchBar {
        "player": any;
        /**
          * Props
         */
        "value": string;
    }
    interface PrestoSearchBarUi {
        /**
          * Has results
         */
        "hasNavigation": boolean;
        /**
          * The placeholder.
         */
        "placeholder": string;
        /**
          * The value for the search.
         */
        "value": string;
    }
    interface PrestoStackedSkin {
    }
    interface PrestoTimestamp {
        "time": string;
    }
    interface PrestoVideo {
        "autoplay": boolean;
        "getRef"?: (elm?: HTMLVideoElement) => void;
        "player": any;
        "playsinline": boolean;
        "poster": string;
        "preload": string;
        "provider": string;
        "src": string;
        "tracks": { label: string; src: string; srcLang: string }[];
        "videoAttributes": object;
    }
    interface PrestoVideoCurtainUi {
        /**
          * Props
         */
        "actionUrl": string;
    }
    interface PrestoVimeo {
        "getRef"?: (elm?: HTMLIFrameElement) => void;
        "player": any;
        "poster": string;
        "src": string;
    }
    interface PrestoYoutube {
        "getRef"?: (elm?: HTMLIFrameElement | HTMLVideoElement | HTMLDivElement) => void;
        "lazyLoad": boolean;
        "player": any;
        "poster": string;
        "src": string;
    }
    interface PrestoYoutubeSubscribeButton {
        "channel": string;
        /**
          * @default 'default'
         */
        "layout": string;
        "showCount": boolean;
    }
}
export interface PrestoActionBarControllerCustomEvent<T> extends CustomEvent<T> {
    detail: T;
    target: HTMLPrestoActionBarControllerElement;
}
export interface PrestoAudioCustomEvent<T> extends CustomEvent<T> {
    detail: T;
    target: HTMLPrestoAudioElement;
}
export interface PrestoCtaOverlayControllerCustomEvent<T> extends CustomEvent<T> {
    detail: T;
    target: HTMLPrestoCtaOverlayControllerElement;
}
export interface PrestoCtaOverlayUiCustomEvent<T> extends CustomEvent<T> {
    detail: T;
    target: HTMLPrestoCtaOverlayUiElement;
}
export interface PrestoDynamicOverlaysCustomEvent<T> extends CustomEvent<T> {
    detail: T;
    target: HTMLPrestoDynamicOverlaysElement;
}
export interface PrestoEmailOverlayControllerCustomEvent<T> extends CustomEvent<T> {
    detail: T;
    target: HTMLPrestoEmailOverlayControllerElement;
}
export interface PrestoEmailOverlayUiCustomEvent<T> extends CustomEvent<T> {
    detail: T;
    target: HTMLPrestoEmailOverlayUiElement;
}
export interface PrestoMutedOverlayCustomEvent<T> extends CustomEvent<T> {
    detail: T;
    target: HTMLPrestoMutedOverlayElement;
}
export interface PrestoPlayerCustomEvent<T> extends CustomEvent<T> {
    detail: T;
    target: HTMLPrestoPlayerElement;
}
export interface PrestoPlayerButtonCustomEvent<T> extends CustomEvent<T> {
    detail: T;
    target: HTMLPrestoPlayerButtonElement;
}
export interface PrestoPlaylistItemCustomEvent<T> extends CustomEvent<T> {
    detail: T;
    target: HTMLPrestoPlaylistItemElement;
}
export interface PrestoPlaylistOverlayCustomEvent<T> extends CustomEvent<T> {
    detail: T;
    target: HTMLPrestoPlaylistOverlayElement;
}
export interface PrestoSearchBarUiCustomEvent<T> extends CustomEvent<T> {
    detail: T;
    target: HTMLPrestoSearchBarUiElement;
}
export interface PrestoYoutubeCustomEvent<T> extends CustomEvent<T> {
    detail: T;
    target: HTMLPrestoYoutubeElement;
}
declare global {
    interface HTMLPrestoActionBarElement extends Components.PrestoActionBar, HTMLStencilElement {
    }
    var HTMLPrestoActionBarElement: {
        prototype: HTMLPrestoActionBarElement;
        new (): HTMLPrestoActionBarElement;
    };
    interface HTMLPrestoActionBarControllerElementEventMap {
        "actionBarStateChange": boolean;
    }
    interface HTMLPrestoActionBarControllerElement extends Components.PrestoActionBarController, HTMLStencilElement {
        addEventListener<K extends keyof HTMLPrestoActionBarControllerElementEventMap>(type: K, listener: (this: HTMLPrestoActionBarControllerElement, ev: PrestoActionBarControllerCustomEvent<HTMLPrestoActionBarControllerElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
        removeEventListener<K extends keyof HTMLPrestoActionBarControllerElementEventMap>(type: K, listener: (this: HTMLPrestoActionBarControllerElement, ev: PrestoActionBarControllerCustomEvent<HTMLPrestoActionBarControllerElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
    }
    var HTMLPrestoActionBarControllerElement: {
        prototype: HTMLPrestoActionBarControllerElement;
        new (): HTMLPrestoActionBarControllerElement;
    };
    interface HTMLPrestoActionBarUiElement extends Components.PrestoActionBarUi, HTMLStencilElement {
    }
    var HTMLPrestoActionBarUiElement: {
        prototype: HTMLPrestoActionBarUiElement;
        new (): HTMLPrestoActionBarUiElement;
    };
    interface HTMLPrestoAudioElementEventMap {
        "playVideo": void;
        "pauseVideo": true;
    }
    interface HTMLPrestoAudioElement extends Components.PrestoAudio, HTMLStencilElement {
        addEventListener<K extends keyof HTMLPrestoAudioElementEventMap>(type: K, listener: (this: HTMLPrestoAudioElement, ev: PrestoAudioCustomEvent<HTMLPrestoAudioElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
        removeEventListener<K extends keyof HTMLPrestoAudioElementEventMap>(type: K, listener: (this: HTMLPrestoAudioElement, ev: PrestoAudioCustomEvent<HTMLPrestoAudioElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
    }
    var HTMLPrestoAudioElement: {
        prototype: HTMLPrestoAudioElement;
        new (): HTMLPrestoAudioElement;
    };
    interface HTMLPrestoBunnyElement extends Components.PrestoBunny, HTMLStencilElement {
    }
    var HTMLPrestoBunnyElement: {
        prototype: HTMLPrestoBunnyElement;
        new (): HTMLPrestoBunnyElement;
    };
    interface HTMLPrestoBusinessSkinElement extends Components.PrestoBusinessSkin, HTMLStencilElement {
    }
    var HTMLPrestoBusinessSkinElement: {
        prototype: HTMLPrestoBusinessSkinElement;
        new (): HTMLPrestoBusinessSkinElement;
    };
    /**
     * This component is needed to prevent re-rendering of
     * main component with currentTime changes.
     */
    interface HTMLPrestoCtaOverlayElement extends Components.PrestoCtaOverlay, HTMLStencilElement {
    }
    var HTMLPrestoCtaOverlayElement: {
        prototype: HTMLPrestoCtaOverlayElement;
        new (): HTMLPrestoCtaOverlayElement;
    };
    interface HTMLPrestoCtaOverlayControllerElementEventMap {
        "playVideo": void;
        "pauseVideo": boolean;
        "restartVideo": void;
        "ctaStateChange": boolean;
    }
    interface HTMLPrestoCtaOverlayControllerElement extends Components.PrestoCtaOverlayController, HTMLStencilElement {
        addEventListener<K extends keyof HTMLPrestoCtaOverlayControllerElementEventMap>(type: K, listener: (this: HTMLPrestoCtaOverlayControllerElement, ev: PrestoCtaOverlayControllerCustomEvent<HTMLPrestoCtaOverlayControllerElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
        removeEventListener<K extends keyof HTMLPrestoCtaOverlayControllerElementEventMap>(type: K, listener: (this: HTMLPrestoCtaOverlayControllerElement, ev: PrestoCtaOverlayControllerCustomEvent<HTMLPrestoCtaOverlayControllerElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
    }
    var HTMLPrestoCtaOverlayControllerElement: {
        prototype: HTMLPrestoCtaOverlayControllerElement;
        new (): HTMLPrestoCtaOverlayControllerElement;
    };
    interface HTMLPrestoCtaOverlayUiElementEventMap {
        "skip": void;
        "rewatch": void;
    }
    interface HTMLPrestoCtaOverlayUiElement extends Components.PrestoCtaOverlayUi, HTMLStencilElement {
        addEventListener<K extends keyof HTMLPrestoCtaOverlayUiElementEventMap>(type: K, listener: (this: HTMLPrestoCtaOverlayUiElement, ev: PrestoCtaOverlayUiCustomEvent<HTMLPrestoCtaOverlayUiElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
        removeEventListener<K extends keyof HTMLPrestoCtaOverlayUiElementEventMap>(type: K, listener: (this: HTMLPrestoCtaOverlayUiElement, ev: PrestoCtaOverlayUiCustomEvent<HTMLPrestoCtaOverlayUiElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
    }
    var HTMLPrestoCtaOverlayUiElement: {
        prototype: HTMLPrestoCtaOverlayUiElement;
        new (): HTMLPrestoCtaOverlayUiElement;
    };
    interface HTMLPrestoDynamicOverlayUiElement extends Components.PrestoDynamicOverlayUi, HTMLStencilElement {
    }
    var HTMLPrestoDynamicOverlayUiElement: {
        prototype: HTMLPrestoDynamicOverlayUiElement;
        new (): HTMLPrestoDynamicOverlayUiElement;
    };
    interface HTMLPrestoDynamicOverlaysElementEventMap {
        "reloadComponent": void;
    }
    interface HTMLPrestoDynamicOverlaysElement extends Components.PrestoDynamicOverlays, HTMLStencilElement {
        addEventListener<K extends keyof HTMLPrestoDynamicOverlaysElementEventMap>(type: K, listener: (this: HTMLPrestoDynamicOverlaysElement, ev: PrestoDynamicOverlaysCustomEvent<HTMLPrestoDynamicOverlaysElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
        removeEventListener<K extends keyof HTMLPrestoDynamicOverlaysElementEventMap>(type: K, listener: (this: HTMLPrestoDynamicOverlaysElement, ev: PrestoDynamicOverlaysCustomEvent<HTMLPrestoDynamicOverlaysElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
    }
    var HTMLPrestoDynamicOverlaysElement: {
        prototype: HTMLPrestoDynamicOverlaysElement;
        new (): HTMLPrestoDynamicOverlaysElement;
    };
    /**
     * This component is needed to prevent re-rendering of
     * main component with currentTime changes.
     */
    interface HTMLPrestoEmailOverlayElement extends Components.PrestoEmailOverlay, HTMLStencilElement {
    }
    var HTMLPrestoEmailOverlayElement: {
        prototype: HTMLPrestoEmailOverlayElement;
        new (): HTMLPrestoEmailOverlayElement;
    };
    interface HTMLPrestoEmailOverlayControllerElementEventMap {
        "playVideo": void;
        "pauseVideo": true;
        "restartVideo": void;
        "emailStateChange": boolean;
    }
    interface HTMLPrestoEmailOverlayControllerElement extends Components.PrestoEmailOverlayController, HTMLStencilElement {
        addEventListener<K extends keyof HTMLPrestoEmailOverlayControllerElementEventMap>(type: K, listener: (this: HTMLPrestoEmailOverlayControllerElement, ev: PrestoEmailOverlayControllerCustomEvent<HTMLPrestoEmailOverlayControllerElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
        removeEventListener<K extends keyof HTMLPrestoEmailOverlayControllerElementEventMap>(type: K, listener: (this: HTMLPrestoEmailOverlayControllerElement, ev: PrestoEmailOverlayControllerCustomEvent<HTMLPrestoEmailOverlayControllerElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
    }
    var HTMLPrestoEmailOverlayControllerElement: {
        prototype: HTMLPrestoEmailOverlayControllerElement;
        new (): HTMLPrestoEmailOverlayControllerElement;
    };
    interface HTMLPrestoEmailOverlayUiElementEventMap {
        "submitForm": object;
        "skip": object;
    }
    interface HTMLPrestoEmailOverlayUiElement extends Components.PrestoEmailOverlayUi, HTMLStencilElement {
        addEventListener<K extends keyof HTMLPrestoEmailOverlayUiElementEventMap>(type: K, listener: (this: HTMLPrestoEmailOverlayUiElement, ev: PrestoEmailOverlayUiCustomEvent<HTMLPrestoEmailOverlayUiElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
        removeEventListener<K extends keyof HTMLPrestoEmailOverlayUiElementEventMap>(type: K, listener: (this: HTMLPrestoEmailOverlayUiElement, ev: PrestoEmailOverlayUiCustomEvent<HTMLPrestoEmailOverlayUiElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
    }
    var HTMLPrestoEmailOverlayUiElement: {
        prototype: HTMLPrestoEmailOverlayUiElement;
        new (): HTMLPrestoEmailOverlayUiElement;
    };
    interface HTMLPrestoModernSkinElement extends Components.PrestoModernSkin, HTMLStencilElement {
    }
    var HTMLPrestoModernSkinElement: {
        prototype: HTMLPrestoModernSkinElement;
        new (): HTMLPrestoModernSkinElement;
    };
    interface HTMLPrestoMutedOverlayElementEventMap {
        "playVideo": void;
    }
    interface HTMLPrestoMutedOverlayElement extends Components.PrestoMutedOverlay, HTMLStencilElement {
        addEventListener<K extends keyof HTMLPrestoMutedOverlayElementEventMap>(type: K, listener: (this: HTMLPrestoMutedOverlayElement, ev: PrestoMutedOverlayCustomEvent<HTMLPrestoMutedOverlayElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
        removeEventListener<K extends keyof HTMLPrestoMutedOverlayElementEventMap>(type: K, listener: (this: HTMLPrestoMutedOverlayElement, ev: PrestoMutedOverlayCustomEvent<HTMLPrestoMutedOverlayElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
    }
    var HTMLPrestoMutedOverlayElement: {
        prototype: HTMLPrestoMutedOverlayElement;
        new (): HTMLPrestoMutedOverlayElement;
    };
    interface HTMLPrestoPlayerElementEventMap {
        "loaded": boolean;
        "currentMediaPlayer": object;
        "playerReady": object;
        "playedMedia": object;
        "pausedMedia": object;
        "endedMedia": object;
    }
    interface HTMLPrestoPlayerElement extends Components.PrestoPlayer, HTMLStencilElement {
        addEventListener<K extends keyof HTMLPrestoPlayerElementEventMap>(type: K, listener: (this: HTMLPrestoPlayerElement, ev: PrestoPlayerCustomEvent<HTMLPrestoPlayerElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
        removeEventListener<K extends keyof HTMLPrestoPlayerElementEventMap>(type: K, listener: (this: HTMLPrestoPlayerElement, ev: PrestoPlayerCustomEvent<HTMLPrestoPlayerElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
    }
    var HTMLPrestoPlayerElement: {
        prototype: HTMLPrestoPlayerElement;
        new (): HTMLPrestoPlayerElement;
    };
    interface HTMLPrestoPlayerButtonElementEventMap {
        "prestoBlur": void;
        "prestoFocus": void;
    }
    interface HTMLPrestoPlayerButtonElement extends Components.PrestoPlayerButton, HTMLStencilElement {
        addEventListener<K extends keyof HTMLPrestoPlayerButtonElementEventMap>(type: K, listener: (this: HTMLPrestoPlayerButtonElement, ev: PrestoPlayerButtonCustomEvent<HTMLPrestoPlayerButtonElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
        removeEventListener<K extends keyof HTMLPrestoPlayerButtonElementEventMap>(type: K, listener: (this: HTMLPrestoPlayerButtonElement, ev: PrestoPlayerButtonCustomEvent<HTMLPrestoPlayerButtonElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
    }
    var HTMLPrestoPlayerButtonElement: {
        prototype: HTMLPrestoPlayerButtonElement;
        new (): HTMLPrestoPlayerButtonElement;
    };
    interface HTMLPrestoPlayerSkeletonElement extends Components.PrestoPlayerSkeleton, HTMLStencilElement {
    }
    var HTMLPrestoPlayerSkeletonElement: {
        prototype: HTMLPrestoPlayerSkeletonElement;
        new (): HTMLPrestoPlayerSkeletonElement;
    };
    interface HTMLPrestoPlayerSpinnerElement extends Components.PrestoPlayerSpinner, HTMLStencilElement {
    }
    var HTMLPrestoPlayerSpinnerElement: {
        prototype: HTMLPrestoPlayerSpinnerElement;
        new (): HTMLPrestoPlayerSpinnerElement;
    };
    interface HTMLPrestoPlaylistElement extends Components.PrestoPlaylist, HTMLStencilElement {
    }
    var HTMLPrestoPlaylistElement: {
        prototype: HTMLPrestoPlaylistElement;
        new (): HTMLPrestoPlaylistElement;
    };
    interface HTMLPrestoPlaylistItemElementEventMap {
        "triggerPlay": void;
        "triggerPause": void;
    }
    interface HTMLPrestoPlaylistItemElement extends Components.PrestoPlaylistItem, HTMLStencilElement {
        addEventListener<K extends keyof HTMLPrestoPlaylistItemElementEventMap>(type: K, listener: (this: HTMLPrestoPlaylistItemElement, ev: PrestoPlaylistItemCustomEvent<HTMLPrestoPlaylistItemElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
        removeEventListener<K extends keyof HTMLPrestoPlaylistItemElementEventMap>(type: K, listener: (this: HTMLPrestoPlaylistItemElement, ev: PrestoPlaylistItemCustomEvent<HTMLPrestoPlaylistItemElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
    }
    var HTMLPrestoPlaylistItemElement: {
        prototype: HTMLPrestoPlaylistItemElement;
        new (): HTMLPrestoPlaylistItemElement;
    };
    interface HTMLPrestoPlaylistOverlayElementEventMap {
        "rewatch": void;
        "next": void;
    }
    interface HTMLPrestoPlaylistOverlayElement extends Components.PrestoPlaylistOverlay, HTMLStencilElement {
        addEventListener<K extends keyof HTMLPrestoPlaylistOverlayElementEventMap>(type: K, listener: (this: HTMLPrestoPlaylistOverlayElement, ev: PrestoPlaylistOverlayCustomEvent<HTMLPrestoPlaylistOverlayElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
        removeEventListener<K extends keyof HTMLPrestoPlaylistOverlayElementEventMap>(type: K, listener: (this: HTMLPrestoPlaylistOverlayElement, ev: PrestoPlaylistOverlayCustomEvent<HTMLPrestoPlaylistOverlayElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
    }
    var HTMLPrestoPlaylistOverlayElement: {
        prototype: HTMLPrestoPlaylistOverlayElement;
        new (): HTMLPrestoPlaylistOverlayElement;
    };
    interface HTMLPrestoPlaylistUiElement extends Components.PrestoPlaylistUi, HTMLStencilElement {
    }
    var HTMLPrestoPlaylistUiElement: {
        prototype: HTMLPrestoPlaylistUiElement;
        new (): HTMLPrestoPlaylistUiElement;
    };
    interface HTMLPrestoSearchBarElement extends Components.PrestoSearchBar, HTMLStencilElement {
    }
    var HTMLPrestoSearchBarElement: {
        prototype: HTMLPrestoSearchBarElement;
        new (): HTMLPrestoSearchBarElement;
    };
    interface HTMLPrestoSearchBarUiElementEventMap {
        "previousNav": void;
        "nextNav": void;
        "search": string;
        "focusChange": boolean;
    }
    interface HTMLPrestoSearchBarUiElement extends Components.PrestoSearchBarUi, HTMLStencilElement {
        addEventListener<K extends keyof HTMLPrestoSearchBarUiElementEventMap>(type: K, listener: (this: HTMLPrestoSearchBarUiElement, ev: PrestoSearchBarUiCustomEvent<HTMLPrestoSearchBarUiElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
        removeEventListener<K extends keyof HTMLPrestoSearchBarUiElementEventMap>(type: K, listener: (this: HTMLPrestoSearchBarUiElement, ev: PrestoSearchBarUiCustomEvent<HTMLPrestoSearchBarUiElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
    }
    var HTMLPrestoSearchBarUiElement: {
        prototype: HTMLPrestoSearchBarUiElement;
        new (): HTMLPrestoSearchBarUiElement;
    };
    interface HTMLPrestoStackedSkinElement extends Components.PrestoStackedSkin, HTMLStencilElement {
    }
    var HTMLPrestoStackedSkinElement: {
        prototype: HTMLPrestoStackedSkinElement;
        new (): HTMLPrestoStackedSkinElement;
    };
    interface HTMLPrestoTimestampElement extends Components.PrestoTimestamp, HTMLStencilElement {
    }
    var HTMLPrestoTimestampElement: {
        prototype: HTMLPrestoTimestampElement;
        new (): HTMLPrestoTimestampElement;
    };
    interface HTMLPrestoVideoElement extends Components.PrestoVideo, HTMLStencilElement {
    }
    var HTMLPrestoVideoElement: {
        prototype: HTMLPrestoVideoElement;
        new (): HTMLPrestoVideoElement;
    };
    interface HTMLPrestoVideoCurtainUiElement extends Components.PrestoVideoCurtainUi, HTMLStencilElement {
    }
    var HTMLPrestoVideoCurtainUiElement: {
        prototype: HTMLPrestoVideoCurtainUiElement;
        new (): HTMLPrestoVideoCurtainUiElement;
    };
    interface HTMLPrestoVimeoElement extends Components.PrestoVimeo, HTMLStencilElement {
    }
    var HTMLPrestoVimeoElement: {
        prototype: HTMLPrestoVimeoElement;
        new (): HTMLPrestoVimeoElement;
    };
    interface HTMLPrestoYoutubeElementEventMap {
        "reload": string;
    }
    interface HTMLPrestoYoutubeElement extends Components.PrestoYoutube, HTMLStencilElement {
        addEventListener<K extends keyof HTMLPrestoYoutubeElementEventMap>(type: K, listener: (this: HTMLPrestoYoutubeElement, ev: PrestoYoutubeCustomEvent<HTMLPrestoYoutubeElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
        removeEventListener<K extends keyof HTMLPrestoYoutubeElementEventMap>(type: K, listener: (this: HTMLPrestoYoutubeElement, ev: PrestoYoutubeCustomEvent<HTMLPrestoYoutubeElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
    }
    var HTMLPrestoYoutubeElement: {
        prototype: HTMLPrestoYoutubeElement;
        new (): HTMLPrestoYoutubeElement;
    };
    interface HTMLPrestoYoutubeSubscribeButtonElement extends Components.PrestoYoutubeSubscribeButton, HTMLStencilElement {
    }
    var HTMLPrestoYoutubeSubscribeButtonElement: {
        prototype: HTMLPrestoYoutubeSubscribeButtonElement;
        new (): HTMLPrestoYoutubeSubscribeButtonElement;
    };
    interface HTMLElementTagNameMap {
        "presto-action-bar": HTMLPrestoActionBarElement;
        "presto-action-bar-controller": HTMLPrestoActionBarControllerElement;
        "presto-action-bar-ui": HTMLPrestoActionBarUiElement;
        "presto-audio": HTMLPrestoAudioElement;
        "presto-bunny": HTMLPrestoBunnyElement;
        "presto-business-skin": HTMLPrestoBusinessSkinElement;
        "presto-cta-overlay": HTMLPrestoCtaOverlayElement;
        "presto-cta-overlay-controller": HTMLPrestoCtaOverlayControllerElement;
        "presto-cta-overlay-ui": HTMLPrestoCtaOverlayUiElement;
        "presto-dynamic-overlay-ui": HTMLPrestoDynamicOverlayUiElement;
        "presto-dynamic-overlays": HTMLPrestoDynamicOverlaysElement;
        "presto-email-overlay": HTMLPrestoEmailOverlayElement;
        "presto-email-overlay-controller": HTMLPrestoEmailOverlayControllerElement;
        "presto-email-overlay-ui": HTMLPrestoEmailOverlayUiElement;
        "presto-modern-skin": HTMLPrestoModernSkinElement;
        "presto-muted-overlay": HTMLPrestoMutedOverlayElement;
        "presto-player": HTMLPrestoPlayerElement;
        "presto-player-button": HTMLPrestoPlayerButtonElement;
        "presto-player-skeleton": HTMLPrestoPlayerSkeletonElement;
        "presto-player-spinner": HTMLPrestoPlayerSpinnerElement;
        "presto-playlist": HTMLPrestoPlaylistElement;
        "presto-playlist-item": HTMLPrestoPlaylistItemElement;
        "presto-playlist-overlay": HTMLPrestoPlaylistOverlayElement;
        "presto-playlist-ui": HTMLPrestoPlaylistUiElement;
        "presto-search-bar": HTMLPrestoSearchBarElement;
        "presto-search-bar-ui": HTMLPrestoSearchBarUiElement;
        "presto-stacked-skin": HTMLPrestoStackedSkinElement;
        "presto-timestamp": HTMLPrestoTimestampElement;
        "presto-video": HTMLPrestoVideoElement;
        "presto-video-curtain-ui": HTMLPrestoVideoCurtainUiElement;
        "presto-vimeo": HTMLPrestoVimeoElement;
        "presto-youtube": HTMLPrestoYoutubeElement;
        "presto-youtube-subscribe-button": HTMLPrestoYoutubeSubscribeButtonElement;
    }
}
declare namespace LocalJSX {
    interface PrestoActionBar {
        "config"?: ActionBarConfig;
        "direction"?: 'rtl';
        "player"?: any;
        "youtube"?: YoutubeConfig;
    }
    interface PrestoActionBarController {
        "config"?: ActionBarConfig;
        "currentTime"?: number;
        "direction"?: 'rtl';
        "duration"?: number;
        "ended"?: boolean;
        "onActionBarStateChange"?: (event: PrestoActionBarControllerCustomEvent<boolean>) => void;
        "youtube"?: YoutubeConfig;
    }
    interface PrestoActionBarUi {
        "open"?: boolean;
    }
    interface PrestoAudio {
        "audioAttributes"?: object;
        "autoplay"?: boolean;
        "getRef"?: (elm?: HTMLAudioElement) => void;
        "mediaTitle"?: string;
        "onPauseVideo"?: (event: PrestoAudioCustomEvent<true>) => void;
        "onPlayVideo"?: (event: PrestoAudioCustomEvent<void>) => void;
        "player"?: any;
        "poster"?: string;
        "preload"?: string;
        "preset"?: presetAttributes;
        "provider"?: string;
        "src"?: string;
        "tracks"?: { label: string; src: string; srcLang: string }[];
    }
    interface PrestoBunny {
        "autoplay"?: boolean;
        "getRef"?: (elm?: HTMLVideoElement) => void;
        "player"?: any;
        "playsinline"?: boolean;
        "poster"?: string;
        "preload"?: string;
        "provider"?: string;
        "src"?: string;
        "tracks"?: { label: string; src: string; srcLang: string }[];
        "videoAttributes"?: object;
    }
    interface PrestoBusinessSkin {
    }
    /**
     * This component is needed to prevent re-rendering of
     * main component with currentTime changes.
     */
    interface PrestoCtaOverlay {
        "direction"?: 'rtl';
        "i18n"?: i18nConfig;
        "player"?: any;
        "preset"?: presetAttributes;
        "provider"?: string;
    }
    interface PrestoCtaOverlayController {
        "cta"?: CTA;
        "currentTime"?: number;
        "direction"?: 'rtl';
        "duration"?: number;
        "ended"?: boolean;
        "i18n"?: i18nConfig;
        "onCtaStateChange"?: (event: PrestoCtaOverlayControllerCustomEvent<boolean>) => void;
        "onPauseVideo"?: (event: PrestoCtaOverlayControllerCustomEvent<boolean>) => void;
        "onPlayVideo"?: (event: PrestoCtaOverlayControllerCustomEvent<void>) => void;
        "onRestartVideo"?: (event: PrestoCtaOverlayControllerCustomEvent<void>) => void;
        "provider"?: string;
    }
    interface PrestoCtaOverlayUi {
        "allowRewatch"?: boolean;
        "allowSkip"?: boolean;
        "bottomText"?: string;
        "buttonLink"?: ButtonLinkObject;
        "buttonText"?: string;
        "buttonType"?: 'link' | 'time';
        "defaultHeadline"?: string;
        "direction"?: 'rtl';
        /**
          * Props
         */
        "headline"?: string;
        "i18n"?: i18nConfig;
        "onRewatch"?: (event: PrestoCtaOverlayUiCustomEvent<void>) => void;
        /**
          * Events
         */
        "onSkip"?: (event: PrestoCtaOverlayUiCustomEvent<void>) => void;
        "provider"?: string;
        "showButton"?: boolean;
        "type"?: string;
    }
    interface PrestoDynamicOverlayUi {
        /**
          * When set, the underlying button will be rendered as an `<a>` with this `href` instead of a `<button>`.
         */
        "href"?: string;
        /**
          * @default 'top-right'
         */
        "position"?: 'top-left' | 'top-right';
        /**
          * Tells the browser where to open the link. Only used when `href` is set.
         */
        "target"?: '_blank' | '_parent' | '_self' | '_top';
    }
    interface PrestoDynamicOverlays {
        "enabled"?: boolean;
        "onReloadComponent"?: (event: PrestoDynamicOverlaysCustomEvent<void>) => void;
        "overlays"?: Array<DynamicOverlay>;
        "player"?: any;
        "preset"?: presetAttributes;
    }
    /**
     * This component is needed to prevent re-rendering of
     * main component with currentTime changes.
     */
    interface PrestoEmailOverlay {
        "direction"?: 'rtl';
        "i18n"?: i18nConfig;
        "player"?: any;
        "preset"?: presetAttributes;
        "provider"?: string;
        "videoId"?: number;
    }
    interface PrestoEmailOverlayController {
        "currentTime"?: number;
        "direction"?: 'rtl';
        "duration"?: number;
        "emailCollection"?: EmailCollection;
        "ended"?: boolean;
        "i18n"?: i18nConfig;
        "onEmailStateChange"?: (event: PrestoEmailOverlayControllerCustomEvent<boolean>) => void;
        "onPauseVideo"?: (event: PrestoEmailOverlayControllerCustomEvent<true>) => void;
        "onPlayVideo"?: (event: PrestoEmailOverlayControllerCustomEvent<void>) => void;
        "onRestartVideo"?: (event: PrestoEmailOverlayControllerCustomEvent<void>) => void;
        "presetId"?: number;
        "provider"?: string;
        "videoId"?: number;
    }
    interface PrestoEmailOverlayUi {
        "allowSkip"?: boolean;
        "borderRadius"?: number;
        "bottomText"?: string;
        "buttonText"?: string;
        "direction"?: 'rtl';
        "errorMessage"?: string;
        /**
          * Props
         */
        "headline"?: string;
        "i18n"?: i18nConfig;
        "isLoading"?: boolean;
        "onSkip"?: (event: PrestoEmailOverlayUiCustomEvent<object>) => void;
        /**
          * Events
         */
        "onSubmitForm"?: (event: PrestoEmailOverlayUiCustomEvent<object>) => void;
        "provider"?: string;
        "type"?: string;
    }
    interface PrestoModernSkin {
    }
    interface PrestoMutedOverlay {
        "mutedOverlay"?: MutedOverlay;
        "mutedPreview"?: boolean;
        "onPlayVideo"?: (event: PrestoMutedOverlayCustomEvent<void>) => void;
        "preset"?: presetAttributes;
    }
    interface PrestoPlayer {
        /**
          * @default {}
         */
        "actionBar"?: any;
        "analytics"?: boolean;
        "audioAttributes"?: object;
        "automations"?: boolean;
        "autoplay"?: boolean;
        /**
          * @default {}
         */
        "blockAttributes"?: any;
        /**
          * @default {}
         */
        "branding"?: any;
        /**
          * @default []
         */
        "chapters"?: any;
        "classes"?: string;
        /**
          * @default {}
         */
        "config"?: any;
        "css"?: string;
        "currentTime"?: number;
        "direction"?: 'rtl';
        /**
          * @default {}
         */
        "i18n"?: any;
        "iconUrl"?: string;
        /**
          * @default false
         */
        "isAdmin"?: boolean;
        "lazyLoadYoutube"?: boolean;
        "markers"?: any;
        "mediaTitle"?: string;
        "onCurrentMediaPlayer"?: (event: PrestoPlayerCustomEvent<object>) => void;
        "onEndedMedia"?: (event: PrestoPlayerCustomEvent<object>) => void;
        /**
          * Component loaded
         */
        "onLoaded"?: (event: PrestoPlayerCustomEvent<boolean>) => void;
        "onPausedMedia"?: (event: PrestoPlayerCustomEvent<object>) => void;
        "onPlayedMedia"?: (event: PrestoPlayerCustomEvent<object>) => void;
        "onPlayerReady"?: (event: PrestoPlayerCustomEvent<object>) => void;
        /**
          * @default {}
         */
        "overlays"?: any;
        "playsinline"?: boolean;
        "poster"?: string;
        "preload"?: 'metadata' | 'none' | 'auto';
        /**
          * @default {}
         */
        "preset"?: any;
        "provider"?: string;
        "providerVideoId"?: string;
        /**
          * @default {}
         */
        "search"?: any;
        "src"?: string;
        /**
          * @default []
         */
        "tracks"?: any;
        "type"?: string;
        /**
          * @default {}
         */
        "videoAttributes"?: any;
        "videoId"?: number;
        /**
          * @default {}
         */
        "youtube"?: any;
    }
    interface PrestoPlayerButton {
        /**
          * Disables the button.
          * @default false
         */
        "disabled"?: boolean;
        /**
          * Tells the browser to download the linked file as this filename. Only used when `href` is set.
         */
        "download"?: string;
        /**
          * Draws the button with a caret for use with dropdowns, popovers, etc.
          * @default false
         */
        "full"?: boolean;
        /**
          * When set, the underlying button will be rendered as an `<a>` with this `href` instead of a `<button>`.
         */
        "href"?: string;
        /**
          * An optional name for the button. Ignored when `href` is set.
         */
        "name"?: string;
        /**
          * Emitted when the button loses focus.
         */
        "onPrestoBlur"?: (event: PrestoPlayerButtonCustomEvent<void>) => void;
        /**
          * Emitted when the button gains focus.
         */
        "onPrestoFocus"?: (event: PrestoPlayerButtonCustomEvent<void>) => void;
        /**
          * The button's size.
          * @default 'medium'
         */
        "size"?: 'small' | 'medium' | 'large';
        /**
          * Indicates if activating the button should submit the form. Ignored when `href` is set.
          * @default false
         */
        "submit"?: boolean;
        /**
          * Tells the browser where to open the link. Only used when `href` is set.
         */
        "target"?: '_blank' | '_parent' | '_self' | '_top';
        /**
          * The button's type.
          * @default 'default'
         */
        "type"?: 'default' | 'primary' | 'success' | 'info' | 'warning' | 'danger' | 'text';
        /**
          * An optional value for the button. Ignored when `href` is set.
         */
        "value"?: string;
    }
    interface PrestoPlayerSkeleton {
        /**
          * @default 'sheen'
         */
        "effect"?: 'pulse' | 'sheen' | 'none';
    }
    interface PrestoPlayerSpinner {
    }
    interface PrestoPlaylist {
        /**
          * Title for the Playlist
         */
        "heading"?: string;
        /**
          * Array of videos from the Playlist
         */
        "items"?: Array<PlaylistItem>;
        /**
          * Count prefix string for the Playlist - Plural
         */
        "listTextPlural"?: string;
        /**
          * Count prefix string for the Playlist - Singular
         */
        "listTextSingular"?: string;
        /**
          * Transition duration for next video.
          * @default 5
         */
        "transitionDuration"?: number;
    }
    interface PrestoPlaylistItem {
        /**
          * Active status
          * @default false
         */
        "active"?: boolean;
        /**
          * Emit pause event
         */
        "onTriggerPause"?: (event: PrestoPlaylistItemCustomEvent<void>) => void;
        /**
          * Emit play event
         */
        "onTriggerPlay"?: (event: PrestoPlaylistItemCustomEvent<void>) => void;
        /**
          * Playing status
          * @default false
         */
        "playing"?: boolean;
    }
    interface PrestoPlaylistOverlay {
        /**
          * Flag to handle if this item is the last item in the list.
          * @default false
         */
        "isLastItem"?: boolean;
        /**
          * String for the Button that says `Next Video`
         */
        "nextItemString"?: string;
        /**
          * Title of the upcoming next playlist item
         */
        "nextItemTitle"?: string;
        /**
          * Next item play event
         */
        "onNext"?: (event: PrestoPlaylistOverlayCustomEvent<void>) => void;
        /**
          * Rewatch item event
         */
        "onRewatch"?: (event: PrestoPlaylistOverlayCustomEvent<void>) => void;
        /**
          * Visibility flag for the Overlay
          * @default false
         */
        "show"?: boolean;
        /**
          * Transition duration for next video.
          * @default 5
         */
        "transitionDuration"?: number;
    }
    interface PrestoPlaylistUi {
    }
    interface PrestoSearchBar {
        "player"?: any;
        /**
          * Props
         */
        "value"?: string;
    }
    interface PrestoSearchBarUi {
        /**
          * Has results
         */
        "hasNavigation"?: boolean;
        /**
          * Search is performed
         */
        "onFocusChange"?: (event: PrestoSearchBarUiCustomEvent<boolean>) => void;
        /**
          * Next is navigated
         */
        "onNextNav"?: (event: PrestoSearchBarUiCustomEvent<void>) => void;
        /**
          * Previous is navigated.
         */
        "onPreviousNav"?: (event: PrestoSearchBarUiCustomEvent<void>) => void;
        /**
          * Search is performed
         */
        "onSearch"?: (event: PrestoSearchBarUiCustomEvent<string>) => void;
        /**
          * The placeholder.
         */
        "placeholder"?: string;
        /**
          * The value for the search.
         */
        "value"?: string;
    }
    interface PrestoStackedSkin {
    }
    interface PrestoTimestamp {
        "time"?: string;
    }
    interface PrestoVideo {
        "autoplay"?: boolean;
        "getRef"?: (elm?: HTMLVideoElement) => void;
        "player"?: any;
        "playsinline"?: boolean;
        "poster"?: string;
        "preload"?: string;
        "provider"?: string;
        "src"?: string;
        "tracks"?: { label: string; src: string; srcLang: string }[];
        "videoAttributes"?: object;
    }
    interface PrestoVideoCurtainUi {
        /**
          * Props
         */
        "actionUrl"?: string;
    }
    interface PrestoVimeo {
        "getRef"?: (elm?: HTMLIFrameElement) => void;
        "player"?: any;
        "poster"?: string;
        "src"?: string;
    }
    interface PrestoYoutube {
        "getRef"?: (elm?: HTMLIFrameElement | HTMLVideoElement | HTMLDivElement) => void;
        "lazyLoad"?: boolean;
        /**
          * Events
         */
        "onReload"?: (event: PrestoYoutubeCustomEvent<string>) => void;
        "player"?: any;
        "poster"?: string;
        "src"?: string;
    }
    interface PrestoYoutubeSubscribeButton {
        "channel"?: string;
        /**
          * @default 'default'
         */
        "layout"?: string;
        "showCount"?: boolean;
    }
    interface IntrinsicElements {
        "presto-action-bar": PrestoActionBar;
        "presto-action-bar-controller": PrestoActionBarController;
        "presto-action-bar-ui": PrestoActionBarUi;
        "presto-audio": PrestoAudio;
        "presto-bunny": PrestoBunny;
        "presto-business-skin": PrestoBusinessSkin;
        "presto-cta-overlay": PrestoCtaOverlay;
        "presto-cta-overlay-controller": PrestoCtaOverlayController;
        "presto-cta-overlay-ui": PrestoCtaOverlayUi;
        "presto-dynamic-overlay-ui": PrestoDynamicOverlayUi;
        "presto-dynamic-overlays": PrestoDynamicOverlays;
        "presto-email-overlay": PrestoEmailOverlay;
        "presto-email-overlay-controller": PrestoEmailOverlayController;
        "presto-email-overlay-ui": PrestoEmailOverlayUi;
        "presto-modern-skin": PrestoModernSkin;
        "presto-muted-overlay": PrestoMutedOverlay;
        "presto-player": PrestoPlayer;
        "presto-player-button": PrestoPlayerButton;
        "presto-player-skeleton": PrestoPlayerSkeleton;
        "presto-player-spinner": PrestoPlayerSpinner;
        "presto-playlist": PrestoPlaylist;
        "presto-playlist-item": PrestoPlaylistItem;
        "presto-playlist-overlay": PrestoPlaylistOverlay;
        "presto-playlist-ui": PrestoPlaylistUi;
        "presto-search-bar": PrestoSearchBar;
        "presto-search-bar-ui": PrestoSearchBarUi;
        "presto-stacked-skin": PrestoStackedSkin;
        "presto-timestamp": PrestoTimestamp;
        "presto-video": PrestoVideo;
        "presto-video-curtain-ui": PrestoVideoCurtainUi;
        "presto-vimeo": PrestoVimeo;
        "presto-youtube": PrestoYoutube;
        "presto-youtube-subscribe-button": PrestoYoutubeSubscribeButton;
    }
}
export { LocalJSX as JSX };
declare module "@stencil/core" {
    export namespace JSX {
        interface IntrinsicElements {
            "presto-action-bar": LocalJSX.PrestoActionBar & JSXBase.HTMLAttributes<HTMLPrestoActionBarElement>;
            "presto-action-bar-controller": LocalJSX.PrestoActionBarController & JSXBase.HTMLAttributes<HTMLPrestoActionBarControllerElement>;
            "presto-action-bar-ui": LocalJSX.PrestoActionBarUi & JSXBase.HTMLAttributes<HTMLPrestoActionBarUiElement>;
            "presto-audio": LocalJSX.PrestoAudio & JSXBase.HTMLAttributes<HTMLPrestoAudioElement>;
            "presto-bunny": LocalJSX.PrestoBunny & JSXBase.HTMLAttributes<HTMLPrestoBunnyElement>;
            "presto-business-skin": LocalJSX.PrestoBusinessSkin & JSXBase.HTMLAttributes<HTMLPrestoBusinessSkinElement>;
            /**
             * This component is needed to prevent re-rendering of
             * main component with currentTime changes.
             */
            "presto-cta-overlay": LocalJSX.PrestoCtaOverlay & JSXBase.HTMLAttributes<HTMLPrestoCtaOverlayElement>;
            "presto-cta-overlay-controller": LocalJSX.PrestoCtaOverlayController & JSXBase.HTMLAttributes<HTMLPrestoCtaOverlayControllerElement>;
            "presto-cta-overlay-ui": LocalJSX.PrestoCtaOverlayUi & JSXBase.HTMLAttributes<HTMLPrestoCtaOverlayUiElement>;
            "presto-dynamic-overlay-ui": LocalJSX.PrestoDynamicOverlayUi & JSXBase.HTMLAttributes<HTMLPrestoDynamicOverlayUiElement>;
            "presto-dynamic-overlays": LocalJSX.PrestoDynamicOverlays & JSXBase.HTMLAttributes<HTMLPrestoDynamicOverlaysElement>;
            /**
             * This component is needed to prevent re-rendering of
             * main component with currentTime changes.
             */
            "presto-email-overlay": LocalJSX.PrestoEmailOverlay & JSXBase.HTMLAttributes<HTMLPrestoEmailOverlayElement>;
            "presto-email-overlay-controller": LocalJSX.PrestoEmailOverlayController & JSXBase.HTMLAttributes<HTMLPrestoEmailOverlayControllerElement>;
            "presto-email-overlay-ui": LocalJSX.PrestoEmailOverlayUi & JSXBase.HTMLAttributes<HTMLPrestoEmailOverlayUiElement>;
            "presto-modern-skin": LocalJSX.PrestoModernSkin & JSXBase.HTMLAttributes<HTMLPrestoModernSkinElement>;
            "presto-muted-overlay": LocalJSX.PrestoMutedOverlay & JSXBase.HTMLAttributes<HTMLPrestoMutedOverlayElement>;
            "presto-player": LocalJSX.PrestoPlayer & JSXBase.HTMLAttributes<HTMLPrestoPlayerElement>;
            "presto-player-button": LocalJSX.PrestoPlayerButton & JSXBase.HTMLAttributes<HTMLPrestoPlayerButtonElement>;
            "presto-player-skeleton": LocalJSX.PrestoPlayerSkeleton & JSXBase.HTMLAttributes<HTMLPrestoPlayerSkeletonElement>;
            "presto-player-spinner": LocalJSX.PrestoPlayerSpinner & JSXBase.HTMLAttributes<HTMLPrestoPlayerSpinnerElement>;
            "presto-playlist": LocalJSX.PrestoPlaylist & JSXBase.HTMLAttributes<HTMLPrestoPlaylistElement>;
            "presto-playlist-item": LocalJSX.PrestoPlaylistItem & JSXBase.HTMLAttributes<HTMLPrestoPlaylistItemElement>;
            "presto-playlist-overlay": LocalJSX.PrestoPlaylistOverlay & JSXBase.HTMLAttributes<HTMLPrestoPlaylistOverlayElement>;
            "presto-playlist-ui": LocalJSX.PrestoPlaylistUi & JSXBase.HTMLAttributes<HTMLPrestoPlaylistUiElement>;
            "presto-search-bar": LocalJSX.PrestoSearchBar & JSXBase.HTMLAttributes<HTMLPrestoSearchBarElement>;
            "presto-search-bar-ui": LocalJSX.PrestoSearchBarUi & JSXBase.HTMLAttributes<HTMLPrestoSearchBarUiElement>;
            "presto-stacked-skin": LocalJSX.PrestoStackedSkin & JSXBase.HTMLAttributes<HTMLPrestoStackedSkinElement>;
            "presto-timestamp": LocalJSX.PrestoTimestamp & JSXBase.HTMLAttributes<HTMLPrestoTimestampElement>;
            "presto-video": LocalJSX.PrestoVideo & JSXBase.HTMLAttributes<HTMLPrestoVideoElement>;
            "presto-video-curtain-ui": LocalJSX.PrestoVideoCurtainUi & JSXBase.HTMLAttributes<HTMLPrestoVideoCurtainUiElement>;
            "presto-vimeo": LocalJSX.PrestoVimeo & JSXBase.HTMLAttributes<HTMLPrestoVimeoElement>;
            "presto-youtube": LocalJSX.PrestoYoutube & JSXBase.HTMLAttributes<HTMLPrestoYoutubeElement>;
            "presto-youtube-subscribe-button": LocalJSX.PrestoYoutubeSubscribeButton & JSXBase.HTMLAttributes<HTMLPrestoYoutubeSubscribeButtonElement>;
        }
    }
}
