import type { FlightBudgetCharge, FlightBudgetLimits, RecoveryKind } from "./run-flight-ledger.js"; export interface FailureDiagnosisCandidate { readonly diagnosis_id: string; readonly capsule_id: string; readonly recovery_kind: RecoveryKind; readonly proposal: string; readonly budget_request: FlightBudgetCharge; } export interface FailureDiagnosisSelection { readonly diagnosis_id: string; readonly capsule_id: string; } export interface FailureDiagnosisInput { readonly candidates: readonly FailureDiagnosisCandidate[]; readonly coordinator_selection: FailureDiagnosisSelection | null; readonly budget_limits: FlightBudgetLimits; readonly budget_consumed: FlightBudgetLimits; } export interface FailureDiagnosisProposal { readonly diagnosis_id: string; readonly capsule_id: string; readonly recovery_kind: RecoveryKind; readonly proposal: string; readonly budget_reservation: { readonly status: "requested"; readonly charge: FlightBudgetCharge; readonly remaining_after_reservation: FlightBudgetLimits; }; readonly runtime_responsibilities: { readonly capsule_validation: true; readonly duplicate_execution_suppression: true; }; } export type FailureDiagnosisOutcome = { readonly status: "selection_required"; readonly reason: "coordinator_selection_missing"; } | { readonly status: "rejected"; readonly reason: "invalid_input" | "invalid_selection" | "invalid_budget" | "budget_exceeded"; } | { readonly status: "proposed"; readonly proposal: FailureDiagnosisProposal; }; /** * Converts one explicit coordinator selection into one inert proposal. The caller remains responsible * for evidence-capsule validation, duplicate execution suppression, reservation, and execution. */ export declare function diagnoseFailure(input: unknown): FailureDiagnosisOutcome;