import { type ComputedRef } from 'vue'; import type { LooseRequired } from '../../share/type'; import type { SortOrder, TableColumn, TableData, TableProps, TableSortable } from '../type'; import type { BodyCell, HeaderCell } from './column'; export declare const useSortable: (columnsInfo: ComputedRef<{ maxDepth: number; headerRows: HeaderCell[][]; leafColumns: BodyCell[]; }>, props: LooseRequired, emits: ((evt: "update:sortOrder", value: SortOrder) => void) & ((evt: "sortSelect", value: "asc" | "desc" | "none", key: string | number | symbol, column: TableColumn, event: MouseEvent) => void) & ((evt: "sortOrderChange", value: SortOrder) => void)) => readonly [import("vue").Ref, (rows: TableData[]) => TableData[], (sortable: TableSortable, column: TableColumn) => import("vue/jsx-runtime").JSX.Element | null, { clearSort: () => Promise; sort: (key: number | string | symbol, value: "none" | "asc" | "desc") => Promise; }]; export declare const defaultComparator: (a: TableData, b: TableData, order: "asc" | "desc", field?: string) => number;