import { z } from 'zod'; import type { CompletionRequest } from '../types/messages.js'; import type { SecurityFinding } from '../types/security.js'; export declare const completionRequestSchema: z.ZodObject<{ model: z.ZodString; messages: z.ZodArray; content: z.ZodUnion<[z.ZodString, z.ZodArray; text: z.ZodString; }, "strip", z.ZodTypeAny, { text: string; type: "text"; }, { text: string; type: "text"; }>, z.ZodObject<{ type: z.ZodLiteral<"image">; source: z.ZodRecord; }, "strip", z.ZodTypeAny, { source: Record; type: "image"; }, { source: Record; type: "image"; }>, z.ZodObject<{ type: z.ZodLiteral<"audio">; source: z.ZodRecord; }, "strip", z.ZodTypeAny, { source: Record; type: "audio"; }, { source: Record; type: "audio"; }>, z.ZodObject<{ type: z.ZodLiteral<"video">; source: z.ZodRecord; }, "strip", z.ZodTypeAny, { source: Record; type: "video"; }, { source: Record; type: "video"; }>]>, "many">]>; name: z.ZodOptional; toolCallId: z.ZodOptional; toolCalls: z.ZodOptional; function: z.ZodObject<{ name: z.ZodString; arguments: z.ZodString; }, "strip", z.ZodTypeAny, { name: string; arguments: string; }, { name: string; arguments: string; }>; }, "strip", z.ZodTypeAny, { function: { name: string; arguments: string; }; id: string; type: "function"; }, { function: { name: string; arguments: string; }; id: string; type: "function"; }>, "many">>; }, "strip", z.ZodTypeAny, { content: string | ({ text: string; type: "text"; } | { source: Record; type: "image"; } | { source: Record; type: "audio"; } | { source: Record; type: "video"; })[]; role: "system" | "user" | "assistant" | "tool"; name?: string | undefined; toolCalls?: { function: { name: string; arguments: string; }; id: string; type: "function"; }[] | undefined; toolCallId?: string | undefined; }, { content: string | ({ text: string; type: "text"; } | { source: Record; type: "image"; } | { source: Record; type: "audio"; } | { source: Record; type: "video"; })[]; role: "system" | "user" | "assistant" | "tool"; name?: string | undefined; toolCalls?: { function: { name: string; arguments: string; }; id: string; type: "function"; }[] | undefined; toolCallId?: string | undefined; }>, "many">; tools: z.ZodOptional; execute: z.ZodOptional, z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { name: string; description: string; parameters: Record; execute?: ((...args: unknown[]) => unknown) | undefined; }, { name: string; description: string; parameters: Record; execute?: ((...args: unknown[]) => unknown) | undefined; }>, "many">>; temperature: z.ZodOptional; maxTokens: z.ZodOptional; topP: z.ZodOptional; stop: z.ZodOptional]>>; stream: z.ZodOptional; userId: z.ZodOptional; metadata: z.ZodOptional>; }, "strip", z.ZodTypeAny, { messages: { content: string | ({ text: string; type: "text"; } | { source: Record; type: "image"; } | { source: Record; type: "audio"; } | { source: Record; type: "video"; })[]; role: "system" | "user" | "assistant" | "tool"; name?: string | undefined; toolCalls?: { function: { name: string; arguments: string; }; id: string; type: "function"; }[] | undefined; toolCallId?: string | undefined; }[]; model: string; maxTokens?: number | undefined; metadata?: Record | undefined; temperature?: number | undefined; stop?: string | string[] | undefined; userId?: string | undefined; tools?: { name: string; description: string; parameters: Record; execute?: ((...args: unknown[]) => unknown) | undefined; }[] | undefined; topP?: number | undefined; stream?: boolean | undefined; }, { messages: { content: string | ({ text: string; type: "text"; } | { source: Record; type: "image"; } | { source: Record; type: "audio"; } | { source: Record; type: "video"; })[]; role: "system" | "user" | "assistant" | "tool"; name?: string | undefined; toolCalls?: { function: { name: string; arguments: string; }; id: string; type: "function"; }[] | undefined; toolCallId?: string | undefined; }[]; model: string; maxTokens?: number | undefined; metadata?: Record | undefined; temperature?: number | undefined; stop?: string | string[] | undefined; userId?: string | undefined; tools?: { name: string; description: string; parameters: Record; execute?: ((...args: unknown[]) => unknown) | undefined; }[] | undefined; topP?: number | undefined; stream?: boolean | undefined; }>; /** Validates a request's shape before it is sent. */ export declare class SchemaValidator { /** Findings for every field that does not match the request schema. */ validate(request: CompletionRequest): SecurityFinding[]; }