/**
 * config-blocks.ts — shared config sub-schemas (D0060, mitigation #3).
 *
 * The blocks that overlap between `EvalConfigSchema` (--config files, this
 * package) and `RepoConfigSchema` (.ailf/config.yaml, the eval package) are
 * defined here exactly once and composed by both wrappers. Each block
 * `satisfies z.ZodType<…>` against the independently-authored domain types
 * in `../types/repo-config.ts`, so schema/type drift is a compile error
 * (D0045) instead of the comment-synced duplication that had already
 * drifted (`agentic.allowedOrigins`, `reportStore` optionality).
 *
 * Composition conventions:
 * - Blocks are plain object schemas — no trailing `.optional()`. Each
 *   wrapper applies `.optional()` (or `.partial()`) at its composition
 *   point so the genuine optionality differences stay visible there.
 * - `source` is the same union on both wrappers (`SourceSettingSchema`):
 *   a named-source string or the inline-location object (D0060
 *   mitigation #2). Run-only blocks (areas/tasks/mode/compare/…) and
 *   repo-only blocks (triggers/owner) stay on their respective wrappers.
 *
 * This module lives in core because eval depends on core, not the reverse.
 */
import { z } from "zod";
/**
 * Documentation source configuration — which Sanity project holds the
 * documentation being evaluated (inline-location form).
 *
 * Both wrappers accept this object as the inline branch of
 * `SourceSettingSchema` (D0060 mitigation #2), so a source block copied
 * between the two config files stays valid.
 *
 * `studioOrigin` replaces the retired `--sanity-studio-origin` CLI flag on
 * `ailf run`. On the auto-loaded repo-config path the `SANITY_STUDIO_ORIGIN`
 * env var still wins over this value at resolution time.
 */
export declare const SourceConfigSchema: z.ZodObject<{
    projectId: z.ZodOptional<z.ZodString>;
    dataset: z.ZodOptional<z.ZodString>;
    baseUrl: z.ZodOptional<z.ZodString>;
    studioOrigin: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
/**
 * Documentation source setting — a registered named source (string) or the
 * inline-location object. Composed by both `EvalConfigSchema.source` and
 * `RepoConfigSchema.source` (D0060 mitigation #2).
 *
 * Prefer the named form: a name resolves through the source registry, so
 * run provenance records the registered `source.name`. Inline values the
 * registry cannot account for are recorded as
 * `source.name = "env-override"` and re-classified `experimental` by the
 * D0059 Tier-1 rule, excluding the run from default (trusted) views.
 */
export declare const SourceSettingSchema: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
    projectId: z.ZodOptional<z.ZodString>;
    dataset: z.ZodOptional<z.ZodString>;
    baseUrl: z.ZodOptional<z.ZodString>;
    studioOrigin: z.ZodOptional<z.ZodString>;
}, z.core.$strip>]>;
/**
 * Execution-tier configuration. Per-environment knobs that replaced the
 * retired `--concurrency` / `--api-url` family of CLI flags.
 *
 * - `concurrency`             — max parallel API calls
 * - `graderReplications`      — grader consistency replications
 * - `borderlineReplications`  — replications per borderline judgment for
 *                               the intra-grader consensus pass (GRAD-04;
 *                               default 3, set in composition-root)
 * - `gapAnalysis`             — enable failure-mode + impact analysis
 * - `apiUrl`                  — AILF API base URL
 *
 * @see docs/design-docs/pipeline-command-surface.md §5.7
 */
