import type { HTMLAttributes, ImgHTMLAttributes, Ref } from 'vue';
import type { ElementScriptTrigger } from '../types.js';
export type YoutubeThumbnailSize = '1' | '2' | '3' | 'default' | 'mq1' | 'mq2' | 'mq3' | 'mqdefault' | '0' | 'hq1' | 'hq2' | 'hq3' | 'hqdefault' | 'sd1' | 'sd2' | 'sd3' | 'sddefault' | 'hq720' | 'maxresdefault';
type __VLS_Props = {
placeholderAttrs?: ImgHTMLAttributes;
rootAttrs?: HTMLAttributes;
aboveTheFold?: boolean;
trigger?: ElementScriptTrigger;
videoId: string;
playerVars?: YT.PlayerVars;
width?: number;
height?: number;
ratio?: string;
/**
* Whether to use youtube-nocookie.com for embedding.
*
* @default false
*/
cookies?: boolean;
playerOptions?: YT.PlayerOptions;
thumbnailSize?: YoutubeThumbnailSize;
webp?: boolean;
/**
* Object-fit for the placeholder image.
*
* @default 'cover'
*/
placeholderObjectFit?: 'cover' | 'contain' | 'fill' | 'none' | 'scale-down';
};
type __VLS_Slots = {
default?: () => any;
placeholder?: (props: {
placeholder: string;
}) => any;
loading?: () => any;
awaitingLoad?: () => any;
error?: () => any;
};
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
player: Ref;
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
error: (e: YT.OnErrorEvent, target: YT.Player) => any;
ready: (e: YT.PlayerEvent) => any;
"state-change": (e: YT.OnStateChangeEvent, target: YT.Player) => any;
"playback-quality-change": (e: YT.OnPlaybackQualityChangeEvent, target: YT.Player) => any;
"playback-rate-change": (e: YT.OnPlaybackRateChangeEvent, target: YT.Player) => any;
"api-change": (e: YT.PlayerEvent, target: YT.Player) => any;
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
onError?: ((e: YT.OnErrorEvent, target: YT.Player) => any) | undefined;
onReady?: ((e: YT.PlayerEvent) => any) | undefined;
"onState-change"?: ((e: YT.OnStateChangeEvent, target: YT.Player) => any) | undefined;
"onPlayback-quality-change"?: ((e: YT.OnPlaybackQualityChangeEvent, target: YT.Player) => any) | undefined;
"onPlayback-rate-change"?: ((e: YT.OnPlaybackRateChangeEvent, target: YT.Player) => any) | undefined;
"onApi-change"?: ((e: YT.PlayerEvent, target: YT.Player) => any) | undefined;
}>, {
trigger: ElementScriptTrigger;
width: number;
height: number;
ratio: string;
placeholderObjectFit: "cover" | "contain" | "fill" | "none" | "scale-down";
playerVars: YT.PlayerVars;
cookies: boolean;
thumbnailSize: YoutubeThumbnailSize;
webp: boolean;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
declare const __VLS_export: __VLS_WithSlots;
declare const _default: typeof __VLS_export;
export default _default;
type __VLS_WithSlots = T & {
new (): {
$slots: S;
};
};