import { IFileSystem, ILogger, IConfigParser } from '../../domain/interfaces'; import { RulesetValidatorService } from './ruleset-validator.service'; export interface DriftReport { projectId: string; declaredLevel: string; detectedLevel: string; driftDetected: boolean; driftSeverity: 'critical' | 'high' | 'medium' | 'low' | 'none'; newViolations: DriftViolation[]; resolvedViolations: DriftViolation[]; persistentViolations: DriftViolation[]; overallScore: number; timestamp: string; historyPath: string; } export interface DriftViolation { ruleId: string; severity: 'MUST' | 'SHOULD' | 'COULD'; category: string; title: string; description: string; blocking: boolean; firstDetected: string; status: 'new' | 'persistent' | 'resolved'; } export interface DriftHistoryEntry { timestamp: string; declaredLevel: string; detectedLevel: string; violationsCount: number; blockingViolationsCount: number; overallScore: number; violations: DriftViolation[]; } export interface DriftDetectionOptions { projectPath: string; corePath?: string; declaredLevel?: 'F1' | 'F2' | 'F3'; storeHistory?: boolean; historyPath?: string; } export declare class ArchitectureDriftService { private readonly fs; private readonly logger; private readonly validator; constructor(corePath?: string, options?: { fileSystem?: IFileSystem; logger?: ILogger; configParser?: IConfigParser; validator?: RulesetValidatorService; }); detectDrift(options: DriftDetectionOptions): Promise; detectLevelDrift(projectPath: string, corePath?: string): Promise<{ declared: string; detected: string; drifted: boolean; }>; getDriftHistory(projectPath: string, historyPath?: string): Promise; getDriftTrend(projectPath: string, historyPath?: string): Promise<{ trend: 'improving' | 'stable' | 'degrading'; entries: DriftHistoryEntry[]; }>; private getDeclaredLevel; private detectActualLevel; private mapIssuesToViolations; private findNewViolations; private findResolvedViolations; private hasLevelDrift; private calculateDriftSeverity; private calculateOverallScore; private loadHistory; private storeHistory; private getProjectId; private findCorePath; }