import { type Model } from "@oh-my-pi/pi-ai"; import * as z from "zod/v4"; import { type ModelRegistry } from "../config/model-registry"; import type { CustomTool } from "../extensibility/custom-tools/types"; type ImageProvider = "antigravity" | "gemini" | "openai" | "openai-codex" | "openrouter"; declare const responseModalitySchema: z.ZodEnum<{ IMAGE: "IMAGE"; TEXT: "TEXT"; }>; export declare const imageGenSchema: z.ZodObject<{ subject: z.ZodString; action: z.ZodOptional; scene: z.ZodOptional; composition: z.ZodOptional; lighting: z.ZodOptional; style: z.ZodOptional; text: z.ZodOptional; changes: z.ZodOptional>; aspect_ratio: z.ZodOptional>; image_size: z.ZodOptional>; input: z.ZodOptional; data: z.ZodOptional; mime_type: z.ZodOptional; }, z.core.$strict>>>; }, z.core.$strict>; export type ImageGenParams = z.infer; export type GeminiResponseModality = z.infer; interface GeminiSafetyRating { category?: string; probability?: string; } interface GeminiPromptFeedback { blockReason?: string; safetyRatings?: GeminiSafetyRating[]; } interface GeminiUsageMetadata { promptTokenCount?: number; candidatesTokenCount?: number; totalTokenCount?: number; } interface OpenAIResponsesUsage { input_tokens?: number; output_tokens?: number; total_tokens?: number; } type ImageUsageMetadata = GeminiUsageMetadata | OpenAIResponsesUsage; interface ImageGenToolDetails { provider: ImageProvider; model: string; imageCount: number; imagePaths: string[]; images: InlineImageData[]; responseText?: string; promptFeedback?: GeminiPromptFeedback; revisedPrompt?: string; usage?: ImageUsageMetadata; } interface InlineImageData { data: string; mimeType: string; } /** Set the preferred image provider from settings */ export declare function setPreferredImageProvider(provider: ImageProvider | "auto"): void; export declare const imageGenTool: CustomTool; export declare function getImageGenTools(modelRegistry?: ModelRegistry, activeModel?: Model): Promise>>; export declare function getImageGenToolsWithRegistry(modelRegistry: ModelRegistry, activeModel?: Model): Promise>>; export {};