/**
 * @module <FreecasterPlayer/>
 */

import { Player, PlayerOptions, PlayerEvents } from '../types/Player';
export interface FreecasterPlayerProps extends PlayerOptions {
    enabled?: boolean;
}
export interface FreecasterPlayerSlots {
    default(props: {
        player: Player | undefined;
        paused: boolean;
        muted: boolean;
        fullscreen: boolean;
        currentTime: number;
        volume: number;
        readyState: number;
        currentSubtitles: TextTrack | undefined;
        subtitles: TextTrack[];
    }): any;
}
export type FreecasterPlayerEmits = PlayerEvents;
declare let __VLS_typeProps: FreecasterPlayerProps;
type __VLS_PublicProps = {
    modelValue?: Player;
    'paused'?: boolean;
    'muted'?: boolean;
    'fullscreen'?: boolean;
    'volume'?: number;
    'currentTime'?: number;
    'readyState'?: number;
    'currentSubtitles'?: TextTrack;
    'subtitles'?: TextTrack[];
} & typeof __VLS_typeProps;
declare function __VLS_template(): {
    slots: Readonly<FreecasterPlayerSlots> & FreecasterPlayerSlots;
    refs: {
        element: HTMLDivElement;
    };
    attrs: Partial<{}>;
};
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
declare const __VLS_component: import('vue').DefineComponent<__VLS_PublicProps, {
    player: import('vue').ModelRef<Player, string, Player, Player>;
    paused: import('vue').ModelRef<boolean, string, boolean, boolean>;
    muted: import('vue').ModelRef<boolean, string, boolean, boolean>;
    fullscreen: import('vue').ModelRef<boolean, string, boolean, boolean>;
    volume: import('vue').ModelRef<number, string, number, number>;
    currentTime: import('vue').ModelRef<number, string, number, number>;
    readyState: import('vue').ModelRef<number, string, number, number>;
    currentSubtitles: import('vue').ModelRef<TextTrack, string, TextTrack, TextTrack>;
    subtitles: import('vue').ModelRef<TextTrack[], string, TextTrack[], TextTrack[]>;
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
    abort: (event: Event) => any;
    canplay: (event: Event) => any;
    canplaythrough: (event: Event) => any;
    durationchange: (event: Event) => any;
    emptied: (event: Event) => any;
    encrypted: (event: Event) => any;
    ended: (event: Event) => any;
    error: (event: Event) => any;
    load: (event: Event) => any;
    loadeddata: (event: Event) => any;
    loadedmetadata: (event: Event) => any;
    loadstart: (event: Event) => any;
    pause: (event: Event) => any;
    play: (event: Event) => any;
    playing: (event: Event) => any;
    progress: (event: Event) => any;
    ratechange: (event: Event) => any;
    seeked: (event: Event) => any;
    seeking: (event: Event) => any;
    stalled: (event: Event) => any;
    suspend: (event: Event) => any;
    timeupdate: (event: Event) => any;
    volumechange: (event: Event) => any;
    waiting: (event: Event) => any;
    waitingforkey: (event: Event) => any;
    enterpictureinpicture: (event: PictureInPictureEvent) => any;
    leavepictureinpicture: (event: PictureInPictureEvent) => any;
    resize: (event: Event) => any;
    fullscreenenter: () => any;
    fullscreenexit: () => any;
    viewenter: () => any;
    viewleave: () => any;
    fcplayerDestroy: () => any;
    fcplayerSrcChanged: (event: {
        src: any;
    }) => any;
    fcplayerConfigChanged: (event: {
        key: string;
        value: any;
    } | {
        changes: {
            [key: string]: any;
        };
    }) => any;
    fcplayerCountdownTick: (event: {
        remaining: number;
    }) => any;
    fcplayerCountdownEnabled: () => any;
    fcplayerCountdownDisabled: () => any;
    fcplayerCountdownZero: () => any;
    "update:modelValue": (modelValue: Player) => any;
    "update:paused": (paused: boolean) => any;
    "update:muted": (muted: boolean) => any;
    "update:fullscreen": (fullscreen: boolean) => any;
    "update:volume": (volume: number) => any;
    "update:currentTime": (currentTime: number) => any;
    "update:readyState": (readyState: number) => any;
    "update:currentSubtitles": (currentSubtitles: TextTrack) => any;
    "update:subtitles": (subtitles: TextTrack[]) => any;
}, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
    onAbort?: (event: Event) => any;
    onCanplay?: (event: Event) => any;
    onCanplaythrough?: (event: Event) => any;
    onDurationchange?: (event: Event) => any;
    onEmptied?: (event: Event) => any;
    onEncrypted?: (event: Event) => any;
    onEnded?: (event: Event) => any;
    onError?: (event: Event) => any;
    onLoad?: (event: Event) => any;
    onLoadeddata?: (event: Event) => any;
    onLoadedmetadata?: (event: Event) => any;
    onLoadstart?: (event: Event) => any;
    onPause?: (event: Event) => any;
    onPlay?: (event: Event) => any;
    onPlaying?: (event: Event) => any;
    onProgress?: (event: Event) => any;
    onRatechange?: (event: Event) => any;
    onSeeked?: (event: Event) => any;
    onSeeking?: (event: Event) => any;
    onStalled?: (event: Event) => any;
    onSuspend?: (event: Event) => any;
    onTimeupdate?: (event: Event) => any;
    onVolumechange?: (event: Event) => any;
    onWaiting?: (event: Event) => any;
    onWaitingforkey?: (event: Event) => any;
    onEnterpictureinpicture?: (event: PictureInPictureEvent) => any;
    onLeavepictureinpicture?: (event: PictureInPictureEvent) => any;
    onResize?: (event: Event) => any;
    onFullscreenenter?: () => any;
    onFullscreenexit?: () => any;
    onViewenter?: () => any;
    onViewleave?: () => any;
    onFcplayerDestroy?: () => any;
    onFcplayerSrcChanged?: (event: {
        src: any;
    }) => any;
    onFcplayerConfigChanged?: (event: {
        key: string;
        value: any;
    } | {
        changes: {
            [key: string]: any;
        };
    }) => any;
    onFcplayerCountdownTick?: (event: {
        remaining: number;
    }) => any;
    onFcplayerCountdownEnabled?: () => any;
    onFcplayerCountdownDisabled?: () => any;
    onFcplayerCountdownZero?: () => any;
    "onUpdate:modelValue"?: (modelValue: Player) => any;
    "onUpdate:paused"?: (paused: boolean) => any;
    "onUpdate:muted"?: (muted: boolean) => any;
    "onUpdate:fullscreen"?: (fullscreen: boolean) => any;
    "onUpdate:volume"?: (volume: number) => any;
    "onUpdate:currentTime"?: (currentTime: number) => any;
    "onUpdate:readyState"?: (readyState: number) => any;
    "onUpdate:currentSubtitles"?: (currentSubtitles: TextTrack) => any;
    "onUpdate:subtitles"?: (subtitles: TextTrack[]) => any;
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
