import * as React from 'react'; import { Component, ReactElement } from 'react'; import { Grid, IBuilderUpdateContext, IColDescriptor, IGridDataChange, IGridDataResult, IGridDimension, IGridOpts, IRowColBuilder, IRowColDescriptor, IRowDescriptor } from 'grid'; export declare type ReactRowCol = Omit & Partial<{ editOptions: Omit, 'getEditor'> & Partial, 'getEditor'>>; }>; export declare type ReactRowColDescriptor = ReactRowCol; export declare type IReactColDescriptor = ReactRowCol; export declare type IReactRowDescriptor = ReactRowCol; export declare type GridEditState = { editing: boolean; row: number; col: number; typedText?: string; }; export interface IGridProps extends IGridOpts { rows: Array>; cols: Array>; data?: Array>>; cellRenderer?(context: IBuilderUpdateContext): ReactElement | string | undefined; headerCellRenderer?(context: IBuilderUpdateContext): ReactElement | string | undefined; setData?(changes: Array>): Array> | undefined; className?: string; setGrid?(grid: Grid): void; setEditState?(opts: GridEditState): void; editor?: React.ReactElement; saveEdit?: () => Promise | undefined>; } export interface IGridState { editState?: GridEditState; editorContainer?: HTMLDivElement; } export declare class ReactGrid extends Component { grid: Grid | undefined; cellRendererBuilder: IRowColBuilder | undefined; headerCellRendererBuilder: IRowColBuilder | undefined; gridContainer: React.RefObject; constructor(props: IGridProps); private createGrid; setEditState: (editState: GridEditState) => void; ensureGridContainerInDOM(): Grid; createDiscriptors(descriptorObjects: Array>, dim: IGridDimension, grid: Grid): { baseDescriptors: IRowColDescriptor[]; needsExpandedDescriptors: IRowColDescriptor[]; }; reflectNewRowsOrCols(nextDescriptors: Array>, dim: IGridDimension, grid: Grid): void; descriptorsChanged(d1: Array>, d2: Array>): boolean; handleNewData(data: Array>> | undefined, grid: Grid): void; componentDidMount(): void; componentDidUpdate(prevProps: IGridProps): void; componentWillUnmount(): void; render(): JSX.Element; }