import { AnyObject } from "../../../_util/type.js"; import { devUseWarning } from "../../../_util/warning.js"; import { ColumnType, ColumnsType, FilterDropdownProps, FilterKey, FilterValue, GetPopupContainer, Key, TableLocale, TransformColumns } from "../../interface.js"; import { flattenKeys } from "./FilterDropdown.js"; import { Ref } from "vue"; //#region src/table/hooks/useFilter/index.d.ts interface FilterState { column: ColumnType; key: Key; filteredKeys?: FilterKey; forceFiltered?: boolean; } declare function collectFilterStates(columns: ColumnsType, init: boolean, pos?: string): FilterState[]; declare function generateFilterInfo(filterStates: FilterState[]): Record; declare function getFilterData(data: RecordType[], filterStates: FilterState[], childrenColumnName: string): RecordType[]; interface FilterConfig { prefixCls: string; dropdownPrefixCls: string; mergedFilterStates: FilterState[]; filterStates: Ref[]>; locale: TableLocale; filterDropdown?: (ctx: FilterDropdownProps & { column: ColumnType; }) => any; filterIcon?: (ctx: { column: ColumnType; filtered: boolean; }) => any; onFilterChange: (filters: Record, filterStates: FilterState[]) => void; getPopupContainer?: GetPopupContainer; rootClassName?: string; } declare function getMergedFilterStates(rawMergedColumns: ColumnsType, filterStates: FilterState[], warning?: ReturnType): FilterState[]; declare function useFilter(props: FilterConfig): readonly [TransformColumns, FilterState[], Record]; //#endregion export { FilterConfig, FilterState, collectFilterStates, useFilter as default, flattenKeys, generateFilterInfo, getFilterData, getMergedFilterStates };