import { SortInfo } from "./DataTable";
export default function useSortableDataTable<T, U extends keyof T>(initialData: T[], columnMapping: Record<U, string>, defaultSortBy?: SortInfo[]): {
    sortedData: T[];
    dataTableState: {
        selected: Record<string, boolean>;
        selectedCount: number;
        isAllRowsSelected: boolean;
        sortBy: SortInfo[];
        defaultSortBy: SortInfo[];
    };
    dataTableHook: {
        setSelected: (selection: Record<string, boolean>, isAllRowsSelected: boolean) => void;
        setSortBy: (sort: SortInfo[]) => void;
        selected: Record<string, boolean>;
        isAllRowsSelected: boolean;
        toggleSelectAll: () => void;
    };
};
