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 InputMessageItemDetail: {
    readonly Auto: "auto";
    readonly High: "high";
    readonly Low: "low";
    readonly Original: "original";
};
export type InputMessageItemDetail = OpenEnum<typeof InputMessageItemDetail>;
/**
 * Image input content item
 */
export type InputMessageItemContentInputImage = {
    detail: InputMessageItemDetail;
    imageUrl?: string | null | undefined;
    type: "input_image";
};
export type InputMessageItemContentUnion = InputText | InputMessageItemContentInputImage | InputFile | InputAudio | InputVideo;
export declare const InputMessageItemRoleDeveloper: {
    readonly Developer: "developer";
};
export type InputMessageItemRoleDeveloper = ClosedEnum<typeof InputMessageItemRoleDeveloper>;
export declare const InputMessageItemRoleSystem: {
    readonly System: "system";
};
export type InputMessageItemRoleSystem = ClosedEnum<typeof InputMessageItemRoleSystem>;
export declare const InputMessageItemRoleUser: {
    readonly User: "user";
};
export type InputMessageItemRoleUser = ClosedEnum<typeof InputMessageItemRoleUser>;
export type InputMessageItemRoleUnion = InputMessageItemRoleUser | InputMessageItemRoleSystem | InputMessageItemRoleDeveloper;
export declare const InputMessageItemTypeMessage: {
    readonly Message: "message";
};
export type InputMessageItemTypeMessage = ClosedEnum<typeof InputMessageItemTypeMessage>;
export type InputMessageItem = {
    content?: Array<InputText | InputMessageItemContentInputImage | InputFile | InputAudio | InputVideo> | null | undefined;
    id?: string | undefined;
    role: InputMessageItemRoleUser | InputMessageItemRoleSystem | InputMessageItemRoleDeveloper;
    type?: InputMessageItemTypeMessage | undefined;
};
/** @internal */
export declare const InputMessageItemDetail$outboundSchema: z.ZodType<string, InputMessageItemDetail>;
/** @internal */
export type InputMessageItemContentInputImage$Outbound = {
    detail: string;
    image_url?: string | null | undefined;
    type: "input_image";
};
/** @internal */
export declare const InputMessageItemContentInputImage$outboundSchema: z.ZodType<InputMessageItemContentInputImage$Outbound, InputMessageItemContentInputImage>;
export declare function inputMessageItemContentInputImageToJSON(inputMessageItemContentInputImage: InputMessageItemContentInputImage): string;
/** @internal */
export type InputMessageItemContentUnion$Outbound = InputText$Outbound | InputMessageItemContentInputImage$Outbound | InputFile$Outbound | InputAudio$Outbound | InputVideo$Outbound;
/** @internal */
export declare const InputMessageItemContentUnion$outboundSchema: z.ZodType<InputMessageItemContentUnion$Outbound, InputMessageItemContentUnion>;
export declare function inputMessageItemContentUnionToJSON(inputMessageItemContentUnion: InputMessageItemContentUnion): string;
/** @internal */
export declare const InputMessageItemRoleDeveloper$outboundSchema: z.ZodEnum<typeof InputMessageItemRoleDeveloper>;
/** @internal */
export declare const InputMessageItemRoleSystem$outboundSchema: z.ZodEnum<typeof InputMessageItemRoleSystem>;
/** @internal */
export declare const InputMessageItemRoleUser$outboundSchema: z.ZodEnum<typeof InputMessageItemRoleUser>;
/** @internal */
export type InputMessageItemRoleUnion$Outbound = string | string | string;
/** @internal */
export declare const InputMessageItemRoleUnion$outboundSchema: z.ZodType<InputMessageItemRoleUnion$Outbound, InputMessageItemRoleUnion>;
export declare function inputMessageItemRoleUnionToJSON(inputMessageItemRoleUnion: InputMessageItemRoleUnion): string;
/** @internal */
export declare const InputMessageItemTypeMessage$outboundSchema: z.ZodEnum<typeof InputMessageItemTypeMessage>;
/** @internal */
export type InputMessageItem$Outbound = {
    content?: Array<InputText$Outbound | InputMessageItemContentInputImage$Outbound | InputFile$Outbound | InputAudio$Outbound | InputVideo$Outbound> | null | undefined;
    id?: string | undefined;
    role: string | string | string;
    type?: string | undefined;
};
/** @internal */
export declare const InputMessageItem$outboundSchema: z.ZodType<InputMessageItem$Outbound, InputMessageItem>;
export declare function inputMessageItemToJSON(inputMessageItem: InputMessageItem): string;
//# sourceMappingURL=inputmessageitem.d.ts.map