import { BehaviorSubject, Observable, ReplaySubject, Subject } from 'rxjs';
import { ExtractedFrame } from '../../services/frame-extraction/index';
import type { MediaPlayerType } from './media-player.component';
import * as i0 from "@angular/core";
export declare class MediaPlayerService {
    private readonly _frameExtractionService;
    source: string;
    type: MediaPlayerType;
    loaded: boolean;
    /** Aria Labels */
    muteAriaLabel: (volume: number) => string;
    playAriaLabel: (isPlaying: boolean) => string;
    fullscreenAriaLabel: (isFullscreen: boolean) => string;
    selectSubtitlesAriaLabel: (track: string) => string;
    goToStartAriaLabel: string;
    goToEndAriaLabel: string;
    subtitlesTitleAriaLabel: string;
    subtitlesOffAriaLabel: string;
    noSubtitlesAriaLabel: string;
    mediaPlayerAriaLabel: string;
    seekAriaLabel: string;
    playing: BehaviorSubject<boolean>;
    initEvent: ReplaySubject<boolean>;
    abortEvent: Subject<void>;
    canPlayEvent: BehaviorSubject<boolean>;
    canPlayThroughEvent: BehaviorSubject<boolean>;
    durationChangeEvent: Subject<number>;
    endedEvent: Subject<void>;
    errorEvent: Subject<void>;
    loadedDataEvent: Subject<void>;
    loadedMetadataEvent: Subject<void>;
    loadStartEvent: Subject<void>;
    pauseEvent: Subject<void>;
    playEvent: Subject<void>;
    playingEvent: Subject<boolean>;
    rateChangeEvent: Subject<number>;
    seekedEvent: Subject<number>;
    seekingEvent: Subject<number>;
    stalledEvent: Subject<void>;
    suspendEvent: Subject<void>;
    timeUpdateEvent: Subject<number>;
    volumeChangeEvent: Subject<number>;
    waitingEvent: Subject<void>;
    mediaClickEvent: Subject<MouseEvent>;
    fullscreenEvent: BehaviorSubject<boolean>;
    quietModeEvent: BehaviorSubject<boolean>;
    progressEvent: Observable<TimeRanges>;
    private _mediaPlayer;
    private _hostElement;
    private _fullscreen;
    private _quietMode;
    get mediaPlayer(): HTMLMediaElement;
    get quietMode(): boolean;
    set quietMode(value: boolean);
    get mediaPlayerWidth(): number;
    get mediaPlayerHeight(): number;
    get autoplay(): boolean;
    set autoplay(value: boolean);
    get buffered(): TimeRanges;
    get crossOrigin(): string;
    set crossOrigin(value: string);
    get currentSrc(): string;
    get currentTime(): number;
    set currentTime(value: number);
    get defaultMuted(): boolean;
    set defaultMuted(value: boolean);
    get defaultPlaybackRate(): number;
    set defaultPlaybackRate(value: number);
    get duration(): number;
    get ended(): boolean;
    get loop(): boolean;
    set loop(value: boolean);
    get muted(): boolean;
    set muted(value: boolean);
    get networkState(): number;
    get paused(): boolean;
    get playbackRate(): number;
    set playbackRate(value: number);
    get played(): TimeRanges;
    get preload(): '' | 'auto' | 'metadata' | 'none';
    set preload(value: '' | 'auto' | 'metadata' | 'none');
    get readyState(): number;
    get seekable(): TimeRanges;
    get seeking(): boolean;
    get src(): string;
    set src(value: string);
    get textTracks(): Array<TextTrack>;
    get volume(): number;
    set volume(value: number);
    get fullscreen(): boolean;
    set fullscreen(value: boolean);
    setMediaPlayer(hostElement: HTMLElement, mediaPlayer: HTMLMediaElement): void;
    /**
     * Toggle playing state
     */
    togglePlay(): void;
    /**
     * Starts playing the audio/video
     */
    play(): void;
    /**
     * Pauses the currently playing audio/video
     */
    pause(): void;
    /**
     * Re-loads the audio/video element
     */
    load(): void;
    /**
     * Checks if the browser can play the specified audio/video type
     */
    canPlayType(type: string): string;
    /**
     * Adds a new text track to the audio/video
     */
    addTextTrack(kind: 'subtitles' | 'captions' | 'descriptions' | 'chapters' | 'metadata', label: string, language: string): TextTrack;
    /**
     * Attempt to display media in fullscreen mode
     */
    requestFullscreen(): void;
    /**
     * Exit full screen mode
     */
    exitFullscreen(): void;
    /**
     * Toggle Fullscreen State
     */
    toggleFullscreen(): void;
    fullscreenChange(): void;
    /**
     * Extract the frames from the video
     */
    getFrames(width: number, height: number): Observable<ExtractedFrame>;
    hideSubtitleTracks(): void;
    private getMuteAriaLabel;
    private getPlayAriaLabel;
    private getFullscreenAriaLabel;
    private getSubtitlesAriaLabel;
    static ɵfac: i0.ɵɵFactoryDeclaration<MediaPlayerService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<MediaPlayerService>;
}
