/** * Core interface definitions for the Intelligent Code Auxiliary System */ import { ProjectContext, InitializationProgress, DetectedPattern, QuestionnaireResponse, SmartQuestion, AnalysisResult, MCPToolResult, InitializationRequest, SmartQuestionRequest, ResumeInitializationRequest } from './types'; export interface DatabaseManager { initialize(): Promise; close(): Promise; migrate(): Promise; saveInitializationProgress(progress: InitializationProgress): Promise; getInitializationProgress(projectPath: string): Promise; updateInitializationProgress(progress: InitializationProgress): Promise; deleteInitializationProgress(projectPath: string): Promise; saveDetectedPattern(pattern: DetectedPattern): Promise; getDetectedPatterns(projectPath: string): Promise; deleteDetectedPatterns(projectPath: string): Promise; saveQuestionnaireResponse(response: QuestionnaireResponse): Promise; getQuestionnaireResponses(projectPath: string): Promise; saveAnalysisResult(result: AnalysisResult): Promise; getAnalysisResults(projectPath: string, analysisType?: string): Promise; } export interface InitializationSystem { initialize(request: InitializationRequest): Promise>; resume(request: ResumeInitializationRequest): Promise>; getProgress(projectPath: string): Promise>; } export interface ProjectProfiler { analyzeProject(projectPath: string): Promise; detectTechStack(projectPath: string): Promise; estimateProjectSize(projectPath: string): Promise; } export interface SmartQuestionnaire { generateQuestions(request: SmartQuestionRequest): Promise; validateResponse(questionId: string, response: string): boolean; getRecommendation(questionId: string, response: string): string | undefined; } export interface PatternDetector { detectArchitecturalPatterns(projectPath: string): Promise; detectDesignPatterns(projectPath: string): Promise; detectCodingStandards(projectPath: string): Promise; } export interface StandardsInferencer { inferFromExistingCode(projectPath: string): Promise>; generateRecommendations(patterns: DetectedPattern[]): Promise; } export interface PurposeAnalyzer { analyzeDomain(projectPath: string, projectContext: ProjectContext): Promise; identifyBusinessRules(projectPath: string): Promise; } export interface BatchProcessor { processBatch(items: T[], processor: (item: T) => Promise, batchSize: number, onProgress?: (processed: number, total: number) => void): Promise; processWithResume(items: T[], processor: (item: T) => Promise, resumeToken: string, batchSize: number): Promise<{ results: R[]; completed: boolean; newResumeToken: string; }>; } export interface ProgressTracker { startTracking(projectPath: string, totalItems: number): string; updateProgress(resumeToken: string, processedCount: number, currentItem?: string): void; getProgress(resumeToken: string): InitializationProgress | null; completeTracking(resumeToken: string): void; } export interface ResumableAnalyzer { saveState(resumeToken: string, state: any): Promise; loadState(resumeToken: string): Promise; clearState(resumeToken: string): Promise; } export interface MCPServer { start(): Promise; stop(): Promise; registerTool(name: string, handler: MCPToolHandler): void; } export interface MCPToolHandler { (params: any): Promise; } export interface FileSystemHelper { getAllFiles(directory: string, extensions?: string[]): Promise; getFileContent(filePath: string): Promise; getFileStats(filePath: string): Promise; fileExists(filePath: string): Promise; createDirectory(directoryPath: string): Promise; writeFile(filePath: string, content: string): Promise; } export interface CacheManager { get(key: K): Promise; set(key: K, value: V, ttl?: number): Promise; delete(key: K): Promise; clear(): Promise; has(key: K): Promise; } export interface Logger { debug(message: string, meta?: any): void; info(message: string, meta?: any): void; warn(message: string, meta?: any): void; error(message: string, error?: Error, meta?: any): void; } export interface ConfigManager { get(key: string, defaultValue?: T): T; set(key: string, value: any): void; load(configPath?: string): Promise; save(configPath?: string): Promise; } export interface AnalysisEngine { analyzeFile(filePath: string): Promise; analyzeProject(projectPath: string): Promise; detectDuplication(projectPath: string): Promise; generateQualityReport(projectPath: string): Promise; } //# sourceMappingURL=interfaces.d.ts.map