import { ColumnsType, ColumnType, Key, TableLocale } from '../interfaces'; import type { TooltipProps } from '../../Tooltip/interfaces'; export declare type SortOrder = 'desc' | 'asc' | null; export interface ControlledSorter { columnKey: Key; order: SortOrder; } export interface SortState { column: ColumnType; key: Key; sortOrder: SortOrder | null; } export interface SorterResult { column?: ColumnType; order?: SortOrder; field?: Key | readonly Key[]; columnKey?: Key; } interface SorterConfig { mergedColumns: ColumnsType; onSorterChange: (sorterResult: SorterResult) => void; sortDirections: SortOrder[]; controlledSorter?: ControlledSorter | null; tableLocale?: TableLocale; showSorterTooltip?: boolean | TooltipProps; } export default function useSorter({ mergedColumns, onSorterChange, sortDirections, controlledSorter, tableLocale, showSorterTooltip, }: SorterConfig): [ ColumnsType, SortState | null, () => SorterResult ]; export declare function getSortData(data: readonly RecordType[], sortState: SortState | null): RecordType[]; export {};