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";
/**
 * Allows to set transparency for the background of the generated image(s). This parameter is only supported for `openai/gpt-image-1`.
 */
export declare const Background: {
    readonly Transparent: "transparent";
    readonly Opaque: "opaque";
    readonly Auto: "auto";
};
/**
 * Allows to set transparency for the background of the generated image(s). This parameter is only supported for `openai/gpt-image-1`.
 */
export type Background = ClosedEnum<typeof Background>;
/**
 * Control the content-moderation level for images generated by `gpt-image-1`. Must be either `low` or `auto`.
 */
export declare const Moderation: {
    readonly Low: "low";
    readonly Auto: "auto";
};
/**
 * Control the content-moderation level for images generated by `gpt-image-1`. Must be either `low` or `auto`.
 */
export type Moderation = ClosedEnum<typeof Moderation>;
/**
 * The format in which the generated images are returned. This parameter is only supported for `openai/gpt-image-1`.
 */
export declare const OutputFormat: {
    readonly Png: "png";
    readonly Jpeg: "jpeg";
    readonly Webp: "webp";
};
/**
 * The format in which the generated images are returned. This parameter is only supported for `openai/gpt-image-1`.
 */
export type OutputFormat = ClosedEnum<typeof OutputFormat>;
/**
 * The quality of the image that will be generated. `auto` will automatically select the best quality for the given model.
 */
export declare const Quality: {
    readonly Auto: "auto";
    readonly High: "high";
    readonly Medium: "medium";
    readonly Low: "low";
    readonly Hd: "hd";
    readonly Standard: "standard";
};
/**
 * The quality of the image that will be generated. `auto` will automatically select the best quality for the given model.
 */
export type Quality = ClosedEnum<typeof Quality>;
/**
 * The format in which generated images are returned. Must be one of `url` or `b64_json`. This parameter isn't supported for `gpt-image-1` which will always return base64-encoded images.
 */
export declare const CreateImageResponseFormat: {
    readonly Url: "url";
    readonly B64Json: "b64_json";
};
/**
 * The format in which generated images are returned. Must be one of `url` or `b64_json`. This parameter isn't supported for `gpt-image-1` which will always return base64-encoded images.
 */
export type CreateImageResponseFormat = ClosedEnum<typeof CreateImageResponseFormat>;
/**
 * The style of the generated images. This parameter is only supported for `openai/dall-e-3`. Must be one of `vivid` or `natural`.
 */
export declare const Style: {
    readonly Vivid: "vivid";
    readonly Natural: "natural";
};
/**
 * The style of the generated images. This parameter is only supported for `openai/dall-e-3`. Must be one of `vivid` or `natural`.
 */
export type Style = ClosedEnum<typeof Style>;
export type CreateImageFallbacks = {
    /**
     * Fallback model identifier
     */
    model: string;
};
/**
 * Retry configuration for the request
 */
export type CreateImageRetry = {
    /**
     * Number of retry attempts (1-5)
     */
    count?: number | undefined;
    /**
     * HTTP status codes that trigger retry logic
     */
    onCodes?: Array<number> | undefined;
};
export declare const CreateImageType: {
    readonly ExactMatch: "exact_match";
};
export type CreateImageType = ClosedEnum<typeof CreateImageType>;
/**
 * Cache configuration for the request.
 */
export type CreateImageCache = {
    /**
     * Time to live for cached responses in seconds. Maximum 259200 seconds (3 days).
     */
    ttl?: number | undefined;
    type: CreateImageType;
};
export declare const CreateImageLoadBalancerType: {
    readonly WeightBased: "weight_based";
};
export type CreateImageLoadBalancerType = ClosedEnum<typeof CreateImageLoadBalancerType>;
export type CreateImageLoadBalancerModels = {
    /**
     * Model identifier for load balancing
     */
    model: string;
    /**
     * Weight assigned to this model for load balancing
     */
    weight?: number | undefined;
};
export type CreateImageLoadBalancer1 = {
    type: CreateImageLoadBalancerType;
    models: Array<CreateImageLoadBalancerModels>;
};
/**
 * Load balancer configuration for the request.
 */
export type CreateImageLoadBalancer = CreateImageLoadBalancer1;
/**
 * 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 CreateImageTimeout = {
    /**
     * Timeout value in milliseconds
     */
    callTimeout: number;
};
/**
 * Retry configuration for the request
 */
