/** * Shared risk classification functions. * Extracted from tool-level local functions to enable direct unit testing. */ export type RiskLevel = "LOW" | "MEDIUM" | "HIGH"; export interface RiskDimension { level: RiskLevel; detail: string; } export declare function classifyChangeFrequency(fileChanges: number, allHotspots: { changeCount: number; }[]): RiskDimension; export declare function classifyChurn(fileChurn: number, allChurn: { totalChurn: number; }[]): RiskDimension; export declare function classifyKnowledgeRisk(contributorCount: number, topContributorPercentage: number): RiskDimension; export declare function classifyCoupling(coChangeCount: number): RiskDimension; export declare function classifyStaleness(daysSinceLastChange: number): RiskDimension; export declare function overallRisk(dimensions: RiskDimension[]): RiskLevel; export declare function riskLabel(level: RiskLevel): string; export declare function classifyConflictFrequency(mergeAppearances: number, totalMerges: number): RiskDimension; export declare function classifyCoordinationCost(score: number, allScores: number[]): RiskLevel; /** * Classify expertise decay risk for a directory. * * @param busFactor - number of contributors needed to cover 50% of commits * @param activeOwnerCount - number of currently active owners * @param totalOwnerCount - total number of owners */ export declare function classifyExpertiseDecay(busFactor: number, activeOwnerCount: number, totalOwnerCount: number): RiskLevel; export declare function classifyRevertRatio(revertCount: number, totalCommits: number): RiskDimension; export declare function classifyChurnTrend(recentChurn: number, olderChurn: number): RiskDimension; export declare function classifyIntegrationStyle(mergeRatio: number, mergesPerWeek: number): string;