import { z } from 'zod'; import type { Config } from '../types/Config.js'; import type { AnalysisOptions } from '../types/Analysis.js'; import { type FunctionName } from '../constants/FunctionNames.js'; export declare const ConfigSchema: z.ZodObject<{ IMAGE_PROVIDER: z.ZodDefault>>; VIDEO_PROVIDER: z.ZodDefault>>; IMAGE_MODEL: z.ZodOptional; VIDEO_MODEL: z.ZodOptional; ANALYZE_IMAGE_MODEL: z.ZodOptional; COMPARE_IMAGES_MODEL: z.ZodOptional; DETECT_OBJECTS_IN_IMAGE_MODEL: z.ZodOptional; ANALYZE_VIDEO_MODEL: z.ZodOptional; GEMINI_API_KEY: z.ZodOptional; GEMINI_BASE_URL: z.ZodDefault>; VERTEX_CLIENT_EMAIL: z.ZodOptional; VERTEX_PRIVATE_KEY: z.ZodOptional; VERTEX_PROJECT_ID: z.ZodOptional; VERTEX_LOCATION: z.ZodDefault>; VERTEX_ENDPOINT: z.ZodDefault>; GCS_BUCKET_NAME: z.ZodOptional; TEMPERATURE: z.ZodDefault>; TOP_P: z.ZodDefault>; TOP_K: z.ZodDefault>; MAX_TOKENS: z.ZodDefault>; TEMPERATURE_FOR_IMAGE: z.ZodOptional; TOP_P_FOR_IMAGE: z.ZodOptional; TOP_K_FOR_IMAGE: z.ZodOptional; MAX_TOKENS_FOR_IMAGE: z.ZodOptional; TEMPERATURE_FOR_VIDEO: z.ZodOptional; TOP_P_FOR_VIDEO: z.ZodOptional; TOP_K_FOR_VIDEO: z.ZodOptional; MAX_TOKENS_FOR_VIDEO: z.ZodOptional; TEMPERATURE_FOR_ANALYZE_IMAGE: z.ZodOptional; TOP_P_FOR_ANALYZE_IMAGE: z.ZodOptional; TOP_K_FOR_ANALYZE_IMAGE: z.ZodOptional; MAX_TOKENS_FOR_ANALYZE_IMAGE: z.ZodOptional; TEMPERATURE_FOR_COMPARE_IMAGES: z.ZodOptional; TOP_P_FOR_COMPARE_IMAGES: z.ZodOptional; TOP_K_FOR_COMPARE_IMAGES: z.ZodOptional; MAX_TOKENS_FOR_COMPARE_IMAGES: z.ZodOptional; TEMPERATURE_FOR_DETECT_OBJECTS_IN_IMAGE: z.ZodDefault>; TOP_P_FOR_DETECT_OBJECTS_IN_IMAGE: z.ZodDefault>; TOP_K_FOR_DETECT_OBJECTS_IN_IMAGE: z.ZodDefault>; MAX_TOKENS_FOR_DETECT_OBJECTS_IN_IMAGE: z.ZodDefault>; TEMPERATURE_FOR_ANALYZE_VIDEO: z.ZodOptional; TOP_P_FOR_ANALYZE_VIDEO: z.ZodOptional; TOP_K_FOR_ANALYZE_VIDEO: z.ZodOptional; MAX_TOKENS_FOR_ANALYZE_VIDEO: z.ZodOptional; MAX_IMAGE_SIZE: z.ZodDefault>; MAX_VIDEO_SIZE: z.ZodDefault>; ALLOWED_IMAGE_FORMATS: z.ZodDefault, "many">>>; ALLOWED_VIDEO_FORMATS: z.ZodDefault, "many">>>; MAX_VIDEO_DURATION: z.ZodDefault>; MAX_IMAGES_FOR_COMPARISON: z.ZodDefault>; GEMINI_FILES_API_THRESHOLD: z.ZodDefault>; VERTEX_AI_FILES_API_THRESHOLD: z.ZodDefault>; YOUTUBE_API_KEY: z.ZodOptional; LOG_LEVEL: z.ZodDefault>>; NODE_ENV: z.ZodDefault>>; }, "strip", z.ZodTypeAny, { IMAGE_PROVIDER: "google" | "vertex_ai"; VIDEO_PROVIDER: "google" | "vertex_ai"; GEMINI_BASE_URL: string; VERTEX_LOCATION: string; VERTEX_ENDPOINT: string; TEMPERATURE: number; TOP_P: number; TOP_K: number; MAX_TOKENS: number; TEMPERATURE_FOR_DETECT_OBJECTS_IN_IMAGE: number; TOP_P_FOR_DETECT_OBJECTS_IN_IMAGE: number; TOP_K_FOR_DETECT_OBJECTS_IN_IMAGE: number; MAX_TOKENS_FOR_DETECT_OBJECTS_IN_IMAGE: number; MAX_IMAGE_SIZE: number; MAX_VIDEO_SIZE: number; ALLOWED_IMAGE_FORMATS: ("png" | "jpg" | "jpeg" | "webp" | "gif" | "bmp" | "tiff")[]; ALLOWED_VIDEO_FORMATS: ("mp4" | "mov" | "avi" | "mkv" | "webm" | "flv" | "wmv" | "3gp")[]; MAX_VIDEO_DURATION: number; MAX_IMAGES_FOR_COMPARISON: number; GEMINI_FILES_API_THRESHOLD: number; VERTEX_AI_FILES_API_THRESHOLD: number; LOG_LEVEL: "info" | "debug" | "warn" | "error"; NODE_ENV: "development" | "production" | "test"; IMAGE_MODEL?: string | undefined; VIDEO_MODEL?: string | undefined; ANALYZE_IMAGE_MODEL?: string | undefined; COMPARE_IMAGES_MODEL?: string | undefined; DETECT_OBJECTS_IN_IMAGE_MODEL?: string | undefined; ANALYZE_VIDEO_MODEL?: string | undefined; GEMINI_API_KEY?: string | undefined; VERTEX_CLIENT_EMAIL?: string | undefined; VERTEX_PRIVATE_KEY?: string | undefined; VERTEX_PROJECT_ID?: string | undefined; GCS_BUCKET_NAME?: string | undefined; TEMPERATURE_FOR_IMAGE?: number | undefined; TOP_P_FOR_IMAGE?: number | undefined; TOP_K_FOR_IMAGE?: number | undefined; MAX_TOKENS_FOR_IMAGE?: number | undefined; TEMPERATURE_FOR_VIDEO?: number | undefined; TOP_P_FOR_VIDEO?: number | undefined; TOP_K_FOR_VIDEO?: number | undefined; MAX_TOKENS_FOR_VIDEO?: number | undefined; TEMPERATURE_FOR_ANALYZE_IMAGE?: number | undefined; TOP_P_FOR_ANALYZE_IMAGE?: number | undefined; TOP_K_FOR_ANALYZE_IMAGE?: number | undefined; MAX_TOKENS_FOR_ANALYZE_IMAGE?: number | undefined; TEMPERATURE_FOR_COMPARE_IMAGES?: number | undefined; TOP_P_FOR_COMPARE_IMAGES?: number | undefined; TOP_K_FOR_COMPARE_IMAGES?: number | undefined; MAX_TOKENS_FOR_COMPARE_IMAGES?: number | undefined; TEMPERATURE_FOR_ANALYZE_VIDEO?: number | undefined; TOP_P_FOR_ANALYZE_VIDEO?: number | undefined; TOP_K_FOR_ANALYZE_VIDEO?: number | undefined; MAX_TOKENS_FOR_ANALYZE_VIDEO?: number | undefined; YOUTUBE_API_KEY?: string | undefined; }, { IMAGE_PROVIDER?: "google" | "vertex_ai" | undefined; VIDEO_PROVIDER?: "google" | "vertex_ai" | undefined; IMAGE_MODEL?: string | undefined; VIDEO_MODEL?: string | undefined; ANALYZE_IMAGE_MODEL?: string | undefined; COMPARE_IMAGES_MODEL?: string | undefined; DETECT_OBJECTS_IN_IMAGE_MODEL?: string | undefined; ANALYZE_VIDEO_MODEL?: string | undefined; GEMINI_API_KEY?: string | undefined; GEMINI_BASE_URL?: string | undefined; VERTEX_CLIENT_EMAIL?: string | undefined; VERTEX_PRIVATE_KEY?: string | undefined; VERTEX_PROJECT_ID?: string | undefined; VERTEX_LOCATION?: string | undefined; VERTEX_ENDPOINT?: string | undefined; GCS_BUCKET_NAME?: string | undefined; TEMPERATURE?: number | undefined; TOP_P?: number | undefined; TOP_K?: number | undefined; MAX_TOKENS?: number | undefined; TEMPERATURE_FOR_IMAGE?: number | undefined; TOP_P_FOR_IMAGE?: number | undefined; TOP_K_FOR_IMAGE?: number | undefined; MAX_TOKENS_FOR_IMAGE?: number | undefined; TEMPERATURE_FOR_VIDEO?: number | undefined; TOP_P_FOR_VIDEO?: number | undefined; TOP_K_FOR_VIDEO?: number | undefined; MAX_TOKENS_FOR_VIDEO?: number | undefined; TEMPERATURE_FOR_ANALYZE_IMAGE?: number | undefined; TOP_P_FOR_ANALYZE_IMAGE?: number | undefined; TOP_K_FOR_ANALYZE_IMAGE?: number | undefined; MAX_TOKENS_FOR_ANALYZE_IMAGE?: number | undefined; TEMPERATURE_FOR_COMPARE_IMAGES?: number | undefined; TOP_P_FOR_COMPARE_IMAGES?: number | undefined; TOP_K_FOR_COMPARE_IMAGES?: number | undefined; MAX_TOKENS_FOR_COMPARE_IMAGES?: number | undefined; TEMPERATURE_FOR_DETECT_OBJECTS_IN_IMAGE?: number | undefined; TOP_P_FOR_DETECT_OBJECTS_IN_IMAGE?: number | undefined; TOP_K_FOR_DETECT_OBJECTS_IN_IMAGE?: number | undefined; MAX_TOKENS_FOR_DETECT_OBJECTS_IN_IMAGE?: number | undefined; TEMPERATURE_FOR_ANALYZE_VIDEO?: number | undefined; TOP_P_FOR_ANALYZE_VIDEO?: number | undefined; TOP_K_FOR_ANALYZE_VIDEO?: number | undefined; MAX_TOKENS_FOR_ANALYZE_VIDEO?: number | undefined; MAX_IMAGE_SIZE?: number | undefined; MAX_VIDEO_SIZE?: number | undefined; ALLOWED_IMAGE_FORMATS?: ("png" | "jpg" | "jpeg" | "webp" | "gif" | "bmp" | "tiff")[] | undefined; ALLOWED_VIDEO_FORMATS?: ("mp4" | "mov" | "avi" | "mkv" | "webm" | "flv" | "wmv" | "3gp")[] | undefined; MAX_VIDEO_DURATION?: number | undefined; MAX_IMAGES_FOR_COMPARISON?: number | undefined; GEMINI_FILES_API_THRESHOLD?: number | undefined; VERTEX_AI_FILES_API_THRESHOLD?: number | undefined; YOUTUBE_API_KEY?: string | undefined; LOG_LEVEL?: "info" | "debug" | "warn" | "error" | undefined; NODE_ENV?: "development" | "production" | "test" | undefined; }>; export declare const VideoMetadataSchema: z.ZodObject<{ startOffset: z.ZodOptional>; endOffset: z.ZodOptional>; fps: z.ZodOptional; }, "strip", z.ZodTypeAny, { startOffset?: string | number | undefined; endOffset?: string | number | undefined; fps?: number | undefined; }, { startOffset?: string | number | undefined; endOffset?: string | number | undefined; fps?: number | undefined; }>; export declare const AnalysisOptionsSchema: z.ZodObject<{ temperature: z.ZodOptional; topP: z.ZodOptional; maxTokens: z.ZodOptional; stopSequences: z.ZodOptional>; taskType: z.ZodOptional>; functionName: z.ZodOptional>; videoMetadata: z.ZodOptional>; endOffset: z.ZodOptional>; fps: z.ZodOptional; }, "strip", z.ZodTypeAny, { startOffset?: string | number | undefined; endOffset?: string | number | undefined; fps?: number | undefined; }, { startOffset?: string | number | undefined; endOffset?: string | number | undefined; fps?: number | undefined; }>>; }, "strip", z.ZodTypeAny, { temperature?: number | undefined; topP?: number | undefined; maxTokens?: number | undefined; stopSequences?: string[] | undefined; taskType?: "image" | "video" | undefined; functionName?: FunctionName | undefined; videoMetadata?: { startOffset?: string | number | undefined; endOffset?: string | number | undefined; fps?: number | undefined; } | undefined; }, { temperature?: number | undefined; topP?: number | undefined; maxTokens?: number | undefined; stopSequences?: string[] | undefined; taskType?: "image" | "video" | undefined; functionName?: FunctionName | undefined; videoMetadata?: { startOffset?: string | number | undefined; endOffset?: string | number | undefined; fps?: number | undefined; } | undefined; }>; export declare const AnalyzeImageArgsSchema: z.ZodObject<{ imageSource: z.ZodString; prompt: z.ZodString; options: z.ZodOptional; topP: z.ZodOptional; maxTokens: z.ZodOptional; stopSequences: z.ZodOptional>; taskType: z.ZodOptional>; functionName: z.ZodOptional>; videoMetadata: z.ZodOptional>; endOffset: z.ZodOptional>; fps: z.ZodOptional; }, "strip", z.ZodTypeAny, { startOffset?: string | number | undefined; endOffset?: string | number | undefined; fps?: number | undefined; }, { startOffset?: string | number | undefined; endOffset?: string | number | undefined; fps?: number | undefined; }>>; }, "strip", z.ZodTypeAny, { temperature?: number | undefined; topP?: number | undefined; maxTokens?: number | undefined; stopSequences?: string[] | undefined; taskType?: "image" | "video" | undefined; functionName?: FunctionName | undefined; videoMetadata?: { startOffset?: string | number | undefined; endOffset?: string | number | undefined; fps?: number | undefined; } | undefined; }, { temperature?: number | undefined; topP?: number | undefined; maxTokens?: number | undefined; stopSequences?: string[] | undefined; taskType?: "image" | "video" | undefined; functionName?: FunctionName | undefined; videoMetadata?: { startOffset?: string | number | undefined; endOffset?: string | number | undefined; fps?: number | undefined; } | undefined; }>>; }, "strip", z.ZodTypeAny, { imageSource: string; prompt: string; options?: { temperature?: number | undefined; topP?: number | undefined; maxTokens?: number | undefined; stopSequences?: string[] | undefined; taskType?: "image" | "video" | undefined; functionName?: FunctionName | undefined; videoMetadata?: { startOffset?: string | number | undefined; endOffset?: string | number | undefined; fps?: number | undefined; } | undefined; } | undefined; }, { imageSource: string; prompt: string; options?: { temperature?: number | undefined; topP?: number | undefined; maxTokens?: number | undefined; stopSequences?: string[] | undefined; taskType?: "image" | "video" | undefined; functionName?: FunctionName | undefined; videoMetadata?: { startOffset?: string | number | undefined; endOffset?: string | number | undefined; fps?: number | undefined; } | undefined; } | undefined; }>; export declare const AnalyzeVideoArgsSchema: z.ZodObject<{ videoSource: z.ZodString; prompt: z.ZodString; options: z.ZodOptional; topP: z.ZodOptional; maxTokens: z.ZodOptional; stopSequences: z.ZodOptional>; taskType: z.ZodOptional>; functionName: z.ZodOptional>; videoMetadata: z.ZodOptional>; endOffset: z.ZodOptional>; fps: z.ZodOptional; }, "strip", z.ZodTypeAny, { startOffset?: string | number | undefined; endOffset?: string | number | undefined; fps?: number | undefined; }, { startOffset?: string | number | undefined; endOffset?: string | number | undefined; fps?: number | undefined; }>>; }, "strip", z.ZodTypeAny, { temperature?: number | undefined; topP?: number | undefined; maxTokens?: number | undefined; stopSequences?: string[] | undefined; taskType?: "image" | "video" | undefined; functionName?: FunctionName | undefined; videoMetadata?: { startOffset?: string | number | undefined; endOffset?: string | number | undefined; fps?: number | undefined; } | undefined; }, { temperature?: number | undefined; topP?: number | undefined; maxTokens?: number | undefined; stopSequences?: string[] | undefined; taskType?: "image" | "video" | undefined; functionName?: FunctionName | undefined; videoMetadata?: { startOffset?: string | number | undefined; endOffset?: string | number | undefined; fps?: number | undefined; } | undefined; }>>; }, "strip", z.ZodTypeAny, { prompt: string; videoSource: string; options?: { temperature?: number | undefined; topP?: number | undefined; maxTokens?: number | undefined; stopSequences?: string[] | undefined; taskType?: "image" | "video" | undefined; functionName?: FunctionName | undefined; videoMetadata?: { startOffset?: string | number | undefined; endOffset?: string | number | undefined; fps?: number | undefined; } | undefined; } | undefined; }, { prompt: string; videoSource: string; options?: { temperature?: number | undefined; topP?: number | undefined; maxTokens?: number | undefined; stopSequences?: string[] | undefined; taskType?: "image" | "video" | undefined; functionName?: FunctionName | undefined; videoMetadata?: { startOffset?: string | number | undefined; endOffset?: string | number | undefined; fps?: number | undefined; } | undefined; } | undefined; }>; export declare const FileValidationSchema: z.ZodObject<{ filename: z.ZodString; mimeType: z.ZodString; size: z.ZodNumber; }, "strip", z.ZodTypeAny, { mimeType: string; filename: string; size: number; }, { mimeType: string; filename: string; size: number; }>; export declare const UrlSchema: z.ZodString; export declare const Base64Schema: z.ZodString; export declare const ModelNameSchema: z.ZodString; export declare const ProviderInfoSchema: z.ZodObject<{ name: z.ZodString; type: z.ZodEnum<["image", "video"]>; models: z.ZodObject<{ image: z.ZodString; video: z.ZodString; }, "strip", z.ZodTypeAny, { image: string; video: string; }, { image: string; video: string; }>; credentials: z.ZodRecord; options: z.ZodOptional>; }, "strip", z.ZodTypeAny, { type: "image" | "video"; name: string; models: { image: string; video: string; }; credentials: Record; options?: Record | undefined; }, { type: "image" | "video"; name: string; models: { image: string; video: string; }; credentials: Record; options?: Record | undefined; }>; export declare const HealthStatusSchema: z.ZodObject<{ status: z.ZodEnum<["healthy", "unhealthy", "degraded"]>; message: z.ZodOptional; lastCheck: z.ZodString; responseTime: z.ZodOptional; }, "strip", z.ZodTypeAny, { status: "healthy" | "unhealthy" | "degraded"; lastCheck: string; message?: string | undefined; responseTime?: number | undefined; }, { status: "healthy" | "unhealthy" | "degraded"; lastCheck: string; message?: string | undefined; responseTime?: number | undefined; }>; export declare const UsageMetadataSchema: z.ZodObject<{ promptTokenCount: z.ZodNumber; candidatesTokenCount: z.ZodNumber; totalTokenCount: z.ZodNumber; }, "strip", z.ZodTypeAny, { promptTokenCount: number; candidatesTokenCount: number; totalTokenCount: number; }, { promptTokenCount: number; candidatesTokenCount: number; totalTokenCount: number; }>; export declare const AnalysisResultSchema: z.ZodObject<{ text: z.ZodString; metadata: z.ZodObject<{ model: z.ZodString; provider: z.ZodString; usage: z.ZodOptional>; processingTime: z.ZodOptional; fileType: z.ZodOptional; fileSize: z.ZodOptional; }, "strip", z.ZodTypeAny, { model: string; provider: string; usage?: { promptTokenCount: number; candidatesTokenCount: number; totalTokenCount: number; } | undefined; processingTime?: number | undefined; fileType?: string | undefined; fileSize?: number | undefined; }, { model: string; provider: string; usage?: { promptTokenCount: number; candidatesTokenCount: number; totalTokenCount: number; } | undefined; processingTime?: number | undefined; fileType?: string | undefined; fileSize?: number | undefined; }>; }, "strip", z.ZodTypeAny, { text: string; metadata: { model: string; provider: string; usage?: { promptTokenCount: number; candidatesTokenCount: number; totalTokenCount: number; } | undefined; processingTime?: number | undefined; fileType?: string | undefined; fileSize?: number | undefined; }; }, { text: string; metadata: { model: string; provider: string; usage?: { promptTokenCount: number; candidatesTokenCount: number; totalTokenCount: number; } | undefined; processingTime?: number | undefined; fileType?: string | undefined; fileSize?: number | undefined; }; }>; export declare const FileReferenceSchema: z.ZodUnion<[z.ZodObject<{ type: z.ZodLiteral<"file_uri">; uri: z.ZodString; mimeType: z.ZodString; }, "strip", z.ZodTypeAny, { type: "file_uri"; mimeType: string; uri: string; }, { type: "file_uri"; mimeType: string; uri: string; }>, z.ZodObject<{ type: z.ZodLiteral<"public_url">; url: z.ZodString; mimeType: z.ZodString; }, "strip", z.ZodTypeAny, { type: "public_url"; mimeType: string; url: string; }, { type: "public_url"; mimeType: string; url: string; }>, z.ZodObject<{ type: z.ZodLiteral<"base64">; data: z.ZodString; mimeType: z.ZodString; }, "strip", z.ZodTypeAny, { type: "base64"; data: string; mimeType: string; }, { type: "base64"; data: string; mimeType: string; }>]>; export declare const validateConfig: (config: unknown) => Config; export declare const validateAnalysisOptions: (options: unknown) => AnalysisOptions; export declare const validateAnalyzeImageArgs: (args: unknown) => { imageSource: string; prompt: string; options?: { temperature?: number | undefined; topP?: number | undefined; maxTokens?: number | undefined; stopSequences?: string[] | undefined; taskType?: "image" | "video" | undefined; functionName?: FunctionName | undefined; videoMetadata?: { startOffset?: string | number | undefined; endOffset?: string | number | undefined; fps?: number | undefined; } | undefined; } | undefined; }; export declare const validateAnalyzeVideoArgs: (args: unknown) => { prompt: string; videoSource: string; options?: { temperature?: number | undefined; topP?: number | undefined; maxTokens?: number | undefined; stopSequences?: string[] | undefined; taskType?: "image" | "video" | undefined; functionName?: FunctionName | undefined; videoMetadata?: { startOffset?: string | number | undefined; endOffset?: string | number | undefined; fps?: number | undefined; } | undefined; } | undefined; }; export declare const validateFile: (file: unknown) => { mimeType: string; filename: string; size: number; }; export declare const validateUrl: (url: unknown) => string; export declare const validateBase64: (base64: unknown) => string; export declare const validateModelName: (model: unknown) => string; export declare const validateHealthStatus: (status: unknown) => { status: "healthy" | "unhealthy" | "degraded"; lastCheck: string; message?: string | undefined; responseTime?: number | undefined; }; export declare const validateAnalysisResult: (result: unknown) => { text: string; metadata: { model: string; provider: string; usage?: { promptTokenCount: number; candidatesTokenCount: number; totalTokenCount: number; } | undefined; processingTime?: number | undefined; fileType?: string | undefined; fileSize?: number | undefined; }; }; export declare const validateFileReference: (reference: unknown) => { type: "file_uri"; mimeType: string; uri: string; } | { type: "public_url"; mimeType: string; url: string; } | { type: "base64"; data: string; mimeType: string; }; export declare const isValidUrl: (value: unknown) => value is string; export declare const isValidBase64: (value: unknown) => value is string; export declare const isImageFormat: (mimeType: string) => boolean; export declare const isVideoFormat: (mimeType: string) => boolean; export declare const isSupportedImageFormat: (mimeType: string, supportedFormats: string[]) => boolean; export declare const isSupportedVideoFormat: (mimeType: string, supportedFormats: string[]) => boolean; export declare const formatZodError: (error: z.ZodError) => string; //# sourceMappingURL=validation.d.ts.map