import { type JSONSchema7 } from 'ai';
import { z } from 'zod';
export declare const ChatRequestTool: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
    name: z.ZodString;
    description: z.ZodString;
    inputSchema: z.ZodCustom<JSONSchema7, JSONSchema7>;
}, z.core.$strip>]>;
export type ChatRequestTool = z.infer<typeof ChatRequestTool>;
export declare const ToolApprovalMode: z.ZodEnum<{
    always: "always";
    ask: "ask";
    disabled: "disabled";
}>;
export type ToolApprovalMode = z.infer<typeof ToolApprovalMode>;
export declare const ChatRequest: z.ZodIntersection<z.ZodDiscriminatedUnion<[z.ZodObject<{
    provider: z.ZodLiteral<"openai">;
    model: z.ZodUnion<readonly [z.ZodLiteral<"gpt-5">, z.ZodLiteral<"gpt-5-nano">, z.ZodLiteral<"gpt-5-mini">, z.ZodLiteral<"gpt-5-pro">]>;
}, z.core.$strip>, z.ZodObject<{
    provider: z.ZodLiteral<"anthropic">;
    model: z.ZodUnion<readonly [z.ZodLiteral<"claude-sonnet-4-5">, z.ZodLiteral<"claude-haiku-4-5">, z.ZodLiteral<"claude-opus-4-1">]>;
}, z.core.$strip>], "provider">, z.ZodObject<{
    tools: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
        name: z.ZodString;
        description: z.ZodString;
        inputSchema: z.ZodCustom<JSONSchema7, JSONSchema7>;
    }, z.core.$strip>]>>;
    messages: z.ZodArray<z.ZodObject<{}, z.core.$loose>>;
    toolApprovals: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<{
        always: "always";
        ask: "ask";
        disabled: "disabled";
    }>>>;
}, z.core.$strip>>;
export type ChatRequest = z.infer<typeof ChatRequest>;
