export { AnthropicProviderOptions } from '@ai-sdk/anthropic';
import { z } from 'zod/v4';
import { anthropicTools } from '@ai-sdk/anthropic/internal';
import { ProviderV4, LanguageModelV4, EmbeddingModelV4, ImageModelV4, RerankingModelV4 } from '@ai-sdk/provider';
import { FetchFunction } from '@ai-sdk/provider-utils';

type AmazonBedrockEmbeddingModelId = 'amazon.titan-embed-text-v1' | 'amazon.titan-embed-text-v2:0' | 'cohere.embed-english-v3' | 'cohere.embed-multilingual-v3' | (string & {});
declare const amazonBedrockEmbeddingModelOptionsSchema: z.ZodObject<{
    dimensions: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<1024>, z.ZodLiteral<512>, z.ZodLiteral<256>]>>;
    normalize: z.ZodOptional<z.ZodBoolean>;
    embeddingDimension: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<256>, z.ZodLiteral<384>, z.ZodLiteral<1024>, z.ZodLiteral<3072>]>>;
    embeddingPurpose: z.ZodOptional<z.ZodEnum<{
        GENERIC_INDEX: "GENERIC_INDEX";
        TEXT_RETRIEVAL: "TEXT_RETRIEVAL";
        IMAGE_RETRIEVAL: "IMAGE_RETRIEVAL";
        VIDEO_RETRIEVAL: "VIDEO_RETRIEVAL";
        DOCUMENT_RETRIEVAL: "DOCUMENT_RETRIEVAL";
        AUDIO_RETRIEVAL: "AUDIO_RETRIEVAL";
        GENERIC_RETRIEVAL: "GENERIC_RETRIEVAL";
        CLASSIFICATION: "CLASSIFICATION";
        CLUSTERING: "CLUSTERING";
    }>>;
    inputType: z.ZodOptional<z.ZodEnum<{
        search_document: "search_document";
        search_query: "search_query";
        classification: "classification";
        clustering: "clustering";
    }>>;
    truncate: z.ZodOptional<z.ZodEnum<{
        NONE: "NONE";
        START: "START";
        END: "END";
    }>>;
    outputDimension: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<256>, z.ZodLiteral<512>, z.ZodLiteral<1024>, z.ZodLiteral<1536>]>>;
}, z.core.$strip>;
type AmazonBedrockEmbeddingModelOptions = z.infer<typeof amazonBedrockEmbeddingModelOptionsSchema>;

