/**
 * pipeline/checks.ts
 *
 * Pre/postcondition checking for pipeline steps.
 * Each function verifies filesystem or environment state and returns
 * ValidationIssue[] — an empty array means all checks passed.
 */
import type { ValidationIssue } from "./types.js";
/**
 * Check that `contexts/canonical/<taskId>.md` exists and is non-empty
 * for every task ID.
 */
export declare function checkCanonicalContextsExist(rootDir: string, taskIds: string[]): ValidationIssue[];
/**
 * Check that `contexts/<area>.md` exists and is non-empty for every area.
 * This is the precondition for the eval step — it cannot run without docs.
 */
export declare function checkContextsExist(rootDir: string, areas: string[]): ValidationIssue[];
/**
 * Check that required environment variables are set.
 *
 * Loads the resolved `.env` file first (with override, matching the dotenv
 * CLI `-o` flag used by other scripts), then checks for required keys. The
 * resolution order mirrors `cli.ts`'s `resolveEnvPath()` so a `--dotenv
 * <path>` argument on the parent CLI invocation isn't silently clobbered
 * here. Without this, a Tier 2 test that uses `--dotenv` to override
 * tenant-pointing vars (e.g. `AILF_GCS_ARTIFACT_BUCKET`,
 * `GOOGLE_APPLICATION_CREDENTIALS`) gets its overrides reverted to the
 * repo `.env` values when this function runs as part of the validate
 * step. (W0138 Slice 2 surface — see `gcs-pipeline-replay-roundtrip.test.ts`.)
 */
export declare function checkEnvironment(rootDir: string): ValidationIssue[];
/**
 * Check that the generated promptfoo config for a given mode exists.
 *
 * When `mode` is provided, checks only for that mode's config file
 * (e.g. `promptfooconfig.agent-harness.yaml` for mode `"agent-harness"`).
 *
 * When `mode` is omitted, falls back to the legacy literacy check:
 * baseline `promptfooconfig.yaml` (required) plus optional observed/agentic.
 */
export declare function checkGeneratedConfigsExist(rootDir: string, mode?: string): ValidationIssue[];
/**
 * Check that the eval results JSON file exists, is valid JSON, and contains
 * a `results` array.
 */
export declare function checkResultsExist(rootDir: string, resultsPath?: string): ValidationIssue[];
/**
 * Check that `results/latest/score-summary.json` exists, parses as JSON,
 * contains feature area scores, and no scores are NaN or out of 0–100.
 */
export declare function checkScoreSummaryValid(rootDir: string): ValidationIssue[];
