/**
 * Unblocker Proof Surface
 *
 * Maps the diagnosis engine's blocker classes into operational
 * domains — runtime, environment, orchestration, validation strategy — and exposes a
 * bounded proof API that downstream tests use to verify:
 *
 *   1. Every blocker class belongs to exactly one domain.
 *   2. Unblocker guidance is class-specific (no two classes share guidance).
 *   3. The mapping is exhaustive over BlockerClass.
 *
 * This module contains zero classification logic of its own — it
 * delegates entirely to the diagnosis engine and merely projects
 * its output into domain buckets.
 */
import { type Diagnosis, type DiagnosticSignal } from '../failure-diagnosis.js';
export declare const UnblockerDomain: {
    readonly Runtime: "runtime";
    readonly Environment: "environment";
    readonly Orchestration: "orchestration";
    readonly ValidationStrategy: "validation_strategy";
};
export type UnblockerDomain = (typeof UnblockerDomain)[keyof typeof UnblockerDomain];
export declare const domainMap: ReadonlyMap<string, UnblockerDomain>;
export interface CanonicalCase {
    blockerClass: string;
    domain: UnblockerDomain;
    signal: DiagnosticSignal;
}
/**
 * Deterministic set of canonical signals — exactly one per blocker class.
 * Tests iterate this to prove coverage without inventing ad-hoc signals.
 */
export declare const canonicalCases: readonly CanonicalCase[];
/** Diagnose a canonical case via the real engine. */
export declare function diagnoseCanonical(c: CanonicalCase): Diagnosis | null;
/** Return all blocker-class string values defined in BlockerClass. */
export declare function allBlockerClasses(): string[];
/** Return the domain for a given blocker class, or undefined if unmapped. */
export declare function domainOf(blockerClass: string): UnblockerDomain | undefined;
/** Return canonical cases filtered to a given domain. */
export declare function casesForDomain(domain: UnblockerDomain): readonly CanonicalCase[];
/** Return the set of distinct recovery decisions across a domain's canonical cases. */
export declare function recoveryDecisionsForDomain(domain: UnblockerDomain): string[];
