/**
 * @sanity/ailf-core — Error classification (eval failure observability)
 *
 * Pure classifier that maps a per-result error string (the message Promptfoo
 * records when a test errors before grading completes) into a small taxonomy
 * the layered failure-observability policy keys on:
 *
 *  - `config-error`   — deterministic, structural. The task itself is broken
 *                       (a promptfoo assertion invariant threw, an unknown
 *                       assertion type, a malformed regex). Re-running will not
 *                       fix it; an author must.
 *  - `provider-error` — transient. The model provider failed (rate limit,
 *                       timeout, auth, model unavailable, 429/503/ECONNRESET).
 *                       This is the honest "check API keys / retry" case,
 *                       renamed from the historical blanket `api-error` tag.
 *  - `unknown`        — fallback when neither pattern matches.
 *
 * This is DISTINCT from the graded-judgment failure-mode classifier
 * (`packages/eval/src/pipeline/failure-modes.ts`), which classifies why a
 * *graded* doc-quality judgment scored low. Error classification is about
 * tests that produced NO gradeable output at all.
 *
 * Pure function — safe to call from browser or Node.
 *
 * @see docs/design-docs/eval-failure-observability.md — Data model and
 *      classification (shared keystone)
 */
/**
 * The error-classification vocabulary. Single `as const` tuple so the runtime
 * Zod `z.enum(...)` and the `ErrorClassification` type derive from one source
 * — the same drift-proofing the `REPORT_VALIDITY_STATUSES` tuple uses.
 */
export declare const ERROR_CLASSIFICATIONS: readonly ["config-error", "provider-error", "unknown"];
/** A classified reason a test produced no gradeable output. */
export type ErrorClassification = (typeof ERROR_CLASSIFICATIONS)[number];
/**
 * Classify a per-result error string into an {@link ErrorClassification}.
 *
 * Config defects win over provider matches: a deterministic assertion
 * invariant is the honest diagnosis even if the message also mentions a
 * provider, and it is the boundary the fail-fast policy keys on.
 *
 * @param error The raw error message recorded on the errored result. `null`,
 *              `undefined`, or an empty/whitespace string classify as
 *              `"unknown"`.
 */
export declare function classifyErrorString(error: string | null | undefined): ErrorClassification;
