import { z } from 'zod'; /** * The default model for all LLM calls. The first provider is the Anthropic * subscription path via the Agent SDK driving this model (development-plan §4.1 / §6). */ export declare const DEFAULT_MODEL = "haiku"; /** * Identifiers for the LLM provider backing the pipeline. All sit behind the * single {@link LLMProvider} abstraction; this only selects which implementation * to construct (development-plan §6). `mock` is the offline, network-free * provider used by unit tests and `--dry-run`-style local checks. */ export declare const ProviderName: z.ZodEnum<{ "anthropic-agent-sdk": "anthropic-agent-sdk"; "anthropic-api": "anthropic-api"; openai: "openai"; "openai-compatible": "openai-compatible"; mock: "mock"; }>; /** The stage-3 confirm-wrongness posture. `off` by default (development-plan §4.3). */ export declare const Stage3Mode: z.ZodEnum<{ off: "off"; confirm: "confirm"; }>; /** * The heuristic operator catalog (functional-architecture §5). Each name is the * `name` field of a heuristic `NodeMutator` and the allow-list token used by * `heuristics.operators`. The names span the prioritized P1–P4 catalog, and as of * M5 ALL of them are implemented + registered: every entry here has a matching * `NodeMutator` in the `heuristicMutators` barrel (src/mutators/index.ts) and the * driver's `selectHeuristicMutators` registry (src/driver/select-mutators.ts). The * enum is intentionally a CLOSED allow-list, so an unknown/typo'd operator name is * a config error rather than a silent no-op. */ export declare const HeuristicOperator: z.ZodEnum<{ NumberLiteralValue: "NumberLiteralValue"; CallArgumentTweak: "CallArgumentTweak"; AwaitDrop: "AwaitDrop"; SpreadOperandDrop: "SpreadOperandDrop"; ArrayMethodSwap: "ArrayMethodSwap"; PromiseCombinatorSwap: "PromiseCombinatorSwap"; StringMethodArgSwap: "StringMethodArgSwap"; }>; /** A single heuristic operator name from the {@link HeuristicOperator} catalog. */ export type HeuristicOperatorName = z.infer; /** * The `llmMutator` options schema. Defaults are applied field-by-field so a * caller may supply any subset; an omitted field falls back to its documented * default. See {@link LlmMutatorConfig} for the inferred type. */ export declare const llmMutatorConfigSchema: z.ZodObject<{ provider: z.ZodDefault>; model: z.ZodDefault; budget: z.ZodPrefault; maxCandidatesPerFile: z.ZodDefault; }, z.core.$strip>>; stage3: z.ZodPrefault>; retries: z.ZodDefault; }, z.core.$strip>>; cacheDir: z.ZodDefault; openAiBaseUrl: z.ZodDefault; openAiJsonMode: z.ZodDefault; openAiPricing: z.ZodOptional>; heuristics: z.ZodPrefault; operators: z.ZodDefault>>; skipUncovered: z.ZodDefault; }, z.core.$strip>>; dynamicLLM: z.ZodPrefault; frozen: z.ZodDefault; targeting: z.ZodPrefault; minRiskScore: z.ZodDefault; requireCoverage: z.ZodDefault; }, z.core.$strip>>; budget: z.ZodPrefault; maxLlmCallsPerRun: z.ZodDefault; maxCostUsd: z.ZodDefault; }, z.core.$strip>>; diminishingReturns: z.ZodPrefault; minYieldPerCall: z.ZodDefault; }, z.core.$strip>>; parallelBatches: z.ZodDefault; }, z.core.$strip>>; }, z.core.$strict>; /** * The parsed, fully-defaulted `llmMutator` config. Produced by * `llmMutatorConfigSchema.parse(...)`; every field is present (no optionals) * because the schema fills defaults. This is the type the pipeline, seam, and * provider factory all consume. */ export type LlmMutatorConfig = z.infer; /** The raw, pre-parse input shape (all fields optional) accepted from `stryker.conf.*`. */ export type LlmMutatorConfigInput = z.input;