type AmazonBedrockChatModelId = 'amazon.titan-tg1-large' | 'amazon.titan-text-express-v1' | 'anthropic.claude-v2' | 'anthropic.claude-v2:1' | 'anthropic.claude-instant-v1' | 'anthropic.claude-sonnet-5' | 'anthropic.claude-fable-5' | 'anthropic.claude-opus-4-8' | 'anthropic.claude-opus-4-7' | 'anthropic.claude-opus-4-6-v1' | 'anthropic.claude-sonnet-4-6-v1' | 'anthropic.claude-opus-4-5-20251101-v1:0' | 'anthropic.claude-haiku-4-5-20251001-v1:0' | 'anthropic.claude-sonnet-4-5-20250929-v1:0' | 'anthropic.claude-sonnet-4-20250514-v1:0' | 'anthropic.claude-opus-4-20250514-v1:0' | 'anthropic.claude-opus-4-1-20250805-v1:0' | 'anthropic.claude-3-7-sonnet-20250219-v1:0' | 'anthropic.claude-3-5-sonnet-20240620-v1:0' | 'anthropic.claude-3-5-sonnet-20241022-v2:0' | 'anthropic.claude-3-5-haiku-20241022-v1:0' | 'anthropic.claude-3-sonnet-20240229-v1:0' | 'anthropic.claude-3-haiku-20240307-v1:0' | 'anthropic.claude-3-opus-20240229-v1:0' | 'cohere.command-text-v14' | 'cohere.command-light-text-v14' | 'cohere.command-r-v1:0' | 'cohere.command-r-plus-v1:0' | 'meta.llama3-70b-instruct-v1:0' | 'meta.llama3-8b-instruct-v1:0' | 'meta.llama3-1-405b-instruct-v1:0' | 'meta.llama3-1-70b-instruct-v1:0' | 'meta.llama3-1-8b-instruct-v1:0' | 'meta.llama3-2-11b-instruct-v1:0' | 'meta.llama3-2-1b-instruct-v1:0' | 'meta.llama3-2-3b-instruct-v1:0' | 'meta.llama3-2-90b-instruct-v1:0' | 'mistral.mistral-7b-instruct-v0:2' | 'mistral.mixtral-8x7b-instruct-v0:1' | 'mistral.mistral-large-2402-v1:0' | 'mistral.mistral-small-2402-v1:0' | 'openai.gpt-oss-120b-1:0' | 'openai.gpt-oss-20b-1:0' | 'amazon.titan-text-express-v1' | 'amazon.titan-text-lite-v1' | 'us.amazon.nova-premier-v1:0' | 'us.amazon.nova-pro-v1:0' | 'us.amazon.nova-micro-v1:0' | 'us.amazon.nova-lite-v1:0' | 'us.anthropic.claude-3-sonnet-20240229-v1:0' | 'us.anthropic.claude-3-opus-20240229-v1:0' | 'us.anthropic.claude-3-haiku-20240307-v1:0' | 'us.anthropic.claude-3-5-sonnet-20240620-v1:0' | 'us.anthropic.claude-3-5-haiku-20241022-v1:0' | 'us.anthropic.claude-3-5-sonnet-20241022-v2:0' | 'us.anthropic.claude-3-7-sonnet-20250219-v1:0' | 'us.anthropic.claude-sonnet-5' | 'us.anthropic.claude-fable-5' | 'us.anthropic.claude-opus-4-8' | 'us.anthropic.claude-opus-4-7' | 'us.anthropic.claude-opus-4-6-v1' | 'us.anthropic.claude-sonnet-4-6-v1' | 'us.anthropic.claude-opus-4-5-20251101-v1:0' | 'us.anthropic.claude-sonnet-4-5-20250929-v1:0' | 'us.anthropic.claude-sonnet-4-20250514-v1:0' | 'us.anthropic.claude-opus-4-20250514-v1:0' | 'us.anthropic.claude-opus-4-1-20250805-v1:0' | 'us.anthropic.claude-haiku-4-5-20251001-v1:0' | 'us.meta.llama3-2-11b-instruct-v1:0' | 'us.meta.llama3-2-3b-instruct-v1:0' | 'us.meta.llama3-2-90b-instruct-v1:0' | 'us.meta.llama3-2-1b-instruct-v1:0' | 'us.meta.llama3-1-8b-instruct-v1:0' | 'us.meta.llama3-1-70b-instruct-v1:0' | 'us.meta.llama3-3-70b-instruct-v1:0' | 'us.deepseek.r1-v1:0' | 'us.mistral.pixtral-large-2502-v1:0' | 'us.meta.llama4-scout-17b-instruct-v1:0' | 'us.meta.llama4-maverick-17b-instruct-v1:0' | (string & {});
declare const amazonBedrockLanguageModelChatOptions: z.ZodObject<{
    additionalModelRequestFields: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
    reasoningConfig: z.ZodOptional<z.ZodObject<{
        type: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"enabled">, z.ZodLiteral<"disabled">, z.ZodLiteral<"adaptive">]>>;
        budgetTokens: z.ZodOptional<z.ZodNumber>;
        maxReasoningEffort: z.ZodOptional<z.ZodEnum<{
            low: "low";
            medium: "medium";
            high: "high";
            xhigh: "xhigh";
            max: "max";
        }>>;
        display: z.ZodOptional<z.ZodEnum<{
            omitted: "omitted";
            summarized: "summarized";
        }>>;
    }, z.core.$strip>>;
    anthropicBeta: z.ZodOptional<z.ZodArray<z.ZodString>>;
    serviceTier: z.ZodOptional<z.ZodEnum<{
        default: "default";
        reserved: "reserved";
        priority: "priority";
        flex: "flex";
    }>>;
}, z.core.$strip>;
type AmazonBedrockLanguageModelChatOptions = z.infer<typeof amazonBedrockLanguageModelChatOptions>;

type AmazonBedrockImageModelId = 'amazon.nova-canvas-v1:0' | (string & {});

interface AmazonBedrockCredentials {
    region: string;
    accessKeyId: string;
    secretAccessKey: string;
    sessionToken?: string;
}

type AmazonBedrockRerankingModelId = 'amazon.rerank-v1:0' | 'cohere.rerank-v3-5:0' | (string & {});
type AmazonBedrockRerankingModelOptions = {
    /**
     * If the total number of results was greater than could fit in a response, a token is returned in the nextToken field. You can enter that token in this field to return the next batch of results.
     */
    nextToken?: string;
    /**
     * Additional model request fields to pass to the model.
     */
    additionalModelRequestFields?: Record<string, unknown>;
};

