import { SlickEvent, SlickEventHandler, SlickRange, type SlickEventData, type SlickGrid } from '../core/index.js';
import type { CellRangeSelectorOption, CellSelectionMode, DragPosition, DragRange, DragRowMove, GridOption, MouseOffsetViewport, OnScrollEventArgs } from '../interfaces/index.js';
import { SlickCellRangeDecorator } from './index.js';
export declare class SlickCellRangeSelector {
    readonly pluginName = "CellRangeSelector";
    onBeforeCellRangeSelected: SlickEvent<{
        row: number;
        cell: number;
    }>;
    onCellRangeSelecting: SlickEvent<{
        range: SlickRange;
        selectionMode: string;
        allowAutoEdit: boolean;
    }>;
    onCellRangeSelected: SlickEvent<{
        range: SlickRange;
        selectionMode: string;
        allowAutoEdit: boolean;
    }>;
    protected _activeCanvas: HTMLElement;
    protected _options: CellRangeSelectorOption;
    protected _currentlySelectedRange: DragRange | null;
    protected _previousSelectedRange: DragRange | null;
    protected _canvas: HTMLElement | null;
    protected _decorator: SlickCellRangeDecorator;
    protected _dragging: boolean;
    protected _eventHandler: SlickEventHandler;
    protected _grid: SlickGrid;
    protected _gridOptions: GridOption;
    protected _gridUid: string;
    protected _dragReplaceHandleCell: {
        row: number;
        cell: number;
    } | null;
    protected _selectionMode: CellSelectionMode;
    protected _dragReplaceHandleActive: boolean;
    protected _columnOffset: number;
    protected _rowOffset: number;
    protected _isRightCanvas: boolean;
    protected _isBottomCanvas: boolean;
    protected _activeViewport: HTMLElement;
    protected _autoScrollTimerId?: any;
    protected _draggingMouseOffset: MouseOffsetViewport;
    protected _moveDistanceForOneCell: {
        x: number;
        y: number;
    };
    protected _xDelayForNextCell: number;
    protected _yDelayForNextCell: number;
    protected _viewportHeight: number;
    protected _viewportWidth: number;
    protected _isRowMoveRegistered: boolean;
    protected _scrollLeft: number;
    protected _scrollTop: number;
    protected _defaults: CellRangeSelectorOption;
    constructor(options?: Partial<CellRangeSelectorOption>);
    get addonOptions(): CellRangeSelectorOption;
    get eventHandler(): SlickEventHandler;
    /** Getter for the grid uid */
    get gridUid(): string;
    get gridUidSelector(): string;
    init(grid: SlickGrid): void;
    destroy(): void;
    /** Dispose the plugin. */
    dispose(): void;
    getCellDecorator(): SlickCellRangeDecorator;
    getCurrentRange(): DragRange | null;
    getMouseOffsetViewport(e: MouseEvent | TouchEvent, dd: DragPosition): MouseOffsetViewport;
    stopIntervalTimer(): void;
    protected handleDrag(evt: SlickEventData, dd: DragRowMove): void;
    protected handleDragOutsideViewport(): void;
    protected handleDragToNewPosition(xNeedUpdate: boolean, yNeedUpdate: boolean): void;
    protected handleDragTo(e: {
        pageX: number;
        pageY: number;
    }, dd: DragPosition): void;
    protected handleDragEnd(e: any, dd: DragRowMove): void;
    protected handleDragInit(e: SlickEventData, dd: DragRowMove): void;
    protected handleDragStart(e: SlickEventData, dd: DragRowMove): HTMLDivElement | undefined;
    protected handleScroll(_e: SlickEventData, args: OnScrollEventArgs): void;
}
//# sourceMappingURL=slickCellRangeSelector.d.ts.map