import React from 'react';
export declare type Column<T> = {
    name: string | JSX.Element;
    cell: React.FC<{
        row: T;
    }>;
    sort?: (row: T) => number | string;
    width?: string;
    className?: string;
};
export declare type SortOrder = 'ascending' | 'descending';
export declare type TableProps<T> = {
    id: string;
    data: T[];
    rowKey: (row: T) => number | string;
    columns: Column<T>[];
    defaultSortColumn?: number;
    defaultSortOrder?: SortOrder;
    onRowClick?: (row: T) => () => any;
    fullWidth?: boolean;
    caption?: string;
    className?: string;
    rowExpansionRender?: (row: T) => JSX.Element;
};
export declare type TableSort = {
    sortColumn?: number;
    sortOrder?: SortOrder;
};
export declare class Table<T> extends React.Component<TableProps<T>, TableSort> {
    constructor(props: TableProps<T>);
    setTableSort: (sort: TableSort) => void;
    render(): JSX.Element;
}
