/** * Search interfaces following Interface Segregation Principle */ export interface SemanticChunk { id: string; filePath: string; content: string; startLine: number; endLine: number; chunkIndex: number; isFullFile: boolean; hash: string; metadata: { language: string; size: number; functions: string[]; classes: string[]; imports: string[]; exports: string[]; significance: 'high' | 'medium' | 'low'; }; } export interface SemanticSearchResult { chunk: SemanticChunk; relevanceScore: number; matchReason: string; embedding?: number[]; } export interface SearchQuery { text: string; projectId?: string; maxResults?: number; minSimilarity?: number; fileTypes?: string[]; includeChunks?: boolean; } export interface SearchResponse { query: string; results: SemanticSearchResult[]; totalResults: number; processingTime: number; searchStats: { indexedFiles: number; totalChunks: number; matchesFound: number; }; } export interface IContentChunker { createSemanticChunks(filePath: string, content: string, fileHash: string): Promise; createStructuralChunks(filePath: string, content: string, fileHash: string, lines: string[]): Promise; } export interface IEmbeddingGenerator { generateEmbeddings(chunks: SemanticChunk[]): Promise; generateQueryEmbedding(query: string): Promise; } export interface ISearchIndexStorage { storeChunks(projectId: string, chunks: SemanticChunk[], embeddings: number[][]): Promise; retrieveChunks(query: SearchQuery): Promise; removeChunks(projectId: string, filePaths: string[]): Promise; getIndexStats(projectId?: string): Promise<{ totalFiles: number; totalChunks: number; lastUpdated: Date; projectSize: number; }>; } export interface ISearchQueryProcessor { processQuery(query: SearchQuery): Promise; executeSimilaritySearch(queryEmbedding: number[], query: SearchQuery): Promise; } export interface IProjectIndexer { initializeProject(projectId: string, projectPath: string): Promise; updateFiles(projectId: string, filePaths: string[]): Promise; removeFiles(projectId: string, filePaths: string[]): Promise; } //# sourceMappingURL=search-interfaces.d.ts.map