interface AmazonBedrockProviderSettings {
    /**
     * The AWS region to use for the Bedrock provider. Defaults to the value of the
     * `AWS_REGION` environment variable.
     */
    region?: string;
    /**
     * API key for authenticating requests using Bearer token authentication.
     * When provided, this will be used instead of AWS SigV4 authentication.
     * Defaults to the value of the `AWS_BEARER_TOKEN_BEDROCK` environment variable.
     *
     * @example
     * ```typescript
     * // Using API key directly
     * const bedrock = createAmazonBedrock({
     * apiKey: 'your-api-key-here',
     * region: 'us-east-1'
     * });
     *
     * // Using environment variable AWS_BEARER_TOKEN_BEDROCK
     * const bedrock = createAmazonBedrock({
     * region: 'us-east-1'
     * });
     * ```
     *
     * Note: When `apiKey` is provided, it takes precedence over AWS SigV4 authentication.
     * If neither `apiKey` nor `AWS_BEARER_TOKEN_BEDROCK` environment variable is set,
     * the provider will fall back to AWS SigV4 authentication using AWS credentials.
     */
    apiKey?: string;
    /**
     * The AWS access key ID to use for the Bedrock provider. Defaults to the value of the
     * `AWS_ACCESS_KEY_ID` environment variable.
     */
    accessKeyId?: string;
    /**
     * The AWS secret access key to use for the Bedrock provider. Defaults to the value of the
     * `AWS_SECRET_ACCESS_KEY` environment variable.
     */
    secretAccessKey?: string;
    /**
     * The AWS session token to use for the Bedrock provider. When `accessKeyId` and
     * `secretAccessKey` are both passed explicitly as options, only this field is used
     * If either access key field is omitted and resolved from the environment, the
     * session token also falls back to `AWS_SESSION_TOKEN` when not set here.
     */
    sessionToken?: string;
    /**
     * Base URL for the Bedrock API calls.
     */
    baseURL?: string;
    /**
     * Custom headers to include in the requests.
     */
    headers?: Record<string, string>;
    /**
     * Custom fetch implementation. You can use it as a middleware to intercept requests,
     * or to provide a custom fetch implementation for e.g. testing.
     */
    fetch?: FetchFunction;
    /**
     * The AWS credential provider to use for the Bedrock provider to get dynamic
     * credentials similar to the AWS SDK. Setting a provider here will cause its
     * credential values to be used instead of the `accessKeyId`, `secretAccessKey`,
     * and `sessionToken` settings.
     */
    credentialProvider?: () => PromiseLike<Omit<AmazonBedrockCredentials, 'region'>>;
    generateId?: () => string;
}
interface AmazonBedrockProvider extends ProviderV4 {
    (modelId: AmazonBedrockChatModelId): LanguageModelV4;
    languageModel(modelId: AmazonBedrockChatModelId): LanguageModelV4;
    /**
     * Creates a model for text embeddings.
     */
    embedding(modelId: AmazonBedrockEmbeddingModelId): EmbeddingModelV4;
    /**
     * Creates a model for text embeddings.
     */
    embeddingModel(modelId: AmazonBedrockEmbeddingModelId): EmbeddingModelV4;
    /**
     * @deprecated Use `embedding` instead.
     */
    textEmbedding(modelId: AmazonBedrockEmbeddingModelId): EmbeddingModelV4;
    /**
     * @deprecated Use `embeddingModel` instead.
     */
    textEmbeddingModel(modelId: AmazonBedrockEmbeddingModelId): EmbeddingModelV4;
    /**
     * Creates a model for image generation.
     */
    image(modelId: AmazonBedrockImageModelId): ImageModelV4;
    /**
     * Creates a model for image generation.
     */
    imageModel(modelId: AmazonBedrockImageModelId): ImageModelV4;
    /**
     * Creates a model for reranking documents.
     */
    reranking(modelId: AmazonBedrockRerankingModelId): RerankingModelV4;
    /**
     * Creates a model for reranking documents.
     */
    rerankingModel(modelId: AmazonBedrockRerankingModelId): RerankingModelV4;
    /**
     * Anthropic-specific tools that can be used with Anthropic models on Bedrock.
     */
    tools: typeof anthropicTools;
}
/**
 * Create an Amazon Bedrock provider instance.
 */
declare function createAmazonBedrock(options?: AmazonBedrockProviderSettings): AmazonBedrockProvider;
/**
 * Default Amazon Bedrock provider instance.
 */
declare const amazonBedrock: AmazonBedrockProvider;

declare const VERSION: string;

export { type AmazonBedrockEmbeddingModelOptions, type AmazonBedrockLanguageModelChatOptions, type AmazonBedrockLanguageModelChatOptions as AmazonBedrockLanguageModelOptions, type AmazonBedrockProvider, type AmazonBedrockProviderSettings, type AmazonBedrockRerankingModelOptions, type AmazonBedrockLanguageModelChatOptions as BedrockProviderOptions, type AmazonBedrockRerankingModelOptions as BedrockRerankingOptions, VERSION, amazonBedrock, amazonBedrock as bedrock, createAmazonBedrock };
