import { z } from "@hono/zod-openapi";

//#region src/domains/run/types/chat.d.ts
type TextContentItem = {
  type: 'text';
  text: string;
};
declare const ImageUrlSchema: z.ZodUnion<readonly [z.ZodURL, z.ZodString]>;
/** OpenAI-specific image detail level. Has no effect on other providers. */
declare const ImageDetailEnum: readonly ["auto", "low", "high"];
declare const ImageDetailSchema: z.ZodEnum<{
  auto: "auto";
  low: "low";
  high: "high";
}>;
type ImageDetail = z.infer<typeof ImageDetailSchema>;
declare const ImageContentItemSchema: z.ZodObject<{
  type: z.ZodLiteral<"image_url">;
  image_url: z.ZodObject<{
    url: z.ZodUnion<readonly [z.ZodURL, z.ZodString]>;
    detail: z.ZodOptional<z.ZodEnum<{
      auto: "auto";
      low: "low";
      high: "high";
    }>>;
  }, z.core.$strip>;
}, z.core.$strip>;
type ImageContentItem = z.infer<typeof ImageContentItemSchema>;
type ContentItem = TextContentItem | ImageContentItem;
type Message = {
  role: 'system' | 'user' | 'assistant' | 'function' | 'tool';
  content: string | ContentItem[];
  name?: string;
};
type ChatCompletionRequest = {
  model: string;
  messages: Message[];
  temperature?: number;
  top_p?: number;
  n?: number;
  stream?: boolean;
  max_tokens?: number;
  presence_penalty?: number;
  frequency_penalty?: number;
  logit_bias?: Record<string, number>;
  user?: string;
  tools?: Record<string, unknown>;
  runConfig?: Record<string, unknown>;
};
//#endregion
export { ChatCompletionRequest, ContentItem, ImageContentItem, ImageContentItemSchema, ImageDetail, ImageDetailEnum, ImageDetailSchema, ImageUrlSchema, Message, TextContentItem };