import type { Difficulty, RiskLevel, SpecScope, SpecType } from './common/index.js';
export type RiskCategory = 'technical' | 'integration' | 'dependency' | 'organizational' | 'security' | 'data';
export type RiskStatus = 'identified' | 'mitigating' | 'mitigated' | 'accepted' | 'materialized';
export interface SpecRisk {
    id: string;
    description: string;
    category: RiskCategory;
    probability: number;
    impactUsd: number;
    impactDays: number;
    owner: string;
    status: RiskStatus;
    mitigationPlan: string;
    specId: string;
}
export interface RiskRegister {
    specId: string;
    risks: SpecRisk[];
    aggregateRiskScore: number;
    generatedAt: string;
}
export type ComplexityDimension = 'technical' | 'integration' | 'testing' | 'organizational' | 'uncertainty';
export interface ComplexityScore {
    dimension: ComplexityDimension;
    score: number;
    justification: string;
}
export interface ComplexityMatrix {
    specId: string;
    scores: ComplexityScore[];
    overallComplexity: number;
    generatedAt: string;
}
export interface TradeOffOption {
    name: string;
    pros: string[];
    cons: string[];
    riskIfChosen: string;
    riskIfNotChosen: string;
    estimatedCostDelta: number;
}
export interface TradeOff {
    id: string;
    description: string;
    options: TradeOffOption[];
    chosenOption: string;
    rationale: string;
}
export interface ApproachAnalysis {
    chosenApproach: string;
    advantages: string[];
    disadvantages: string[];
    limitations: string[];
    futureConsiderations: string[];
}
export type ConfidenceImpact = 'positive' | 'negative';
export interface ConfidenceFactor {
    name: string;
    impact: ConfidenceImpact;
    weight: number;
    description: string;
}
export interface EstimationConfidence {
    level: 'low' | 'medium' | 'high';
    score: number;
    factors: ConfidenceFactor[];
}
/** Template for generating a risk entry from spec metadata. */
export interface RiskTemplate {
    description: string;
    category: RiskCategory;
    probability: number;
    impactDays: number;
    mitigationPlan: string;
}
/** Input context for risk analysis */
export interface RiskAnalysisContext {
    specId: string;
    title: string;
    difficulty: Difficulty;
    risk: RiskLevel;
    scope: SpecScope;
    type: SpecType;
    fileCount: number;
    dependencyCount: number;
    tags: string[];
    language: string;
    framework: string | null;
}
//# sourceMappingURL=risk.d.ts.map