/**
 * config-schemas.ts
 *
 * Zod schemas for the promptfoo provider config blocks read by the
 * agent-observer providers. Promptfoo passes config as
 * `Record<string, unknown>`; parsing it once at the constructor turns
 * those untyped reads into a typed struct and surfaces typos / wrong
 * shapes as clear `ZodError`s instead of silent `undefined` reads.
 *
 * Lives in `eval` (not `core`) because these schemas are 1:1 with the
 * providers' constructor surfaces and have no consumers outside this
 * package. See docs/work-items/W0004.json.
 */
import { z } from "zod";
export declare const AgenticProviderConfigSchema: z.ZodObject<{
    agentMode: z.ZodOptional<z.ZodEnum<{
        naive: "naive";
        optimized: "optimized";
    }>>;
    allowedOrigins: z.ZodOptional<z.ZodArray<z.ZodString>>;
    apiKey: z.ZodOptional<z.ZodString>;
    customHeaders: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
    docBaseUrl: z.ZodOptional<z.ZodString>;
    llmsTxtUrl: z.ZodOptional<z.ZodString>;
    max_completion_tokens: z.ZodOptional<z.ZodNumber>;
    max_output_tokens: z.ZodOptional<z.ZodNumber>;
    max_tokens: z.ZodOptional<z.ZodNumber>;
    maxToolRounds: z.ZodOptional<z.ZodNumber>;
    model: z.ZodOptional<z.ZodString>;
    observe: z.ZodOptional<z.ZodBoolean>;
    observerOptions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
    priorityDomain: z.ZodOptional<z.ZodString>;
    provider: z.ZodOptional<z.ZodEnum<{
        anthropic: "anthropic";
        openai: "openai";
    }>>;
    searchMode: z.ZodOptional<z.ZodEnum<{
        open: "open";
        off: "off";
        "origin-only": "origin-only";
    }>>;
    temperature: z.ZodOptional<z.ZodNumber>;
}, z.core.$strip>;
export type AgenticProviderConfig = z.infer<typeof AgenticProviderConfigSchema>;
export declare const InstrumentedProviderConfigSchema: z.ZodObject<{
    apiKey: z.ZodOptional<z.ZodString>;
    max_output_tokens: z.ZodOptional<z.ZodNumber>;
    max_tokens: z.ZodOptional<z.ZodNumber>;
    model: z.ZodOptional<z.ZodString>;
    modelName: z.ZodOptional<z.ZodString>;
    observe: z.ZodOptional<z.ZodBoolean>;
    observerOptions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
    reasoning: z.ZodOptional<z.ZodObject<{
        effort: z.ZodOptional<z.ZodString>;
        summary: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>;
    reasoning_effort: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    verbosity: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export type InstrumentedProviderConfig = z.infer<typeof InstrumentedProviderConfigSchema>;
