import { GridPosition } from './use-grid-keyboard-navigation';
export interface CellRange {
    start: GridPosition;
    end: GridPosition;
}
export interface UseGridCellSelectionProps {
    totalRows: number;
    totalColumns: number;
    onSelectionChange?: (selectedCells: GridPosition[]) => void;
    disabled?: boolean;
}
export interface UseGridCellSelectionReturn {
    selectedRange: CellRange | null;
    selectedCells: Set<string>;
    isSelecting: boolean;
    startSelection: (position: GridPosition) => void;
    updateSelection: (position: GridPosition) => void;
    endSelection: () => void;
    clearSelection: () => void;
    selectRange: (start: GridPosition, end: GridPosition) => void;
    isCellSelected: (position: GridPosition) => boolean;
    getSelectedPositions: () => GridPosition[];
}
export declare function useGridCellSelection({ totalRows, totalColumns, onSelectionChange, disabled, }: UseGridCellSelectionProps): UseGridCellSelectionReturn;
//# sourceMappingURL=use-grid-cell-selection.d.ts.map