import { getVideoIdFromYoutubeURL } from './utils';
import { VueYtframeProps, LoadVideoByIdOptions, LoadVideoByUrlOptions } from './types';
/** @see https://developers.google.com/youtube/iframe_api_reference#playVideo */
declare function playVideo(): void;
/** @see https://developers.google.com/youtube/iframe_api_reference#pauseVideo */
declare function pauseVideo(): void;
/** @see https://developers.google.com/youtube/iframe_api_reference#stopVideo */
declare function stopVideo(): void;
/** @see https://developers.google.com/youtube/iframe_api_reference#seekTo */
declare function seekTo(seconds: number, allowSeekAhead: boolean): void;
/** @see https://developers.google.com/youtube/iframe_api_reference#nextVideo */
declare function nextVideo(): void;
/** @see https://developers.google.com/youtube/iframe_api_reference#previousVideo */
declare function previousVideo(): void;
/** @see https://developers.google.com/youtube/iframe_api_reference#playVideoAt */
declare function playVideoAt(index: number): void;
/** @see https://developers.google.com/youtube/iframe_api_reference#mute */
declare function mute(): void;
/** @see https://developers.google.com/youtube/iframe_api_reference#unMute */
declare function unMute(): void;
/** @see https://developers.google.com/youtube/iframe_api_reference#isMuted */
declare function isMuted(): boolean;
/** @see https://developers.google.com/youtube/iframe_api_reference#setVolume */
declare function setVolume(volume: number): void;
/** @see https://developers.google.com/youtube/iframe_api_reference#getVolume */
declare function getVolume(): number;
/** @see https://developers.google.com/youtube/iframe_api_reference#setSize */
declare function setSize(width: number, height: number): void;
/** @see https://developers.google.com/youtube/iframe_api_reference#setLoop */
declare function setLoop(loopPlaylists: boolean): void;
/** @see https://developers.google.com/youtube/iframe_api_reference#setShuffle */
declare function setShuffle(shufflePlaylist: boolean): void;
/** @see https://developers.google.com/youtube/iframe_api_reference#getDuration */
declare function getDuration(): number;
/** @see https://developers.google.com/youtube/iframe_api_reference#getCurrentTime */
declare function getCurrentTime(): number;
/** @see https://developers.google.com/youtube/iframe_api_reference#getVideoEmbedCode */
declare function getVideoEmbedCode(): string;
/** @see https://developers.google.com/youtube/iframe_api_reference#getVideoUrl */
declare function getVideoUrl(): string;
/** @see https://developers.google.com/youtube/iframe_api_reference#getVideoLoadedFraction */
declare function getVideoLoadedFraction(): number;
/** @see https://developers.google.com/youtube/iframe_api_reference#getPlayerState */
declare function getPlayerState(): number;
/** @see https://developers.google.com/youtube/iframe_api_reference#getPlaybackRate */
declare function getPlaybackRate(): number;
/** @see https://developers.google.com/youtube/iframe_api_reference#setPlaybackRate */
declare function setPlaybackRate(suggestedRate: number): void;
/** @see https://developers.google.com/youtube/iframe_api_reference#getAvailablePlaybackRates */
declare function getAvailablePlaybackRates(): number[];
/** @see https://developers.google.com/youtube/iframe_api_reference#onApiChange */
declare function getOptions(): string[];
/** @see https://developers.google.com/youtube/iframe_api_reference#onApiChange */
declare function getAnOption(module: string, option: string): unknown;
/** @see https://developers.google.com/youtube/iframe_api_reference#onApiChange */
declare function setAnOption(module: string, option: string, value: unknown): void;
/** @see https://developers.google.com/youtube/iframe_api_reference#getSphericalProperties */
declare function getSphericalProperties(): object;
/** @see https://developers.google.com/youtube/iframe_api_reference#setSphericalProperties */
declare function setSphericalProperties(properties: object): void;
/** @see https://developers.google.com/youtube/iframe_api_reference#getPlaylist */
declare function getPlaylist(): string[];
/** @see https://developers.google.com/youtube/iframe_api_reference#getPlaylistIndex */
declare function getPlaylistIndex(): number;
/** @see https://developers.google.com/youtube/iframe_api_reference#getIframe */
declare function getIframe(): HTMLIFrameElement;
/** @see https://developers.google.com/youtube/iframe_api_reference#destroy */
declare function destroy(): void;
/** @see https://developers.google.com/youtube/iframe_api_reference#loadVideoById */
declare function loadVideoById({ videoId, startSeconds, endSeconds }: LoadVideoByIdOptions): void;
/** @see https://developers.google.com/youtube/iframe_api_reference#cueVideoById */
declare function cueVideoById({ videoId, startSeconds, endSeconds }: LoadVideoByIdOptions): void;
/** @see https://developers.google.com/youtube/iframe_api_reference#loadVideoByUrl */
declare function loadVideoByUrl({ mediaContentUrl, startSeconds, endSeconds }: LoadVideoByUrlOptions): void;
/** @see https://developers.google.com/youtube/iframe_api_reference#cueVideoByUrl */
declare function cueVideoByUrl({ mediaContentUrl, startSeconds, endSeconds }: LoadVideoByUrlOptions): void;
/** @see https://developers.google.com/youtube/iframe_api_reference#cuePlaylist */
declare function cuePlaylist(playlist: string | string[], index?: number, startSeconds?: number): void;
/** @see https://developers.google.com/youtube/iframe_api_reference#loadPlaylist */
declare function loadPlaylist(playlist: string | string[], index?: number, startSeconds?: number): void;
declare const __VLS_export: import('vue').DefineComponent<VueYtframeProps, {
    player: import('vue').Ref<{
        cueVideoById: {
            (videoId: string, startSeconds?: number, suggestedQuality?: YT.SuggestedVideoQuality): void;
            (args: YT.VideoByIdSettings): void;
        };
        loadVideoById: {
            (videoId: string, startSeconds?: number, suggestedQuality?: YT.SuggestedVideoQuality): void;
            (args: YT.VideoByIdSettings): void;
        };
        cueVideoByUrl: {
            (mediaContentUrl: string, startSeconds?: number, suggestedQuality?: YT.SuggestedVideoQuality): void;
            (args: YT.VideoByMediaContentUrlSettings): void;
        };
        loadVideoByUrl: {
            (mediaContentUrl: string, startSeconds?: number, suggestedQuality?: YT.SuggestedVideoQuality): void;
            (args: {
                mediaContentUrl: string;
                startSeconds?: number | undefined;
                endSeconds?: number | undefined;
                suggestedQuality?: YT.SuggestedVideoQuality | undefined;
            }): void;
        };
        cuePlaylist: {
            (playlist: string | string[], index?: number, startSeconds?: number, suggestedQuality?: YT.SuggestedVideoQuality): void;
            (args: YT.IPlaylistSettings): void;
        };
        loadPlaylist: {
            (playlist: string | string[], index?: number, startSeconds?: number, suggestedQuality?: YT.SuggestedVideoQuality): void;
            (args: YT.IPlaylistSettings): void;
        };
        playVideo: () => void;
        pauseVideo: () => void;
        stopVideo: () => void;
        seekTo: (seconds: number, allowSeekAhead: boolean) => void;
        nextVideo: () => void;
        previousVideo: () => void;
        playVideoAt: (index: number) => void;
        mute: () => void;
        unMute: () => void;
        isMuted: () => boolean;
        setVolume: (volume: number) => void;
        getVolume: () => number;
        setSize: (width: number, height: number) => void;
        getPlaybackRate: () => number;
        setPlaybackRate: (suggestedRate: number) => void;
        getAvailablePlaybackRates: () => number[];
        setLoop: (loopPlaylists: boolean) => void;
        setShuffle: (shufflePlaylist: boolean) => void;
        getVideoLoadedFraction: () => number;
        getPlayerState: () => YT.PlayerState;
        getCurrentTime: () => number;
        getPlaybackQuality: () => YT.SuggestedVideoQuality;
        setPlaybackQuality: (suggestedQuality: YT.SuggestedVideoQuality) => void;
        getAvailableQualityLevels: () => YT.SuggestedVideoQuality[];
        getDuration: () => number;
        getVideoUrl: () => string;
        getSphericalProperties: () => YT.SphericalProperties;
        setSphericalProperties: (option: YT.SphericalProperties) => void;
        getVideoEmbedCode: () => string;
        getPlaylist: () => string[];
        getPlaylistIndex: () => number;
        addEventListener: <EventName extends keyof YT.Events>(eventName: EventName, listener: NonNullable<YT.Events[EventName]>) => void;
        removeEventListener: <EventName extends keyof YT.Events>(eventName: EventName, listener: NonNullable<YT.Events[EventName]>) => void;
        getIframe: () => HTMLIFrameElement;
        destroy: () => void;
        getVideoData: () => YT.VideoData;
        getOptions: () => string[];
        getOption: (module: string, option: string) => unknown;
        setOption: (module: string, option: string, value: unknown) => void;
    } | null, YT.Player | {
        cueVideoById: {
            (videoId: string, startSeconds?: number, suggestedQuality?: YT.SuggestedVideoQuality): void;
            (args: YT.VideoByIdSettings): void;
        };
        loadVideoById: {
            (videoId: string, startSeconds?: number, suggestedQuality?: YT.SuggestedVideoQuality): void;
            (args: YT.VideoByIdSettings): void;
        };
        cueVideoByUrl: {
            (mediaContentUrl: string, startSeconds?: number, suggestedQuality?: YT.SuggestedVideoQuality): void;
            (args: YT.VideoByMediaContentUrlSettings): void;
        };
        loadVideoByUrl: {
            (mediaContentUrl: string, startSeconds?: number, suggestedQuality?: YT.SuggestedVideoQuality): void;
            (args: {
                mediaContentUrl: string;
                startSeconds?: number | undefined;
                endSeconds?: number | undefined;
                suggestedQuality?: YT.SuggestedVideoQuality | undefined;
            }): void;
        };
        cuePlaylist: {
            (playlist: string | string[], index?: number, startSeconds?: number, suggestedQuality?: YT.SuggestedVideoQuality): void;
            (args: YT.IPlaylistSettings): void;
        };
        loadPlaylist: {
            (playlist: string | string[], index?: number, startSeconds?: number, suggestedQuality?: YT.SuggestedVideoQuality): void;
            (args: YT.IPlaylistSettings): void;
        };
        playVideo: () => void;
        pauseVideo: () => void;
        stopVideo: () => void;
        seekTo: (seconds: number, allowSeekAhead: boolean) => void;
        nextVideo: () => void;
        previousVideo: () => void;
        playVideoAt: (index: number) => void;
        mute: () => void;
        unMute: () => void;
        isMuted: () => boolean;
        setVolume: (volume: number) => void;
        getVolume: () => number;
        setSize: (width: number, height: number) => void;
        getPlaybackRate: () => number;
        setPlaybackRate: (suggestedRate: number) => void;
        getAvailablePlaybackRates: () => number[];
        setLoop: (loopPlaylists: boolean) => void;
        setShuffle: (shufflePlaylist: boolean) => void;
        getVideoLoadedFraction: () => number;
        getPlayerState: () => YT.PlayerState;
        getCurrentTime: () => number;
        getPlaybackQuality: () => YT.SuggestedVideoQuality;
        setPlaybackQuality: (suggestedQuality: YT.SuggestedVideoQuality) => void;
        getAvailableQualityLevels: () => YT.SuggestedVideoQuality[];
        getDuration: () => number;
        getVideoUrl: () => string;
        getSphericalProperties: () => YT.SphericalProperties;
        setSphericalProperties: (option: YT.SphericalProperties) => void;
        getVideoEmbedCode: () => string;
        getPlaylist: () => string[];
        getPlaylistIndex: () => number;
        addEventListener: <EventName extends keyof YT.Events>(eventName: EventName, listener: NonNullable<YT.Events[EventName]>) => void;
        removeEventListener: <EventName extends keyof YT.Events>(eventName: EventName, listener: NonNullable<YT.Events[EventName]>) => void;
        getIframe: () => HTMLIFrameElement;
        destroy: () => void;
        getVideoData: () => YT.VideoData;
        getOptions: () => string[];
        getOption: (module: string, option: string) => unknown;
        setOption: (module: string, option: string, value: unknown) => void;
    } | null>;
    playVideo: typeof playVideo;
    pauseVideo: typeof pauseVideo;
    stopVideo: typeof stopVideo;
    seekTo: typeof seekTo;
    nextVideo: typeof nextVideo;
    previousVideo: typeof previousVideo;
    playVideoAt: typeof playVideoAt;
    mute: typeof mute;
    unMute: typeof unMute;
    isMuted: typeof isMuted;
    setVolume: typeof setVolume;
    getVolume: typeof getVolume;
    setSize: typeof setSize;
    setShuffle: typeof setShuffle;
    setLoop: typeof setLoop;
    getDuration: typeof getDuration;
    getCurrentTime: typeof getCurrentTime;
    getVideoEmbedCode: typeof getVideoEmbedCode;
    getVideoUrl: typeof getVideoUrl;
    getVideoLoadedFraction: typeof getVideoLoadedFraction;
    getPlayerState: typeof getPlayerState;
    getPlaybackRate: typeof getPlaybackRate;
    setPlaybackRate: typeof setPlaybackRate;
    getAvailablePlaybackRates: typeof getAvailablePlaybackRates;
    getOptions: typeof getOptions;
    getAnOption: typeof getAnOption;
    setAnOption: typeof setAnOption;
    getSphericalProperties: typeof getSphericalProperties;
    setSphericalProperties: typeof setSphericalProperties;
    getPlaylist: typeof getPlaylist;
    getPlaylistIndex: typeof getPlaylistIndex;
    getIframe: typeof getIframe;
    destroy: typeof destroy;
    loadVideoById: typeof loadVideoById;
    cueVideoById: typeof cueVideoById;
    loadVideoByUrl: typeof loadVideoByUrl;
    cueVideoByUrl: typeof cueVideoByUrl;
    cuePlaylist: typeof cuePlaylist;
    loadPlaylist: typeof loadPlaylist;
    getVideoIdFromYoutubeURL: typeof getVideoIdFromYoutubeURL;
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
    ready: (player: YT.Player) => any;
    playing: (player: YT.Player) => any;
    paused: (player: YT.Player) => any;
    ended: (player: YT.Player) => any;
    stateChange: (player: YT.Player) => any;
    playbackQualityChange: (player: YT.Player) => any;
    playbackRateChange: (player: YT.Player) => any;
    error: (player: YT.Player) => any;
    apiChange: (player: YT.Player) => any;
}, string, import('vue').PublicProps, Readonly<VueYtframeProps> & Readonly<{
    onReady?: ((player: YT.Player) => any) | undefined;
    onPlaying?: ((player: YT.Player) => any) | undefined;
    onPaused?: ((player: YT.Player) => any) | undefined;
    onEnded?: ((player: YT.Player) => any) | undefined;
    onStateChange?: ((player: YT.Player) => any) | undefined;
    onPlaybackQualityChange?: ((player: YT.Player) => any) | undefined;
    onPlaybackRateChange?: ((player: YT.Player) => any) | undefined;
    onError?: ((player: YT.Player) => any) | undefined;
    onApiChange?: ((player: YT.Player) => any) | undefined;
}>, {
    videoId: string | null;
    videoUrl: string | null;
    width: number | string;
    height: number | string;
    playerVars: YT.PlayerVars;
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
declare const _default: typeof __VLS_export;
export default _default;
