export declare class LiteVimeoEmbed extends HTMLElement {
private isIframeLoaded;
private domRefFrame;
private domRefImg;
private domRefPlayButton;
private domRefConsentClose;
private observer;
private listeners;
private posterFetchId;
/** Click-triggered check; may open the consent UI. Wired from the app entry. */
static consentGate?: () => boolean;
/** Passive check for autoload/intersection triggers — never prompts. */
static consentReady?: () => boolean;
constructor();
static get observedAttributes(): string[];
connectedCallback(): void;
disconnectedCallback(): void;
get videoId(): string;
set videoId(id: string);
get videoTitle(): string;
set videoTitle(title: string);
get videoPlay(): string;
set videoPlay(name: string);
get videoStartAt(): string;
set videoStartAt(time: string);
get videoHash(): string;
set videoHash(hash: string);
get autoLoad(): boolean;
set autoLoad(value: boolean);
get autoPlay(): boolean;
set autoPlay(value: boolean);
get params(): string;
set params(opts: string);
get posterLoading(): HTMLImageElement['loading'];
/**
* Define our shadowDOM for the component
*/
private setupDom;
/**
* Parse our attributes and fire up some placeholders
*/
private setupComponent;
/**
* Lifecycle method that we use to listen for attribute changes
*/
attributeChangedCallback(name: string, oldVal: unknown, newVal: unknown): void;
/**
* Inject the iframe into the component body
*/
private addIframe;
private hasCustomPoster;
/**
* Setup the placeholder image for the component
*/
private initImagePlaceholder;
/**
* Setup the Intersection Observer to load the iframe when scrolled into view
*/
private initIntersectionObserver;
private static preconnected;
/**
* Add a to the head
*/
private static addPrefetch;
/**
* Begin preconnecting to warm up the iframe load. Since the embed's network
* requests load within its iframe, preload/prefetch'ing them outside the
* iframe will only cause double-downloads. So, the best we can do is warm up
* a few connections to origins that are in the critical path.
*/
private static warmConnections;
}
/**
* Register the custom element. Safe to call multiple times.
* @param tagName - optional custom tag name (defaults to `lite-vimeo`)
*/
export declare function defineLiteVimeo(tagName?: string): void;
declare global {
interface HTMLElementTagNameMap {
'lite-vimeo': LiteVimeoEmbed;
}
interface Window {
liteVimeoNonce: string;
liteVimeoIsPreconnected: boolean;
}
}
//# sourceMappingURL=lite-vimeo.d.ts.map