import Anthropic from '@anthropic-ai/sdk';
export { CacheControlEphemeral as AnthropicCacheControl } from '@anthropic-ai/sdk/resources/messages';
import { z } from 'genkit';

/**
 * Copyright 2024 Bloom Labs Inc
 * Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Internal symbol for dependency injection in tests.
 * Not part of the public API.
 * @internal
 */
declare const __testClient: unique symbol;
/**
 * Plugin configuration options for the Anthropic plugin.
 */
interface PluginOptions {
    apiKey?: string;
    /** Default API surface for all requests unless overridden per-request. */
    apiVersion?: 'stable' | 'beta';
}
/**
 * Internal plugin options that include test client injection.
 * @internal
 */
interface InternalPluginOptions extends PluginOptions {
    [__testClient]?: Anthropic;
}
/**
 * Shared parameters required to construct Claude helpers.
 */
interface ClaudeHelperParamsBase {
    name: string;
    client: Anthropic;
    defaultApiVersion?: 'stable' | 'beta';
}
/**
 * Parameters for creating a Claude model action.
 */
interface ClaudeModelParams extends ClaudeHelperParamsBase {
}
/**
 * Parameters for creating a Claude runner.
 */
interface ClaudeRunnerParams extends ClaudeHelperParamsBase {
}
declare const ThinkingConfigSchema: z.ZodEffects<z.ZodObject<{
    enabled: z.ZodOptional<z.ZodBoolean>;
    budgetTokens: z.ZodOptional<z.ZodNumber>;
    adaptive: z.ZodOptional<z.ZodBoolean>;
    display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>;
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
    enabled: z.ZodOptional<z.ZodBoolean>;
    budgetTokens: z.ZodOptional<z.ZodNumber>;
    adaptive: z.ZodOptional<z.ZodBoolean>;
    display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>;
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
    enabled: z.ZodOptional<z.ZodBoolean>;
    budgetTokens: z.ZodOptional<z.ZodNumber>;
    adaptive: z.ZodOptional<z.ZodBoolean>;
    display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>;
}, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{
    enabled: z.ZodOptional<z.ZodBoolean>;
    budgetTokens: z.ZodOptional<z.ZodNumber>;
    adaptive: z.ZodOptional<z.ZodBoolean>;
    display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>;
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
    enabled: z.ZodOptional<z.ZodBoolean>;
    budgetTokens: z.ZodOptional<z.ZodNumber>;
    adaptive: z.ZodOptional<z.ZodBoolean>;
    display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>;
}, z.ZodTypeAny, "passthrough">>;
declare const AnthropicConfigSchema: z.ZodObject<{
    version: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    tool_choice: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
        type: z.ZodLiteral<"auto">;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        type: z.ZodLiteral<"auto">;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        type: z.ZodLiteral<"auto">;
    }, z.ZodTypeAny, "passthrough">>, z.ZodObject<{
        type: z.ZodLiteral<"any">;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        type: z.ZodLiteral<"any">;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        type: z.ZodLiteral<"any">;
    }, z.ZodTypeAny, "passthrough">>, z.ZodObject<{
        type: z.ZodLiteral<"tool">;
        name: z.ZodString;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        type: z.ZodLiteral<"tool">;
        name: z.ZodString;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        type: z.ZodLiteral<"tool">;
        name: z.ZodString;
    }, z.ZodTypeAny, "passthrough">>]>>;
    metadata: z.ZodOptional<z.ZodObject<{
        user_id: z.ZodOptional<z.ZodString>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        user_id: z.ZodOptional<z.ZodString>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        user_id: z.ZodOptional<z.ZodString>;
    }, z.ZodTypeAny, "passthrough">>>;
    /** Optional shorthand to pick API surface for this request. */
    apiVersion: z.ZodOptional<z.ZodEnum<["stable", "beta"]>>;
    thinking: z.ZodOptional<z.ZodEffects<z.ZodObject<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        budgetTokens: z.ZodOptional<z.ZodNumber>;
        adaptive: z.ZodOptional<z.ZodBoolean>;
        display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        budgetTokens: z.ZodOptional<z.ZodNumber>;
        adaptive: z.ZodOptional<z.ZodBoolean>;
        display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        budgetTokens: z.ZodOptional<z.ZodNumber>;
        adaptive: z.ZodOptional<z.ZodBoolean>;
        display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>;
    }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        budgetTokens: z.ZodOptional<z.ZodNumber>;
        adaptive: z.ZodOptional<z.ZodBoolean>;
        display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        budgetTokens: z.ZodOptional<z.ZodNumber>;
        adaptive: z.ZodOptional<z.ZodBoolean>;
        display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>;
    }, z.ZodTypeAny, "passthrough">>>;
    output_config: z.ZodOptional<z.ZodObject<{
        effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>;
        task_budget: z.ZodOptional<z.ZodObject<{
            type: z.ZodDefault<z.ZodLiteral<"tokens">>;
            total: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            type: "tokens";
            total: number;
        }, {
            total: number;
            type?: "tokens" | undefined;
        }>>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>;
        task_budget: z.ZodOptional<z.ZodObject<{
            type: z.ZodDefault<z.ZodLiteral<"tokens">>;
            total: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            type: "tokens";
            total: number;
        }, {
            total: number;
            type?: "tokens" | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>;
        task_budget: z.ZodOptional<z.ZodObject<{
            type: z.ZodDefault<z.ZodLiteral<"tokens">>;
            total: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            type: "tokens";
            total: number;
        }, {
            total: number;
            type?: "tokens" | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">>>;
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
    version: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    tool_choice: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
        type: z.ZodLiteral<"auto">;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        type: z.ZodLiteral<"auto">;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        type: z.ZodLiteral<"auto">;
    }, z.ZodTypeAny, "passthrough">>, z.ZodObject<{
        type: z.ZodLiteral<"any">;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        type: z.ZodLiteral<"any">;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        type: z.ZodLiteral<"any">;
    }, z.ZodTypeAny, "passthrough">>, z.ZodObject<{
        type: z.ZodLiteral<"tool">;
        name: z.ZodString;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        type: z.ZodLiteral<"tool">;
        name: z.ZodString;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        type: z.ZodLiteral<"tool">;
        name: z.ZodString;
    }, z.ZodTypeAny, "passthrough">>]>>;
    metadata: z.ZodOptional<z.ZodObject<{
        user_id: z.ZodOptional<z.ZodString>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        user_id: z.ZodOptional<z.ZodString>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        user_id: z.ZodOptional<z.ZodString>;
    }, z.ZodTypeAny, "passthrough">>>;
    /** Optional shorthand to pick API surface for this request. */
    apiVersion: z.ZodOptional<z.ZodEnum<["stable", "beta"]>>;
    thinking: z.ZodOptional<z.ZodEffects<z.ZodObject<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        budgetTokens: z.ZodOptional<z.ZodNumber>;
        adaptive: z.ZodOptional<z.ZodBoolean>;
        display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        budgetTokens: z.ZodOptional<z.ZodNumber>;
        adaptive: z.ZodOptional<z.ZodBoolean>;
        display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        budgetTokens: z.ZodOptional<z.ZodNumber>;
        adaptive: z.ZodOptional<z.ZodBoolean>;
        display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>;
    }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        budgetTokens: z.ZodOptional<z.ZodNumber>;
        adaptive: z.ZodOptional<z.ZodBoolean>;
        display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        budgetTokens: z.ZodOptional<z.ZodNumber>;
        adaptive: z.ZodOptional<z.ZodBoolean>;
        display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>;
    }, z.ZodTypeAny, "passthrough">>>;
    output_config: z.ZodOptional<z.ZodObject<{
        effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>;
        task_budget: z.ZodOptional<z.ZodObject<{
            type: z.ZodDefault<z.ZodLiteral<"tokens">>;
            total: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            type: "tokens";
            total: number;
        }, {
            total: number;
            type?: "tokens" | undefined;
        }>>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>;
        task_budget: z.ZodOptional<z.ZodObject<{
            type: z.ZodDefault<z.ZodLiteral<"tokens">>;
            total: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            type: "tokens";
            total: number;
        }, {
            total: number;
            type?: "tokens" | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>;
        task_budget: z.ZodOptional<z.ZodObject<{
            type: z.ZodDefault<z.ZodLiteral<"tokens">>;
            total: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            type: "tokens";
            total: number;
        }, {
            total: number;
            type?: "tokens" | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">>>;
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
    version: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    tool_choice: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
        type: z.ZodLiteral<"auto">;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        type: z.ZodLiteral<"auto">;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        type: z.ZodLiteral<"auto">;
    }, z.ZodTypeAny, "passthrough">>, z.ZodObject<{
        type: z.ZodLiteral<"any">;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        type: z.ZodLiteral<"any">;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        type: z.ZodLiteral<"any">;
    }, z.ZodTypeAny, "passthrough">>, z.ZodObject<{
        type: z.ZodLiteral<"tool">;
        name: z.ZodString;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        type: z.ZodLiteral<"tool">;
        name: z.ZodString;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        type: z.ZodLiteral<"tool">;
        name: z.ZodString;
    }, z.ZodTypeAny, "passthrough">>]>>;
    metadata: z.ZodOptional<z.ZodObject<{
        user_id: z.ZodOptional<z.ZodString>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        user_id: z.ZodOptional<z.ZodString>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        user_id: z.ZodOptional<z.ZodString>;
    }, z.ZodTypeAny, "passthrough">>>;
    /** Optional shorthand to pick API surface for this request. */
    apiVersion: z.ZodOptional<z.ZodEnum<["stable", "beta"]>>;
    thinking: z.ZodOptional<z.ZodEffects<z.ZodObject<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        budgetTokens: z.ZodOptional<z.ZodNumber>;
        adaptive: z.ZodOptional<z.ZodBoolean>;
        display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        budgetTokens: z.ZodOptional<z.ZodNumber>;
        adaptive: z.ZodOptional<z.ZodBoolean>;
        display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        budgetTokens: z.ZodOptional<z.ZodNumber>;
        adaptive: z.ZodOptional<z.ZodBoolean>;
        display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>;
    }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        budgetTokens: z.ZodOptional<z.ZodNumber>;
        adaptive: z.ZodOptional<z.ZodBoolean>;
        display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        budgetTokens: z.ZodOptional<z.ZodNumber>;
        adaptive: z.ZodOptional<z.ZodBoolean>;
        display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>;
    }, z.ZodTypeAny, "passthrough">>>;
    output_config: z.ZodOptional<z.ZodObject<{
        effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>;
        task_budget: z.ZodOptional<z.ZodObject<{
            type: z.ZodDefault<z.ZodLiteral<"tokens">>;
            total: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            type: "tokens";
            total: number;
        }, {
            total: number;
            type?: "tokens" | undefined;
        }>>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>;
        task_budget: z.ZodOptional<z.ZodObject<{
            type: z.ZodDefault<z.ZodLiteral<"tokens">>;
            total: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            type: "tokens";
            total: number;
        }, {
            total: number;
            type?: "tokens" | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>;
        task_budget: z.ZodOptional<z.ZodObject<{
            type: z.ZodDefault<z.ZodLiteral<"tokens">>;
            total: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            type: "tokens";
            total: number;
        }, {
            total: number;
            type?: "tokens" | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">>>;
}, z.ZodTypeAny, "passthrough">>;
type ThinkingConfig = z.infer<typeof ThinkingConfigSchema>;
type ClaudeConfig = z.infer<typeof AnthropicConfigSchema>;
type AnthropicConfigSchemaType = typeof AnthropicConfigSchema;
declare const AnthropicBaseConfigSchema: z.ZodObject<{
    version: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    tool_choice: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
        type: z.ZodLiteral<"auto">;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        type: z.ZodLiteral<"auto">;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        type: z.ZodLiteral<"auto">;
    }, z.ZodTypeAny, "passthrough">>, z.ZodObject<{
        type: z.ZodLiteral<"any">;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        type: z.ZodLiteral<"any">;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        type: z.ZodLiteral<"any">;
    }, z.ZodTypeAny, "passthrough">>, z.ZodObject<{
        type: z.ZodLiteral<"tool">;
        name: z.ZodString;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        type: z.ZodLiteral<"tool">;
        name: z.ZodString;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        type: z.ZodLiteral<"tool">;
        name: z.ZodString;
    }, z.ZodTypeAny, "passthrough">>]>>;
    metadata: z.ZodOptional<z.ZodObject<{
        user_id: z.ZodOptional<z.ZodString>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        user_id: z.ZodOptional<z.ZodString>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        user_id: z.ZodOptional<z.ZodString>;
    }, z.ZodTypeAny, "passthrough">>>;
    /** Optional shorthand to pick API surface for this request. */
    apiVersion: z.ZodOptional<z.ZodEnum<["stable", "beta"]>>;
    thinking: z.ZodOptional<z.ZodEffects<z.ZodObject<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        budgetTokens: z.ZodOptional<z.ZodNumber>;
        adaptive: z.ZodOptional<z.ZodBoolean>;
        display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        budgetTokens: z.ZodOptional<z.ZodNumber>;
        adaptive: z.ZodOptional<z.ZodBoolean>;
        display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        budgetTokens: z.ZodOptional<z.ZodNumber>;
        adaptive: z.ZodOptional<z.ZodBoolean>;
        display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>;
    }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        budgetTokens: z.ZodOptional<z.ZodNumber>;
        adaptive: z.ZodOptional<z.ZodBoolean>;
        display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        budgetTokens: z.ZodOptional<z.ZodNumber>;
        adaptive: z.ZodOptional<z.ZodBoolean>;
        display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>;
    }, z.ZodTypeAny, "passthrough">>>;
    output_config: z.ZodOptional<z.ZodObject<{
        effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>;
        task_budget: z.ZodOptional<z.ZodObject<{
            type: z.ZodDefault<z.ZodLiteral<"tokens">>;
            total: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            type: "tokens";
            total: number;
        }, {
            total: number;
            type?: "tokens" | undefined;
        }>>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>;
        task_budget: z.ZodOptional<z.ZodObject<{
            type: z.ZodDefault<z.ZodLiteral<"tokens">>;
            total: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            type: "tokens";
            total: number;
        }, {
            total: number;
            type?: "tokens" | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>;
        task_budget: z.ZodOptional<z.ZodObject<{
            type: z.ZodDefault<z.ZodLiteral<"tokens">>;
            total: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            type: "tokens";
            total: number;
        }, {
            total: number;
            type?: "tokens" | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">>>;
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
    version: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    tool_choice: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
        type: z.ZodLiteral<"auto">;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        type: z.ZodLiteral<"auto">;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        type: z.ZodLiteral<"auto">;
    }, z.ZodTypeAny, "passthrough">>, z.ZodObject<{
        type: z.ZodLiteral<"any">;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        type: z.ZodLiteral<"any">;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        type: z.ZodLiteral<"any">;
    }, z.ZodTypeAny, "passthrough">>, z.ZodObject<{
        type: z.ZodLiteral<"tool">;
        name: z.ZodString;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        type: z.ZodLiteral<"tool">;
        name: z.ZodString;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        type: z.ZodLiteral<"tool">;
        name: z.ZodString;
    }, z.ZodTypeAny, "passthrough">>]>>;
    metadata: z.ZodOptional<z.ZodObject<{
        user_id: z.ZodOptional<z.ZodString>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        user_id: z.ZodOptional<z.ZodString>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        user_id: z.ZodOptional<z.ZodString>;
    }, z.ZodTypeAny, "passthrough">>>;
    /** Optional shorthand to pick API surface for this request. */
    apiVersion: z.ZodOptional<z.ZodEnum<["stable", "beta"]>>;
    thinking: z.ZodOptional<z.ZodEffects<z.ZodObject<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        budgetTokens: z.ZodOptional<z.ZodNumber>;
        adaptive: z.ZodOptional<z.ZodBoolean>;
        display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        budgetTokens: z.ZodOptional<z.ZodNumber>;
        adaptive: z.ZodOptional<z.ZodBoolean>;
        display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        budgetTokens: z.ZodOptional<z.ZodNumber>;
        adaptive: z.ZodOptional<z.ZodBoolean>;
        display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>;
    }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        budgetTokens: z.ZodOptional<z.ZodNumber>;
        adaptive: z.ZodOptional<z.ZodBoolean>;
        display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        budgetTokens: z.ZodOptional<z.ZodNumber>;
        adaptive: z.ZodOptional<z.ZodBoolean>;
        display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>;
    }, z.ZodTypeAny, "passthrough">>>;
    output_config: z.ZodOptional<z.ZodObject<{
        effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>;
        task_budget: z.ZodOptional<z.ZodObject<{
            type: z.ZodDefault<z.ZodLiteral<"tokens">>;
            total: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            type: "tokens";
            total: number;
        }, {
            total: number;
            type?: "tokens" | undefined;
        }>>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>;
        task_budget: z.ZodOptional<z.ZodObject<{
            type: z.ZodDefault<z.ZodLiteral<"tokens">>;
            total: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            type: "tokens";
            total: number;
        }, {
            total: number;
            type?: "tokens" | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>;
        task_budget: z.ZodOptional<z.ZodObject<{
            type: z.ZodDefault<z.ZodLiteral<"tokens">>;
            total: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            type: "tokens";
            total: number;
        }, {
            total: number;
            type?: "tokens" | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">>>;
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
    version: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    tool_choice: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
        type: z.ZodLiteral<"auto">;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        type: z.ZodLiteral<"auto">;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        type: z.ZodLiteral<"auto">;
    }, z.ZodTypeAny, "passthrough">>, z.ZodObject<{
        type: z.ZodLiteral<"any">;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        type: z.ZodLiteral<"any">;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        type: z.ZodLiteral<"any">;
    }, z.ZodTypeAny, "passthrough">>, z.ZodObject<{
        type: z.ZodLiteral<"tool">;
        name: z.ZodString;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        type: z.ZodLiteral<"tool">;
        name: z.ZodString;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        type: z.ZodLiteral<"tool">;
        name: z.ZodString;
    }, z.ZodTypeAny, "passthrough">>]>>;
    metadata: z.ZodOptional<z.ZodObject<{
        user_id: z.ZodOptional<z.ZodString>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        user_id: z.ZodOptional<z.ZodString>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        user_id: z.ZodOptional<z.ZodString>;
    }, z.ZodTypeAny, "passthrough">>>;
    /** Optional shorthand to pick API surface for this request. */
    apiVersion: z.ZodOptional<z.ZodEnum<["stable", "beta"]>>;
    thinking: z.ZodOptional<z.ZodEffects<z.ZodObject<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        budgetTokens: z.ZodOptional<z.ZodNumber>;
        adaptive: z.ZodOptional<z.ZodBoolean>;
        display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        budgetTokens: z.ZodOptional<z.ZodNumber>;
        adaptive: z.ZodOptional<z.ZodBoolean>;
        display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        budgetTokens: z.ZodOptional<z.ZodNumber>;
        adaptive: z.ZodOptional<z.ZodBoolean>;
        display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>;
    }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        budgetTokens: z.ZodOptional<z.ZodNumber>;
        adaptive: z.ZodOptional<z.ZodBoolean>;
        display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        budgetTokens: z.ZodOptional<z.ZodNumber>;
        adaptive: z.ZodOptional<z.ZodBoolean>;
        display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>;
    }, z.ZodTypeAny, "passthrough">>>;
    output_config: z.ZodOptional<z.ZodObject<{
        effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>;
        task_budget: z.ZodOptional<z.ZodObject<{
            type: z.ZodDefault<z.ZodLiteral<"tokens">>;
            total: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            type: "tokens";
            total: number;
        }, {
            total: number;
            type?: "tokens" | undefined;
        }>>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>;
        task_budget: z.ZodOptional<z.ZodObject<{
            type: z.ZodDefault<z.ZodLiteral<"tokens">>;
            total: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            type: "tokens";
            total: number;
        }, {
            total: number;
            type?: "tokens" | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>;
        task_budget: z.ZodOptional<z.ZodObject<{
            type: z.ZodDefault<z.ZodLiteral<"tokens">>;
            total: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            type: "tokens";
            total: number;
        }, {
            total: number;
            type?: "tokens" | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">>>;
}, z.ZodTypeAny, "passthrough">>;
declare const AnthropicThinkingConfigSchema: z.ZodObject<{
    version: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    tool_choice: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
        type: z.ZodLiteral<"auto">;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        type: z.ZodLiteral<"auto">;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        type: z.ZodLiteral<"auto">;
    }, z.ZodTypeAny, "passthrough">>, z.ZodObject<{
        type: z.ZodLiteral<"any">;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        type: z.ZodLiteral<"any">;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        type: z.ZodLiteral<"any">;
    }, z.ZodTypeAny, "passthrough">>, z.ZodObject<{
        type: z.ZodLiteral<"tool">;
        name: z.ZodString;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        type: z.ZodLiteral<"tool">;
        name: z.ZodString;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        type: z.ZodLiteral<"tool">;
        name: z.ZodString;
    }, z.ZodTypeAny, "passthrough">>]>>;
    metadata: z.ZodOptional<z.ZodObject<{
        user_id: z.ZodOptional<z.ZodString>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        user_id: z.ZodOptional<z.ZodString>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        user_id: z.ZodOptional<z.ZodString>;
    }, z.ZodTypeAny, "passthrough">>>;
    /** Optional shorthand to pick API surface for this request. */
    apiVersion: z.ZodOptional<z.ZodEnum<["stable", "beta"]>>;
    thinking: z.ZodOptional<z.ZodEffects<z.ZodObject<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        budgetTokens: z.ZodOptional<z.ZodNumber>;
        adaptive: z.ZodOptional<z.ZodBoolean>;
        display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        budgetTokens: z.ZodOptional<z.ZodNumber>;
        adaptive: z.ZodOptional<z.ZodBoolean>;
        display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        budgetTokens: z.ZodOptional<z.ZodNumber>;
        adaptive: z.ZodOptional<z.ZodBoolean>;
        display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>;
    }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        budgetTokens: z.ZodOptional<z.ZodNumber>;
        adaptive: z.ZodOptional<z.ZodBoolean>;
        display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        budgetTokens: z.ZodOptional<z.ZodNumber>;
        adaptive: z.ZodOptional<z.ZodBoolean>;
        display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>;
    }, z.ZodTypeAny, "passthrough">>>;
    output_config: z.ZodOptional<z.ZodObject<{
        effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>;
        task_budget: z.ZodOptional<z.ZodObject<{
            type: z.ZodDefault<z.ZodLiteral<"tokens">>;
            total: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            type: "tokens";
            total: number;
        }, {
            total: number;
            type?: "tokens" | undefined;
        }>>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>;
        task_budget: z.ZodOptional<z.ZodObject<{
            type: z.ZodDefault<z.ZodLiteral<"tokens">>;
            total: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            type: "tokens";
            total: number;
        }, {
            total: number;
            type?: "tokens" | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>;
        task_budget: z.ZodOptional<z.ZodObject<{
            type: z.ZodDefault<z.ZodLiteral<"tokens">>;
            total: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            type: "tokens";
            total: number;
        }, {
            total: number;
            type?: "tokens" | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">>>;
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
    version: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    tool_choice: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
        type: z.ZodLiteral<"auto">;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        type: z.ZodLiteral<"auto">;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        type: z.ZodLiteral<"auto">;
    }, z.ZodTypeAny, "passthrough">>, z.ZodObject<{
        type: z.ZodLiteral<"any">;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        type: z.ZodLiteral<"any">;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        type: z.ZodLiteral<"any">;
    }, z.ZodTypeAny, "passthrough">>, z.ZodObject<{
        type: z.ZodLiteral<"tool">;
        name: z.ZodString;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        type: z.ZodLiteral<"tool">;
        name: z.ZodString;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        type: z.ZodLiteral<"tool">;
        name: z.ZodString;
    }, z.ZodTypeAny, "passthrough">>]>>;
    metadata: z.ZodOptional<z.ZodObject<{
        user_id: z.ZodOptional<z.ZodString>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        user_id: z.ZodOptional<z.ZodString>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        user_id: z.ZodOptional<z.ZodString>;
    }, z.ZodTypeAny, "passthrough">>>;
    /** Optional shorthand to pick API surface for this request. */
    apiVersion: z.ZodOptional<z.ZodEnum<["stable", "beta"]>>;
    thinking: z.ZodOptional<z.ZodEffects<z.ZodObject<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        budgetTokens: z.ZodOptional<z.ZodNumber>;
        adaptive: z.ZodOptional<z.ZodBoolean>;
        display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        budgetTokens: z.ZodOptional<z.ZodNumber>;
        adaptive: z.ZodOptional<z.ZodBoolean>;
        display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        budgetTokens: z.ZodOptional<z.ZodNumber>;
        adaptive: z.ZodOptional<z.ZodBoolean>;
        display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>;
    }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        budgetTokens: z.ZodOptional<z.ZodNumber>;
        adaptive: z.ZodOptional<z.ZodBoolean>;
        display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        budgetTokens: z.ZodOptional<z.ZodNumber>;
        adaptive: z.ZodOptional<z.ZodBoolean>;
        display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>;
    }, z.ZodTypeAny, "passthrough">>>;
    output_config: z.ZodOptional<z.ZodObject<{
        effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>;
        task_budget: z.ZodOptional<z.ZodObject<{
            type: z.ZodDefault<z.ZodLiteral<"tokens">>;
            total: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            type: "tokens";
            total: number;
        }, {
            total: number;
            type?: "tokens" | undefined;
        }>>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>;
        task_budget: z.ZodOptional<z.ZodObject<{
            type: z.ZodDefault<z.ZodLiteral<"tokens">>;
            total: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            type: "tokens";
            total: number;
        }, {
            total: number;
            type?: "tokens" | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>;
        task_budget: z.ZodOptional<z.ZodObject<{
            type: z.ZodDefault<z.ZodLiteral<"tokens">>;
            total: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            type: "tokens";
            total: number;
        }, {
            total: number;
            type?: "tokens" | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">>>;
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
    version: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    apiKey: z.ZodOptional<z.ZodString>;
} & {
    tool_choice: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
        type: z.ZodLiteral<"auto">;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        type: z.ZodLiteral<"auto">;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        type: z.ZodLiteral<"auto">;
    }, z.ZodTypeAny, "passthrough">>, z.ZodObject<{
        type: z.ZodLiteral<"any">;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        type: z.ZodLiteral<"any">;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        type: z.ZodLiteral<"any">;
    }, z.ZodTypeAny, "passthrough">>, z.ZodObject<{
        type: z.ZodLiteral<"tool">;
        name: z.ZodString;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        type: z.ZodLiteral<"tool">;
        name: z.ZodString;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        type: z.ZodLiteral<"tool">;
        name: z.ZodString;
    }, z.ZodTypeAny, "passthrough">>]>>;
    metadata: z.ZodOptional<z.ZodObject<{
        user_id: z.ZodOptional<z.ZodString>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        user_id: z.ZodOptional<z.ZodString>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        user_id: z.ZodOptional<z.ZodString>;
    }, z.ZodTypeAny, "passthrough">>>;
    /** Optional shorthand to pick API surface for this request. */
    apiVersion: z.ZodOptional<z.ZodEnum<["stable", "beta"]>>;
    thinking: z.ZodOptional<z.ZodEffects<z.ZodObject<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        budgetTokens: z.ZodOptional<z.ZodNumber>;
        adaptive: z.ZodOptional<z.ZodBoolean>;
        display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        budgetTokens: z.ZodOptional<z.ZodNumber>;
        adaptive: z.ZodOptional<z.ZodBoolean>;
        display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        budgetTokens: z.ZodOptional<z.ZodNumber>;
        adaptive: z.ZodOptional<z.ZodBoolean>;
        display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>;
    }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        budgetTokens: z.ZodOptional<z.ZodNumber>;
        adaptive: z.ZodOptional<z.ZodBoolean>;
        display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        enabled: z.ZodOptional<z.ZodBoolean>;
        budgetTokens: z.ZodOptional<z.ZodNumber>;
        adaptive: z.ZodOptional<z.ZodBoolean>;
        display: z.ZodOptional<z.ZodEnum<["summarized", "omitted"]>>;
    }, z.ZodTypeAny, "passthrough">>>;
    output_config: z.ZodOptional<z.ZodObject<{
        effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>;
        task_budget: z.ZodOptional<z.ZodObject<{
            type: z.ZodDefault<z.ZodLiteral<"tokens">>;
            total: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            type: "tokens";
            total: number;
        }, {
            total: number;
            type?: "tokens" | undefined;
        }>>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>;
        task_budget: z.ZodOptional<z.ZodObject<{
            type: z.ZodDefault<z.ZodLiteral<"tokens">>;
            total: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            type: "tokens";
            total: number;
        }, {
            total: number;
            type?: "tokens" | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh"]>>;
        task_budget: z.ZodOptional<z.ZodObject<{
            type: z.ZodDefault<z.ZodLiteral<"tokens">>;
            total: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            type: "tokens";
            total: number;
        }, {
            total: number;
            type?: "tokens" | undefined;
        }>>;
    }, z.ZodTypeAny, "passthrough">>>;
}, z.ZodTypeAny, "passthrough">>;
type AnthropicBaseConfigSchemaType = typeof AnthropicConfigSchema;
type AnthropicThinkingConfigSchemaType = typeof AnthropicConfigSchema;
type AnthropicBaseConfig = ClaudeConfig;
type AnthropicThinkingConfig = ClaudeConfig;
/**
 * Media object representation with URL and optional content type.
 */
