import { Position } from '../../common'; import { BaseKonvaComponent, ComponentConfig, KonvaComponent } from '../../layout/konva-component'; import Konva from 'konva'; import { MarkerLane } from './marker-lane'; import { MarkerChangeEvent, MarkerEvent, TimeObservation } from '../../types'; import { Observable, Subject } from 'rxjs'; import { Timeline } from '../timeline'; import { MarkerHandleVerticals, MarkerStyle } from './marker-types'; import { MarkerApi } from '../../api'; export interface MarkerConfig extends ComponentConfig { timeObservation: T; id?: string; text?: string; editable?: boolean; } export interface Marker extends MarkerApi, KonvaComponent, MarkerStyle, Konva.Group> { onClick$: Observable; onMouseEnter$: Observable; onMouseLeave$: Observable; onMouseOver$: Observable; onMouseOut$: Observable; refreshTimelinePosition(): void; get timeObservation(): TimeObservation; set timeObservation(timeObservation: TimeObservation); get editable(): boolean; set editable(editable: boolean); get text(): string | undefined; get style(): MarkerStyle; set style(s: MarkerStyle); } export declare abstract class BaseMarker, S extends MarkerStyle, E extends MarkerChangeEvent> extends BaseKonvaComponent implements Marker { readonly onClick$: Subject; readonly onMouseEnter$: Subject; readonly onMouseLeave$: Subject; readonly onMouseOver$: Subject; readonly onMouseOut$: Subject; readonly onDestroy$: Subject; readonly onChange$: Subject; protected _group: Konva.Group; protected _timeline?: Timeline; protected _markerLane?: MarkerLane; protected _id: string; protected _timeObservation: T; protected _editable: boolean; private _text?; protected _data?: Record; protected constructor(config: C); protected provideKonvaNode(): Konva.Group; protected abstract onObservationChange(): void; abstract refreshTimelinePosition(): void; destroy(): void; attachToTimeline(timeline: Timeline, markerLane: MarkerLane): void; protected getMarkerHandleVerticals(): MarkerHandleVerticals; protected onDragMove(newPosition: Position): Position; get timeObservation(): T; set timeObservation(value: T); get editable(): boolean; set editable(value: boolean); get id(): string; get text(): string | undefined; get name(): string | undefined; set name(name: string | undefined); get data(): Record | undefined; set data(data: Record | undefined); get onStyleChange$(): Observable; }