import * as React from 'react'; import { SelectRange } from './selectionState/selectionTypes'; import { ColumnDef, Coord, DataRow, EditableCellDef, Size } from './types'; export interface CellDataChangeEvent { newData: T; cell: EditableCellDef; rowIndex: number; colIndex: number; fieldName: string; } interface RequiredProps { columns: ColumnDef[]; data: Array>; rowHeight: number; onSelectionChangeStart?: (selectRange: SelectRange | null) => void; onSelectionChangeUpdate?: (selectRange: SelectRange) => void; onSelectionChangeEnd?: (selectRange: SelectRange | null) => void; onSelectionCleared?: () => void; onAutofill?: (selectRange: SelectRange, fillRange: SelectRange) => void; onCellDataChanged?: (event: CellDataChangeEvent) => void; } interface DefaultedProps { cssWidth: string; cssHeight: string; borderWidth: number; frozenRows: number; frozenCols: number; focusedColIndex: number | null; shouldAllowAutofill: (selectRange: SelectRange) => boolean; } export declare type DefaultedReactCanvasGridProps = RequiredProps & Partial; export declare type ReactCanvasGridProps = RequiredProps & DefaultedProps; export interface EditingCell { cell: EditableCellDef; rowIndex: number; colIndex: number; left: number; top: number; width: number; height: number; fieldName: string; } interface ReactCanvasGridState { rootSize: Size | null; gridOffset: Coord; title: string | null; editingCell: EditingCell | null; cursorType: 'crosshair' | 'default'; dpr: number; horizontalGutterBounds: ClientRect | null; verticalGutterBounds: ClientRect | null; } export declare class ReactCanvasGrid extends React.PureComponent, ReactCanvasGridState> { static defaultProps: DefaultedProps; private readonly rootRef; private gridState; constructor(props: ReactCanvasGridProps); componentDidMount(): void; componentDidUpdate(prevProps: ReactCanvasGridProps): void; componentWillUnmount(): void; render(): JSX.Element; private onWheel; private onMouseDown; private onMouseMove; private onMouseUp; private onDoubleClick; private onKeyDown; private startEditingCell; private cancelEditingCell; private stopEditingCell; private focusRoot; } export {};