import * as z from "zod/v4";
import { ClosedEnum, OpenEnum } from "../types/enums.js";
/**
 * How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. Valid values are `low`, `medium`, `high`, `xhigh`, or `max`.
 */
export declare const MessagesOutputConfigEffort: {
    readonly Low: "low";
    readonly Medium: "medium";
    readonly High: "high";
    readonly Xhigh: "xhigh";
    readonly Max: "max";
};
/**
 * How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. Valid values are `low`, `medium`, `high`, `xhigh`, or `max`.
 */
export type MessagesOutputConfigEffort = OpenEnum<typeof MessagesOutputConfigEffort>;
export declare const MessagesOutputConfigTypeJSONSchema: {
    readonly JsonSchema: "json_schema";
};
export type MessagesOutputConfigTypeJSONSchema = ClosedEnum<typeof MessagesOutputConfigTypeJSONSchema>;
/**
 * A schema to specify Claude's output format in responses. See [structured outputs](https://platform.claude.com/docs/en/build-with-claude/structured-outputs).
 */
export type MessagesOutputConfigFormat = {
    schema: {
        [k: string]: any;
    };
    type: MessagesOutputConfigTypeJSONSchema;
};
export declare const TypeTokens: {
    readonly Tokens: "tokens";
};
export type TypeTokens = ClosedEnum<typeof TypeTokens>;
/**
 * Task budget for an agentic turn. The model sees a countdown of remaining tokens and uses it to prioritize work and wind down gracefully. Advisory — does not enforce a hard cap.
 */
export type TaskBudget = {
    remaining?: number | null | undefined;
    total: number;
    type: TypeTokens;
};
/**
 * Configuration for controlling output behavior. Supports the effort parameter and structured output format.
 */
export type MessagesOutputConfig = {
    /**
     * How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. Valid values are `low`, `medium`, `high`, `xhigh`, or `max`.
     */
    effort?: MessagesOutputConfigEffort | null | undefined;
    /**
     * A schema to specify Claude's output format in responses. See [structured outputs](https://platform.claude.com/docs/en/build-with-claude/structured-outputs).
     */
    format?: MessagesOutputConfigFormat | null | undefined;
    /**
     * Task budget for an agentic turn. The model sees a countdown of remaining tokens and uses it to prioritize work and wind down gracefully. Advisory — does not enforce a hard cap.
     */
    taskBudget?: TaskBudget | null | undefined;
};
/** @internal */
export declare const MessagesOutputConfigEffort$outboundSchema: z.ZodType<string, MessagesOutputConfigEffort>;
/** @internal */
export declare const MessagesOutputConfigTypeJSONSchema$outboundSchema: z.ZodEnum<typeof MessagesOutputConfigTypeJSONSchema>;
/** @internal */
export type MessagesOutputConfigFormat$Outbound = {
    schema: {
        [k: string]: any;
    };
    type: string;
};
/** @internal */
export declare const MessagesOutputConfigFormat$outboundSchema: z.ZodType<MessagesOutputConfigFormat$Outbound, MessagesOutputConfigFormat>;
export declare function messagesOutputConfigFormatToJSON(messagesOutputConfigFormat: MessagesOutputConfigFormat): string;
/** @internal */
export declare const TypeTokens$outboundSchema: z.ZodEnum<typeof TypeTokens>;
/** @internal */
export type TaskBudget$Outbound = {
    remaining?: number | null | undefined;
    total: number;
    type: string;
};
/** @internal */
export declare const TaskBudget$outboundSchema: z.ZodType<TaskBudget$Outbound, TaskBudget>;
export declare function taskBudgetToJSON(taskBudget: TaskBudget): string;
/** @internal */
export type MessagesOutputConfig$Outbound = {
    effort?: string | null | undefined;
    format?: MessagesOutputConfigFormat$Outbound | null | undefined;
    task_budget?: TaskBudget$Outbound | null | undefined;
};
/** @internal */
export declare const MessagesOutputConfig$outboundSchema: z.ZodType<MessagesOutputConfig$Outbound, MessagesOutputConfig>;
export declare function messagesOutputConfigToJSON(messagesOutputConfig: MessagesOutputConfig): string;
//# sourceMappingURL=messagesoutputconfig.d.ts.map