@byomakase/omakase-player
Version:
## Omakase Player - Open source JavaScript framework for building frame accurate video experiences
64 lines (63 loc) • 1.6 kB
TypeScript
import { Observable } from 'rxjs';
import { Api } from './api';
import { MarkerCreateEvent, MarkerDeleteEvent, MarkerInitEvent, MarkerSelectedEvent, MarkerUpdateEvent } from '../types';
import { MarkerApi } from './marker-api';
export interface MarkerAwareApi extends Api {
/**
* Fires on loading the initial list of markers
* @readonly
*/
onMarkerInit$: Observable<MarkerInitEvent>;
/**
* Fires on marker create
* @readonly
*/
onMarkerCreate$: Observable<MarkerCreateEvent>;
/**
* Fires on marker delete
* @readonly
*/
onMarkerDelete$: Observable<MarkerDeleteEvent>;
/**
* Fires on marker update
* @readonly
*/
onMarkerUpdate$: Observable<MarkerUpdateEvent>;
/**
* Fires on marker selected
* @readonly
*/
onMarkerSelected$: Observable<MarkerSelectedEvent>;
/**
* Track name
*/
get name(): string;
/**
* @returns all Markers
*/
getMarkers(): MarkerApi[];
/**
* Adds a new marker
* @param marker Marker Data
*/
addMarker(marker: Partial<MarkerApi>): MarkerApi;
/**
* Removes Marker by ID
* @param id Marker ID
*/
removeMarker(id: string): void;
/**
* Updates Marker by ID
* @param id Marker ID
*/
updateMarker(id: string, data: Partial<MarkerApi>): void;
/**
* Set selected Marker as active
* @param id Marker ID
*/
toggleMarker(id: string): void;
/**
* Get currently active marker
*/
getSelectedMarker(): MarkerApi | undefined;
}