/** * - Container element managing a queue of players. * * Only one child video is active (visible/playing) at a time. * Auto-advances when the current video ends. * * @example * ```html * * * * * * * * * * * * ... * * ``` */ import { HTMLElementBase } from '../core/html-element.js'; export interface PlaylistItem { index: number; element: HTMLElement; title: string; format: string; poster: string; } export declare class VzPlaylistElement extends HTMLElementBase { private shadow; private items; private currentIndex; private playlistControls; private playlistPanel; private endedHandler; private connected; /** * True once a child player reports a license tier without the `playlist` * feature. The queue degrades to playing only the first item as a single * clip: auto-advance and prev/next navigation are disabled and the multi-item * controls/panel are removed. */ private playlistLocked; private licenseListener; /** Resolved UI strings — the playlist element parses its own `strings` attribute. */ private strings; constructor(); static get observedAttributes(): string[]; get autoplay(): boolean; set autoplay(val: boolean); get loopPlaylist(): boolean; set loopPlaylist(val: boolean); get panelMode(): 'none' | 'expandable'; connectedCallback(): void; disconnectedCallback(): void; attributeChangedCallback(_name: string, _oldVal: string | null, _newVal: string | null): void; /** Navigate to item at index */ goTo(index: number): void; /** Go to next item */ next(): void; /** Go to previous item */ previous(): void; /** * Graceful downgrade when the tier lacks the playlist feature: keep the first * item playing as a single clip and disable everything queue-specific — * auto-advance, prev/next, the injected controls, and the side panel. */ private applyPlaylistLock; /** Shuffle the playlist order */ shuffle(): void; /** Get current item index */ get currentItemIndex(): number; /** Get total item count */ get itemCount(): number; /** Get the active player element */ get activeElement(): HTMLElement | null; /** Toggle the playlist panel open/closed */ togglePanel(): void; /** * The playlist container is not a VzBaseElement (no shared config pipeline), * so it parses its own `strings` attribute: a JSON object of partial UI-string * overrides. Invalid JSON or a non-object value is warned about and ignored. */ private resolveOwnStrings; private parseItems; private attachEndedListener; private detachEndedListener; private injectControls; private injectStyles; } /** Register the custom element */ export declare function registerPlaylist(): void; //# sourceMappingURL=vz-playlist.d.ts.map