import Konva from 'konva'; import { TimelineLaneConfigDefaultsExcluded, TimelineLaneStyle } from '../timeline-lane'; import { MarkerLaneApi } from '../../api'; import { PeriodMarker, PeriodMarkerConfig } from './period-marker'; import { MomentMarker, MomentMarkerConfig } from './moment-marker'; import { MarkerCreateEvent, MarkerDeleteEvent, MarkerFocusEvent, MarkerInitEvent, MarkerSelectedEvent, MarkerUpdateEvent, MarkerVttCue } from '../../types'; import { Subject } from 'rxjs'; import { Timeline } from '../timeline'; import { Marker } from './marker'; import { MarkerVttFile } from '../../vtt'; import { AxiosRequestConfig } from 'axios'; import { MarkerStyle } from './marker-types'; import { VideoControllerApi } from '../../video'; import { VttAdapter, VttAdapterConfig } from '../../common/vtt-adapter'; import { VttTimelineLane, VttTimelineLaneConfig } from '../vtt-timeline-lane'; import { ConfigWithOptionalStyle } from '../../layout'; export interface MarkerLaneConfig extends VttTimelineLaneConfig, VttAdapterConfig { axiosConfig?: AxiosRequestConfig; markerCreateFn?: (marker: MarkerVttCue, index: number) => Marker; markerProcessFn?: (marker: Marker, index: number) => void; } export interface MarkerLaneStyle extends TimelineLaneStyle { markerStyle: Partial; } export declare class MarkerLane extends VttTimelineLane implements MarkerLaneApi { readonly onMarkerFocus$: Subject; readonly onMarkerCreate$: Subject; readonly onMarkerDelete$: Subject; readonly onMarkerUpdate$: Subject; readonly onMarkerSelected$: Subject; readonly onMarkerInit$: Subject; protected readonly _vttAdapter: VttAdapter; protected _markerCreateFn?: (cue: MarkerVttCue, index: number) => Marker; protected _markerProcessFn?: (marker: Marker, index: number) => void; protected _timecodedSpanningGroup?: Konva.Group; protected _markers: Marker[]; protected _markersById: Map; protected _markerInFocus?: Marker; constructor(config: TimelineLaneConfigDefaultsExcluded); prepareForTimeline(timeline: Timeline, videoController: VideoControllerApi): void; protected settleLayout(): void; clearContent(): void; get name(): string; createMomentMarker(config: ConfigWithOptionalStyle): MomentMarker; createPeriodMarker(config: ConfigWithOptionalStyle): PeriodMarker; addMarker(marker: Marker): Marker; removeAllMarkers(): void; removeMarker(id: string): void; protected removeMarkers(ids: string[]): void; getMarker(id: string): Marker | undefined; getMarkers(): Marker[]; focusMarker(id: string): void; getMarkerInFocus(): Marker | undefined; toggleMarker(markerId: string): void; getSelectedMarker(): Marker | undefined; updateMarker(markerId: string, updateData: Partial): void; private moveToTop; private clearItems; private createEntities; destroy(): void; }