/** * 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[];