import { BasePlugin } from '../base'; import type { default as CellRange } from '../../3rdparty/walkontable/src/cell/range'; import type { default as CellCoords } from '../../3rdparty/walkontable/src/cell/coords'; export declare const PLUGIN_KEY = "multipleSelectionHandles"; export declare const PLUGIN_PRIORITY = 160; /** * @private * @plugin MultipleSelectionHandles * @class MultipleSelectionHandles */ export declare class MultipleSelectionHandles extends BasePlugin { #private; /** * Returns the plugin key used to identify this plugin in Handsontable settings. */ static get PLUGIN_KEY(): string; /** * Returns the priority order used to determine the order in which plugins are initialized. */ static get PLUGIN_PRIORITY(): number; /** * @type {Array} */ dragged: string[]; /** * @type {object} */ touchStartRange: { width: number; height: number; direction: string; } | undefined; /** * Check if the plugin is enabled in the handsontable settings. * * @returns {boolean} */ isEnabled(): boolean; /** * Enable plugin for this Handsontable instance. */ enablePlugin(): void; /** * Disables the plugin and forgets any drag in progress. * * Without the reset, an `updateSettings()` mid-drag would take the listeners away while * `#dragTouches` still reported a drag - and because browsers recycle `Touch.identifier`, a later * unrelated finger handed a stale id would pass `isDraggedBy()` and start scrolling the grid. */ disablePlugin(): void; /** * Bind the touch events. * * @private */ registerListeners(): void; /** * Calculates the new selection range coordinates after dragging a touch handle, accounting for drag direction and handle position. */ getCurrentRangeCoords(selectedRange: CellRange, currentTouch: CellCoords, touchStartDirection: string, currentDirection: string, draggedHandle: string): { start: CellCoords | null; end: CellCoords | null; }; /** * Check if user is currently dragging the handle. * * @returns {boolean} Dragging state. */ isDragged(): boolean; /** * Checks whether one specific finger is the one holding a handle. Reachable through `getPlugin` * because DragToScroll needs it - `isDragged()` alone would let it arm auto-scroll for any finger * landing anywhere while a drag happens to be running. * * @private * @param {number} identifier The finger's `Touch.identifier`. * @returns {boolean} Whether that finger grabbed a handle. */ isDraggedBy(identifier: number): boolean; }