import { ColumnDef } from '@tanstack/react-table';
import { default as React } from 'react';
export interface DataTableColumnMeta {
    align?: 'left' | 'center' | 'right';
    disableRowClick?: boolean;
    fallback?: string;
    filterValueExcludeList?: string[];
    filterValueIncludeList?: string[];
    type?: string;
    valueLabelMap?: Record<string, string>;
}
export interface DataTableProps<T> {
    className?: string;
    columns: ColumnDef<T, any, any>[];
    data: T[] | undefined | null;
    defaultColumnFilters?: {
        id: string;
        value: string[];
    }[];
    defaultSorting?: {
        id: string;
        desc?: boolean;
    }[];
    emptyRows?: boolean;
    enableColumnFilters?: boolean;
    enableFiltering?: boolean;
    enablePagination?: boolean;
    enableSearch?: boolean;
    enableSorting?: boolean;
    getRowClassName?: (rowData: T, index: number) => string;
    grouping?: string[];
    loading?: boolean;
    noDataComponent?: React.ReactNode;
    onRowClick?: (rowData: T) => void;
    onSelectionChange?: (selectedRows: T[]) => void;
    pageSize?: number | 'all';
    showRowSelectors?: boolean;
    tableClassName?: string;
}
export interface DataTableRef {
    clearSelection: () => void;
}
declare const DataTable: <T>(p: DataTableProps<T> & {
    ref?: React.Ref<DataTableRef>;
}) => React.ReactElement;
export default DataTable;
