import { FormFieldSize } from '../form'; import React from 'react'; import { BodyType } from './Body'; import { ColumnHeaderType } from './ColumnHeader'; import { DataCellType } from './DataCell'; import { ExpandableRowType } from './ExpandableRow'; import { HeaderType } from './Header'; import { HeaderCellType } from './HeaderCell'; import { RowType } from './Row'; export type SortDirection = 'ascending' | 'descending'; export type SortType = 'string' | 'date' | 'number'; export interface SortState { orderBy: string; direction: SortDirection; type?: SortType; } export interface TableProps extends React.TableHTMLAttributes { size?: FormFieldSize; zebraStripes?: boolean; sort?: SortState; onSortChange?: (sortKey?: string) => void; } export interface TableType extends React.ForwardRefExoticComponent> { Header: HeaderType; Body: BodyType; Row: RowType; DataCell: DataCellType; HeaderCell: HeaderCellType; ColumnHeader: ColumnHeaderType; ExpandableRow: ExpandableRowType; } export interface TableContextProps { size: 'medium' | 'small'; onSortChange?: (sortKey: string) => void; sort?: SortState; } export declare const TableContext: React.Context; export declare const Table: TableType; export default Table;