import * as z from "zod/v3";
import { ClosedEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import * as components from "../components/index.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
/**
 * Input text to embed, encoded as a string or array of tokens.
 */
export type CreateEmbeddingInput = string | Array<string>;
/**
 * Type of the document element
 */
export declare const EncodingFormat: {
    readonly Base64: "base64";
    readonly Float: "float";
};
/**
 * Type of the document element
 */
export type EncodingFormat = ClosedEnum<typeof EncodingFormat>;
export type CreateEmbeddingFallbacks = {
    /**
     * Fallback model identifier
     */
    model: string;
};
/**
 * Retry configuration for the request
 */
export type CreateEmbeddingRetry = {
    /**
     * Number of retry attempts (1-5)
     */
    count?: number | undefined;
    /**
     * HTTP status codes that trigger retry logic
     */
    onCodes?: Array<number> | undefined;
};
export declare const CreateEmbeddingType: {
    readonly ExactMatch: "exact_match";
};
export type CreateEmbeddingType = ClosedEnum<typeof CreateEmbeddingType>;
/**
 * Cache configuration for the request.
 */
export type CreateEmbeddingCache = {
    /**
     * Time to live for cached responses in seconds. Maximum 259200 seconds (3 days).
     */
    ttl?: number | undefined;
    type: CreateEmbeddingType;
};
export declare const CreateEmbeddingLoadBalancerType: {
    readonly WeightBased: "weight_based";
};
export type CreateEmbeddingLoadBalancerType = ClosedEnum<typeof CreateEmbeddingLoadBalancerType>;
export type CreateEmbeddingLoadBalancerModels = {
    /**
     * Model identifier for load balancing
     */
    model: string;
    /**
     * Weight assigned to this model for load balancing
     */
    weight?: number | undefined;
};
export type CreateEmbeddingLoadBalancer1 = {
    type: CreateEmbeddingLoadBalancerType;
    models: Array<CreateEmbeddingLoadBalancerModels>;
};
/**
 * Load balancer configuration for the request.
 */
export type CreateEmbeddingLoadBalancer = CreateEmbeddingLoadBalancer1;
/**
 * Timeout configuration to apply to the request. If the request exceeds the timeout, it will be retried or fallback to the next model if configured.
 */
export type CreateEmbeddingTimeout = {
    /**
     * Timeout value in milliseconds
     */
    callTimeout: number;
};
export type CreateEmbeddingRouterEmbeddingsFallbacks = {
    /**
     * Fallback model identifier
     */
    model: string;
};
export declare const CreateEmbeddingRouterEmbeddingsType: {
    readonly ExactMatch: "exact_match";
};
export type CreateEmbeddingRouterEmbeddingsType = ClosedEnum<typeof CreateEmbeddingRouterEmbeddingsType>;
/**
 * Cache configuration for the request.
 */
export type CreateEmbeddingRouterEmbeddingsCache = {
    /**
     * Time to live for cached responses in seconds. Maximum 259200 seconds (3 days).
     */
    ttl?: number | undefined;
    type: CreateEmbeddingRouterEmbeddingsType;
};
/**
 * Retry configuration for the request
 */
export type CreateEmbeddingRouterEmbeddingsRetry = {
    /**
     * Number of retry attempts (1-5)
     */
    count?: number | undefined;
    /**
     * HTTP status codes that trigger retry logic
     */
    onCodes?: Array<number> | undefined;
};
export declare const CreateEmbeddingLoadBalancerRouterEmbeddingsType: {
    readonly WeightBased: "weight_based";
};
export type CreateEmbeddingLoadBalancerRouterEmbeddingsType = ClosedEnum<typeof CreateEmbeddingLoadBalancerRouterEmbeddingsType>;
export type CreateEmbeddingLoadBalancerRouterEmbeddingsModels = {
    /**
     * Model identifier for load balancing
     */
    model: string;
    /**
     * Weight assigned to this model for load balancing
     */
    weight?: number | undefined;
};
export type CreateEmbeddingLoadBalancerRouterEmbeddings1 = {
    type: CreateEmbeddingLoadBalancerRouterEmbeddingsType;
    models: Array<CreateEmbeddingLoadBalancerRouterEmbeddingsModels>;
};
/**
 * Array of models with weights for load balancing requests
 */
export type CreateEmbeddingRouterEmbeddingsLoadBalancer = CreateEmbeddingLoadBalancerRouterEmbeddings1;
/**
 * Timeout configuration to apply to the request. If the request exceeds the timeout, it will be retried or fallback to the next model if configured.
 */
export type CreateEmbeddingRouterEmbeddingsTimeout = {
    /**
     * Timeout value in milliseconds
     */
    callTimeout: number;
};
export type CreateEmbeddingOrq = {
    /**
     * The name to display on the trace. If not specified, the default system name will be used.
     */
    name?: string | undefined;
    /**
     * Array of fallback models to use if primary model fails
     */
    fallbacks?: Array<CreateEmbeddingRouterEmbeddingsFallbacks> | undefined;
    /**
     * Cache configuration for the request.
     */
    cache?: CreateEmbeddingRouterEmbeddingsCache | undefined;
    /**
     * Retry configuration for the request
     */
    retry?: CreateEmbeddingRouterEmbeddingsRetry | undefined;
    /**
     * Information about the identity making the request. If the identity does not exist, it will be created automatically.
     */
    identity?: components.PublicIdentity | undefined;
    /**
     * @deprecated Use identity instead. Information about the contact making the request.
     *
     * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible.
     */
    contact?: components.PublicContact | undefined;
    /**
     * Array of models with weights for load balancing requests
     */
    loadBalancer?: CreateEmbeddingLoadBalancerRouterEmbeddings1 | undefined;
    /**
     * Timeout configuration to apply to the request. If the request exceeds the timeout, it will be retried or fallback to the next model if configured.
     */
    timeout?: CreateEmbeddingRouterEmbeddingsTimeout | undefined;
};
/**
 * input
 */
export type CreateEmbeddingRequestBody = {
    /**
     * Input text to embed, encoded as a string or array of tokens.
     */
    input: string | Array<string>;
    /**
     * ID of the model to use
     */
    model: string;
    /**
     * Type of the document element
     */
    encodingFormat?: EncodingFormat | undefined;
    /**
     * The number of dimensions the resulting output embeddings should have.
     */
    dimensions?: number | undefined;
    /**
     * A unique identifier representing your end-user
     */
    user?: string | undefined;
    /**
     * The name to display on the trace. If not specified, the default system name will be used.
     */
    name?: string | undefined;
    /**
     * Array of fallback models to use if primary model fails
     */
    fallbacks?: Array<CreateEmbeddingFallbacks> | undefined;
    /**
     * Retry configuration for the request
     */
    retry?: CreateEmbeddingRetry | undefined;
    /**
     * Cache configuration for the request.
     */
    cache?: CreateEmbeddingCache | undefined;
    /**
     * Load balancer configuration for the request.
     */
    loadBalancer?: CreateEmbeddingLoadBalancer1 | undefined;
    /**
     * Timeout configuration to apply to the request. If the request exceeds the timeout, it will be retried or fallback to the next model if configured.
     */
    timeout?: CreateEmbeddingTimeout | undefined;
    orq?: CreateEmbeddingOrq | undefined;
};
export declare const CreateEmbeddingObject: {
    readonly List: "list";
};
export type CreateEmbeddingObject = ClosedEnum<typeof CreateEmbeddingObject>;
/**
 * The object type, which is always `embedding`.
 */
export declare const CreateEmbeddingRouterEmbeddingsObject: {
    readonly Embedding: "embedding";
};
/**
 * The object type, which is always `embedding`.
 */
export type CreateEmbeddingRouterEmbeddingsObject = ClosedEnum<typeof CreateEmbeddingRouterEmbeddingsObject>;
/**
 * The embedding vector, which is a list of floats. The length of vector depends on the model.
 */
export type Embedding = Array<number> | string;
export type CreateEmbeddingData = {
    /**
     * The object type, which is always `embedding`.
     */
    object: CreateEmbeddingRouterEmbeddingsObject;
    /**
     * The embedding vector, which is a list of floats. The length of vector depends on the model.
     */
    embedding: Array<number> | string;
    /**
     * The index of the embedding in the list of embeddings.
     */
    index: number;
};
/**
 * The usage information for the request.
 */
export type CreateEmbeddingUsage = {
    /**
     * The number of tokens used by the prompt.
     */
    promptTokens: number;
    /**
     * The total number of tokens used by the request.
     */
    totalTokens: number;
};
/**
 * Returns the embedding vector.
 */
export type CreateEmbeddingResponseBody = {
    object: CreateEmbeddingObject;
    data: Array<CreateEmbeddingData>;
    /**
     * ID of the model to used.
     */
    model: string;
    /**
     * The usage information for the request.
     */
    usage: CreateEmbeddingUsage;
};
/** @internal */
export type CreateEmbeddingInput$Outbound = string | Array<string>;
/** @internal */
export declare const CreateEmbeddingInput$outboundSchema: z.ZodType<CreateEmbeddingInput$Outbound, z.ZodTypeDef, CreateEmbeddingInput>;
export declare function createEmbeddingInputToJSON(createEmbeddingInput: CreateEmbeddingInput): string;
/** @internal */
export declare const EncodingFormat$outboundSchema: z.ZodNativeEnum<typeof EncodingFormat>;
/** @internal */
export type CreateEmbeddingFallbacks$Outbound = {
    model: string;
};
/** @internal */
export declare const CreateEmbeddingFallbacks$outboundSchema: z.ZodType<CreateEmbeddingFallbacks$Outbound, z.ZodTypeDef, CreateEmbeddingFallbacks>;
export declare function createEmbeddingFallbacksToJSON(createEmbeddingFallbacks: CreateEmbeddingFallbacks): string;
/** @internal */
export type CreateEmbeddingRetry$Outbound = {
    count: number;
    on_codes?: Array<number> | undefined;
};
/** @internal */
export declare const CreateEmbeddingRetry$outboundSchema: z.ZodType<CreateEmbeddingRetry$Outbound, z.ZodTypeDef, CreateEmbeddingRetry>;
export declare function createEmbeddingRetryToJSON(createEmbeddingRetry: CreateEmbeddingRetry): string;
/** @internal */
export declare const CreateEmbeddingType$outboundSchema: z.ZodNativeEnum<typeof CreateEmbeddingType>;
/** @internal */
export type CreateEmbeddingCache$Outbound = {
    ttl: number;
    type: string;
};
/** @internal */
export declare const CreateEmbeddingCache$outboundSchema: z.ZodType<CreateEmbeddingCache$Outbound, z.ZodTypeDef, CreateEmbeddingCache>;
export declare function createEmbeddingCacheToJSON(createEmbeddingCache: CreateEmbeddingCache): string;
/** @internal */
export declare const CreateEmbeddingLoadBalancerType$outboundSchema: z.ZodNativeEnum<typeof CreateEmbeddingLoadBalancerType>;
/** @internal */
export type CreateEmbeddingLoadBalancerModels$Outbound = {
    model: string;
    weight: number;
};
/** @internal */
export declare const CreateEmbeddingLoadBalancerModels$outboundSchema: z.ZodType<CreateEmbeddingLoadBalancerModels$Outbound, z.ZodTypeDef, CreateEmbeddingLoadBalancerModels>;
export declare function createEmbeddingLoadBalancerModelsToJSON(createEmbeddingLoadBalancerModels: CreateEmbeddingLoadBalancerModels): string;
/** @internal */
export type CreateEmbeddingLoadBalancer1$Outbound = {
    type: string;
    models: Array<CreateEmbeddingLoadBalancerModels$Outbound>;
};
/** @internal */
export declare const CreateEmbeddingLoadBalancer1$outboundSchema: z.ZodType<CreateEmbeddingLoadBalancer1$Outbound, z.ZodTypeDef, CreateEmbeddingLoadBalancer1>;
export declare function createEmbeddingLoadBalancer1ToJSON(createEmbeddingLoadBalancer1: CreateEmbeddingLoadBalancer1): string;
/** @internal */
export type CreateEmbeddingLoadBalancer$Outbound = CreateEmbeddingLoadBalancer1$Outbound;
/** @internal */
export declare const CreateEmbeddingLoadBalancer$outboundSchema: z.ZodType<CreateEmbeddingLoadBalancer$Outbound, z.ZodTypeDef, CreateEmbeddingLoadBalancer>;
export declare function createEmbeddingLoadBalancerToJSON(createEmbeddingLoadBalancer: CreateEmbeddingLoadBalancer): string;
/** @internal */
export type CreateEmbeddingTimeout$Outbound = {
    call_timeout: number;
};
/** @internal */
export declare const CreateEmbeddingTimeout$outboundSchema: z.ZodType<CreateEmbeddingTimeout$Outbound, z.ZodTypeDef, CreateEmbeddingTimeout>;
export declare function createEmbeddingTimeoutToJSON(createEmbeddingTimeout: CreateEmbeddingTimeout): string;
/** @internal */
export type CreateEmbeddingRouterEmbeddingsFallbacks$Outbound = {
    model: string;
};
/** @internal */
export declare const CreateEmbeddingRouterEmbeddingsFallbacks$outboundSchema: z.ZodType<CreateEmbeddingRouterEmbeddingsFallbacks$Outbound, z.ZodTypeDef, CreateEmbeddingRouterEmbeddingsFallbacks>;
export declare function createEmbeddingRouterEmbeddingsFallbacksToJSON(createEmbeddingRouterEmbeddingsFallbacks: CreateEmbeddingRouterEmbeddingsFallbacks): string;
/** @internal */
export declare const CreateEmbeddingRouterEmbeddingsType$outboundSchema: z.ZodNativeEnum<typeof CreateEmbeddingRouterEmbeddingsType>;
/** @internal */
export type CreateEmbeddingRouterEmbeddingsCache$Outbound = {
    ttl: number;
    type: string;
};
/** @internal */
export declare const CreateEmbeddingRouterEmbeddingsCache$outboundSchema: z.ZodType<CreateEmbeddingRouterEmbeddingsCache$Outbound, z.ZodTypeDef, CreateEmbeddingRouterEmbeddingsCache>;
export declare function createEmbeddingRouterEmbeddingsCacheToJSON(createEmbeddingRouterEmbeddingsCache: CreateEmbeddingRouterEmbeddingsCache): string;
/** @internal */
export type CreateEmbeddingRouterEmbeddingsRetry$Outbound = {
    count: number;
    on_codes?: Array<number> | undefined;
};
/** @internal */
export declare const CreateEmbeddingRouterEmbeddingsRetry$outboundSchema: z.ZodType<CreateEmbeddingRouterEmbeddingsRetry$Outbound, z.ZodTypeDef, CreateEmbeddingRouterEmbeddingsRetry>;
export declare function createEmbeddingRouterEmbeddingsRetryToJSON(createEmbeddingRouterEmbeddingsRetry: CreateEmbeddingRouterEmbeddingsRetry): string;
/** @internal */
export declare const CreateEmbeddingLoadBalancerRouterEmbeddingsType$outboundSchema: z.ZodNativeEnum<typeof CreateEmbeddingLoadBalancerRouterEmbeddingsType>;
/** @internal */
export type CreateEmbeddingLoadBalancerRouterEmbeddingsModels$Outbound = {
    model: string;
    weight: number;
};
/** @internal */
export declare const CreateEmbeddingLoadBalancerRouterEmbeddingsModels$outboundSchema: z.ZodType<CreateEmbeddingLoadBalancerRouterEmbeddingsModels$Outbound, z.ZodTypeDef, CreateEmbeddingLoadBalancerRouterEmbeddingsModels>;
export declare function createEmbeddingLoadBalancerRouterEmbeddingsModelsToJSON(createEmbeddingLoadBalancerRouterEmbeddingsModels: CreateEmbeddingLoadBalancerRouterEmbeddingsModels): string;
/** @internal */
export type CreateEmbeddingLoadBalancerRouterEmbeddings1$Outbound = {
    type: string;
    models: Array<CreateEmbeddingLoadBalancerRouterEmbeddingsModels$Outbound>;
};
/** @internal */
export declare const CreateEmbeddingLoadBalancerRouterEmbeddings1$outboundSchema: z.ZodType<CreateEmbeddingLoadBalancerRouterEmbeddings1$Outbound, z.ZodTypeDef, CreateEmbeddingLoadBalancerRouterEmbeddings1>;
export declare function createEmbeddingLoadBalancerRouterEmbeddings1ToJSON(createEmbeddingLoadBalancerRouterEmbeddings1: CreateEmbeddingLoadBalancerRouterEmbeddings1): string;
/** @internal */
export type CreateEmbeddingRouterEmbeddingsLoadBalancer$Outbound = CreateEmbeddingLoadBalancerRouterEmbeddings1$Outbound;
/** @internal */
export declare const CreateEmbeddingRouterEmbeddingsLoadBalancer$outboundSchema: z.ZodType<CreateEmbeddingRouterEmbeddingsLoadBalancer$Outbound, z.ZodTypeDef, CreateEmbeddingRouterEmbeddingsLoadBalancer>;
export declare function createEmbeddingRouterEmbeddingsLoadBalancerToJSON(createEmbeddingRouterEmbeddingsLoadBalancer: CreateEmbeddingRouterEmbeddingsLoadBalancer): string;
/** @internal */
export type CreateEmbeddingRouterEmbeddingsTimeout$Outbound = {
    call_timeout: number;
};
/** @internal */
export declare const CreateEmbeddingRouterEmbeddingsTimeout$outboundSchema: z.ZodType<CreateEmbeddingRouterEmbeddingsTimeout$Outbound, z.ZodTypeDef, CreateEmbeddingRouterEmbeddingsTimeout>;
export declare function createEmbeddingRouterEmbeddingsTimeoutToJSON(createEmbeddingRouterEmbeddingsTimeout: CreateEmbeddingRouterEmbeddingsTimeout): string;
/** @internal */
export type CreateEmbeddingOrq$Outbound = {
    name?: string | undefined;
    fallbacks?: Array<CreateEmbeddingRouterEmbeddingsFallbacks$Outbound> | undefined;
    cache?: CreateEmbeddingRouterEmbeddingsCache$Outbound | undefined;
    retry?: CreateEmbeddingRouterEmbeddingsRetry$Outbound | undefined;
    identity?: components.PublicIdentity$Outbound | undefined;
    contact?: components.PublicContact$Outbound | undefined;
    load_balancer?: CreateEmbeddingLoadBalancerRouterEmbeddings1$Outbound | undefined;
    timeout?: CreateEmbeddingRouterEmbeddingsTimeout$Outbound | undefined;
};
/** @internal */
export declare const CreateEmbeddingOrq$outboundSchema: z.ZodType<CreateEmbeddingOrq$Outbound, z.ZodTypeDef, CreateEmbeddingOrq>;
export declare function createEmbeddingOrqToJSON(createEmbeddingOrq: CreateEmbeddingOrq): string;
/** @internal */
export type CreateEmbeddingRequestBody$Outbound = {
    input: string | Array<string>;
    model: string;
    encoding_format: string;
    dimensions?: number | undefined;
    user?: string | undefined;
    name?: string | undefined;
    fallbacks?: Array<CreateEmbeddingFallbacks$Outbound> | undefined;
    retry?: CreateEmbeddingRetry$Outbound | undefined;
    cache?: CreateEmbeddingCache$Outbound | undefined;
    load_balancer?: CreateEmbeddingLoadBalancer1$Outbound | undefined;
    timeout?: CreateEmbeddingTimeout$Outbound | undefined;
    orq?: CreateEmbeddingOrq$Outbound | undefined;
};
/** @internal */
export declare const CreateEmbeddingRequestBody$outboundSchema: z.ZodType<CreateEmbeddingRequestBody$Outbound, z.ZodTypeDef, CreateEmbeddingRequestBody>;
export declare function createEmbeddingRequestBodyToJSON(createEmbeddingRequestBody: CreateEmbeddingRequestBody): string;
/** @internal */
export declare const CreateEmbeddingObject$inboundSchema: z.ZodNativeEnum<typeof CreateEmbeddingObject>;
/** @internal */
export declare const CreateEmbeddingRouterEmbeddingsObject$inboundSchema: z.ZodNativeEnum<typeof CreateEmbeddingRouterEmbeddingsObject>;
/** @internal */
export declare const Embedding$inboundSchema: z.ZodType<Embedding, z.ZodTypeDef, unknown>;
export declare function embeddingFromJSON(jsonString: string): SafeParseResult<Embedding, SDKValidationError>;
/** @internal */
export declare const CreateEmbeddingData$inboundSchema: z.ZodType<CreateEmbeddingData, z.ZodTypeDef, unknown>;
export declare function createEmbeddingDataFromJSON(jsonString: string): SafeParseResult<CreateEmbeddingData, SDKValidationError>;
/** @internal */
export declare const CreateEmbeddingUsage$inboundSchema: z.ZodType<CreateEmbeddingUsage, z.ZodTypeDef, unknown>;
export declare function createEmbeddingUsageFromJSON(jsonString: string): SafeParseResult<CreateEmbeddingUsage, SDKValidationError>;
/** @internal */
export declare const CreateEmbeddingResponseBody$inboundSchema: z.ZodType<CreateEmbeddingResponseBody, z.ZodTypeDef, unknown>;
export declare function createEmbeddingResponseBodyFromJSON(jsonString: string): SafeParseResult<CreateEmbeddingResponseBody, SDKValidationError>;
//# sourceMappingURL=createembedding.d.ts.map