import { FC, ReactNode } from "react";
import { ITableProps } from "./Table";
export declare enum SortDirection {
    None = "none",
    Asc = "asc",
    Desc = "desc"
}
interface IHeaderDefinition {
    key: string;
    label?: string;
    sortable?: boolean;
    renderCallback?: (row: object, key?: string, index?: number) => ReactNode;
    style?: object;
    hideCollapsed?: boolean;
}
export interface IDataTableProps extends ITableProps {
    /** Object of header name, sort and style. */
    header: IHeaderDefinition[];
    /** Object of rows. */
    rows?: object[];
    /** CSS classes. */
    className?: string;
    /** Name of row by which we are sorting. */
    sortBy?: string;
    /** Direction by which we are sorting. */
    sortDirection?: SortDirection;
    /** Callback for sorting. */
    onSortCallback?: (sortKey: string, sortDirection: SortDirection) => void;
    /** Switch for column highlighting. */
    columnHighlight?: boolean;
    /** CSS classes for thead. */
    theadClass?: string;
    /** Column by which is data-table grouped. */
    groupBy?: string;
    /** No results Callback. */
    noResultsCallback?: () => ReactNode;
    /** Header of grouped list in data-table. */
    groupHead?: (row: object, index: string | null) => ReactNode;
    /** Grouped rows can be collapsed */
    isCollapsible?: boolean;
    /** Value to replace when column is empty */
    emptyValue?: object;
    /** loading indicator */
    loading?: boolean;
    /** loading rows */
    loadingRows?: number;
}
export declare const DataTable: FC<IDataTableProps>;
export {};
//# sourceMappingURL=DataTable.d.ts.map