import * as z from "zod/v4";
import { ClosedEnum, OpenEnum } from "../types/enums.js";
import { InputAudio, InputAudio$Outbound } from "./inputaudio.js";
import { InputFile, InputFile$Outbound } from "./inputfile.js";
import { InputText, InputText$Outbound } from "./inputtext.js";
import { InputVideo, InputVideo$Outbound } from "./inputvideo.js";
export declare const EasyInputMessageDetail: {
    readonly Auto: "auto";
    readonly High: "high";
    readonly Low: "low";
    readonly Original: "original";
};
export type EasyInputMessageDetail = OpenEnum<typeof EasyInputMessageDetail>;
/**
 * Image input content item
 */
export type EasyInputMessageContentInputImage = {
    detail: EasyInputMessageDetail;
    imageUrl?: string | null | undefined;
    type: "input_image";
};
export type EasyInputMessageContentUnion1 = InputText | EasyInputMessageContentInputImage | InputFile | InputAudio | InputVideo;
export type EasyInputMessageContentUnion2 = Array<InputText | EasyInputMessageContentInputImage | InputFile | InputAudio | InputVideo> | string;
export declare const EasyInputMessagePhaseFinalAnswer: {
    readonly FinalAnswer: "final_answer";
};
export type EasyInputMessagePhaseFinalAnswer = ClosedEnum<typeof EasyInputMessagePhaseFinalAnswer>;
export declare const EasyInputMessagePhaseCommentary: {
    readonly Commentary: "commentary";
};
export type EasyInputMessagePhaseCommentary = ClosedEnum<typeof EasyInputMessagePhaseCommentary>;
/**
 * The phase of an assistant message. Use `commentary` for an intermediate assistant message and `final_answer` for the final assistant message. For follow-up requests with models like `gpt-5.3-codex` and later, preserve and resend phase on all assistant messages. Omitting it can degrade performance. Not used for user messages.
 */
