import { AfterViewInit, OnDestroy } from '@angular/core';
import { Observable } from 'rxjs';
import { AudioMetadata } from '../../services/audio/index';
import { MediaPlayerService } from './media-player.service';
import * as i0 from "@angular/core";
export declare class MediaPlayerComponent implements AfterViewInit, OnDestroy {
    readonly mediaPlayerService: MediaPlayerService;
    private readonly _audioService;
    private readonly _elementRef;
    private readonly _playerRef;
    hovering: boolean;
    focused: boolean;
    audioMetadata: Observable<AudioMetadata>;
    /** The `anonymous` keyword means that there will be no exchange of user credentials when the media source is fetched. */
    crossorigin: 'use-credentials' | 'anonymous';
    /** Overwrite the filename displayed in the audio media player */
    filename: string;
    get source(): string;
    /** The url to the media file to be loaded by the media player. */
    set source(value: string);
    get type(): MediaPlayerType;
    /**
     * Defines the appearance of the media player. The two possible values are `video` and `audio`.
     * The media player will adapt it's appearance to best suit the type specified.
     */
    set type(value: MediaPlayerType);
    get quietMode(): boolean;
    /**
     * If enabled, the controls in the media player will be hidden unless the mouse is over the player and will appear in a darker style.
     * Dark mode is automatically enabled in full screen mode. Quiet mode is only available for videos.
     */
    set quietMode(value: boolean);
    /**
     * If specified the function will be called passing the current volume as an argument.
     * It should return an appropriate aria-label for the mute/unmute button.
     */
    set muteAriaLabel(fn: (volume: number) => string);
    /**
     * If specified the function will be called passing the current playing state as an argument.
     * It should return an appropriate aria-label for the play/pause button.
     */
    set playAriaLabel(fn: (isPlaying: boolean) => string);
    /**
     * If specified the function will be called passing the current fullscreen state as an argument.
     * It should return an appropriate aria-label for the fullscreen toggle button.
     */
    set fullscreenAriaLabel(fn: (isFullscreen: boolean) => string);
    /**
     * If specified the function will be called passing the current track as an argument.
     * It should return an appropriate aria-label for the subtitle selection button.
     */
    set selectSubtitlesAriaLabel(fn: (track: string) => string);
    /** Defines an aria-label for the go to start button. */
    set goToStartAriaLabel(ariaLabel: string);
    /** Defines an aria-label for the go to end button. */
    set goToEndAriaLabel(ariaLabel: string);
    /** Defines an aria-label for the title displayed in the subtitle selection popover. */
    set subtitlesTitleAriaLabel(ariaLabel: string);
    /** Defines an aria-label to indicate subtitle are not currently enabled. */
    set subtitlesOffAriaLabel(ariaLabel: string);
    /** Define an aria-label to indicate there are no subtitles available. */
    set noSubtitlesAriaLabel(ariaLabel: string);
    /** Define an aria-label for the media player. */
    set mediaPlayerAriaLabel(ariaLabel: string);
    /** Define an aria-label for the the seek element. */
    set seekAriaLabel(ariaLabel: string);
    private readonly _onDestroy;
    constructor();
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<MediaPlayerComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<MediaPlayerComponent, "ux-media-player", never, { "crossorigin": { "alias": "crossorigin"; "required": false; }; "filename": { "alias": "filename"; "required": false; }; "source": { "alias": "source"; "required": false; }; "type": { "alias": "type"; "required": false; }; "quietMode": { "alias": "quietMode"; "required": false; }; "muteAriaLabel": { "alias": "muteAriaLabel"; "required": false; }; "playAriaLabel": { "alias": "playAriaLabel"; "required": false; }; "fullscreenAriaLabel": { "alias": "fullscreenAriaLabel"; "required": false; }; "selectSubtitlesAriaLabel": { "alias": "selectSubtitlesAriaLabel"; "required": false; }; "goToStartAriaLabel": { "alias": "goToStartAriaLabel"; "required": false; }; "goToEndAriaLabel": { "alias": "goToEndAriaLabel"; "required": false; }; "subtitlesTitleAriaLabel": { "alias": "subtitlesTitleAriaLabel"; "required": false; }; "subtitlesOffAriaLabel": { "alias": "subtitlesOffAriaLabel"; "required": false; }; "noSubtitlesAriaLabel": { "alias": "noSubtitlesAriaLabel"; "required": false; }; "mediaPlayerAriaLabel": { "alias": "mediaPlayerAriaLabel"; "required": false; }; "seekAriaLabel": { "alias": "seekAriaLabel"; "required": false; }; }, {}, never, ["track", "[uxMediaPlayerCustomControl]"], false, never>;
}
export type MediaPlayerType = 'video' | 'audio';
export interface MediaPlayerBuffer {
    start: number;
    end: number;
}
