import * as z from "zod/v3";
import { ClosedEnum } from "../../types/enums.js";
import * as components from "../components/index.js";
/**
 * The format to audio in. Supported formats are `mp3`, `opus`, `aac`, `flac`, `wav`, and `pcm`. If a format is provided but not supported by the provider, the response will be in the default format. When the provided format is not supported by the provider, the response will be in the default format.
 */
export declare const CreateSpeechResponseFormat: {
    readonly Mp3: "mp3";
    readonly Opus: "opus";
    readonly Aac: "aac";
    readonly Flac: "flac";
    readonly Wav: "wav";
    readonly Pcm: "pcm";
};
/**
 * The format to audio in. Supported formats are `mp3`, `opus`, `aac`, `flac`, `wav`, and `pcm`. If a format is provided but not supported by the provider, the response will be in the default format. When the provided format is not supported by the provider, the response will be in the default format.
 */
export type CreateSpeechResponseFormat = ClosedEnum<typeof CreateSpeechResponseFormat>;
export type CreateSpeechFallbacks = {
    /**
     * Fallback model identifier
     */
    model: string;
};
/**
 * Retry configuration for the request
 */
export type CreateSpeechRetry = {
    /**
     * Number of retry attempts (1-5)
     */
    count?: number | undefined;
    /**
     * HTTP status codes that trigger retry logic
     */
    onCodes?: Array<number> | undefined;
};
export declare const CreateSpeechLoadBalancerType: {
    readonly WeightBased: "weight_based";
};
export type CreateSpeechLoadBalancerType = ClosedEnum<typeof CreateSpeechLoadBalancerType>;
export type CreateSpeechLoadBalancerModels = {
    /**
     * Model identifier for load balancing
     */
    model: string;
    /**
     * Weight assigned to this model for load balancing
     */
    weight?: number | undefined;
};
export type CreateSpeechLoadBalancer1 = {
    type: CreateSpeechLoadBalancerType;
    models: Array<CreateSpeechLoadBalancerModels>;
};
/**
 * Load balancer configuration for the request.
 */
export type CreateSpeechLoadBalancer = CreateSpeechLoadBalancer1;
/**
 * 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 CreateSpeechTimeout = {
    /**
     * Timeout value in milliseconds
     */
    callTimeout: number;
};
/**
 * Retry configuration for the request
 */
export type CreateSpeechRouterAudioSpeechRetry = {
    /**
     * Number of retry attempts (1-5)
     */
    count?: number | undefined;
    /**
     * HTTP status codes that trigger retry logic
     */
    onCodes?: Array<number> | undefined;
};
export type CreateSpeechRouterAudioSpeechFallbacks = {
    /**
     * Fallback model identifier
     */
    model: string;
};
/**
 * Thread information to group related requests
 */
export type CreateSpeechThread = {
    /**
     * Unique thread identifier to group related invocations.
     */
    id: string;
    /**
     * Optional tags to differentiate or categorize threads
     */
    tags?: Array<string> | undefined;
};
export declare const CreateSpeechLoadBalancerRouterAudioSpeechType: {
    readonly WeightBased: "weight_based";
};
export type CreateSpeechLoadBalancerRouterAudioSpeechType = ClosedEnum<typeof CreateSpeechLoadBalancerRouterAudioSpeechType>;
export type CreateSpeechLoadBalancerRouterAudioSpeechModels = {
    /**
     * Model identifier for load balancing
     */
    model: string;
    /**
     * Weight assigned to this model for load balancing
     */
    weight?: number | undefined;
};
export type CreateSpeechLoadBalancerRouterAudioSpeech1 = {
    type: CreateSpeechLoadBalancerRouterAudioSpeechType;
    models: Array<CreateSpeechLoadBalancerRouterAudioSpeechModels>;
};
/**
 * Array of models with weights for load balancing requests
 */
