import { Api } from './api'; import { Observable } from 'rxjs'; import { SubtitlesCreateEvent, SubtitlesEvent, SubtitlesLoadedEvent, SubtitlesVttTrack, SubtitlesVttTrackCreateType } from '../types'; export interface SubtitlesApi extends Api { /** * Fires on subtitles load. Initial value is undefined. * Always emits the current value on subscription. * * @readonly */ onSubtitlesLoaded$: Observable; /** * Fires on subtitles create * @readonly */ onCreate$: Observable; /** * Fires on subtitles remove * @readonly */ onRemove$: Observable; /** * Fires on subtitles show * @readonly */ onShow$: Observable; /** * Fires on subtitles hide * @readonly */ onHide$: Observable; /** * Creates new Subtitles VTT track * @param track */ createVttTrack(track: SubtitlesVttTrackCreateType): Observable; /** * @returns all VTT tracks */ getTracks(): SubtitlesVttTrack[]; /** * Removes VTT track by ID * @param id VTT track ID */ removeTrack(id: string): Observable; /** * Removes all VTT tracks */ removeAllTracks(): Observable; /** * @returns active VTT track */ getActiveTrack(): SubtitlesVttTrack | undefined; /** * Shows VTT track by ID * @param id VTT track ID */ showTrack(id: string): Observable; /** * Hides VTT track by ID * @param id VTT track ID */ hideTrack(id: string): Observable; /** * Shows active VTT track */ showActiveTrack(): Observable; /** * Hides active VTT track */ hideActiveTrack(): Observable; /** * Toggles show / hide of active VTT track */ toggleShowHideActiveTrack(): Observable; }