import type { ClickWidgetEvent, DblClickWidgetEvent, DragWidgetEvent, MouseWidgetEvent, TouchWidgetEvent, Widget } from 'ag-charts-core'; import { EventEmitter } from 'ag-charts-core'; /** * In the interest of robustness (and simplicity), the Widget class always dispatches these events after mousedown & * mouseup events for the left-button: * * - One 'drag-start' * - Zero or more 'drag-move' * - One 'drag-end' * - Zero or one 'click' (only dispatched if the mouseup event is on target). * * To distinguish between drag and click actions, use this class. It ensure that for each mousedown-mouseup pair, it * dispatches either a set of 'drag-*' events or a single 'click' event but not both. */ export declare class DragInterpreter { private readonly cleanup; readonly events: EventEmitter<{ click: NonNullable; blur: import("ag-charts-core").FocusWidgetEvent<"blur">; focus: import("ag-charts-core").FocusWidgetEvent<"focus">; dblclick: NonNullable; mouseenter: MouseWidgetEvent<"mouseenter">; mouseleave: MouseWidgetEvent<"mouseleave">; keydown: import("ag-charts-core").KeyboardWidgetEvent<"keydown">; contextmenu: MouseWidgetEvent<"contextmenu">; mousemove: MouseWidgetEvent<"mousemove">; keyup: import("ag-charts-core").KeyboardWidgetEvent<"keyup">; change: import("ag-charts-core").WidgetEvent<"change">; touchcancel: TouchWidgetEvent<"touchcancel">; touchend: TouchWidgetEvent<"touchend">; touchmove: TouchWidgetEvent<"touchmove">; touchstart: TouchWidgetEvent<"touchstart">; wheel: import("ag-charts-core").WheelWidgetEvent; } & { "drag-start": DragWidgetEvent<"drag-start">; "drag-move": DragWidgetEvent<"drag-move">; "drag-end": DragWidgetEvent<"drag-end">; "collapse-widget": import("ag-charts-core").CollapseWidgetEvent; "expand-widget": import("ag-charts-core").ExpandWidgetEvent; "expand-controlled-widget": import("ag-charts-core").ExpandControlledWidgetEvent; }>; private dragStartEvent?; private isDragging; private lastClick?; private readonly touch; constructor(widget: Widget); destroy(): void; private onTouchStart; private onTouchMove; private onTouchEnd; private onMouseMove; private onDblClick; private onDragStart; private onDragMove; private onDragEnd; } /** * Synthesises the 'contextmenu' that touch devices never send: iOS Safari reserves long-press for selectable * content, so touch users cannot otherwise reach the chart's context menus. Listening on the chart element and * re-dispatching on `sourceEvent.target` means a widget needs only its existing 'contextmenu' listener. */ export declare class LongTapInterpreter { private readonly widget; private readonly cleanup; private readonly gestureCleanup; private timer?; private candidate?; constructor(widget: Widget); destroy(): void; private onTouchStart; private onTouchMove; private disarm; private readonly onLongTap; }