import { BehaviorSubject, Observable, Subject } from 'rxjs';
import { MomentMarker, PeriodMarker } from '../timeline';
import { MarkerTrackApi } from '../api/marker-track-api';
import { MarkerCreateEvent, MarkerDeleteEvent, MarkerInitEvent, MarkerSelectedEvent, MarkerUpdateEvent } from '../types';
import { MarkerVttFile } from '../vtt';
import { MarkerApi } from '../api';
export declare class OmakaseMarkerTrack extends HTMLElement implements MarkerTrackApi {
    private _container?;
    private _uuid?;
    private _destroyed$;
    private _draggingPointMarker?;
    private _draggingPeriodMarker?;
    private _draggingPeriodMarkerEnd?;
    private _markerMoved;
    private _markerDragStartTime?;
    private _markerDragDelay;
    private _markers;
    private _selectedMarker?;
    private _mouseupListener?;
    private _mousemoveListener?;
    private _resizeObserver;
    onShow$: Subject<void>;
    onHide$: Subject<void>;
    onMarkerInit$: Subject<MarkerInitEvent>;
    onMarkerCreate$: Subject<MarkerCreateEvent>;
    onMarkerDelete$: Subject<MarkerDeleteEvent>;
    onMarkerUpdate$: Subject<MarkerUpdateEvent>;
    onMarkerSelected$: Subject<MarkerSelectedEvent>;
    onVttLoaded$: BehaviorSubject<MarkerVttFile | undefined>;
    get mediaDuration(): number;
    set mediaDuration(duration: number);
    get name(): string;
    get uuid(): string | undefined;
    set uuid(uuid: string | undefined);
    get onDestroy$(): Observable<void>;
    connectedCallback(): void;
    disconnectedCallback(): void;
    getMarkers(): MarkerApi[];
    getSelectedMarker(): MarkerApi | undefined;
    addMarker(marker: Partial<MarkerApi>): MomentMarker | PeriodMarker;
    removeMarker(id: string): void;
    removeAllMarkers(): void;
    updateMarker(id: string, data: Partial<MarkerApi>): void;
    toggleMarker(id: string): void;
    destroy(): void;
    isVisible(): boolean;
    toggleVisibility(): void;
    hide(): void;
    show(): void;
    private focusMarker;
    private unfocusMarkers;
    private isMomentMarker;
    private isPeriodMarker;
    private addMomentMarker;
    private addPeriodMarker;
    private clearDraggingMarker;
    private moveDraggingMarker;
    private getDraggingPointMarkerTime;
    private getDraggingPeriodMarkerTime;
    private updateMarkerPosition;
    private updateMarkerColor;
    private updateMarkerSize;
}
