import type { AnyObject } from '../../_util/type'; import type { Locale } from '../../locale'; import type { ColumnsType, ColumnTitleProps, ColumnType, Key, SorterResult, SorterTooltipProps, SortOrder, TableLocale, TransformColumns } from '../interface'; export interface SortState { column: ColumnType; key: Key; sortOrder: SortOrder | null; multiplePriority: number | false; } export declare const getSortData: (data: readonly RecordType[], sortStates: SortState[], childrenColumnName: string) => RecordType[]; interface SorterConfig { prefixCls: string; mergedColumns: ColumnsType; /** * Columns before applying the responsive filter. * Used to collect `defaultSortOrder` / controlled `sortOrder` for columns * that are currently hidden by `column.responsive`, so the user's sort * intent is preserved when the column appears at a different breakpoint. * Falls back to `mergedColumns` when not provided. */ baseColumns?: ColumnsType; onSorterChange: (sorterResult: SorterResult | SorterResult[], sortStates: SortState[]) => void; sortDirections: SortOrder[]; tableLocale?: TableLocale; showSorterTooltip?: boolean | SorterTooltipProps; globalLocale?: Locale['global']; } declare const useFilterSorter: (props: SorterConfig) => [TransformColumns, SortState[], ColumnTitleProps, () => SorterResult | SorterResult[]]; export default useFilterSorter;