/** The result of one `agency test` run: every file and case. Printed as the * `--json` document (`version` bumps on an incompatible change); the * summary and exit code derive from it. */ import { z } from "zod"; export declare const TEST_REPORT_VERSION = 1; export declare const TestCaseReportSchema: z.ZodObject<{ node: z.ZodString; description: z.ZodOptional; input: z.ZodOptional; status: z.ZodEnum<{ aborted: "aborted"; skipped: "skipped"; failed: "failed"; passed: "passed"; }>; feedback: z.ZodOptional; durationMs: z.ZodNumber; attempts: z.ZodOptional; }, z.core.$strict>; export declare const TestFileReportSchema: z.ZodObject<{ file: z.ZodString; sourceFile: z.ZodString; status: z.ZodEnum<{ error: "error"; aborted: "aborted"; skipped: "skipped"; ran: "ran"; "compile-failed": "compile-failed"; }>; error: z.ZodOptional; cases: z.ZodArray; input: z.ZodOptional; status: z.ZodEnum<{ aborted: "aborted"; skipped: "skipped"; failed: "failed"; passed: "passed"; }>; feedback: z.ZodOptional; durationMs: z.ZodNumber; attempts: z.ZodOptional; }, z.core.$strict>>; }, z.core.$strict>; export declare const TestReportSchema: z.ZodObject<{ version: z.ZodLiteral<1>; files: z.ZodArray; error: z.ZodOptional; cases: z.ZodArray; input: z.ZodOptional; status: z.ZodEnum<{ aborted: "aborted"; skipped: "skipped"; failed: "failed"; passed: "passed"; }>; feedback: z.ZodOptional; durationMs: z.ZodNumber; attempts: z.ZodOptional; }, z.core.$strict>>; }, z.core.$strict>>; passed: z.ZodNumber; failed: z.ZodNumber; skipped: z.ZodNumber; filesFailed: z.ZodNumber; }, z.core.$strict>; export type TestCaseReport = z.infer; export type TestFileReport = z.infer; export type TestReport = z.infer; /** A file fails when it did not run to the end or any case failed. */ export declare function fileFailed(file: TestFileReport): boolean; export declare function failedFiles(report: TestReport): string[]; /** Every case that ran, with its duration, named the way the summary prints it. */ export declare function caseTimings(report: TestReport): { name: string; durationMs: number; }[]; export declare function buildTestReport(files: TestFileReport[]): TestReport; /** A file that never ran its cases: each declared case is reported failed * with the file's error, so a consumer counting cases sees the denominator. */ export declare function fileFailureReport(args: { file: string; sourceFile: string; status: "compile-failed" | "error"; error: string; caseNodes: string[]; }): TestFileReport;