import type { ComputedRef, Ref } from 'vue'; import type { ColumnType, ColumnsType, SurelyTableProps, Key, FilterKey, FilterValue, FinallyColumnType } from '../components/interface'; export interface FilterState { column: ColumnType; key: Key; filteredKeys?: FilterKey; forceFiltered?: boolean; } export declare function generateFilterInfo(filterStates: FilterState[]): Record; export declare function getFilterData(data: RecordType[], filterStates: FilterState[]): RecordType[]; export declare function getNewColumnsByFilters(columns: ColumnsType, filterStates: FilterState[], pos?: string): ColumnsType; export default function useFilter(_props: SurelyTableProps, sortedData: ComputedRef, allColumns: Ref, onFilterChange: (filters: Record, filterStates: FilterState[]) => void): { filterStates: Ref[]>; filters: ComputedRef>; filterData: ComputedRef; getFilters: (newFilterStates: FilterState[]) => RecordType[]; changeFilter: (filterState: FilterState) => void; };