import { CodeGraphDatabase } from '../database/Database'; import { SearchQuery, SearchResult, SearchAggregation, SearchFilters, CallGraphHierarchy } from './types'; export declare class SearchEngine { private database; private textSearch; private graphSearch; private resultRanker; private cache; constructor(database: CodeGraphDatabase); search(query: SearchQuery): Promise<{ results: SearchResult[]; aggregation: SearchAggregation; cached: boolean; }>; searchSymbols(text: string, filters?: SearchFilters): Promise; searchCode(text: string, filters?: SearchFilters): Promise; findReferences(symbolId: string, filters?: SearchFilters): Promise; findImplementations(interfaceId: string, filters?: SearchFilters): Promise; findCallers(symbolId: string, maxDepth?: number, filters?: SearchFilters): Promise; findCallees(symbolId: string, maxDepth?: number, filters?: SearchFilters): Promise; buildCallGraph(symbolId: string, direction: 'callers' | 'callees', maxDepth?: number): Promise<{ nodes: import("../database").DatabaseNode[]; relationships: import("../database").DatabaseRelationship[]; hierarchy: CallGraphHierarchy; }>; findDependencies(nodeId: string, direction?: 'inbound' | 'outbound', filters?: SearchFilters): Promise; analyzeDependencies(moduleId: string): Promise<{ imports: SearchResult[]; exports: SearchResult[]; dependents: SearchResult[]; }>; analyzeImpact(symbolId: string, maxDepth?: number): Promise<{ directImpact: SearchResult[]; transitiveImpact: SearchResult[]; impactScore: number; }>; fuzzySearch(text: string, threshold?: number, filters?: SearchFilters): Promise; getSymbolInfo(symbolId: string): Promise<{ symbol: SearchResult | null; callers: SearchResult[]; callees: SearchResult[]; references: SearchResult[]; implementations: SearchResult[]; }>; exploreCodebase(repository?: string): Promise<{ overview: { totalFiles: number; totalSymbols: number; languages: string[]; topDirectories: string[]; }; topSymbols: SearchResult[]; recentFiles: SearchResult[]; dependencies: SearchResult[]; }>; getSearchSuggestions(partial: string, limit?: number): Promise; getCacheStats(): { size: number; maxSize: number; hitRate: number; entries: Array<{ key: string; accessCount: number; lastAccessed: number; age: number; }>; }; clearCache(): void; optimizeSearch(): Promise; /** * Search text content in files */ searchText(query: string, limit?: number): Promise; /** * Search files by name or path */ searchFiles(query: string, limit?: number): Promise; /** * Semantic search (currently maps to text search) */ searchSemantic(query: string, limit?: number): Promise; private performSearch; private applyPostFiltering; private createSearchContext; private getCachedResults; private cacheResults; private createAggregation; private createEmptyAggregation; private nodeToSearchResult; destroy(): void; } //# sourceMappingURL=SearchEngine.d.ts.map