/**
 * Workflow Failure Classification Types
 *
 * Defines failure classes, severity, confidence, evidence signals,
 * and recommended next-action hints for deterministic failure triage.
 */
import type { EvidenceOutcome, EvidenceSummary, WorkflowRunEvidence } from '../evidence/types.js';
export declare const FailureClass: {
    readonly Timeout: "timeout";
    readonly VerificationFailure: "verification_failure";
    readonly AgentDrift: "agent_drift";
    readonly EnvironmentError: "environment_error";
    readonly Deadlock: "deadlock";
    readonly StepOverflow: "step_overflow";
    readonly Unknown: "unknown";
};
export type FailureClass = (typeof FailureClass)[keyof typeof FailureClass];
export declare const Severity: {
    readonly Critical: "critical";
    readonly High: "high";
    readonly Medium: "medium";
    readonly Low: "low";
};
export type Severity = (typeof Severity)[keyof typeof Severity];
export declare const Confidence: {
    readonly High: "high";
    readonly Medium: "medium";
    readonly Low: "low";
};
export type Confidence = (typeof Confidence)[keyof typeof Confidence];
export declare const NextAction: {
    readonly Retry: "retry";
    readonly FixAndRetry: "fix_and_retry";
    readonly Escalate: "escalate";
    readonly InvestigateEnvironment: "investigate_environment";
    readonly Abort: "abort";
};
export type NextAction = (typeof NextAction)[keyof typeof NextAction];
export type PlainValidationSummary = string;
export type FailureClassifierInput = WorkflowRunEvidence | EvidenceOutcome | EvidenceSummary | PlainValidationSummary;
export interface EvidenceSignal {
    /** What was observed */
    observation: string;
    /** Where the signal came from (step id, gate name, run-level) */
    source: string;
    /** How strongly this signal supports the classification */
    strength: Confidence;
}
export interface FailureClassification {
    /** Primary failure category */
    category: FailureClass;
    /** Primary failure class */
    failureClass: FailureClass;
    /** How severe the failure is */
    severity: Severity;
    /** How confident the classifier is in this classification */
    confidence: Confidence;
    /** Recommended next action */
    nextAction: NextAction;
    /** Classifier-populated alias for debugger/validator recommendation UI */
    suggestedNextAction?: NextAction;
    /** Human-readable summary of the failure */
    summary: string;
    /** Evidence signals that contributed to this classification */
    signals: EvidenceSignal[];
    /** Classifier-populated alias for consumers that expose matched signals */
    matchedSignals?: EvidenceSignal[];
    /** Secondary failure classes detected (if any) */
    secondaryClasses: FailureClass[];
    /** True when more than one deterministic failure class matched */
    isMixedFailure?: boolean;
}
