/**
 * Universal Search Engine
 * Provides fuzzy search with intelligent scoring, exact match prioritization,
 * and automatic field detection for any object structure.
 */
export interface SearchOptions {
    /** Fields to search in (if not provided, will search all string fields) */
    fields?: string[];
    /** Custom field weights (higher = more important) */
    fieldWeights?: Record<string, number>;
    /** Minimum similarity threshold for fuzzy matching (0-1) */
    fuzzyThreshold?: number;
    /** Minimum query length for fuzzy matching */
    minFuzzyLength?: number;
    /** Maximum number of results to return */
    limit?: number;
    /** Case sensitive search */
    caseSensitive?: boolean;
}
/** Exported default search options */
export declare const DEFAULT_SEARCH_OPTIONS: {
    fieldWeights: Record<string, number>;
    fuzzyThreshold: number;
    minFuzzyLength: number;
    limit: number;
    caseSensitive: boolean;
};
export interface SearchResult<T> {
    item: T;
    score: number;
    matches: SearchMatch[];
}
export interface SearchMatch {
    field: string;
    value: string;
    score: number;
    type: "exact-start" | "exact-contain" | "fuzzy";
    position?: number;
}
/**
 * Universal search function that works with any data structure
 * Optimized for memory efficiency and performance
 */
export declare function search<T>(data: T[], query: string, options?: SearchOptions): SearchResult<T>[];
/**
 * Simplified search function that returns just the items
 */
export declare function searchItems<T>(data: T[], query: string, options?: SearchOptions): T[];
/**
 * Search with field-specific configuration
 */
export declare function createSearcher<T>(config: SearchOptions): (data: T[], query: string, overrides?: Partial<SearchOptions>) => SearchResult<T>[];
/**
 * Create a search function with common default options for documents
 */
export declare function createDocumentSearcher<T>(): (data: T[], query: string, overrides?: Partial<SearchOptions>) => SearchResult<T>[];
/**
 * Quick search function with sensible defaults for most use cases
 */
export declare function quickSearch<T>(data: T[], query: string, fields?: string[]): T[];
/**
 * Clear all internal caches to free memory
 * Useful for long-running applications or when switching between different datasets
 */
export declare function clearSearchCaches(): void;
/**
 * Get cache statistics for monitoring memory usage
 */
export declare function getCacheStats(): {
    stringProcessingCacheSize: number;
    searchCallCount: number;
};
//# sourceMappingURL=index.d.ts.map