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";
/**
 * The format in which the generated images are returned. Must be one of `url` or `b64_json`. URLs are only valid for 60 minutes after the image has been generated.
 */
export declare const CreateImageVariationResponseFormat: {
    readonly Url: "url";
    readonly B64Json: "b64_json";
};
/**
 * The format in which the generated images are returned. Must be one of `url` or `b64_json`. URLs are only valid for 60 minutes after the image has been generated.
 */
export type CreateImageVariationResponseFormat = ClosedEnum<typeof CreateImageVariationResponseFormat>;
/**
 * The size of the generated images. Must be one of `256x256`, `512x512`, or `1024x1024`.
 */
export declare const Size: {
    readonly TwoHundredAndFiftySixx256: "256x256";
    readonly FiveHundredAndTwelvex512: "512x512";
    readonly OneThousandAndTwentyFourx1024: "1024x1024";
};
/**
 * The size of the generated images. Must be one of `256x256`, `512x512`, or `1024x1024`.
 */
export type Size = ClosedEnum<typeof Size>;
export type CreateImageVariationFallbacks = {
    /**
     * Fallback model identifier
     */
    model: string;
};
/**
 * Retry configuration for the request
 */
export type CreateImageVariationRetry = {
    /**
     * Number of retry attempts (1-5)
     */
    count?: number | undefined;
    /**
     * HTTP status codes that trigger retry logic
     */
    onCodes?: Array<number> | undefined;
};
export declare const CreateImageVariationType: {
    readonly ExactMatch: "exact_match";
};
export type CreateImageVariationType = ClosedEnum<typeof CreateImageVariationType>;
/**
 * Cache configuration for the request.
 */
export type CreateImageVariationCache = {
    /**
     * Time to live for cached responses in seconds. Maximum 259200 seconds (3 days).
     */
    ttl?: number | undefined;
    type: CreateImageVariationType;
};
export declare const CreateImageVariationLoadBalancerType: {
    readonly WeightBased: "weight_based";
};
export type CreateImageVariationLoadBalancerType = ClosedEnum<typeof CreateImageVariationLoadBalancerType>;
export type CreateImageVariationLoadBalancerModels = {
    /**
     * Model identifier for load balancing
     */
    model: string;
    /**
     * Weight assigned to this model for load balancing
     */
    weight?: number | undefined;
};
export type CreateImageVariationLoadBalancer1 = {
    type: CreateImageVariationLoadBalancerType;
    models: Array<CreateImageVariationLoadBalancerModels>;
};
/**
 * Load balancer configuration for the request.
 */
export type CreateImageVariationLoadBalancer = CreateImageVariationLoadBalancer1;
/**
 * 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 CreateImageVariationTimeout = {
    /**
     * Timeout value in milliseconds
     */
    callTimeout: number;
};
/**
 * Retry configuration for the request
 */
export type CreateImageVariationRouterImagesVariationsRetry = {
    /**
     * Number of retry attempts (1-5)
     */
    count?: number | undefined;
    /**
     * HTTP status codes that trigger retry logic
     */
    onCodes?: Array<number> | undefined;
};
export type CreateImageVariationRouterImagesVariationsFallbacks = {
    /**
     * Fallback model identifier
     */
    model: string;
};
/**
 * Version of the prompt to use (currently only "latest" supported)
 */
export declare const CreateImageVariationVersion: {
    readonly Latest: "latest";
};
/**
 * Version of the prompt to use (currently only "latest" supported)
 */
export type CreateImageVariationVersion = ClosedEnum<typeof CreateImageVariationVersion>;
/**
 * Prompt configuration for the request
 */
export type CreateImageVariationPrompt = {
    /**
     * Unique identifier of the prompt to use
     */
    id: string;
    /**
     * Version of the prompt to use (currently only "latest" supported)
     */
    version: CreateImageVariationVersion;
};
export declare const CreateImageVariationRouterImagesVariationsType: {
    readonly ExactMatch: "exact_match";
};
export type CreateImageVariationRouterImagesVariationsType = ClosedEnum<typeof CreateImageVariationRouterImagesVariationsType>;
/**
 * Cache configuration for the request.
 */
