import { TableCellProps } from "@material-ui/core/TableCell"; import * as React from "react"; import { ISelectionApi } from "../SelectionApi"; import { IExportApi } from "./excelexport/IExportApi"; import { IPagingInfo } from "./paging"; import * as sc from "./Table.sc"; import { ISortApi } from "./useTableQuerySort"; export declare function TableBodyRow({ innerRef, ...props }: sc.ITableBodyRowProps): JSX.Element; export interface ITableHeadRowProps extends ITableHeadColumnsProps { } export interface ITableHeadColumnsProps { columns: Array>; sortApi?: ISortApi; } export declare function TableHeadColumns({ columns, sortApi }: ITableHeadColumnsProps): JSX.Element; export interface ITableColumnsProps { row: TRow; columns: Array>; } export declare function TableColumns({ row, columns }: ITableColumnsProps): JSX.Element; export interface IRow { id: string | number; } export declare enum VisibleType { Browser = "browser", Export = "export" } export declare type Visible = boolean | { [key in VisibleType]?: boolean; }; export interface ITableColumn { name: string; visible?: Visible; header?: string | React.ReactNode; headerExcel?: string; render?: (row: TRow) => React.ReactNode; renderExcel?: (row: TRow) => string | number; formatForExcel?: string; sortable?: boolean; cellProps?: TableCellProps; headerProps?: TableCellProps; } export interface ITableRowProps extends ITableColumnsProps { index: number; key: any; rowProps: sc.ITableBodyRowProps; } export interface ITableProps { data: TRow[]; totalCount: number; selectedId?: string; selectable?: boolean; page?: number; renderTableRow?: (props: ITableRowProps) => React.ReactNode; renderHeadTableRow?: (props: ITableHeadRowProps) => React.ReactNode; selectionApi?: ISelectionApi; pagingInfo?: IPagingInfo; rowName?: string | ((count: number) => string); hideTableHead?: boolean; columns: Array>; sortApi?: ISortApi; paginationPosition?: "bottom" | "top" | "both"; exportApis?: Array>; } export declare class Table extends React.Component> { private domRef; constructor(props: ITableProps); render(): JSX.Element; private handleClick; private handleKeyDown; private isSelected; }