export declare const FAILURE_CATEGORIES: readonly ["misdiagnosis_vsync_vrr", "misdiagnosis_buffer_stuffing", "sql_missing_table", "sql_missing_column", "skill_empty_result", "tool_repeated_failure", "phase_missing_deep_drill", "unknown"];
export type FailureCategory = (typeof FAILURE_CATEGORIES)[number];
export declare const FAILURE_CATEGORY_DESCRIPTIONS: Readonly<Record<FailureCategory, string>>;
export interface FailureModeInput {
    /** Scene classifier output (e.g. "scrolling", "startup"). Always lower-cased. */
    sceneType: string;
    /** Architecture detector output (e.g. "FLUTTER_SURFACEVIEW"). Always upper-cased. */
    archType: string;
    /** Closed-enum category. */
    category: FailureCategory;
    /** Optional skill or tool ID this failure is bound to. */
    toolOrSkillId?: string;
    /** Optional fine-grained error class within a category (e.g. SQL error code). */
    errorClass?: string;
}
/**
 * Stable, deterministic 16-char hex hash of a failure-mode key.
 *
 * Inputs are normalized (lower/upper-case, trimmed) so semantically identical
 * keys always produce the same hash. The hash uses sha256 truncated to 16 hex
 * chars (~64 bits of entropy) — collision risk for tens of thousands of
 * patterns is well below floating-point noise; the hash is identifier, not
 * cryptographic protection.
 */
export declare function computeFailureModeHash(input: FailureModeInput): string;
/** Type guard / runtime check for the closed enum. */
export declare function isKnownCategory(value: unknown): value is FailureCategory;
/**
 * Best-effort heuristic to derive a category from existing free-form text fields
 * (FailedApproach.reason, verification message, etc.). Used by the PR migration
 * to backfill `failureModeHash` on historical entries — never by the live path,
 * which receives the category explicitly from the review agent.
 *
 * Returns `unknown` when no heuristic matches, which by design means the entry
 * will never trigger supersede actions.
 */
export declare function inferCategoryFromText(text: string | undefined): FailureCategory;
//# sourceMappingURL=failureTaxonomy.d.ts.map