export type EasyInputMessagePhaseUnion = EasyInputMessagePhaseCommentary | EasyInputMessagePhaseFinalAnswer;
export declare const EasyInputMessageRoleDeveloper: {
    readonly Developer: "developer";
};
export type EasyInputMessageRoleDeveloper = ClosedEnum<typeof EasyInputMessageRoleDeveloper>;
export declare const EasyInputMessageRoleAssistant: {
    readonly Assistant: "assistant";
};
export type EasyInputMessageRoleAssistant = ClosedEnum<typeof EasyInputMessageRoleAssistant>;
export declare const EasyInputMessageRoleSystem: {
    readonly System: "system";
};
export type EasyInputMessageRoleSystem = ClosedEnum<typeof EasyInputMessageRoleSystem>;
export declare const EasyInputMessageRoleUser: {
    readonly User: "user";
};
export type EasyInputMessageRoleUser = ClosedEnum<typeof EasyInputMessageRoleUser>;
export type EasyInputMessageRoleUnion = EasyInputMessageRoleUser | EasyInputMessageRoleSystem | EasyInputMessageRoleAssistant | EasyInputMessageRoleDeveloper;
export declare const EasyInputMessageTypeMessage: {
    readonly Message: "message";
};
export type EasyInputMessageTypeMessage = ClosedEnum<typeof EasyInputMessageTypeMessage>;
export type EasyInputMessage = {
    content?: Array<InputText | EasyInputMessageContentInputImage | InputFile | InputAudio | InputVideo> | string | null | undefined;
    /**
     * The phase of an assistant message. Use `commentary` for an intermediate assistant message and `final_answer` for the final assistant message. For follow-up requests with models like `gpt-5.3-codex` and later, preserve and resend phase on all assistant messages. Omitting it can degrade performance. Not used for user messages.
     */
    phase?: EasyInputMessagePhaseCommentary | EasyInputMessagePhaseFinalAnswer | null | undefined;
    role: EasyInputMessageRoleUser | EasyInputMessageRoleSystem | EasyInputMessageRoleAssistant | EasyInputMessageRoleDeveloper;
    type?: EasyInputMessageTypeMessage | undefined;
};
/** @internal */
export declare const EasyInputMessageDetail$outboundSchema: z.ZodType<string, EasyInputMessageDetail>;
/** @internal */
export type EasyInputMessageContentInputImage$Outbound = {
    detail: string;
    image_url?: string | null | undefined;
    type: "input_image";
};
/** @internal */
export declare const EasyInputMessageContentInputImage$outboundSchema: z.ZodType<EasyInputMessageContentInputImage$Outbound, EasyInputMessageContentInputImage>;
export declare function easyInputMessageContentInputImageToJSON(easyInputMessageContentInputImage: EasyInputMessageContentInputImage): string;
/** @internal */
export type EasyInputMessageContentUnion1$Outbound = InputText$Outbound | EasyInputMessageContentInputImage$Outbound | InputFile$Outbound | InputAudio$Outbound | InputVideo$Outbound;
/** @internal */
export declare const EasyInputMessageContentUnion1$outboundSchema: z.ZodType<EasyInputMessageContentUnion1$Outbound, EasyInputMessageContentUnion1>;
export declare function easyInputMessageContentUnion1ToJSON(easyInputMessageContentUnion1: EasyInputMessageContentUnion1): string;
/** @internal */
export type EasyInputMessageContentUnion2$Outbound = Array<InputText$Outbound | EasyInputMessageContentInputImage$Outbound | InputFile$Outbound | InputAudio$Outbound | InputVideo$Outbound> | string;
/** @internal */
export declare const EasyInputMessageContentUnion2$outboundSchema: z.ZodType<EasyInputMessageContentUnion2$Outbound, EasyInputMessageContentUnion2>;
export declare function easyInputMessageContentUnion2ToJSON(easyInputMessageContentUnion2: EasyInputMessageContentUnion2): string;
/** @internal */
export declare const EasyInputMessagePhaseFinalAnswer$outboundSchema: z.ZodEnum<typeof EasyInputMessagePhaseFinalAnswer>;
/** @internal */
export declare const EasyInputMessagePhaseCommentary$outboundSchema: z.ZodEnum<typeof EasyInputMessagePhaseCommentary>;
/** @internal */
export type EasyInputMessagePhaseUnion$Outbound = string | string;
/** @internal */
export declare const EasyInputMessagePhaseUnion$outboundSchema: z.ZodType<EasyInputMessagePhaseUnion$Outbound, EasyInputMessagePhaseUnion>;
export declare function easyInputMessagePhaseUnionToJSON(easyInputMessagePhaseUnion: EasyInputMessagePhaseUnion): string;
/** @internal */
export declare const EasyInputMessageRoleDeveloper$outboundSchema: z.ZodEnum<typeof EasyInputMessageRoleDeveloper>;
/** @internal */
export declare const EasyInputMessageRoleAssistant$outboundSchema: z.ZodEnum<typeof EasyInputMessageRoleAssistant>;
/** @internal */
export declare const EasyInputMessageRoleSystem$outboundSchema: z.ZodEnum<typeof EasyInputMessageRoleSystem>;
/** @internal */
export declare const EasyInputMessageRoleUser$outboundSchema: z.ZodEnum<typeof EasyInputMessageRoleUser>;
/** @internal */
export type EasyInputMessageRoleUnion$Outbound = string | string | string | string;
/** @internal */
export declare const EasyInputMessageRoleUnion$outboundSchema: z.ZodType<EasyInputMessageRoleUnion$Outbound, EasyInputMessageRoleUnion>;
export declare function easyInputMessageRoleUnionToJSON(easyInputMessageRoleUnion: EasyInputMessageRoleUnion): string;
/** @internal */
export declare const EasyInputMessageTypeMessage$outboundSchema: z.ZodEnum<typeof EasyInputMessageTypeMessage>;
/** @internal */
export type EasyInputMessage$Outbound = {
    content?: Array<InputText$Outbound | EasyInputMessageContentInputImage$Outbound | InputFile$Outbound | InputAudio$Outbound | InputVideo$Outbound> | string | null | undefined;
    phase?: string | string | null | undefined;
    role: string | string | string | string;
    type?: string | undefined;
};
/** @internal */
export declare const EasyInputMessage$outboundSchema: z.ZodType<EasyInputMessage$Outbound, EasyInputMessage>;
export declare function easyInputMessageToJSON(easyInputMessage: EasyInputMessage): string;
//# sourceMappingURL=easyinputmessage.d.ts.map