import { z } from "zod"; declare const GoalSchema: z.ZodObject<{ kind: z.ZodLiteral<"goal">; goal: z.ZodString; passingScore: z.ZodOptional; name: z.ZodString; weight: z.ZodOptional; mustPass: z.ZodOptional; }, z.core.$strict>; declare const ChecklistSchema: z.ZodObject<{ kind: z.ZodLiteral<"checklist">; points: z.ZodArray; context: z.ZodOptional; name: z.ZodString; weight: z.ZodOptional; mustPass: z.ZodOptional; }, z.core.$strict>; export declare const MEASURES: readonly ["llmCalls", "costUsd", "agentSeconds", "tokensIn", "tokensOut"]; declare const NumberSchema: z.ZodObject<{ kind: z.ZodLiteral<"number">; measure: z.ZodEnum<{ costUsd: "costUsd"; tokensIn: "tokensIn"; tokensOut: "tokensOut"; llmCalls: "llmCalls"; agentSeconds: "agentSeconds"; }>; full: z.ZodOptional; zero: z.ZodOptional; max: z.ZodOptional; name: z.ZodString; weight: z.ZodOptional; mustPass: z.ZodOptional; }, z.core.$strict>; export declare const COUNTS: readonly ["toolCalls", "errors", "llmCalls"]; declare const CountSchema: z.ZodObject<{ kind: z.ZodLiteral<"count">; count: z.ZodEnum<{ errors: "errors"; toolCalls: "toolCalls"; llmCalls: "llmCalls"; }>; tool: z.ZodOptional; repeated: z.ZodOptional; messageStartsWith: z.ZodOptional; max: z.ZodNumber; name: z.ZodString; weight: z.ZodOptional; mustPass: z.ZodOptional; }, z.core.$strict>; declare const CommandSchema: z.ZodObject<{ kind: z.ZodLiteral<"command">; command: z.ZodString; timeoutSec: z.ZodOptional; name: z.ZodString; weight: z.ZodOptional; mustPass: z.ZodOptional; }, z.core.$strict>; export type GoalSpec = z.infer; export type ChecklistSpec = z.infer; export type NumberSpec = z.infer; export type CountSpec = z.infer; export type CommandSpec = z.infer; export type GraderSpec = GoalSpec | ChecklistSpec | NumberSpec | CountSpec | CommandSpec; export type GradersJson = GraderSpec[]; /** Parse the text of a `graders.json`. Every problem is an `Error` naming * the file, and where it applies the grader's index and name. */ export declare function parseGradersJson(text: string, filePath: string): GradersJson; /** One grader's first problem, as data: the field it is about (the first * segment of a zod path, `kind` for a missing or unknown kind or a * non-object element) or `null` for a rule that spans fields, and the * message without the file and index prefix. The `eval new` form reads * this to put its cursor on the right row. */ export type GraderProblem = { field: string | null; text: string; }; export type CheckedSpec = { spec: GraderSpec; } | { problem: GraderProblem; }; /** Parse one element of a `graders.json` list, answering with either the * spec or its first problem. The element is parsed once. */ export declare function checkSpec(element: unknown): CheckedSpec; export declare function graderProblem(element: unknown): GraderProblem | null; export {};