import { CellMouseDownEvent, CellMouseOverEvent, IRowNode } from 'ag-grid-community';
import { MutableRefObject, RefObject } from 'react';
import { GridBaseRow } from '../types';
export interface CellLocation {
    rowId: string;
    colId: string;
    clickLocation: [number, number];
}
export interface GridRanges<TData extends GridBaseRow> {
    selectedColIds: string[];
    selectedNodes: IRowNode<TData>[];
}
export declare const useGridRangeSelection: <TData extends GridBaseRow>({ enableRangeSelection, gridDivRef, rangeStartRef, rangeEndRef, hasSelectedMoreThanOneCellRef, rangeSortedNodesRef, }: {
    enableRangeSelection: boolean;
    gridDivRef: RefObject<HTMLDivElement | null>;
    rangeStartRef: MutableRefObject<CellLocation | null>;
    rangeEndRef: MutableRefObject<CellLocation | null>;
    hasSelectedMoreThanOneCellRef: MutableRefObject<boolean>;
    rangeSortedNodesRef: MutableRefObject<IRowNode<TData>[] | null>;
}) => {
    clearRangeSelection: () => void;
    ranges: () => GridRanges<TData>;
    onCellMouseDown: (e: CellMouseDownEvent) => void;
    onCellMouseOver: (e: CellMouseOverEvent, mouseDown?: boolean) => void;
};
