import React, { ReactNode, RefObject } from "react"; import { GridCellSelectionMode, GridColumnGroupModel, GridColumnModel, GridColumnMoveHandler, GridRowModel, GridRowSelectionMode, RowKeyGetter } from "../Grid"; import { ColumnGroupProps } from "../ColumnGroup"; import { NumberRange } from "../NumberRange"; import { GridColumnInfo } from "../GridColumn"; import { GridContext } from "../GridContext"; export declare function useActiveOnWheel(onWheel: EventListener): React.RefObject; export declare function useSumWidth(columns: GridColumnModel[]): number; export declare function useSum(source: number[]): number; export declare function useSumRangeWidth(columns: GridColumnModel[], range: NumberRange): number; export declare function useProd(source: number[]): number; export declare function useBodyVisibleColumnRange(midColumns: GridColumnModel[], scrollLeft: number, clientMidWidth: number): NumberRange; export declare function useClientMidWidth(clientWidth: number, leftWidth: number, rightWidth: number): number; export declare function useClientMidHeight(clientHeight: number, topHeight: number, botHeight: number): number; export declare function useBodyVisibleAreaTop(rowHeight: number, visibleRowRange: NumberRange, topHeight: number): number; export declare function useVisibleRowRange(scrollTop: number, clientMidHeight: number, rowHeight: number, rowCount: number): NumberRange; export declare function useColumnRange(columns: GridColumnModel[], range: NumberRange): GridColumnModel[]; export declare function useLeftScrolledOutWidth(midColumns: GridColumnModel[], bodyVisibleColumnRange: NumberRange): number; export declare function useRowIdxByKey(rowKeyGetter: RowKeyGetter, rowData: T[]): Map; export declare type SetState = (v: T | ((p: T) => T)) => void; export declare function useRowModels(getKey: RowKeyGetter, rowData: T[], visibleRowRange: NumberRange): GridRowModel[]; export declare const useColumnGroups: (grpPs: ColumnGroupProps[], startIdx: number) => GridColumnGroupModel[]; export declare function useVisibleColumnGroupRange(bodyVisColRng: NumberRange, midCols: GridColumnModel[], midGrpByColId: Map, leftGrpCount: number): NumberRange; export declare function last(source: T[]): T; export declare function useHeadVisibleColumnRange(bodyVisColRng: NumberRange, visColGrps: GridColumnGroupModel[], midColsById: Map>, leftColCount: number): NumberRange; export declare function useCols(colInfos: GridColumnInfo[], startIdx: number, groups: GridColumnGroupModel[]): GridColumnModel[]; export declare function useScrollToCell(visRowRng: NumberRange, rowHeight: number, clientMidHt: number, midCols: GridColumnModel[], bodyVisColRng: NumberRange, clientMidWidth: number, scroll: (left?: number, top?: number, source?: "user" | "table") => void): (rowIdx: number, colIdx: number) => void; export declare function useColumnResize(resizeColumn: (columnIndex: number, width: number) => void): (event: React.MouseEvent) => void; export declare function useFlatten(map: Map): T[]; export declare function useColumnRegistry(children: ReactNode): { leftCols: GridColumnModel[]; midCols: GridColumnModel[]; rightCols: GridColumnModel[]; leftGroups: GridColumnGroupModel[]; midGroups: GridColumnGroupModel[]; rightGroups: GridColumnGroupModel[]; contextValue: GridContext; }; export declare function useRowSelection(rowKeyGetter: RowKeyGetter, rowData: T[], defaultSelectedRowIdxs?: number[], selectedRowIdxs?: number[], rowSelectionMode?: GridRowSelectionMode, onRowSelected?: (selectedRowIdxs: number[]) => void): { onMouseDown: (event: React.MouseEvent) => void; selRowIdxs: Set; isAllSelected: boolean; isAnySelected: boolean; selectRows: ({ rowIndex, shift, meta, }: { rowIndex: number; shift?: boolean | undefined; meta?: boolean | undefined; }) => void; selectAll: () => void; unselectAll: () => void; }; export interface ColumnDragState { columnIndex: number; x: number; y: number; } export interface Target { columnIndex: number; x: number; } export declare function useColumnMove(columnMove: boolean | undefined, rootRef: RefObject, leftCols: GridColumnModel[], midCols: GridColumnModel[], rightCols: GridColumnModel[], cols: GridColumnModel[], scrollLeft: number, clientMidWidth: number, onColumnMove: GridColumnMoveHandler): { onColumnMoveHandleMouseDown: React.MouseEventHandler; dragState: ColumnDragState | undefined; activeTarget: Target | undefined; onColumnMoveCancel: () => void; }; export interface CellPosition { rowIdx: number; colIdx: number; } export interface CellRange { start: CellPosition; end: CellPosition; } export declare function cellPositionEquals(a: CellPosition, b: CellPosition): boolean; export declare function cellRangeEquals(a: CellRange | undefined, b: CellRange | undefined): boolean; export declare function useRangeSelection(cellSelectionMode?: GridCellSelectionMode): { selectedCellRange: CellRange | undefined; onCellMouseDown: (event: React.MouseEvent) => void; onKeyboardRangeSelectionStart: (pos: CellPosition) => void; onKeyboardRangeSelectionEnd: () => void; onCursorMove: (pos: CellPosition) => void; selectRange: (range: CellRange) => void; };