export type CreateImageRouterImagesGenerationsRetry = {
    /**
     * Number of retry attempts (1-5)
     */
    count?: number | undefined;
    /**
     * HTTP status codes that trigger retry logic
     */
    onCodes?: Array<number> | undefined;
};
export type CreateImageRouterImagesGenerationsFallbacks = {
    /**
     * Fallback model identifier
     */
    model: string;
};
export declare const CreateImageRouterImagesGenerationsType: {
    readonly ExactMatch: "exact_match";
};
export type CreateImageRouterImagesGenerationsType = ClosedEnum<typeof CreateImageRouterImagesGenerationsType>;
/**
 * Cache configuration for the request.
 */
export type CreateImageRouterImagesGenerationsCache = {
    /**
     * Time to live for cached responses in seconds. Maximum 259200 seconds (3 days).
     */
    ttl?: number | undefined;
    type: CreateImageRouterImagesGenerationsType;
};
export declare const CreateImageLoadBalancerRouterImagesGenerationsType: {
    readonly WeightBased: "weight_based";
};
export type CreateImageLoadBalancerRouterImagesGenerationsType = ClosedEnum<typeof CreateImageLoadBalancerRouterImagesGenerationsType>;
export type CreateImageLoadBalancerRouterImagesGenerationsModels = {
    /**
     * Model identifier for load balancing
     */
    model: string;
    /**
     * Weight assigned to this model for load balancing
     */
    weight?: number | undefined;
};
export type CreateImageLoadBalancerRouterImagesGenerations1 = {
    type: CreateImageLoadBalancerRouterImagesGenerationsType;
    models: Array<CreateImageLoadBalancerRouterImagesGenerationsModels>;
};
/**
 * Array of models with weights for load balancing requests
 */
export type CreateImageRouterImagesGenerationsLoadBalancer = CreateImageLoadBalancerRouterImagesGenerations1;
/**
 * 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 CreateImageRouterImagesGenerationsTimeout = {
    /**
     * Timeout value in milliseconds
     */
    callTimeout: number;
};
export type CreateImageOrq = {
    /**
     * 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?: CreateImageRouterImagesGenerationsRetry | undefined;
    /**
     * Array of fallback models to use if primary model fails
     */
    fallbacks?: Array<CreateImageRouterImagesGenerationsFallbacks> | 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?: CreateImageRouterImagesGenerationsCache | undefined;
    /**
     * Array of models with weights for load balancing requests
     */
    loadBalancer?: CreateImageLoadBalancerRouterImagesGenerations1 | 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?: CreateImageRouterImagesGenerationsTimeout | undefined;
};
/**
 * input
 */