export type CreateSpeechRouterAudioSpeechLoadBalancer = CreateSpeechLoadBalancerRouterAudioSpeech1;
/**
 * 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 CreateSpeechRouterAudioSpeechTimeout = {
    /**
     * Timeout value in milliseconds
     */
    callTimeout: number;
};
export type CreateSpeechOrq = {
    /**
     * Retry configuration for the request
     */
    retry?: CreateSpeechRouterAudioSpeechRetry | undefined;
    /**
     * Array of fallback models to use if primary model fails
     */
    fallbacks?: Array<CreateSpeechRouterAudioSpeechFallbacks> | undefined;
    /**
     * The name to display on the trace. If not specified, the default system name will be used.
     */
    name?: string | 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;
    /**
     * Thread information to group related requests
     */
    thread?: CreateSpeechThread | undefined;
    /**
     * Array of models with weights for load balancing requests
     */
    loadBalancer?: CreateSpeechLoadBalancerRouterAudioSpeech1 | 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?: CreateSpeechRouterAudioSpeechTimeout | undefined;
};
/**
 * input
 */
export type CreateSpeechRequestBody = {
    /**
     * The text to generate audio for. The maximum length is 4096 characters
     */
    input: string;
    /**
     * ID of the model to use
     */
    model: string;
    /**
     * The voice to use.
     *
     * @remarks
     *
     *  Available voices for OpenAI
     *
     *  `alloy`, `echo`, `fable`, `onyx`, `nova`, and `shimmer`
     *
     *  Available voices for ElevenLabs
     *
     *  `aria`, `roger`, `sarah`, `laura`, `charlie`, `george`, `callum`, `river`, `liam`, `charlotte`, `alice`, `matilda`, `will`, `jessica`, `eric`, `chris`, `brian`, `daniel`, `lily`, `bill`
     */
    voice: string;
    /**
     * The format to audio in. Supported formats are `mp3`, `opus`, `aac`, `flac`, `wav`, and `pcm`. If a format is provided but not supported by the provider, the response will be in the default format. When the provided format is not supported by the provider, the response will be in the default format.
     */
    responseFormat?: CreateSpeechResponseFormat | undefined;
    /**
     * The speed of the generated audio.
     */
    speed?: number | 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<CreateSpeechFallbacks> | undefined;
    /**
     * Retry configuration for the request
     */
    retry?: CreateSpeechRetry | undefined;
    /**
     * Load balancer configuration for the request.
     */
    loadBalancer?: CreateSpeechLoadBalancer1 | 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?: CreateSpeechTimeout | undefined;
    orq?: CreateSpeechOrq | undefined;
};
/** @internal */
export declare const CreateSpeechResponseFormat$outboundSchema: z.ZodNativeEnum<typeof CreateSpeechResponseFormat>;
/** @internal */
export type CreateSpeechFallbacks$Outbound = {
    model: string;
};
/** @internal */
export declare const CreateSpeechFallbacks$outboundSchema: z.ZodType<CreateSpeechFallbacks$Outbound, z.ZodTypeDef, CreateSpeechFallbacks>;
export declare function createSpeechFallbacksToJSON(createSpeechFallbacks: CreateSpeechFallbacks): string;
/** @internal */
export type CreateSpeechRetry$Outbound = {
    count: number;
    on_codes?: Array<number> | undefined;
};
/** @internal */
export declare const CreateSpeechRetry$outboundSchema: z.ZodType<CreateSpeechRetry$Outbound, z.ZodTypeDef, CreateSpeechRetry>;
export declare function createSpeechRetryToJSON(createSpeechRetry: CreateSpeechRetry): string;
/** @internal */
export declare const CreateSpeechLoadBalancerType$outboundSchema: z.ZodNativeEnum<typeof CreateSpeechLoadBalancerType>;
/** @internal */
export type CreateSpeechLoadBalancerModels$Outbound = {
    model: string;
    weight: number;
};
/** @internal */
export declare const CreateSpeechLoadBalancerModels$outboundSchema: z.ZodType<CreateSpeechLoadBalancerModels$Outbound, z.ZodTypeDef, CreateSpeechLoadBalancerModels>;
export declare function createSpeechLoadBalancerModelsToJSON(createSpeechLoadBalancerModels: CreateSpeechLoadBalancerModels): string;
/** @internal */
export type CreateSpeechLoadBalancer1$Outbound = {
    type: string;
    models: Array<CreateSpeechLoadBalancerModels$Outbound>;
};
/** @internal */
export declare const CreateSpeechLoadBalancer1$outboundSchema: z.ZodType<CreateSpeechLoadBalancer1$Outbound, z.ZodTypeDef, CreateSpeechLoadBalancer1>;
export declare function createSpeechLoadBalancer1ToJSON(createSpeechLoadBalancer1: CreateSpeechLoadBalancer1): string;
/** @internal */
export type CreateSpeechLoadBalancer$Outbound = CreateSpeechLoadBalancer1$Outbound;
/** @internal */
export declare const CreateSpeechLoadBalancer$outboundSchema: z.ZodType<CreateSpeechLoadBalancer$Outbound, z.ZodTypeDef, CreateSpeechLoadBalancer>;
export declare function createSpeechLoadBalancerToJSON(createSpeechLoadBalancer: CreateSpeechLoadBalancer): string;
/** @internal */
export type CreateSpeechTimeout$Outbound = {
    call_timeout: number;
};
/** @internal */
export declare const CreateSpeechTimeout$outboundSchema: z.ZodType<CreateSpeechTimeout$Outbound, z.ZodTypeDef, CreateSpeechTimeout>;
export declare function createSpeechTimeoutToJSON(createSpeechTimeout: CreateSpeechTimeout): string;
/** @internal */
export type CreateSpeechRouterAudioSpeechRetry$Outbound = {
    count: number;
    on_codes?: Array<number> | undefined;
};
/** @internal */
export declare const CreateSpeechRouterAudioSpeechRetry$outboundSchema: z.ZodType<CreateSpeechRouterAudioSpeechRetry$Outbound, z.ZodTypeDef, CreateSpeechRouterAudioSpeechRetry>;
export declare function createSpeechRouterAudioSpeechRetryToJSON(createSpeechRouterAudioSpeechRetry: CreateSpeechRouterAudioSpeechRetry): string;
/** @internal */
export type CreateSpeechRouterAudioSpeechFallbacks$Outbound = {
    model: string;
};
/** @internal */
export declare const CreateSpeechRouterAudioSpeechFallbacks$outboundSchema: z.ZodType<CreateSpeechRouterAudioSpeechFallbacks$Outbound, z.ZodTypeDef, CreateSpeechRouterAudioSpeechFallbacks>;
export declare function createSpeechRouterAudioSpeechFallbacksToJSON(createSpeechRouterAudioSpeechFallbacks: CreateSpeechRouterAudioSpeechFallbacks): string;
/** @internal */
export type CreateSpeechThread$Outbound = {
    id: string;
    tags?: Array<string> | undefined;
};
/** @internal */
export declare const CreateSpeechThread$outboundSchema: z.ZodType<CreateSpeechThread$Outbound, z.ZodTypeDef, CreateSpeechThread>;
export declare function createSpeechThreadToJSON(createSpeechThread: CreateSpeechThread): string;
/** @internal */
export declare const CreateSpeechLoadBalancerRouterAudioSpeechType$outboundSchema: z.ZodNativeEnum<typeof CreateSpeechLoadBalancerRouterAudioSpeechType>;
/** @internal */
export type CreateSpeechLoadBalancerRouterAudioSpeechModels$Outbound = {
    model: string;
    weight: number;
};
/** @internal */
export declare const CreateSpeechLoadBalancerRouterAudioSpeechModels$outboundSchema: z.ZodType<CreateSpeechLoadBalancerRouterAudioSpeechModels$Outbound, z.ZodTypeDef, CreateSpeechLoadBalancerRouterAudioSpeechModels>;
export declare function createSpeechLoadBalancerRouterAudioSpeechModelsToJSON(createSpeechLoadBalancerRouterAudioSpeechModels: CreateSpeechLoadBalancerRouterAudioSpeechModels): string;
/** @internal */
export type CreateSpeechLoadBalancerRouterAudioSpeech1$Outbound = {
    type: string;
    models: Array<CreateSpeechLoadBalancerRouterAudioSpeechModels$Outbound>;
};
/** @internal */
export declare const CreateSpeechLoadBalancerRouterAudioSpeech1$outboundSchema: z.ZodType<CreateSpeechLoadBalancerRouterAudioSpeech1$Outbound, z.ZodTypeDef, CreateSpeechLoadBalancerRouterAudioSpeech1>;
export declare function createSpeechLoadBalancerRouterAudioSpeech1ToJSON(createSpeechLoadBalancerRouterAudioSpeech1: CreateSpeechLoadBalancerRouterAudioSpeech1): string;
/** @internal */
export type CreateSpeechRouterAudioSpeechLoadBalancer$Outbound = CreateSpeechLoadBalancerRouterAudioSpeech1$Outbound;
/** @internal */
export declare const CreateSpeechRouterAudioSpeechLoadBalancer$outboundSchema: z.ZodType<CreateSpeechRouterAudioSpeechLoadBalancer$Outbound, z.ZodTypeDef, CreateSpeechRouterAudioSpeechLoadBalancer>;
export declare function createSpeechRouterAudioSpeechLoadBalancerToJSON(createSpeechRouterAudioSpeechLoadBalancer: CreateSpeechRouterAudioSpeechLoadBalancer): string;
/** @internal */
export type CreateSpeechRouterAudioSpeechTimeout$Outbound = {
    call_timeout: number;
};
/** @internal */
export declare const CreateSpeechRouterAudioSpeechTimeout$outboundSchema: z.ZodType<CreateSpeechRouterAudioSpeechTimeout$Outbound, z.ZodTypeDef, CreateSpeechRouterAudioSpeechTimeout>;
export declare function createSpeechRouterAudioSpeechTimeoutToJSON(createSpeechRouterAudioSpeechTimeout: CreateSpeechRouterAudioSpeechTimeout): string;
/** @internal */
export type CreateSpeechOrq$Outbound = {
    retry?: CreateSpeechRouterAudioSpeechRetry$Outbound | undefined;
    fallbacks?: Array<CreateSpeechRouterAudioSpeechFallbacks$Outbound> | undefined;
    name?: string | undefined;
    identity?: components.PublicIdentity$Outbound | undefined;
    contact?: components.PublicContact$Outbound | undefined;
    thread?: CreateSpeechThread$Outbound | undefined;
    load_balancer?: CreateSpeechLoadBalancerRouterAudioSpeech1$Outbound | undefined;
    timeout?: CreateSpeechRouterAudioSpeechTimeout$Outbound | undefined;
};
/** @internal */
export declare const CreateSpeechOrq$outboundSchema: z.ZodType<CreateSpeechOrq$Outbound, z.ZodTypeDef, CreateSpeechOrq>;
export declare function createSpeechOrqToJSON(createSpeechOrq: CreateSpeechOrq): string;
/** @internal */
export type CreateSpeechRequestBody$Outbound = {
    input: string;
    model: string;
    voice: string;
    response_format: string;
    speed: number;
    name?: string | undefined;
    fallbacks?: Array<CreateSpeechFallbacks$Outbound> | undefined;
    retry?: CreateSpeechRetry$Outbound | undefined;
    load_balancer?: CreateSpeechLoadBalancer1$Outbound | undefined;
    timeout?: CreateSpeechTimeout$Outbound | undefined;
    orq?: CreateSpeechOrq$Outbound | undefined;
};
/** @internal */
export declare const CreateSpeechRequestBody$outboundSchema: z.ZodType<CreateSpeechRequestBody$Outbound, z.ZodTypeDef, CreateSpeechRequestBody>;
export declare function createSpeechRequestBodyToJSON(createSpeechRequestBody: CreateSpeechRequestBody): string;
//# sourceMappingURL=createspeech.d.ts.map