/**
 * @sanity/ailf-core — Canary task-set schemas.
 *
 * The canary task set is the curated subset of evaluation tasks the Tier 3
 * nightly workflow runs against live LLMs. Each entry pins a `taskId` and
 * `mode` together with a one-paragraph rationale documenting why the task
 * earned a slot — the rationale is the canary set's single most important
 * field; without it, future maintainers can't reason about whether a
 * regression is meaningful or whether the slot has lost value.
 *
 * Validation that canary IDs map to real tasks lives in
 * `scripts/check-canary-tasks.ts` (run by `pnpm check`); it can't live in
 * Zod because the inventory comes from the repo task glob, not the schema.
 *
 * @see docs/design-docs/testing-strategy.md — "Tier 3 — Live LLMs"
 * @see packages/eval/config/canary-tasks.ts — authored config
 */
import { z } from "zod";
export declare const CanaryTaskEntrySchema: z.ZodObject<{
    taskId: z.ZodString;
    mode: z.ZodEnum<{
        custom: "custom";
        literacy: "literacy";
        full: "full";
        "mcp-server": "mcp-server";
        "agent-harness": "agent-harness";
        "knowledge-probe": "knowledge-probe";
        agentic: "agentic";
        baseline: "baseline";
        observed: "observed";
    }>;
    rationale: z.ZodString;
}, z.core.$strip>;
export type CanaryTaskEntry = z.infer<typeof CanaryTaskEntrySchema>;
export declare const CanaryTaskSetConfigSchema: z.ZodObject<{
    tasks: z.ZodArray<z.ZodObject<{
        taskId: z.ZodString;
        mode: z.ZodEnum<{
            custom: "custom";
            literacy: "literacy";
            full: "full";
            "mcp-server": "mcp-server";
            "agent-harness": "agent-harness";
            "knowledge-probe": "knowledge-probe";
            agentic: "agentic";
            baseline: "baseline";
            observed: "observed";
        }>;
        rationale: z.ZodString;
    }, z.core.$strip>>;
}, z.core.$strip>;
export type CanaryTaskSetConfig = z.infer<typeof CanaryTaskSetConfigSchema>;
