import { ButtonProps } from '../Button';
import { BoxProps } from '../Box';
import { Props as CheckboxProps } from '../Checkbox';
export interface TableProps extends BoxProps {
    columns: any;
    data?: any;
    fetchData?: any;
    resetOn?: any;
    title?: any;
    empty?: {
        icon?: any;
        copy?: any;
    };
    batchActions?: TableBatchActionType[];
    rowActions?: TableRowActionType[];
    updateData?: any;
    subRow?: (rowData: Record<string, any>, rowIndex: number) => void;
    defaultSort?: {
        accessor: string;
        desc?: boolean;
    };
    sortable?: boolean;
    selectable?: boolean;
    pageStart?: number;
    pageSize?: number;
    pageSizes?: number[];
    canSkip?: boolean;
    isLoading?: boolean;
    refresh?: () => void;
    lastUpdate?: string;
    noHeader?: boolean;
    onRowClick?: (rowData: Record<string, any>, rowIndex: number) => void;
}
export interface TableBatchActionType {
    icon?: any;
    label?: string;
    buttonProps?: ButtonProps;
    needsSelection?: boolean;
    isRefresh?: boolean;
    condition?: boolean;
    click?: (selectedData: Record<string, any>, selectedIndices: string[]) => void;
    showWhenLoading?: boolean;
}
export interface TableBatchActionsProps extends BoxProps {
    batchActions: TableBatchActionType[];
    showBatchActions: boolean;
    totalSelectedRows: number;
    selectedData: any;
    selectedRowIndices: string[];
    refresh?: () => void;
    lastUpdate?: string;
    isLoading?: boolean;
}
export interface TableEditableCellProps {
    cell: any;
    data: any;
    updateData: any;
    setSkipTableReset: any;
}
export interface TablePaginationProps {
    canPreviousPage: boolean;
    canNextPage: boolean;
    nextPage: any;
    previousPage: any;
    setPageSize?: any;
    totalRows?: number;
    pageIndex: number;
    pageSize: number;
    pageSizes?: number[];
    pageCount?: number;
    gotoPage?: any;
}
export interface TableRowActionsProps {
    hooks: any;
    selectable?: boolean;
    setShowBatchActions: any;
    rowActions?: TableRowActionType[];
    subRow?: (rowData: Record<string, any>, rowIndex: number) => void;
    setSkipTableReset: any;
}
export interface TableCheckboxProps extends CheckboxProps {
    onChange: any;
    setShowBatchActions: any;
    indeterminate: boolean;
}
export interface TableRowActionType {
    id: string;
    action: (rowData: Record<string, any>, rowIndex: number) => void;
    Content: any;
    onlyShowOnHover?: boolean;
    ContentProps?: any;
    ContentChildren?: any;
    disabled?: (rowData: Record<string, any>, rowIndex: number) => boolean;
}
//# sourceMappingURL=TableTypes.d.ts.map