import type { Logger } from './logger.js'; import type { BuildSchedulingConfig, BuildStatus, ChangeEvent, Target, TargetPriority } from './types.js'; export declare class PriorityEngine { private config; private logger; private changeHistory; private targetMetrics; constructor(config: BuildSchedulingConfig, logger: Logger); /** * Calculates dynamic priority score for build scheduling based on: * - Recent file change frequency (base score with exponential decay) * - Focus detection (developer attention patterns over time) * - Build success rate (reliability factor 0.5-1.0x) * - Build time penalties (for serial execution mode) * * Higher scores indicate higher priority in the build queue. * Score typically ranges from 0-500+ depending on activity. */ calculatePriority(target: Target, affectedFiles: string[]): TargetPriority; /** * Record a file change event */ recordChange(files: string[], targets: Target[]): ChangeEvent[]; /** * Record build completion for metrics */ recordBuildResult(targetName: string, buildStatus: BuildStatus): void; /** * Get focus pattern information for debugging */ getFocusInfo(): { target: string; percentage: number; multiplier: number; }[]; /** * Calculates base priority score using exponential decay formula: * - Direct changes: 100 points each * decay_factor * - Recency bonus: 50 points * decay_factor * - Current files: 25 points each (no decay) * * Decay factor = e^(-age_ms / decay_time) ensures recent changes * have higher priority than older ones. */ private calculateBaseScore; /** * Calculates focus multiplier based on developer attention patterns. * Analyzes what percentage of recent changes affected this target: * - 80%+ activity: 2.0x (strong focus) * - 50%+ activity: 1.5x (moderate focus) * - 30%+ activity: 1.2x (weak focus) * - <30% activity: 1.0x (no focus) */ private calculateFocusMultiplier; private getAffectedTargets; /** * Classifies file changes to determine impact weight: * - direct: affects single target (weight: 1.0) * - shared: affects multiple targets (weight: 0.7) * - generated: build artifacts, auto-generated files (weight: 0.3) */ private classifyChange; private calculateImpactWeight; private getTargetChanges; private getRecentHistory; private getAverageBuildTime; private getBuildSuccessRate; private cleanOldHistory; } //# sourceMappingURL=priority-engine.d.ts.map