import { SelectableData } from '../models';
import { Icon } from 'itlab-icons';
type SortFields<T extends object> = Partial<Record<keyof T, string | [label: string, Icon] | [label: string, description: string] | [label: string, description: string, Icon]>>;
export type SortableConfig<T extends object> = {
    sortField: keyof T;
    sortFields?: SortFields<T>;
    sortDirection?: 1 | -1;
};
export type Sortable<T extends object> = {
    sortField: keyof T;
    sortFields: SortFields<T>;
    sortDirection: 1 | -1;
    selectableSortFields: SelectableData<string>[];
    selectedSortField: SelectableData<string> | undefined;
};
export declare function useSortable<T extends object>(cfg: SortableConfig<T>): Sortable<T>;
export {};
