import React from 'react'; import { TableProps } from '@material-ui/core/Table'; import { TableBodyProps } from '@material-ui/core/TableBody'; import { TableCellProps } from '@material-ui/core/TableCell'; import { TableHeadProps } from '@material-ui/core/TableHead'; import { TablePaginationProps } from '@material-ui/core/TablePagination'; import { TableRowProps } from '@material-ui/core/TableRow'; import { getHeaders, getColumns } from './utils'; declare type ResolvePropType = T | ((obj: { rowData: TData; column: ColumnDef; }) => T | void); export declare const useStyles: (props?: any) => Record<"container" | "tableWrapper" | "cellSelected" | "cellHovered", string>; export declare type ColumnDef = { name: string; header?: string | React.ReactNode; cell?: (data: TData, index: number) => React.ReactNode; cellProps?: ResolvePropType; onClick?: TableCellProps['onClick']; onHeaderClick?: boolean | ((obj: { column: ColumnDef; }) => void); headerCellProps?: TableCellProps; bodyCellProps?: TableCellProps; orderBy?: string | boolean | ((a: any, b: any) => number); columns?: ColumnDef[]; }; export declare type MuiTableProps = { data: TData[] | null; columns: ColumnDef[]; bodyProps?: TableBodyProps; containerProps?: any; includeHeaders?: boolean; headerProps?: TableHeadProps; rowProps?: ResolvePropType; headerRowProps?: ResolvePropType; headerCellProps?: ResolvePropType; bodyRowProps?: ResolvePropType; bodyCellProps?: ResolvePropType; cellProps?: ResolvePropType; onHeaderClick?: (obj: { column: ColumnDef; }) => void; onCellClick?: (obj: { rowData: TData; column: ColumnDef; }) => void; orderBy?: string; orderDirection?: 'asc' | 'desc'; pagination?: TablePaginationProps; addPlaceholderRows?: boolean; tableWrapperProps?: React.HTMLAttributes; isCellHovered?: (obj: { column: ColumnDef; rowData: TData | null; hoveredColumn: ColumnDef | null; hoveredRowData: TData | null; }) => boolean; isCellSelected?: (obj: { column: ColumnDef; rowData: TData | null; }) => boolean; classes?: { container?: string; tableWrapper?: string; cellHovered?: string; cellSelected?: string; }; } & TableProps; declare function MuiTable(props: MuiTableProps): JSX.Element; export { getHeaders, getColumns }; declare const _default: typeof MuiTable; export default _default;