import type { BeanCollection, CellCtrl, CellPosition, CellPositionUtils, CellRange, CtrlsService, DragService, ISelectionHandle, MouseEventService, RowPosition, RowPositionUtils } from 'ag-grid-community';
import { Component, SelectionHandleType } from 'ag-grid-community';
import type { RangeService } from './rangeService';
export declare abstract class AbstractSelectionHandle extends Component implements ISelectionHandle {
    protected dragService: DragService;
    protected rangeService: RangeService;
    protected mouseEventService: MouseEventService;
    protected rowPositionUtils: RowPositionUtils;
    protected cellPositionUtils: CellPositionUtils;
    protected ctrlsService: CtrlsService;
    wireBeans(beans: BeanCollection): void;
    private cellCtrl;
    private cellRange;
    private rangeStartRow;
    private rangeEndRow;
    private cellHoverListener;
    private lastCellHovered;
    protected changedCalculatedValues: boolean;
    private dragging;
    protected abstract type: SelectionHandleType;
    protected shouldDestroyOnEndDragging: boolean;
    postConstruct(): void;
    protected abstract onDrag(e: MouseEvent | Touch): void;
    protected abstract onDragEnd(e: MouseEvent | Touch): void;
    protected abstract onDragCancel(): void;
    protected isDragging(): boolean;
    protected getCellCtrl(): CellCtrl | undefined;
    protected setCellCtrl(cellComp: CellCtrl): void;
    protected getCellRange(): CellRange;
    protected setCellRange(range: CellRange): void;
    protected getRangeStartRow(): RowPosition;
    protected setRangeStartRow(row: RowPosition): void;
    protected getRangeEndRow(): RowPosition;
    protected setRangeEndRow(row: RowPosition): void;
    protected getLastCellHovered(): CellPosition | null | undefined;
    private preventRangeExtension;
    protected onDragStart(e: MouseEvent): void;
    private getDraggingCssClass;
    protected updateValuesOnMove(e: MouseEvent): void;
    private clearDragProperties;
    getType(): SelectionHandleType;
    refresh(cellCtrl: CellCtrl): void;
    protected clearValues(): void;
    private removeListeners;
    destroy(): void;
}
