/**
 * Risk scoring — pure logic, no DB.
 */
import type { Role } from '../../types.js';
export interface RiskWeights {
    fanIn: number;
    complexity: number;
    churn: number;
    role: number;
    mi: number;
}
export declare const DEFAULT_WEIGHTS: RiskWeights;
export declare const ROLE_WEIGHTS: Record<string, number>;
/** Min-max normalize an array of numbers. All-equal → all zeros. */
export declare function minMaxNormalize(values: number[]): number[];
export interface RiskItem {
    fan_in: number;
    cognitive: number;
    churn: number;
    mi: number;
    role: Role | string | null;
}
export interface RiskResult {
    normFanIn: number;
    normComplexity: number;
    normChurn: number;
    normMI: number;
    roleWeight: number;
    riskScore: number;
}
export interface ScoreRiskOpts {
    roleWeights?: Record<string, number>;
    defaultRoleWeight?: number;
}
/**
 * Score risk for a list of items.
 */
export declare function scoreRisk(items: RiskItem[], weights?: Partial<RiskWeights>, opts?: ScoreRiskOpts): RiskResult[];
//# sourceMappingURL=risk.d.ts.map