/** @jsxImportSource preact */ import { Deck, Widget } from '@deck.gl/core'; import type { PickingInfo, WidgetPlacement, WidgetProps } from '@deck.gl/core'; import type { MjolnirGestureEvent, MjolnirPointerEvent } from 'mjolnir.js'; export type TimeMeasureRange = { startTimeMs: number; endTimeMs: number; }; type TimeMeasureWidgetProps = WidgetProps & { placement?: WidgetPlacement; viewId?: string | null; /** View to listen to for interactions. Defaults to 'main'. */ eventViewId?: string | string[] | null; /** View to use for projecting pointer -> time. Defaults to event view. */ projectionViewId?: string | null; label?: string; activeLabel?: string; onActivate?: () => void; onDeactivate?: () => void; onRangeChange?: (range: TimeMeasureRange | null) => void; onSelectionChange?: (selection: TimeMeasureSelectionState) => void; }; export type TimeMeasureSelectionState = { phase: 'idle' | 'selecting-start' | 'selecting-end' | 'selected'; cursorTimeMs: number | null; draftStartTimeMs: number | null; range: TimeMeasureRange | null; }; export declare class TimeMeasureWidget extends Widget { #private; static defaultProps: Required; className: string; placement: WidgetPlacement; constructor(props?: TimeMeasureWidgetProps); setProps(props: Partial): void; onAdd({ deck, viewId }: { deck: Deck; viewId: string | null; }): HTMLDivElement | void; onRemove(): void; onRenderHTML(rootElement: HTMLElement): void; onHover(info: PickingInfo, event: MjolnirPointerEvent | MjolnirGestureEvent): void; onClick(info: PickingInfo, event: MjolnirGestureEvent): void; onDragStart(info: PickingInfo, event: MjolnirGestureEvent): void; onDrag(info: PickingInfo, event: MjolnirGestureEvent): void; onDragEnd(info: PickingInfo, event: MjolnirGestureEvent): void; } export {}; //# sourceMappingURL=time-measure-widget.d.ts.map