import React from "react";
import { SelectionArea, CellInterface, GridRef } from "./../Grid";
export interface UseSelectionOptions {
    gridRef?: React.MutableRefObject<GridRef>;
    initialSelections?: SelectionArea[];
    initialActiveCell?: CellInterface | null;
    columnCount?: number;
    rowCount?: number;
}
export interface SelectionResults {
    activeCell: CellInterface | null;
    newSelection: (coords: CellInterface) => void;
    setSelections: (selection: SelectionArea[]) => void;
    setActiveCell: (coords: CellInterface | null) => void;
    selections: SelectionArea[];
    onMouseDown: (e: React.MouseEvent<HTMLDivElement>) => void;
    onMouseMove: (e: React.MouseEvent<HTMLDivElement>) => void;
    onMouseUp: (e: React.MouseEvent<HTMLDivElement>) => void;
    onKeyDown: (e: React.KeyboardEvent<HTMLElement>) => void;
}
/**
 * useSelection hook to enable selection in datagrid
 * @param initialSelection
 */
declare const useSelection: (options?: UseSelectionOptions | undefined) => SelectionResults;
export default useSelection;
