import { z } from "zod"; /** * Configuration options for image transport */ export interface ImageTransportOptions { maxSize: number; allowedMimeTypes: string[]; compressionQuality?: number; } /** * Schema for content annotations */ export declare const ContentAnnotationsSchema: z.ZodOptional, "many">>; priority: z.ZodOptional; lastModified: z.ZodOptional; }, "strip", z.ZodTypeAny, { audience?: ("user" | "assistant")[] | undefined; priority?: number | undefined; lastModified?: string | undefined; }, { audience?: ("user" | "assistant")[] | undefined; priority?: number | undefined; lastModified?: string | undefined; }>>; /** * Schema for image content validation */ export declare const ImageContentSchema: z.ZodObject<{ type: z.ZodLiteral<"image">; data: z.ZodString; mimeType: z.ZodString; annotations: z.ZodOptional, "many">>; priority: z.ZodOptional; lastModified: z.ZodOptional; }, "strip", z.ZodTypeAny, { audience?: ("user" | "assistant")[] | undefined; priority?: number | undefined; lastModified?: string | undefined; }, { audience?: ("user" | "assistant")[] | undefined; priority?: number | undefined; lastModified?: string | undefined; }>>; }, "strip", z.ZodTypeAny, { type: "image"; data: string; mimeType: string; annotations?: { audience?: ("user" | "assistant")[] | undefined; priority?: number | undefined; lastModified?: string | undefined; } | undefined; }, { type: "image"; data: string; mimeType: string; annotations?: { audience?: ("user" | "assistant")[] | undefined; priority?: number | undefined; lastModified?: string | undefined; } | undefined; }>; export type ImageContent = z.infer; /** * Default configuration for image transport */ export declare const DEFAULT_IMAGE_OPTIONS: ImageTransportOptions; /** * Validates image content against transport options */ export declare function validateImageTransport(content: ImageContent, options?: ImageTransportOptions): void; /** * Prepares image content for transport * This function can be extended to handle compression, format conversion, etc. */ export declare function prepareImageForTransport(content: ImageContent, options?: ImageTransportOptions): ImageContent; /** * Gets the size of a base64 image in bytes */ export declare function getBase64ImageSize(base64String: string): number; /** * Utility type for messages containing image content */ export type MessageWithImage = { result?: { content?: Array; }; [key: string]: unknown; }; /** * Checks if a message contains image content */ export declare function hasImageContent(message: unknown): message is MessageWithImage;