import * as React from 'react';
import type { ITableCellLayoutProps } from './TableCell';
import type { ITableRowLayoutProps } from './TableRow';
export interface ITableColumn {
    name: string;
    sortDirection?: 'ascending' | 'descending';
    onSort?: () => any;
}
export declare type ITableColumns = Readonly<Array<string | ITableColumn>>;
export interface ITableLayoutProps {
    columns: ITableColumn[];
    isMobile: boolean;
    expandable?: boolean;
    expandAll: () => any;
    children?: React.ReactNode;
}
export interface ITableLayout {
    TableLayout: React.ComponentType<ITableLayoutProps>;
    TableRowLayout: React.ComponentType<ITableRowLayoutProps>;
    TableCellLayout: React.ComponentType<ITableCellLayoutProps>;
}
export interface ITableProps {
    layout: ITableLayout;
    columns: ITableColumns;
    expandable?: boolean;
    children?: React.ReactNode;
}
export declare const Table: (props: ITableProps) => JSX.Element;
