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 quality of the image that will be generated. Auto will automatically select the best quality for the given model.
 */
export declare const CreateImageEditQuality: {
    readonly Auto: "auto";
    readonly High: "high";
    readonly Medium: "medium";
    readonly Low: "low";
    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 CreateImageEditQuality = ClosedEnum<typeof CreateImageEditQuality>;
/**
 * The format in which the generated images are returned. Some of the models only return the image in base64 format.
 */
export declare const CreateImageEditResponseFormat: {
    readonly Url: "url";
    readonly B64Json: "b64_json";
};
/**
 * The format in which the generated images are returned. Some of the models only return the image in base64 format.
 */
export type CreateImageEditResponseFormat = ClosedEnum<typeof CreateImageEditResponseFormat>;
export type CreateImageEditFallbacks = {
    /**
     * Fallback model identifier
     */
    model: string;
};
/**
 * Retry configuration for the request
 */
export type CreateImageEditRetry = {
    /**
     * Number of retry attempts (1-5)
     */
    count?: number | undefined;
    /**
     * HTTP status codes that trigger retry logic
     */
    onCodes?: Array<number> | undefined;
};
export declare const CreateImageEditType: {
    readonly ExactMatch: "exact_match";
};
export type CreateImageEditType = ClosedEnum<typeof CreateImageEditType>;
/**
 * Cache configuration for the request.
 */
export type CreateImageEditCache = {
    /**
     * Time to live for cached responses in seconds. Maximum 259200 seconds (3 days).
     */
    ttl?: number | undefined;
    type: CreateImageEditType;
};
export declare const CreateImageEditLoadBalancerType: {
    readonly WeightBased: "weight_based";
};
export type CreateImageEditLoadBalancerType = ClosedEnum<typeof CreateImageEditLoadBalancerType>;
export type CreateImageEditLoadBalancerModels = {
    /**
     * Model identifier for load balancing
     */
    model: string;
    /**
     * Weight assigned to this model for load balancing
     */
    weight?: number | undefined;
};
export type CreateImageEditLoadBalancer1 = {
    type: CreateImageEditLoadBalancerType;
    models: Array<CreateImageEditLoadBalancerModels>;
};
/**
 * Load balancer configuration for the request.
 */
export type CreateImageEditLoadBalancer = CreateImageEditLoadBalancer1;
/**
 * 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 CreateImageEditTimeout = {
    /**
     * Timeout value in milliseconds
     */
    callTimeout: number;
};
/**
 * Retry configuration for the request
 */
export type CreateImageEditRouterImagesEditsRetry = {
    /**
     * Number of retry attempts (1-5)
     */
    count?: number | undefined;
    /**
     * HTTP status codes that trigger retry logic
     */
    onCodes?: Array<number> | undefined;
};
export type CreateImageEditRouterImagesEditsFallbacks = {
    /**
     * Fallback model identifier
     */
    model: string;
};
/**
 * Version of the prompt to use (currently only "latest" supported)
 */
export declare const CreateImageEditVersion: {
    readonly Latest: "latest";
};
/**
 * Version of the prompt to use (currently only "latest" supported)
 */
export type CreateImageEditVersion = ClosedEnum<typeof CreateImageEditVersion>;
/**
 * Prompt configuration for the request
 */
export type CreateImageEditPrompt = {
    /**
     * Unique identifier of the prompt to use
     */
    id: string;
    /**
     * Version of the prompt to use (currently only "latest" supported)
     */
    version: CreateImageEditVersion;
};
export declare const CreateImageEditRouterImagesEditsType: {
    readonly ExactMatch: "exact_match";
};
export type CreateImageEditRouterImagesEditsType = ClosedEnum<typeof CreateImageEditRouterImagesEditsType>;
/**
 * Cache configuration for the request.
 */