export declare const ExecutionConfigSchema: z.ZodObject<{
    concurrency: z.ZodOptional<z.ZodNumber>;
    graderReplications: z.ZodOptional<z.ZodNumber>;
    borderlineReplications: z.ZodOptional<z.ZodNumber>;
    gapAnalysis: z.ZodOptional<z.ZodBoolean>;
    apiUrl: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
/**
 * Grader configuration.
 *
 * - `context: "rubric-only"` — grader sees only the rubric template +
 *   criteria + candidate response.
 * - `context: "with-docs"` — canonical reference content is injected into
 *   the assertion's `rubricPrompt` so the grader has authoritative ground
 *   truth.
 */
export declare const GraderConfigSchema: z.ZodObject<{
    context: z.ZodOptional<z.ZodEnum<{
        "rubric-only": "rubric-only";
        "with-docs": "with-docs";
    }>>;
}, z.core.$strip>;
/**
 * Publish policy. Controls when `ailf run` writes a report to the Content
 * Lake without an explicit `--publish` / `--no-publish` flag.
 *
 * - `auto: "always"`    — publish any run with a configured report store
 * - `auto: "full-runs"` — publish non-debug runs (default)
 * - `auto: "never"`     — never auto-publish; users must pass --publish
 *
 * `tag` is a default value for `--publish-tag` when not passed at the CLI.
 *
 * @see docs/design-docs/pipeline-command-surface.md §5.3
 */
export declare const PublishConfigSchema: z.ZodObject<{
    auto: z.ZodOptional<z.ZodEnum<{
        never: "never";
        always: "always";
        "full-runs": "full-runs";
    }>>;
    tag: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
/**
 * Output-directory configuration. Replaces the retired `--output-dir` CLI
 * flag on `ailf run`. Path is resolved relative to the caller's cwd; the
 * built-in default is `<cwd>/.ailf/results/latest/`. Other commands
 * (`ailf publish`, `ailf pr-comment`, etc.) keep their `--output-dir`
 * flag — that's a "read from this directory" override, distinct from the
 * pipeline's write-side `output.dir`.
 *
 * @see docs/design-docs/output-dir-routing.md
 */
export declare const OutputConfigSchema: z.ZodObject<{
    dir: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
/**
 * Agentic-mode configuration. Replaces the retired `--header` and
 * `--allowed-origin` CLI flags.
 *
 * - `headers`        — custom HTTP headers for doc fetching (key/value
 *                      object; mirrors the `DOC_HEADERS` env-var JSON shape)
 * - `allowedOrigins` — non-empty origin globs for the agentic-mode sandbox
 *
 * The `DOC_HEADERS` and `DOC_ALLOWED_ORIGIN(S)` env vars still apply
 * downstream as additive merges.
 */
export declare const AgenticConfigSchema: z.ZodObject<{
    headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
    allowedOrigins: z.ZodOptional<z.ZodArray<z.ZodString>>;
}, z.core.$strip>;
/**
 * Artifact-writer configuration. Replaces the retired `--no-artifacts`,
 * `--artifacts-dir`, and `--artifacts-exclude` CLI flags on `ailf run`.
 *
 * - `enabled`  — false disables all writers (legacy --no-artifacts)
 * - `dir`      — root for the local writer (default
 *                `.ailf/results/captures/`); `AILF_ARTIFACTS_DIR` still
 *                wins at resolution time
 * - `exclude`  — artifact-type names to skip
 */
export declare const ArtifactsConfigSchema: z.ZodObject<{
    enabled: z.ZodOptional<z.ZodBoolean>;
    dir: z.ZodOptional<z.ZodString>;
    exclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
}, z.core.$strip>;
/**
 * Post-run diagnosis summary policy (DIAG-06). Controls whether `ailf run`
 * auto-fires the in-process diagnosis runner at the end of a published
 * pipeline. Precedence is resolved at the CLI layer — see
 * `shouldRunPostSummary()` in the eval package.
 */
export declare const SummaryConfigSchema: z.ZodObject<{
    onRun: z.ZodOptional<z.ZodEnum<{
        never: "never";
        always: "always";
        auto: "auto";
    }>>;
}, z.core.$strip>;
/**
 * Task-source configuration. Replaces the retired `--task-source` and
 * `--repo-tasks-path` CLI flags on `ailf run`.
 *
 * - `type`           — `content-lake` (default) or `repo`. When `repo`,
 *                      tasks load from `repoTasksPath` (or
 *                      `<cwd>/.ailf/tasks/` if unset).
 * - `repoTasksPath`  — optional explicit path, resolved relative to the
 *                      caller's cwd. Required to exist on disk.
 *
 * No env-var fallback today; cascade is config-file → built-in default.
 */
export declare const TaskSourceConfigSchema: z.ZodObject<{
    type: z.ZodOptional<z.ZodEnum<{
        "content-lake": "content-lake";
        repo: "repo";
    }>>;
    repoTasksPath: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
/**
 * Report-store field set — which Sanity project receives `ailf.report`
 * documents. This is the single source of truth for the field
 * definitions; the two wrappers deliberately differ on optionality:
 *
 * - `RepoConfigSchema` uses it as-is (both fields required)
 * - `EvalConfigSchema` applies `.partial()` (both fields optional)
 *
 * @see docs/decisions/D0060-config-wrappers-shared-sub-schemas.md
 */
export declare const ReportStoreConfigSchema: z.ZodObject<{
    projectId: z.ZodString;
    dataset: z.ZodString;
}, z.core.$strip>;