export type CreateImageRequestBody = {
    /**
     * A text description of the desired image(s).
     */
    prompt: string;
    /**
     * Allows to set transparency for the background of the generated image(s). This parameter is only supported for `openai/gpt-image-1`.
     */
    background?: Background | null | undefined;
    /**
     * The model to use for image generation. One of `openai/dall-e-2`, `openai/dall-e-3`, or `openai/gpt-image-1`.
     */
    model: string;
    /**
     * Control the content-moderation level for images generated by `gpt-image-1`. Must be either `low` or `auto`.
     */
    moderation?: Moderation | null | undefined;
    /**
     * The number of images to generate. Must be between 1 and 10. For `dall-e-3`, only `n=1` is supported.
     */
    n?: number | null | undefined;
    /**
     * The compression level (0-100%) for the generated images. This parameter is only supported for `gpt-image-1` with the `webp` or `jpeg` output formats.
     */
    outputCompression?: number | null | undefined;
    /**
     * The format in which the generated images are returned. This parameter is only supported for `openai/gpt-image-1`.
     */
    outputFormat?: OutputFormat | null | undefined;
    /**
     * The quality of the image that will be generated. `auto` will automatically select the best quality for the given model.
     */
    quality?: Quality | null | undefined;
    /**
     * The format in which generated images are returned. Must be one of `url` or `b64_json`. This parameter isn't supported for `gpt-image-1` which will always return base64-encoded images.
     */
    responseFormat?: CreateImageResponseFormat | null | undefined;
    /**
     * The size of the generated images. Must be one of the specified sizes for each model.
     */
    size?: string | null | undefined;
    /**
     * The style of the generated images. This parameter is only supported for `openai/dall-e-3`. Must be one of `vivid` or `natural`.
     */
    style?: Style | null | 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<CreateImageFallbacks> | undefined;
    /**
     * Retry configuration for the request
     */
    retry?: CreateImageRetry | undefined;
    /**
     * Cache configuration for the request.
     */
    cache?: CreateImageCache | undefined;
    /**
     * Load balancer configuration for the request.
     */
    loadBalancer?: CreateImageLoadBalancer1 | 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?: CreateImageTimeout | undefined;
    orq?: CreateImageOrq | undefined;
};
export type CreateImageData = {
    /**
     * The prompt that was used to generate the image, if there was any revision to the prompt.
     */
    revisedPrompt?: string | null | undefined;
    /**
     * 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;
};
export type InputTokensDetails = {
    imageTokens?: number | undefined;
    textTokens?: number | undefined;
};
export type CreateImageUsage = {
    inputTokens?: number | undefined;
    inputTokensDetails: InputTokensDetails;
    outputTokens?: number | undefined;
    totalTokens?: number | undefined;
};
/**
 * Represents an image generation response from the API.
 */
export type CreateImageResponseBody = {
    /**
     * The Unix timestamp (in seconds) of when the image was created.
     */
    created: number;
    /**
     * Represents the url or the content of an image generated.
     */
    data: Array<CreateImageData>;
    usage?: CreateImageUsage | undefined;
};
/** @internal */
export declare const Background$outboundSchema: z.ZodNativeEnum<typeof Background>;
/** @internal */
export declare const Moderation$outboundSchema: z.ZodNativeEnum<typeof Moderation>;
/** @internal */
export declare const OutputFormat$outboundSchema: z.ZodNativeEnum<typeof OutputFormat>;
/** @internal */
export declare const Quality$outboundSchema: z.ZodNativeEnum<typeof Quality>;
/** @internal */
export declare const CreateImageResponseFormat$outboundSchema: z.ZodNativeEnum<typeof CreateImageResponseFormat>;
/** @internal */
export declare const Style$outboundSchema: z.ZodNativeEnum<typeof Style>;
/** @internal */
export type CreateImageFallbacks$Outbound = {
    model: string;
};
/** @internal */
export declare const CreateImageFallbacks$outboundSchema: z.ZodType<CreateImageFallbacks$Outbound, z.ZodTypeDef, CreateImageFallbacks>;
export declare function createImageFallbacksToJSON(createImageFallbacks: CreateImageFallbacks): string;
/** @internal */
export type CreateImageRetry$Outbound = {
    count: number;
    on_codes?: Array<number> | undefined;
};
/** @internal */
export declare const CreateImageRetry$outboundSchema: z.ZodType<CreateImageRetry$Outbound, z.ZodTypeDef, CreateImageRetry>;
export declare function createImageRetryToJSON(createImageRetry: CreateImageRetry): string;
/** @internal */
export declare const CreateImageType$outboundSchema: z.ZodNativeEnum<typeof CreateImageType>;
/** @internal */
export type CreateImageCache$Outbound = {
    ttl: number;
    type: string;
};
/** @internal */
export declare const CreateImageCache$outboundSchema: z.ZodType<CreateImageCache$Outbound, z.ZodTypeDef, CreateImageCache>;
export declare function createImageCacheToJSON(createImageCache: CreateImageCache): string;
/** @internal */
export declare const CreateImageLoadBalancerType$outboundSchema: z.ZodNativeEnum<typeof CreateImageLoadBalancerType>;
/** @internal */
export type CreateImageLoadBalancerModels$Outbound = {
    model: string;
    weight: number;
};
/** @internal */
export declare const CreateImageLoadBalancerModels$outboundSchema: z.ZodType<CreateImageLoadBalancerModels$Outbound, z.ZodTypeDef, CreateImageLoadBalancerModels>;
export declare function createImageLoadBalancerModelsToJSON(createImageLoadBalancerModels: CreateImageLoadBalancerModels): string;
/** @internal */
export type CreateImageLoadBalancer1$Outbound = {
    type: string;
    models: Array<CreateImageLoadBalancerModels$Outbound>;
};
/** @internal */
export declare const CreateImageLoadBalancer1$outboundSchema: z.ZodType<CreateImageLoadBalancer1$Outbound, z.ZodTypeDef, CreateImageLoadBalancer1>;
export declare function createImageLoadBalancer1ToJSON(createImageLoadBalancer1: CreateImageLoadBalancer1): string;
/** @internal */
export type CreateImageLoadBalancer$Outbound = CreateImageLoadBalancer1$Outbound;
/** @internal */
export declare const CreateImageLoadBalancer$outboundSchema: z.ZodType<CreateImageLoadBalancer$Outbound, z.ZodTypeDef, CreateImageLoadBalancer>;
export declare function createImageLoadBalancerToJSON(createImageLoadBalancer: CreateImageLoadBalancer): string;
/** @internal */
export type CreateImageTimeout$Outbound = {
    call_timeout: number;
};
/** @internal */
export declare const CreateImageTimeout$outboundSchema: z.ZodType<CreateImageTimeout$Outbound, z.ZodTypeDef, CreateImageTimeout>;
export declare function createImageTimeoutToJSON(createImageTimeout: CreateImageTimeout): string;
/** @internal */
export type CreateImageRouterImagesGenerationsRetry$Outbound = {
    count: number;
    on_codes?: Array<number> | undefined;
};
/** @internal */
export declare const CreateImageRouterImagesGenerationsRetry$outboundSchema: z.ZodType<CreateImageRouterImagesGenerationsRetry$Outbound, z.ZodTypeDef, CreateImageRouterImagesGenerationsRetry>;
export declare function createImageRouterImagesGenerationsRetryToJSON(createImageRouterImagesGenerationsRetry: CreateImageRouterImagesGenerationsRetry): string;
/** @internal */
export type CreateImageRouterImagesGenerationsFallbacks$Outbound = {
    model: string;
};
/** @internal */
export declare const CreateImageRouterImagesGenerationsFallbacks$outboundSchema: z.ZodType<CreateImageRouterImagesGenerationsFallbacks$Outbound, z.ZodTypeDef, CreateImageRouterImagesGenerationsFallbacks>;
export declare function createImageRouterImagesGenerationsFallbacksToJSON(createImageRouterImagesGenerationsFallbacks: CreateImageRouterImagesGenerationsFallbacks): string;
/** @internal */
export declare const CreateImageRouterImagesGenerationsType$outboundSchema: z.ZodNativeEnum<typeof CreateImageRouterImagesGenerationsType>;
/** @internal */
export type CreateImageRouterImagesGenerationsCache$Outbound = {
    ttl: number;
    type: string;
};
/** @internal */
export declare const CreateImageRouterImagesGenerationsCache$outboundSchema: z.ZodType<CreateImageRouterImagesGenerationsCache$Outbound, z.ZodTypeDef, CreateImageRouterImagesGenerationsCache>;
export declare function createImageRouterImagesGenerationsCacheToJSON(createImageRouterImagesGenerationsCache: CreateImageRouterImagesGenerationsCache): string;
/** @internal */
export declare const CreateImageLoadBalancerRouterImagesGenerationsType$outboundSchema: z.ZodNativeEnum<typeof CreateImageLoadBalancerRouterImagesGenerationsType>;
/** @internal */
export type CreateImageLoadBalancerRouterImagesGenerationsModels$Outbound = {
    model: string;
    weight: number;
};
/** @internal */
export declare const CreateImageLoadBalancerRouterImagesGenerationsModels$outboundSchema: z.ZodType<CreateImageLoadBalancerRouterImagesGenerationsModels$Outbound, z.ZodTypeDef, CreateImageLoadBalancerRouterImagesGenerationsModels>;
export declare function createImageLoadBalancerRouterImagesGenerationsModelsToJSON(createImageLoadBalancerRouterImagesGenerationsModels: CreateImageLoadBalancerRouterImagesGenerationsModels): string;
/** @internal */
export type CreateImageLoadBalancerRouterImagesGenerations1$Outbound = {
    type: string;
    models: Array<CreateImageLoadBalancerRouterImagesGenerationsModels$Outbound>;
};
/** @internal */
export declare const CreateImageLoadBalancerRouterImagesGenerations1$outboundSchema: z.ZodType<CreateImageLoadBalancerRouterImagesGenerations1$Outbound, z.ZodTypeDef, CreateImageLoadBalancerRouterImagesGenerations1>;
export declare function createImageLoadBalancerRouterImagesGenerations1ToJSON(createImageLoadBalancerRouterImagesGenerations1: CreateImageLoadBalancerRouterImagesGenerations1): string;
/** @internal */
export type CreateImageRouterImagesGenerationsLoadBalancer$Outbound = CreateImageLoadBalancerRouterImagesGenerations1$Outbound;
/** @internal */
export declare const CreateImageRouterImagesGenerationsLoadBalancer$outboundSchema: z.ZodType<CreateImageRouterImagesGenerationsLoadBalancer$Outbound, z.ZodTypeDef, CreateImageRouterImagesGenerationsLoadBalancer>;
export declare function createImageRouterImagesGenerationsLoadBalancerToJSON(createImageRouterImagesGenerationsLoadBalancer: CreateImageRouterImagesGenerationsLoadBalancer): string;
/** @internal */
export type CreateImageRouterImagesGenerationsTimeout$Outbound = {
    call_timeout: number;
};
/** @internal */
export declare const CreateImageRouterImagesGenerationsTimeout$outboundSchema: z.ZodType<CreateImageRouterImagesGenerationsTimeout$Outbound, z.ZodTypeDef, CreateImageRouterImagesGenerationsTimeout>;
export declare function createImageRouterImagesGenerationsTimeoutToJSON(createImageRouterImagesGenerationsTimeout: CreateImageRouterImagesGenerationsTimeout): string;
/** @internal */
export type CreateImageOrq$Outbound = {
    name?: string | undefined;
    retry?: CreateImageRouterImagesGenerationsRetry$Outbound | undefined;
    fallbacks?: Array<CreateImageRouterImagesGenerationsFallbacks$Outbound> | undefined;
    identity?: components.PublicIdentity$Outbound | undefined;
    contact?: components.PublicContact$Outbound | undefined;
    cache?: CreateImageRouterImagesGenerationsCache$Outbound | undefined;
    load_balancer?: CreateImageLoadBalancerRouterImagesGenerations1$Outbound | undefined;
    timeout?: CreateImageRouterImagesGenerationsTimeout$Outbound | undefined;
};
/** @internal */
export declare const CreateImageOrq$outboundSchema: z.ZodType<CreateImageOrq$Outbound, z.ZodTypeDef, CreateImageOrq>;
export declare function createImageOrqToJSON(createImageOrq: CreateImageOrq): string;
/** @internal */
export type CreateImageRequestBody$Outbound = {
    prompt: string;
    background?: string | null | undefined;
    model: string;
    moderation?: string | null | undefined;
    n: number | null;
    output_compression?: number | null | undefined;
    output_format?: string | null | undefined;
    quality?: string | null | undefined;
    response_format?: string | null | undefined;
    size?: string | null | undefined;
    style?: string | null | undefined;
    name?: string | undefined;
    fallbacks?: Array<CreateImageFallbacks$Outbound> | undefined;
    retry?: CreateImageRetry$Outbound | undefined;
    cache?: CreateImageCache$Outbound | undefined;
    load_balancer?: CreateImageLoadBalancer1$Outbound | undefined;
    timeout?: CreateImageTimeout$Outbound | undefined;
    orq?: CreateImageOrq$Outbound | undefined;
};
/** @internal */
export declare const CreateImageRequestBody$outboundSchema: z.ZodType<CreateImageRequestBody$Outbound, z.ZodTypeDef, CreateImageRequestBody>;
export declare function createImageRequestBodyToJSON(createImageRequestBody: CreateImageRequestBody): string;
/** @internal */
export declare const CreateImageData$inboundSchema: z.ZodType<CreateImageData, z.ZodTypeDef, unknown>;
export declare function createImageDataFromJSON(jsonString: string): SafeParseResult<CreateImageData, SDKValidationError>;
/** @internal */
export declare const InputTokensDetails$inboundSchema: z.ZodType<InputTokensDetails, z.ZodTypeDef, unknown>;
export declare function inputTokensDetailsFromJSON(jsonString: string): SafeParseResult<InputTokensDetails, SDKValidationError>;
/** @internal */
export declare const CreateImageUsage$inboundSchema: z.ZodType<CreateImageUsage, z.ZodTypeDef, unknown>;
export declare function createImageUsageFromJSON(jsonString: string): SafeParseResult<CreateImageUsage, SDKValidationError>;
/** @internal */
export declare const CreateImageResponseBody$inboundSchema: z.ZodType<CreateImageResponseBody, z.ZodTypeDef, unknown>;
export declare function createImageResponseBodyFromJSON(jsonString: string): SafeParseResult<CreateImageResponseBody, SDKValidationError>;
//# sourceMappingURL=createimage.d.ts.map