export type CreateImageEditRouterImagesEditsCache = {
    /**
     * Time to live for cached responses in seconds. Maximum 259200 seconds (3 days).
     */
    ttl?: number | undefined;
    type: CreateImageEditRouterImagesEditsType;
};
export declare const CreateImageEditLoadBalancerRouterImagesEditsType: {
    readonly WeightBased: "weight_based";
};
export type CreateImageEditLoadBalancerRouterImagesEditsType = ClosedEnum<typeof CreateImageEditLoadBalancerRouterImagesEditsType>;
export type CreateImageEditLoadBalancerRouterImagesEditsModels = {
    /**
     * Model identifier for load balancing
     */
    model: string;
    /**
     * Weight assigned to this model for load balancing
     */
    weight?: number | undefined;
};
export type CreateImageEditLoadBalancerRouterImagesEdits1 = {
    type: CreateImageEditLoadBalancerRouterImagesEditsType;
    models: Array<CreateImageEditLoadBalancerRouterImagesEditsModels>;
};
/**
 * Array of models with weights for load balancing requests
 */
export type CreateImageEditRouterImagesEditsLoadBalancer = CreateImageEditLoadBalancerRouterImagesEdits1;
/**
 * 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 CreateImageEditRouterImagesEditsTimeout = {
    /**
     * Timeout value in milliseconds
     */
    callTimeout: number;
};
export type CreateImageEditOrq = {
    /**
     * 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?: CreateImageEditRouterImagesEditsRetry | undefined;
    /**
     * Array of fallback models to use if primary model fails
     */
    fallbacks?: Array<CreateImageEditRouterImagesEditsFallbacks> | undefined;
    /**
     * Prompt configuration for the request
     */
    prompt?: CreateImageEditPrompt | 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?: CreateImageEditRouterImagesEditsCache | undefined;
    /**
     * Array of models with weights for load balancing requests
     */
    loadBalancer?: CreateImageEditLoadBalancerRouterImagesEdits1 | 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?: CreateImageEditRouterImagesEditsTimeout | undefined;
};
export type CreateImageEditRequestBody = {
    /**
     * The model to use for image edit. [Check models](https://docs.orq.ai/docs/ai-gateway-supported-models#image-models)
     */
    model: string;
    /**
     * The image(s) to edit. Must be a supported image file or an array of images.  Each image should be a png, webp, or jpg file less than 50MB. You can provide up to 16 images.
     */
    image?: any | undefined;
    /**
     * A text description of the desired image(s).
     */
    prompt: string;
    /**
     * The number of images to generate. Must be between 1 and 10.
     */
    n?: number | null | undefined;
    /**
     * The size of the generated images
     */
    size?: string | null | undefined;
    /**
     * The quality of the image that will be generated. Auto will automatically select the best quality for the given model.
     */
    quality?: CreateImageEditQuality | null | undefined;
    /**
     * The format in which the generated images are returned. Some of the models only return the image in base64 format.
     */
    responseFormat?: CreateImageEditResponseFormat | 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<CreateImageEditFallbacks> | undefined;
    /**
     * Retry configuration for the request
     */
    retry?: CreateImageEditRetry | undefined;
    /**
     * Cache configuration for the request.
     */
    cache?: CreateImageEditCache | undefined;
    /**
     * Load balancer configuration for the request.
     */
    loadBalancer?: CreateImageEditLoadBalancer1 | 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?: CreateImageEditTimeout | undefined;
    orq?: CreateImageEditOrq | undefined;
};
export type CreateImageEditData = {
    /**
     * 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 CreateImageEditInputTokensDetails = {
    /**
     * 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 CreateImageEditUsage = {
    /**
     * 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: CreateImageEditInputTokensDetails;
};
/**
 * Represents an image edit response from the API.
 */
export type CreateImageEditResponseBody = {
    /**
     * 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<CreateImageEditData>;
    /**
     * The token usage information for the image generation.
     */
    usage?: CreateImageEditUsage | undefined;
};
/** @internal */
export declare const CreateImageEditQuality$outboundSchema: z.ZodNativeEnum<typeof CreateImageEditQuality>;
/** @internal */
export declare const CreateImageEditResponseFormat$outboundSchema: z.ZodNativeEnum<typeof CreateImageEditResponseFormat>;
/** @internal */
export type CreateImageEditFallbacks$Outbound = {
    model: string;
};
/** @internal */
export declare const CreateImageEditFallbacks$outboundSchema: z.ZodType<CreateImageEditFallbacks$Outbound, z.ZodTypeDef, CreateImageEditFallbacks>;
export declare function createImageEditFallbacksToJSON(createImageEditFallbacks: CreateImageEditFallbacks): string;
/** @internal */
export type CreateImageEditRetry$Outbound = {
    count: number;
    on_codes?: Array<number> | undefined;
};
/** @internal */
export declare const CreateImageEditRetry$outboundSchema: z.ZodType<CreateImageEditRetry$Outbound, z.ZodTypeDef, CreateImageEditRetry>;
export declare function createImageEditRetryToJSON(createImageEditRetry: CreateImageEditRetry): string;
/** @internal */
export declare const CreateImageEditType$outboundSchema: z.ZodNativeEnum<typeof CreateImageEditType>;
/** @internal */
export type CreateImageEditCache$Outbound = {
    ttl: number;
    type: string;
};
/** @internal */
export declare const CreateImageEditCache$outboundSchema: z.ZodType<CreateImageEditCache$Outbound, z.ZodTypeDef, CreateImageEditCache>;
export declare function createImageEditCacheToJSON(createImageEditCache: CreateImageEditCache): string;
/** @internal */
export declare const CreateImageEditLoadBalancerType$outboundSchema: z.ZodNativeEnum<typeof CreateImageEditLoadBalancerType>;
/** @internal */
export type CreateImageEditLoadBalancerModels$Outbound = {
    model: string;
    weight: number;
};
/** @internal */
export declare const CreateImageEditLoadBalancerModels$outboundSchema: z.ZodType<CreateImageEditLoadBalancerModels$Outbound, z.ZodTypeDef, CreateImageEditLoadBalancerModels>;
export declare function createImageEditLoadBalancerModelsToJSON(createImageEditLoadBalancerModels: CreateImageEditLoadBalancerModels): string;
/** @internal */
export type CreateImageEditLoadBalancer1$Outbound = {
    type: string;
    models: Array<CreateImageEditLoadBalancerModels$Outbound>;
};
/** @internal */
export declare const CreateImageEditLoadBalancer1$outboundSchema: z.ZodType<CreateImageEditLoadBalancer1$Outbound, z.ZodTypeDef, CreateImageEditLoadBalancer1>;
export declare function createImageEditLoadBalancer1ToJSON(createImageEditLoadBalancer1: CreateImageEditLoadBalancer1): string;
/** @internal */
export type CreateImageEditLoadBalancer$Outbound = CreateImageEditLoadBalancer1$Outbound;
/** @internal */
export declare const CreateImageEditLoadBalancer$outboundSchema: z.ZodType<CreateImageEditLoadBalancer$Outbound, z.ZodTypeDef, CreateImageEditLoadBalancer>;
export declare function createImageEditLoadBalancerToJSON(createImageEditLoadBalancer: CreateImageEditLoadBalancer): string;
/** @internal */
export type CreateImageEditTimeout$Outbound = {
    call_timeout: number;
};
/** @internal */
export declare const CreateImageEditTimeout$outboundSchema: z.ZodType<CreateImageEditTimeout$Outbound, z.ZodTypeDef, CreateImageEditTimeout>;
export declare function createImageEditTimeoutToJSON(createImageEditTimeout: CreateImageEditTimeout): string;
/** @internal */
export type CreateImageEditRouterImagesEditsRetry$Outbound = {
    count: number;
    on_codes?: Array<number> | undefined;
};
/** @internal */
export declare const CreateImageEditRouterImagesEditsRetry$outboundSchema: z.ZodType<CreateImageEditRouterImagesEditsRetry$Outbound, z.ZodTypeDef, CreateImageEditRouterImagesEditsRetry>;
export declare function createImageEditRouterImagesEditsRetryToJSON(createImageEditRouterImagesEditsRetry: CreateImageEditRouterImagesEditsRetry): string;
/** @internal */
export type CreateImageEditRouterImagesEditsFallbacks$Outbound = {
    model: string;
};
/** @internal */
export declare const CreateImageEditRouterImagesEditsFallbacks$outboundSchema: z.ZodType<CreateImageEditRouterImagesEditsFallbacks$Outbound, z.ZodTypeDef, CreateImageEditRouterImagesEditsFallbacks>;
export declare function createImageEditRouterImagesEditsFallbacksToJSON(createImageEditRouterImagesEditsFallbacks: CreateImageEditRouterImagesEditsFallbacks): string;
/** @internal */
export declare const CreateImageEditVersion$outboundSchema: z.ZodNativeEnum<typeof CreateImageEditVersion>;
/** @internal */
export type CreateImageEditPrompt$Outbound = {
    id: string;
    version: string;
};
/** @internal */
export declare const CreateImageEditPrompt$outboundSchema: z.ZodType<CreateImageEditPrompt$Outbound, z.ZodTypeDef, CreateImageEditPrompt>;
export declare function createImageEditPromptToJSON(createImageEditPrompt: CreateImageEditPrompt): string;
/** @internal */
export declare const CreateImageEditRouterImagesEditsType$outboundSchema: z.ZodNativeEnum<typeof CreateImageEditRouterImagesEditsType>;
/** @internal */
export type CreateImageEditRouterImagesEditsCache$Outbound = {
    ttl: number;
    type: string;
};
/** @internal */
export declare const CreateImageEditRouterImagesEditsCache$outboundSchema: z.ZodType<CreateImageEditRouterImagesEditsCache$Outbound, z.ZodTypeDef, CreateImageEditRouterImagesEditsCache>;
export declare function createImageEditRouterImagesEditsCacheToJSON(createImageEditRouterImagesEditsCache: CreateImageEditRouterImagesEditsCache): string;
/** @internal */
export declare const CreateImageEditLoadBalancerRouterImagesEditsType$outboundSchema: z.ZodNativeEnum<typeof CreateImageEditLoadBalancerRouterImagesEditsType>;
/** @internal */
export type CreateImageEditLoadBalancerRouterImagesEditsModels$Outbound = {
    model: string;
    weight: number;
};
/** @internal */
export declare const CreateImageEditLoadBalancerRouterImagesEditsModels$outboundSchema: z.ZodType<CreateImageEditLoadBalancerRouterImagesEditsModels$Outbound, z.ZodTypeDef, CreateImageEditLoadBalancerRouterImagesEditsModels>;
export declare function createImageEditLoadBalancerRouterImagesEditsModelsToJSON(createImageEditLoadBalancerRouterImagesEditsModels: CreateImageEditLoadBalancerRouterImagesEditsModels): string;
/** @internal */
export type CreateImageEditLoadBalancerRouterImagesEdits1$Outbound = {
    type: string;
    models: Array<CreateImageEditLoadBalancerRouterImagesEditsModels$Outbound>;
};
/** @internal */
export declare const CreateImageEditLoadBalancerRouterImagesEdits1$outboundSchema: z.ZodType<CreateImageEditLoadBalancerRouterImagesEdits1$Outbound, z.ZodTypeDef, CreateImageEditLoadBalancerRouterImagesEdits1>;
export declare function createImageEditLoadBalancerRouterImagesEdits1ToJSON(createImageEditLoadBalancerRouterImagesEdits1: CreateImageEditLoadBalancerRouterImagesEdits1): string;
/** @internal */
export type CreateImageEditRouterImagesEditsLoadBalancer$Outbound = CreateImageEditLoadBalancerRouterImagesEdits1$Outbound;
/** @internal */
export declare const CreateImageEditRouterImagesEditsLoadBalancer$outboundSchema: z.ZodType<CreateImageEditRouterImagesEditsLoadBalancer$Outbound, z.ZodTypeDef, CreateImageEditRouterImagesEditsLoadBalancer>;
export declare function createImageEditRouterImagesEditsLoadBalancerToJSON(createImageEditRouterImagesEditsLoadBalancer: CreateImageEditRouterImagesEditsLoadBalancer): string;
/** @internal */
export type CreateImageEditRouterImagesEditsTimeout$Outbound = {
    call_timeout: number;
};
/** @internal */
export declare const CreateImageEditRouterImagesEditsTimeout$outboundSchema: z.ZodType<CreateImageEditRouterImagesEditsTimeout$Outbound, z.ZodTypeDef, CreateImageEditRouterImagesEditsTimeout>;
export declare function createImageEditRouterImagesEditsTimeoutToJSON(createImageEditRouterImagesEditsTimeout: CreateImageEditRouterImagesEditsTimeout): string;
/** @internal */
export type CreateImageEditOrq$Outbound = {
    name?: string | undefined;
    retry?: CreateImageEditRouterImagesEditsRetry$Outbound | undefined;
    fallbacks?: Array<CreateImageEditRouterImagesEditsFallbacks$Outbound> | undefined;
    prompt?: CreateImageEditPrompt$Outbound | undefined;
    identity?: components.PublicIdentity$Outbound | undefined;
    contact?: components.PublicContact$Outbound | undefined;
    cache?: CreateImageEditRouterImagesEditsCache$Outbound | undefined;
    load_balancer?: CreateImageEditLoadBalancerRouterImagesEdits1$Outbound | undefined;
    timeout?: CreateImageEditRouterImagesEditsTimeout$Outbound | undefined;
};
/** @internal */
export declare const CreateImageEditOrq$outboundSchema: z.ZodType<CreateImageEditOrq$Outbound, z.ZodTypeDef, CreateImageEditOrq>;
export declare function createImageEditOrqToJSON(createImageEditOrq: CreateImageEditOrq): string;
/** @internal */
export type CreateImageEditRequestBody$Outbound = {
    model: string;
    image?: any | undefined;
    prompt: string;
    n: number | null;
    size?: string | null | undefined;
    quality?: string | null | undefined;
    response_format?: string | undefined;
    user?: string | undefined;
    name?: string | undefined;
    fallbacks?: Array<CreateImageEditFallbacks$Outbound> | undefined;
    retry?: CreateImageEditRetry$Outbound | undefined;
    cache?: CreateImageEditCache$Outbound | undefined;
    load_balancer?: CreateImageEditLoadBalancer1$Outbound | undefined;
    timeout?: CreateImageEditTimeout$Outbound | undefined;
    orq?: CreateImageEditOrq$Outbound | undefined;
};
/** @internal */
export declare const CreateImageEditRequestBody$outboundSchema: z.ZodType<CreateImageEditRequestBody$Outbound, z.ZodTypeDef, CreateImageEditRequestBody>;
export declare function createImageEditRequestBodyToJSON(createImageEditRequestBody: CreateImageEditRequestBody): string;
/** @internal */
export declare const CreateImageEditData$inboundSchema: z.ZodType<CreateImageEditData, z.ZodTypeDef, unknown>;
export declare function createImageEditDataFromJSON(jsonString: string): SafeParseResult<CreateImageEditData, SDKValidationError>;
/** @internal */
export declare const CreateImageEditInputTokensDetails$inboundSchema: z.ZodType<CreateImageEditInputTokensDetails, z.ZodTypeDef, unknown>;
export declare function createImageEditInputTokensDetailsFromJSON(jsonString: string): SafeParseResult<CreateImageEditInputTokensDetails, SDKValidationError>;
/** @internal */
export declare const CreateImageEditUsage$inboundSchema: z.ZodType<CreateImageEditUsage, z.ZodTypeDef, unknown>;
export declare function createImageEditUsageFromJSON(jsonString: string): SafeParseResult<CreateImageEditUsage, SDKValidationError>;
/** @internal */
export declare const CreateImageEditResponseBody$inboundSchema: z.ZodType<CreateImageEditResponseBody, z.ZodTypeDef, unknown>;
export declare function createImageEditResponseBodyFromJSON(jsonString: string): SafeParseResult<CreateImageEditResponseBody, SDKValidationError>;
//# sourceMappingURL=createimageedit.d.ts.map