import * as React from "react"; import { ReactElement } from "react"; export interface TableColumn { name: string; header: () => ReactElement | ReactElement[]; width?: number; fixedWidth?: string; className?: string; } export interface TableRow { columns: { [key: string]: () => ReactElement | ReactElement[]; }; className?: string; userData?: T; } export interface TableProperties { columns: TableColumn[]; rows: TableRow[]; className?: string; headerClassName?: string; bodyClassName?: string; bodyOverlayOnly?: boolean; bodyOverlay?: () => ReactElement; hiddenColumns?: string[]; onHeaderContextMenu?: (event: React.MouseEvent) => void; onBodyContextMenu?: (event: React.MouseEvent) => void; onDrop?: (event: React.DragEvent) => void; onDragOver?: (event: React.DragEvent) => void; renderRow?: (row: TableRow, columns: TableColumn[], uniqueId: string) => React.ReactElement; } export interface TableState { hiddenColumns: string[]; } export interface TableRowProperties { columns: TableColumn[]; rowData: TableRow; } export interface TableRowState { hidden?: boolean; } export declare class TableRowElement extends React.Component, TableRowState> { constructor(props: any); render(): React.DetailedReactHTMLElement; } export declare class Table extends React.Component { private rowIndex; private refHeader; private refHiddenHeader; private refBody; private lastHeaderHeight; private lastScrollbarWidth; constructor(props: any); render(): JSX.Element; componentDidUpdate(prevProps: Readonly, prevState: Readonly, snapshot?: any): void; }