/** * Semantic Analyzer Interfaces * SOLID Principles: Interface Segregation */ import { KnowledgeNode, KnowledgeTriad } from '../graph/types'; export interface SemanticAnalysisConfig { projectPath: string; filePatterns: string[]; includeTests: boolean; minConfidence: number; enableSemanticSimilarity: boolean; enablePatternDetection: boolean; } export interface AnalysisResult { nodesExtracted: number; triadsCreated: number; patterns: SemanticPattern[]; insights: string[]; } export interface SemanticPattern { name: string; type: string; confidence: number; nodes: string[]; description: string; } export interface IFileDiscoveryService { discoverFiles(): Promise; loadFileContents(files: string[]): Promise>; } export interface IASTAnalysisService { analyzeFile(filePath: string, content: string): Promise<{ nodes: KnowledgeNode[]; metadata: any; }>; getLanguageFromPath(filePath: string): string; } export interface INodeCreationService { createNodesFromAnalysis(analysis: any, filePath: string): Promise; extractNamespace(filePath: string): string; extractTags(entity: any): string[]; } export interface ITriadCreationService { createMethodCallTriads(callerId: string, calls: string[], filePath: string): Promise; createImportExportTriads(imports: any[], exports: any[], filePath: string): Promise; createInheritanceTriads(parentId: string, childId: string, relationType: string): Promise; } export interface IPatternDetectionService { detectSemanticSimilarities(nodes: KnowledgeNode[]): Promise; detectSemanticPatterns(nodes: KnowledgeNode[], triads: KnowledgeTriad[]): Promise; } export interface IAbstractionService { createAbstractions(nodes: KnowledgeNode[], triads: KnowledgeTriad[]): Promise; } //# sourceMappingURL=interfaces.d.ts.map