import { ComputedRef, Ref } from 'vue'; export type TextSearchSource = T | Ref | ComputedRef | (() => T); export type TextSearchCandidate = unknown | readonly unknown[]; export interface UseTextSearchOptions { items: TextSearchSource; query: TextSearchSource; enabled?: TextSearchSource; getText: (item: TItem) => TextSearchCandidate; } export interface UseTextSearchReturn { query: ComputedRef; filteredItems: ComputedRef; matches: (item: TItem, query?: string | null | undefined) => boolean; } /** Shared text-search filtering for tables, lists, selectors, and chip inputs. */ export declare function useTextSearch(options: UseTextSearchOptions): UseTextSearchReturn; export declare function normalizeSearchQuery(value: string | null | undefined): string; export declare function candidateMatchesSearch(candidate: TextSearchCandidate, query: string): boolean;