interface Media {
    url: string;
    contentType?: string;
}
declare const MediaSchema: z.ZodObject<{
    url: z.ZodString;
    contentType: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    url: string;
    contentType?: string | undefined;
}, {
    url: string;
    contentType?: string | undefined;
}>;
declare const MediaTypeSchema: z.ZodEnum<["image/jpeg", "image/png", "image/gif", "image/webp"]>;
type MediaType = z.infer<typeof MediaTypeSchema>;
declare const MEDIA_TYPES: {
    readonly JPEG: "image/jpeg";
    readonly PNG: "image/png";
    readonly GIF: "image/gif";
    readonly WEBP: "image/webp";
};
/**
 * Resolve whether beta API should be used for this call.
 * Priority:
 *   1. request.config.apiVersion (per-request override - explicit stable or beta)
 *   2. pluginDefaultApiVersion (plugin-wide default)
 *   3. otherwise stable
 */
declare function resolveBetaEnabled(cfg: ClaudeConfig | undefined, pluginDefaultApiVersion?: 'stable' | 'beta'): boolean;
/** Plain text document source. */
interface AnthropicTextSource {
    type: 'text';
    data: string;
    mediaType?: string;
}
/** Base64-encoded document source (e.g., PDF). */
interface AnthropicBase64Source {
    type: 'base64';
    data: string;
    mediaType: string;
}
/** File reference source (from Files API). */
interface AnthropicFileSource {
    type: 'file';
    fileId: string;
}
/** Custom content blocks for granular citation control. */
interface AnthropicContentSource {
    type: 'content';
    content: Array<{
        type: 'text';
        text: string;
    } | {
        type: 'image';
        source: {
            type: 'base64';
            mediaType: string;
            data: string;
        };
    }>;
}
/** URL source for PDFs. */
interface AnthropicURLSource {
    type: 'url';
    url: string;
}
/** Union of all document source types. */
type AnthropicDocumentSource = AnthropicTextSource | AnthropicBase64Source | AnthropicFileSource | AnthropicContentSource | AnthropicURLSource;
/** Options for creating an Anthropic document with optional citations. */
interface AnthropicDocumentOptions {
    source: AnthropicDocumentSource;
    title?: string;
    context?: string;
    citations?: {
        enabled: boolean;
    };
}
/** Citation from a plain text document (character indices). */
interface CharLocationCitation {
    type: 'char_location';
    citedText: string;
    documentIndex: number;
    documentTitle?: string;
    fileId?: string;
    startCharIndex: number;
    endCharIndex: number;
}
/** Citation from a PDF document (page numbers). */
interface PageLocationCitation {
    type: 'page_location';
    citedText: string;
    documentIndex: number;
    documentTitle?: string;
    fileId?: string;
    startPageNumber: number;
    endPageNumber: number;
}
/** Citation from a custom content document (block indices). */
interface ContentBlockLocationCitation {
    type: 'content_block_location';
    citedText: string;
    documentIndex: number;
    documentTitle?: string;
    fileId?: string;
    startBlockIndex: number;
    endBlockIndex: number;
}
/** Union of all citation types for documents. */
type AnthropicCitation = CharLocationCitation | PageLocationCitation | ContentBlockLocationCitation;

export { type AnthropicBase64Source, type AnthropicBaseConfig, AnthropicBaseConfigSchema, type AnthropicBaseConfigSchemaType, type AnthropicCitation, AnthropicConfigSchema, type AnthropicConfigSchemaType, type AnthropicContentSource, type AnthropicDocumentOptions, type AnthropicDocumentSource, type AnthropicFileSource, type AnthropicTextSource, type AnthropicThinkingConfig, AnthropicThinkingConfigSchema, type AnthropicThinkingConfigSchemaType, type AnthropicURLSource, type CharLocationCitation, type ClaudeConfig, type ClaudeModelParams, type ClaudeRunnerParams, type ContentBlockLocationCitation, type InternalPluginOptions, MEDIA_TYPES, type Media, MediaSchema, type MediaType, MediaTypeSchema, type PageLocationCitation, type PluginOptions, type ThinkingConfig, ThinkingConfigSchema, __testClient, resolveBetaEnabled };