export type CreateImageVariationRouterImagesVariationsCache = {
    /**
     * Time to live for cached responses in seconds. Maximum 259200 seconds (3 days).
     */
    ttl?: number | undefined;
    type: CreateImageVariationRouterImagesVariationsType;
};
export declare const CreateImageVariationLoadBalancerRouterImagesVariationsType: {
    readonly WeightBased: "weight_based";
};
export type CreateImageVariationLoadBalancerRouterImagesVariationsType = ClosedEnum<typeof CreateImageVariationLoadBalancerRouterImagesVariationsType>;
export type CreateImageVariationLoadBalancerRouterImagesVariationsModels = {
    /**
     * Model identifier for load balancing
     */
    model: string;
    /**
     * Weight assigned to this model for load balancing
     */
    weight?: number | undefined;
};
export type CreateImageVariationLoadBalancerRouterImagesVariations1 = {
    type: CreateImageVariationLoadBalancerRouterImagesVariationsType;
    models: Array<CreateImageVariationLoadBalancerRouterImagesVariationsModels>;
};
/**
 * Array of models with weights for load balancing requests
 */
export type CreateImageVariationRouterImagesVariationsLoadBalancer = CreateImageVariationLoadBalancerRouterImagesVariations1;
/**
 * 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 CreateImageVariationRouterImagesVariationsTimeout = {
    /**
     * Timeout value in milliseconds
     */
    callTimeout: number;
};
export type CreateImageVariationOrq = {
    /**
     * The name to display on the trace. If not specified, the default system name will be used.
     */
    name?: string | undefined;
    /**
     * Retry configuration for the request
     */
    retry?: CreateImageVariationRouterImagesVariationsRetry | undefined;
    /**
     * Array of fallback models to use if primary model fails
     */
    fallbacks?: Array<CreateImageVariationRouterImagesVariationsFallbacks> | undefined;
    /**
     * Prompt configuration for the request
     */
    prompt?: CreateImageVariationPrompt | 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;
    /**
     * Cache configuration for the request.
     */
    cache?: CreateImageVariationRouterImagesVariationsCache | undefined;
    /**
     * Array of models with weights for load balancing requests
     */
    loadBalancer?: CreateImageVariationLoadBalancerRouterImagesVariations1 | 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?: CreateImageVariationRouterImagesVariationsTimeout | undefined;
};
/**
 * input
 */
export type CreateImageVariationRequestBody = {
    /**
     * The image to edit. Must be a supported image file. It should be a png, webp, or jpg file less than 50MB.
     */
    image?: any | undefined;
    /**
     * The model to use for image generation.
     */
    model: string;
    /**
     * The number of images to generate. Must be between 1 and 10.
     */
    n?: number | null | undefined;
    /**
     * The format in which the generated images are returned. Must be one of `url` or `b64_json`. URLs are only valid for 60 minutes after the image has been generated.
     */
    responseFormat?: CreateImageVariationResponseFormat | undefined;
    /**
     * The size of the generated images. Must be one of `256x256`, `512x512`, or `1024x1024`.
     */
    size?: Size | undefined;
    /**
     * A unique identifier representing your end-user, which can help to monitor and detect abuse.
     */
    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<CreateImageVariationFallbacks> | undefined;
    /**
     * Retry configuration for the request
     */
    retry?: CreateImageVariationRetry | undefined;
    /**
     * Cache configuration for the request.
     */
    cache?: CreateImageVariationCache | undefined;
    /**
     * Load balancer configuration for the request.
     */
    loadBalancer?: CreateImageVariationLoadBalancer1 | 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?: CreateImageVariationTimeout | undefined;
    orq?: CreateImageVariationOrq | undefined;
};
export type CreateImageVariationData = {
    /**
     * The base64-encoded JSON of the generated image, if response_format is b64_json
     */
    b64Json?: string | undefined;
    /**
     * The URL of the generated image, if response_format is url (default)
     */
    url?: string | undefined;
};
/**
 * The input tokens detailed information for the image generation.
 */
export type CreateImageVariationInputTokensDetails = {
    /**
     * The number of text tokens in the input prompt.
     */
    textTokens: number;
    /**
     * The number of image tokens in the input prompt.
     */
    imageTokens: number;
};
/**
 * The token usage information for the image generation.
 */
export type CreateImageVariationUsage = {
    /**
     * The total number of tokens (images and text) used for the image generation.
     */
    totalTokens: number;
    /**
     * The number of tokens (images and text) in the input prompt.
     */
    inputTokens: number;
    /**
     * The number of output tokens generated by the model.
     */
    outputTokens: number;
    /**
     * The input tokens detailed information for the image generation.
     */
    inputTokensDetails: CreateImageVariationInputTokensDetails;
};
/**
 * Represents an image variation response from the API.
 */
