import { ComputedRef, Ref } from 'vue'; export type SortedItemsSource = T | Ref | ComputedRef | (() => T); export type SortOrder = 'asc' | 'desc'; export interface SortDescriptor { key: TKey; direction?: SortOrder | null; } export interface CompareSortValuesOptions { caseSensitive?: boolean; } export interface SortComparatorContext { key: TKey; direction: SortOrder; a: TItem; b: TItem; } export type SortComparator = (aValue: unknown, bValue: unknown, context: SortComparatorContext) => number; export interface UseSortedItemsOptions { items: SortedItemsSource; sort: SortedItemsSource | null | undefined>; enabled?: SortedItemsSource; caseSensitive?: SortedItemsSource; getValue: (item: TItem, key: TKey) => unknown; compare?: SortComparator; } export interface UseSortedItemsReturn { sort: ComputedRef | null | undefined>; sortedItems: ComputedRef; } /** Shared sorting for SDK tables and lists with stable empty-value handling. */ export declare function useSortedItems(options: UseSortedItemsOptions): UseSortedItemsReturn; export declare function compareSortValues(aValue: unknown, bValue: unknown, direction?: SortOrder, options?: CompareSortValuesOptions): number;