/**
 * Fuzzy filtering for searchable select lists (openclaw-style).
 */
export declare function normalizeLowercaseStringOrEmpty(value: string): string;
export declare function isWordBoundary(text: string, index: number): boolean;
export declare function findWordBoundaryIndex(text: string, query: string): number | null;
export declare function fuzzyMatchLower(queryLower: string, textLower: string): number | null;
export declare function fuzzyFilterLower<T extends {
    searchTextLower?: string;
}>(items: T[], queryLower: string): T[];
export declare function prepareSearchItems<T extends {
    label?: string;
    description?: string;
    searchText?: string;
}>(items: T[]): (T & {
    searchTextLower: string;
})[];