export type CreateImageVariationResponseBody = {
    /**
     * The Unix timestamp (in seconds) of when the image was created.
     */
    created: number;
    /**
     * The output format of the image generation
     */
    outputFormat?: string | undefined;
    /**
     * The size of the image generated
     */
    size?: string | undefined;
    /**
     * The quality of the image generated
     */
    quality?: string | undefined;
    /**
     * The list of generated images.
     */
    data: Array<CreateImageVariationData>;
    /**
     * The token usage information for the image generation.
     */
    usage?: CreateImageVariationUsage | undefined;
};
/** @internal */
export declare const CreateImageVariationResponseFormat$outboundSchema: z.ZodNativeEnum<typeof CreateImageVariationResponseFormat>;
/** @internal */
export declare const Size$outboundSchema: z.ZodNativeEnum<typeof Size>;
/** @internal */
export type CreateImageVariationFallbacks$Outbound = {
    model: string;
};
/** @internal */
export declare const CreateImageVariationFallbacks$outboundSchema: z.ZodType<CreateImageVariationFallbacks$Outbound, z.ZodTypeDef, CreateImageVariationFallbacks>;
export declare function createImageVariationFallbacksToJSON(createImageVariationFallbacks: CreateImageVariationFallbacks): string;
/** @internal */
export type CreateImageVariationRetry$Outbound = {
    count: number;
    on_codes?: Array<number> | undefined;
};
/** @internal */
export declare const CreateImageVariationRetry$outboundSchema: z.ZodType<CreateImageVariationRetry$Outbound, z.ZodTypeDef, CreateImageVariationRetry>;
export declare function createImageVariationRetryToJSON(createImageVariationRetry: CreateImageVariationRetry): string;
/** @internal */
export declare const CreateImageVariationType$outboundSchema: z.ZodNativeEnum<typeof CreateImageVariationType>;
/** @internal */
export type CreateImageVariationCache$Outbound = {
    ttl: number;
    type: string;
};
/** @internal */
export declare const CreateImageVariationCache$outboundSchema: z.ZodType<CreateImageVariationCache$Outbound, z.ZodTypeDef, CreateImageVariationCache>;
export declare function createImageVariationCacheToJSON(createImageVariationCache: CreateImageVariationCache): string;
/** @internal */
export declare const CreateImageVariationLoadBalancerType$outboundSchema: z.ZodNativeEnum<typeof CreateImageVariationLoadBalancerType>;
/** @internal */
export type CreateImageVariationLoadBalancerModels$Outbound = {
    model: string;
    weight: number;
};
/** @internal */
export declare const CreateImageVariationLoadBalancerModels$outboundSchema: z.ZodType<CreateImageVariationLoadBalancerModels$Outbound, z.ZodTypeDef, CreateImageVariationLoadBalancerModels>;
export declare function createImageVariationLoadBalancerModelsToJSON(createImageVariationLoadBalancerModels: CreateImageVariationLoadBalancerModels): string;
/** @internal */
export type CreateImageVariationLoadBalancer1$Outbound = {
    type: string;
    models: Array<CreateImageVariationLoadBalancerModels$Outbound>;
};
/** @internal */
export declare const CreateImageVariationLoadBalancer1$outboundSchema: z.ZodType<CreateImageVariationLoadBalancer1$Outbound, z.ZodTypeDef, CreateImageVariationLoadBalancer1>;
export declare function createImageVariationLoadBalancer1ToJSON(createImageVariationLoadBalancer1: CreateImageVariationLoadBalancer1): string;
/** @internal */
export type CreateImageVariationLoadBalancer$Outbound = CreateImageVariationLoadBalancer1$Outbound;
/** @internal */
export declare const CreateImageVariationLoadBalancer$outboundSchema: z.ZodType<CreateImageVariationLoadBalancer$Outbound, z.ZodTypeDef, CreateImageVariationLoadBalancer>;
export declare function createImageVariationLoadBalancerToJSON(createImageVariationLoadBalancer: CreateImageVariationLoadBalancer): string;
/** @internal */
export type CreateImageVariationTimeout$Outbound = {
    call_timeout: number;
};
/** @internal */
export declare const CreateImageVariationTimeout$outboundSchema: z.ZodType<CreateImageVariationTimeout$Outbound, z.ZodTypeDef, CreateImageVariationTimeout>;
export declare function createImageVariationTimeoutToJSON(createImageVariationTimeout: CreateImageVariationTimeout): string;
/** @internal */
export type CreateImageVariationRouterImagesVariationsRetry$Outbound = {
    count: number;
    on_codes?: Array<number> | undefined;
};
/** @internal */
export declare const CreateImageVariationRouterImagesVariationsRetry$outboundSchema: z.ZodType<CreateImageVariationRouterImagesVariationsRetry$Outbound, z.ZodTypeDef, CreateImageVariationRouterImagesVariationsRetry>;
export declare function createImageVariationRouterImagesVariationsRetryToJSON(createImageVariationRouterImagesVariationsRetry: CreateImageVariationRouterImagesVariationsRetry): string;
/** @internal */
export type CreateImageVariationRouterImagesVariationsFallbacks$Outbound = {
    model: string;
};
/** @internal */
export declare const CreateImageVariationRouterImagesVariationsFallbacks$outboundSchema: z.ZodType<CreateImageVariationRouterImagesVariationsFallbacks$Outbound, z.ZodTypeDef, CreateImageVariationRouterImagesVariationsFallbacks>;
export declare function createImageVariationRouterImagesVariationsFallbacksToJSON(createImageVariationRouterImagesVariationsFallbacks: CreateImageVariationRouterImagesVariationsFallbacks): string;
/** @internal */
export declare const CreateImageVariationVersion$outboundSchema: z.ZodNativeEnum<typeof CreateImageVariationVersion>;
/** @internal */
export type CreateImageVariationPrompt$Outbound = {
    id: string;
    version: string;
};
/** @internal */
export declare const CreateImageVariationPrompt$outboundSchema: z.ZodType<CreateImageVariationPrompt$Outbound, z.ZodTypeDef, CreateImageVariationPrompt>;
export declare function createImageVariationPromptToJSON(createImageVariationPrompt: CreateImageVariationPrompt): string;
/** @internal */
export declare const CreateImageVariationRouterImagesVariationsType$outboundSchema: z.ZodNativeEnum<typeof CreateImageVariationRouterImagesVariationsType>;
/** @internal */
export type CreateImageVariationRouterImagesVariationsCache$Outbound = {
    ttl: number;
    type: string;
};
/** @internal */
export declare const CreateImageVariationRouterImagesVariationsCache$outboundSchema: z.ZodType<CreateImageVariationRouterImagesVariationsCache$Outbound, z.ZodTypeDef, CreateImageVariationRouterImagesVariationsCache>;
export declare function createImageVariationRouterImagesVariationsCacheToJSON(createImageVariationRouterImagesVariationsCache: CreateImageVariationRouterImagesVariationsCache): string;
/** @internal */
export declare const CreateImageVariationLoadBalancerRouterImagesVariationsType$outboundSchema: z.ZodNativeEnum<typeof CreateImageVariationLoadBalancerRouterImagesVariationsType>;
/** @internal */
export type CreateImageVariationLoadBalancerRouterImagesVariationsModels$Outbound = {
    model: string;
    weight: number;
};
/** @internal */
export declare const CreateImageVariationLoadBalancerRouterImagesVariationsModels$outboundSchema: z.ZodType<CreateImageVariationLoadBalancerRouterImagesVariationsModels$Outbound, z.ZodTypeDef, CreateImageVariationLoadBalancerRouterImagesVariationsModels>;
export declare function createImageVariationLoadBalancerRouterImagesVariationsModelsToJSON(createImageVariationLoadBalancerRouterImagesVariationsModels: CreateImageVariationLoadBalancerRouterImagesVariationsModels): string;
/** @internal */
export type CreateImageVariationLoadBalancerRouterImagesVariations1$Outbound = {
    type: string;
    models: Array<CreateImageVariationLoadBalancerRouterImagesVariationsModels$Outbound>;
};
/** @internal */
export declare const CreateImageVariationLoadBalancerRouterImagesVariations1$outboundSchema: z.ZodType<CreateImageVariationLoadBalancerRouterImagesVariations1$Outbound, z.ZodTypeDef, CreateImageVariationLoadBalancerRouterImagesVariations1>;
export declare function createImageVariationLoadBalancerRouterImagesVariations1ToJSON(createImageVariationLoadBalancerRouterImagesVariations1: CreateImageVariationLoadBalancerRouterImagesVariations1): string;
/** @internal */
export type CreateImageVariationRouterImagesVariationsLoadBalancer$Outbound = CreateImageVariationLoadBalancerRouterImagesVariations1$Outbound;
/** @internal */
export declare const CreateImageVariationRouterImagesVariationsLoadBalancer$outboundSchema: z.ZodType<CreateImageVariationRouterImagesVariationsLoadBalancer$Outbound, z.ZodTypeDef, CreateImageVariationRouterImagesVariationsLoadBalancer>;
export declare function createImageVariationRouterImagesVariationsLoadBalancerToJSON(createImageVariationRouterImagesVariationsLoadBalancer: CreateImageVariationRouterImagesVariationsLoadBalancer): string;
/** @internal */
export type CreateImageVariationRouterImagesVariationsTimeout$Outbound = {
    call_timeout: number;
};
/** @internal */
export declare const CreateImageVariationRouterImagesVariationsTimeout$outboundSchema: z.ZodType<CreateImageVariationRouterImagesVariationsTimeout$Outbound, z.ZodTypeDef, CreateImageVariationRouterImagesVariationsTimeout>;
export declare function createImageVariationRouterImagesVariationsTimeoutToJSON(createImageVariationRouterImagesVariationsTimeout: CreateImageVariationRouterImagesVariationsTimeout): string;
/** @internal */
export type CreateImageVariationOrq$Outbound = {
    name?: string | undefined;
    retry?: CreateImageVariationRouterImagesVariationsRetry$Outbound | undefined;
    fallbacks?: Array<CreateImageVariationRouterImagesVariationsFallbacks$Outbound> | undefined;
    prompt?: CreateImageVariationPrompt$Outbound | undefined;
    identity?: components.PublicIdentity$Outbound | undefined;
    contact?: components.PublicContact$Outbound | undefined;
    cache?: CreateImageVariationRouterImagesVariationsCache$Outbound | undefined;
    load_balancer?: CreateImageVariationLoadBalancerRouterImagesVariations1$Outbound | undefined;
    timeout?: CreateImageVariationRouterImagesVariationsTimeout$Outbound | undefined;
};
/** @internal */
export declare const CreateImageVariationOrq$outboundSchema: z.ZodType<CreateImageVariationOrq$Outbound, z.ZodTypeDef, CreateImageVariationOrq>;
export declare function createImageVariationOrqToJSON(createImageVariationOrq: CreateImageVariationOrq): string;
/** @internal */
export type CreateImageVariationRequestBody$Outbound = {
    image?: any | undefined;
    model: string;
    n: number | null;
    response_format: string;
    size: string;
    user?: string | undefined;
    name?: string | undefined;
    fallbacks?: Array<CreateImageVariationFallbacks$Outbound> | undefined;
    retry?: CreateImageVariationRetry$Outbound | undefined;
    cache?: CreateImageVariationCache$Outbound | undefined;
    load_balancer?: CreateImageVariationLoadBalancer1$Outbound | undefined;
    timeout?: CreateImageVariationTimeout$Outbound | undefined;
    orq?: CreateImageVariationOrq$Outbound | undefined;
};
/** @internal */
export declare const CreateImageVariationRequestBody$outboundSchema: z.ZodType<CreateImageVariationRequestBody$Outbound, z.ZodTypeDef, CreateImageVariationRequestBody>;
export declare function createImageVariationRequestBodyToJSON(createImageVariationRequestBody: CreateImageVariationRequestBody): string;
/** @internal */
export declare const CreateImageVariationData$inboundSchema: z.ZodType<CreateImageVariationData, z.ZodTypeDef, unknown>;
export declare function createImageVariationDataFromJSON(jsonString: string): SafeParseResult<CreateImageVariationData, SDKValidationError>;
/** @internal */
export declare const CreateImageVariationInputTokensDetails$inboundSchema: z.ZodType<CreateImageVariationInputTokensDetails, z.ZodTypeDef, unknown>;
export declare function createImageVariationInputTokensDetailsFromJSON(jsonString: string): SafeParseResult<CreateImageVariationInputTokensDetails, SDKValidationError>;
/** @internal */
export declare const CreateImageVariationUsage$inboundSchema: z.ZodType<CreateImageVariationUsage, z.ZodTypeDef, unknown>;
export declare function createImageVariationUsageFromJSON(jsonString: string): SafeParseResult<CreateImageVariationUsage, SDKValidationError>;
/** @internal */
export declare const CreateImageVariationResponseBody$inboundSchema: z.ZodType<CreateImageVariationResponseBody, z.ZodTypeDef, unknown>;
export declare function createImageVariationResponseBodyFromJSON(jsonString: string): SafeParseResult<CreateImageVariationResponseBody, SDKValidationError>;
//# sourceMappingURL=createimagevariation.d.ts.map