/**
 * Shared Zod `.refine()` helpers for diagnosis card body schemas (D-05).
 *
 * Card body schemas that mention failure modes MUST encode `dimension` AND
 * call `.refine(buildFailureModeRefinement())` to prevent cross-dimension
 * hallucinations from passing Zod (CONTEXT D-05). The refinement turns a
 * "Zod-passes, semantically wrong" LLM output into a `parseFailed: true`
 * degraded card, which the budget logic then absorbs.
 *
 * This file is a sibling of cards/ (NOT inside cards/), so it is NOT inside
 * the D0045 trust-boundary scan root. It is a pure utility, not a boundary
 * parser.
 *
 * @see packages/core/src/grader/failure-modes/index.ts
 * @see .planning/phases/05-diagnosis-engine-cli-llm-cards/05-CONTEXT.md (D-05)
 */
/**
 * Returns `true` when the `failureMode` in `body` is in the canonical
 * taxonomy for `body.dimension`. Used directly and via `buildFailureModeRefinement`.
 */
export declare function isFailureModeInDimensionTaxonomy(body: {
    dimension: string;
    failureMode: string;
}): boolean;
/**
 * Returns a Zod `.refine()` predicate that approves canonical
 * (dimension, failureMode) pairs and rejects cross-dimension pairs.
 *
 * Usage:
 * ```ts
 * export const FailureModeSummaryBodySchema = z
 *   .object({ dimension: z.string(), failureMode: z.string(), ... })
 *   .refine(buildFailureModeRefinement(), {
 *     message: "failureMode not in canonical taxonomy for this dimension",
 *   }) satisfies z.ZodType<FailureModeSummaryBody>
 * ```
 */
export declare function buildFailureModeRefinement<TBody extends {
    dimension: string;
    failureMode: string;
}>(): (body: TBody) => boolean;
