import { TableBodyProps, TablePaginationProps, TableProps } from '@mui/material'; import { StrictOmit } from 'fwork-jsts-common'; import React, { ReactNode } from 'react'; import { StyledTableRowProps, TableComponentSetCurrPageProps } from './common'; export interface TableComponentProps { downloadCsv?: boolean; bodyList: T[]; header?: ReactNode; footer?: ReactNode; wrapperProps?: React.DetailedHTMLProps, HTMLDivElement>; tableShadowContainerProps?: React.DetailedHTMLProps, HTMLDivElement>; tableScrollContainerProps?: React.DetailedHTMLProps, HTMLDivElement>; tableProps?: TableProps; bodyProps?: TableBodyProps; paginationProps?: StrictOmit; bodyRowBuilder: (item: T, idx: number) => React.ReactNode; onPageChange?: (page: number) => void; onRowsPerPageChange?: (rowsPerPage: number) => void; setCurrPageRef?: React.MutableRefObject; /** * If you set rowProps, you don't need to return a `TableRow` in the `bodyRowBuilder`; `rowProps` already wraps the elements in a `TableRow`. */ rowProps?: { onClick?: (event: React.MouseEvent, item: T) => void; onChangeChecked?: (e: React.ChangeEvent, item: T, checked: boolean) => void; } & StrictOmit; } export declare const TableComponent: React.FC>;