import type { Ref } from 'vue';
import type { TableLocale } from '@antdv/ui/es/locale';
import type { TooltipProps } from '../../../tooltip';
import type { ColumnTitleProps, SortOrder, SortState, SorterResult, TableColumnsType, TransformColumns } from '../interface';
export declare function getSortData<RecordType>(data: readonly RecordType[], sortStates: Array<SortState<RecordType>>, childrenColumnName: string): RecordType[];
interface SorterConfig<RecordType> {
    prefixCls: Ref<string>;
    mergedColumns: Ref<TableColumnsType<RecordType>>;
    onSorterChange: (sorterResult: SorterResult<RecordType> | Array<SorterResult<RecordType>>, sortStates: Array<SortState<RecordType>>) => void;
    sortDirections: Ref<SortOrder[]>;
    tableLocale?: Ref<TableLocale>;
    showSorterTooltip?: Ref<boolean | TooltipProps>;
}
export default function useFilterSorter<RecordType>({ prefixCls, mergedColumns, onSorterChange, sortDirections, tableLocale, showSorterTooltip, }: SorterConfig<RecordType>): [
    TransformColumns<RecordType>,
    Ref<Array<SortState<RecordType>>>,
    Ref<ColumnTitleProps<RecordType>>,
    Ref<SorterResult<RecordType> | Array<SorterResult<RecordType>>>
];
export {};
