/** * Grid 3 Symbol Search Implementation * * The .pix files are simple text mappings: * searchTerm=symbolFilename=searchTerm * * Example: * above bw=above bw.png=above bw * active family=active family.png=active family */ import { FileAdapter } from '../../utils/io'; /** * Symbol search result */ export interface SymbolSearchResult { searchTerm: string; symbolFilename: string; displayName: string; library: string; exactMatch: boolean; } /** * Symbol search options */ export interface SymbolSearchOptions { grid3Path?: string; locale?: string; libraries?: string[]; limit?: number; fuzzyMatch?: boolean; } /** * Search index for a single library */ export interface LibrarySearchIndex { library: string; searchTerms: Map; filenames: Map; } /** * Parse a .pix file into search index * @param pixFilePath - Path to .pix file * @returns Search index */ export declare function parsePixFile(pixFilePath: string, fileAdapter?: FileAdapter): Promise; /** * Load search indexes for all available libraries * @param options - Search options * @returns Map of library name to search index */ export declare function loadSearchIndexes(options?: SymbolSearchOptions, fileAdapter?: FileAdapter): Promise>; /** * Search for symbols by term * @param searchTerm - Term to search for * @param options - Search options * @returns Array of search results */ export declare function searchSymbols(searchTerm: string, options?: SymbolSearchOptions): Promise; /** * Get symbol filename for a specific search term * @param searchTerm - Search term to look up * @param library - Library name * @param options - Search options * @returns Symbol filename or undefined */ export declare function getSymbolFilename(searchTerm: string, library: string, options?: SymbolSearchOptions): Promise; /** * Get display name for a symbol filename * @param symbolFilename - Symbol filename (e.g., "above bw.png") * @param library - Library name * @param options - Search options * @returns Display name or undefined */ export declare function getSymbolDisplayName(symbolFilename: string, library: string, options?: SymbolSearchOptions): Promise; /** * Get all search terms for a library * @param library - Library name * @param options - Search options * @returns Array of search terms */ export declare function getAllSearchTerms(library: string, options?: SymbolSearchOptions): Promise; /** * Search suggestions (autocomplete) * @param partialTerm - Partial search term * @param options - Search options * @returns Array of suggested terms */ export declare function getSearchSuggestions(partialTerm: string, options?: SymbolSearchOptions): Promise; /** * Search for symbols and return results with library references * @param searchTerm - Term to search for * @param options - Search options * @returns Array of full symbol references */ export declare function searchSymbolsWithReferences(searchTerm: string, options?: SymbolSearchOptions): Promise; /** * Count symbols in each library * @param options - Search options * @returns Map of library name to symbol count */ export declare function countLibrarySymbols(options?: SymbolSearchOptions): Promise>; /** * Get statistics about symbol libraries */ export interface SymbolSearchStats { totalLibraries: number; totalSymbols: number; libraries: Record; } /** * Get symbol search statistics * @param options - Search options * @returns Statistics about available symbols */ export declare function getSymbolSearchStats(options?: SymbolSearchOptions): Promise;