import { ComputedRef, MaybeRefOrGetter } from 'vue';
/**
 * Clears HTML tags from a string
 * @param html - HTML string to clean
 * @returns Plain text without HTML tags
 */
export declare function clearHtml(value?: string): string;
/**
 * Normalizes text by removing special characters and converting to lowercase
 * @param text - Text to normalize
 * @returns Normalized text
 */
export declare function normalizeText(text: string): string;
export interface SearchItemParams<T> {
    searchTerm?: MaybeRefOrGetter<string>;
    items?: MaybeRefOrGetter<T[]>;
    keysToSearch?: (keyof T extends string ? keyof T : string)[];
    fieldWeights?: Record<string, number>;
    minChars?: number;
    serverSearch?: (query: string) => Promise<T[]>;
    debounceMs?: number;
}
export interface SearchResult<T> {
    results: ComputedRef<T[]>;
    resultCount: ComputedRef<number>;
    hasResults: ComputedRef<boolean>;
    isSearching: ComputedRef<boolean>;
    isLoading: ComputedRef<boolean>;
}
/**
 * Generic search function that searches for a term within specified object properties
 * If keysToSearch is not provided, searches all keys (including nested ones)
 * @param params - Search parameters including searchTerm, items, keys and weights
 * @returns Filtered and sorted array of items that match the search terms
 */
export declare function searchItems<T>(params: SearchItemParams<T>): T[];
/**
 * Vue composable for searching items with reactive results
 * Supports both client-side filtering and server-side search
 * @param params Search parameters
 * @returns Reactive search results and metadata
 */
export declare function useSearch<T>(params: SearchItemParams<T>): SearchResult<T>;
//# sourceMappingURL=useSearch.d.ts.map