import { MediaTimeRange } from 'media-chrome';
import { BehaviorSubject, Observable, Subject } from 'rxjs';
import { MarkerApi } from '../api';
import { MarkerInitEvent, MarkerCreateEvent, MarkerDeleteEvent, MarkerUpdateEvent, MarkerSelectedEvent, MarkerMouseEvent } from '../types';
import { TimeRangeMarkerTrackApi, TimeRangeMarkerTrackVttLoadOptions } from '../api/time-range-marker-track-api';
import { MarkerVttFile } from '../vtt';
export declare class OmakaseTimeRange extends MediaTimeRange implements TimeRangeMarkerTrackApi {
    onSeek$: Subject<number>;
    onMouseOver$: Subject<number>;
    onMarkerInit$: Subject<MarkerInitEvent>;
    onMarkerCreate$: Subject<MarkerCreateEvent>;
    onMarkerDelete$: Subject<MarkerDeleteEvent>;
    onMarkerUpdate$: Subject<MarkerUpdateEvent>;
    onMarkerSelected$: Subject<MarkerSelectedEvent>;
    onMarkerMouseEnter$: Subject<MarkerMouseEvent>;
    onMarkerMouseLeave$: Subject<MarkerMouseEvent>;
    onMarkerClick$: Subject<MarkerMouseEvent>;
    onVttLoaded$: BehaviorSubject<MarkerVttFile | undefined>;
    private _previewBox;
    private _lastPreviewTime?;
    private _markerTrack;
    private _markers;
    private _destroyed$;
    private _markerVttAdapter;
    constructor();
    get name(): string;
    handleEvent(evt: Event | MouseEvent): void;
    attributeChangedCallback(attrName: string, oldValue: string | null, newValue: string | null): void;
    getMarkers(): MarkerApi[];
    addMarker(marker: MarkerApi): MarkerApi;
    removeMarker(id: string): void;
    updateMarker(id: string, data: Partial<MarkerApi>): void;
    toggleMarker(id: string): void;
    getSelectedMarker(): MarkerApi | undefined;
    destroy(): void;
    removeAllMarkers(): void;
    loadVtt(vttUrl: string, options?: TimeRangeMarkerTrackVttLoadOptions): Observable<MarkerVttFile | undefined>;
    private getElementRects;
    private addMarkerElement;
    private updateMarkerPosition;
    private updateClasses;
}
