import { type ComputedRef } from 'vue'; import type { LooseRequired } from '../../share/type'; import type { FilterValue, TableColumn, TableData, TableFilterable, TableFilterOption, TableProps } from '../type'; import type { HeaderCell, BodyCell } from './column'; export declare const useFilterable: (columnsInfo: ComputedRef<{ maxDepth: number; headerRows: HeaderCell[][]; leafColumns: BodyCell[]; }>, props: LooseRequired, emits: ((evt: "update:filterValue", value: FilterValue) => void) & ((evt: "filterSelect", value: any, key: string | number | symbol, option: TableFilterOption | string, column: TableColumn, event: InputEvent) => void) & ((evt: "filterChange", value: FilterValue) => void) & ((evt: "filterReset", key: string | number | symbol, event: MouseEvent) => void) & ((evt: "filterConfirm", key: string | number | symbol, event: MouseEvent) => void)) => readonly [import("vue").Ref, (rows: TableData[]) => TableData[], (filterable: TableFilterable, column: TableColumn) => import("vue/jsx-runtime").JSX.Element | null, { clearFilter: () => Promise; filter: (key: number | string | symbol, value: any[]) => Promise; }];