/**
 * Search engine for components and icons
 * Handles complex matching logic with tiered relevance ranking
 */
import type { ComponentEntry, IconEntry, SearchResult } from './types.js';
/**
 * Parse search query into terms or regex
 * @param query - Search query
 * @param splitTerms - Whether to split query into multiple terms
 * @param useRegex - Whether to treat query as regex
 * @returns Search terms and optional regex pattern
 */
export declare function parseSearchQuery(query: string, splitTerms: boolean, useRegex: boolean): {
    searchTerms: string[];
    regexPattern: RegExp | null;
};
/**
 * Search components and icons with tiered relevance ranking
 * @param components - Array of component entries to search
 * @param icons - Array of icon entries to search
 * @param query - Original search query
 * @param searchTerms - Parsed search terms
 * @param regexPattern - Optional regex pattern
 * @param matchAll - Whether all terms must match
 * @param splitTerms - Whether terms were split
 * @param maxResults - Maximum number of results to return
 * @param buildResourceUris - Function to build resource URIs for a match
 * @returns Sorted array of search results
 */
export declare function performSearch(components: ComponentEntry[], icons: IconEntry[], query: string, searchTerms: string[], regexPattern: RegExp | null, matchAll: boolean, splitTerms: boolean, maxResults: number, buildResourceUris: (item: ComponentEntry | IconEntry, category: 'component' | 'icon') => {
    [key: string]: string;
}): SearchResult[];
