import React from 'react'; import { ExternalStyles } from '../../../styles'; import { TableHeaderProps, TableProps } from '../Table'; export interface TableColumnConfig { name: string; header?: React.ReactNode; sortable?: boolean; style?: ExternalStyles; align?: 'left' | 'center' | 'right'; render(row: T): React.ReactNode; } export interface DataTableProps extends TableProps { rows: ReadonlyArray; columns: Array>; loading?: boolean; sort?: ReadonlyArray; onSortChange?(sort: string[]): void; render?(renderProps: DataTableRenderProps): React.ReactNode; onRowClick?(row: T): any; } export interface DataTableRenderProps extends DataTableProps { getHeaderProps(column: TableColumnConfig | string): TableHeaderProps; getColumn(columnName: string): TableColumnConfig; } export declare function DataTable(props: DataTableProps): JSX.Element; export declare namespace DataTable { var defaultProps: Partial>; } export declare function DataTableDefault(props: DataTableRenderProps): JSX.Element; export declare const defaultColumnStyles: (col: TableColumnConfig) => { textAlign: "left" | "right" | "center"; };