import { z } from 'zod'; import { PromptMetadata, ValidationError } from '../types'; /** * Type-safe prompt schema definition */ export declare class PromptSchema { name: string; schema: T; metadata?: Partial | undefined; constructor(name: string, schema: T, metadata?: Partial | undefined); /** * Validate variables against schema * @throws ZodError if validation fails */ validate(variables: unknown): z.infer; /** * Safe validation that returns errors instead of throwing */ safeParse(variables: unknown): { success: boolean; data?: z.infer; errors?: ValidationError[]; }; /** * Get TypeScript type from schema */ getType(): z.infer; /** * Get full metadata */ getMetadata(): PromptMetadata; } /** * Helper to create prompt schemas with type inference */ export declare function definePrompt(name: string, schema: T, metadata?: Partial): PromptSchema; /** * Common schema builders for reuse */ export declare const PromptSchemas: { /** * Simple chat message schema */ message: z.ZodObject<{ role: z.ZodEnum<{ system: "system"; user: "user"; assistant: "assistant"; }>; content: z.ZodString; name: z.ZodOptional; }, z.core.$strip>; /** * Chat conversation schema */ chat: z.ZodObject<{ systemPrompt: z.ZodString; messages: z.ZodArray; content: z.ZodString; }, z.core.$strip>>; }, z.core.$strip>; /** * Chat with context schema */ chatWithContext: z.ZodObject<{ systemPrompt: z.ZodString; context: z.ZodOptional; userName: z.ZodOptional; messages: z.ZodArray; content: z.ZodString; }, z.core.$strip>>; }, z.core.$strip>; }; //# sourceMappingURL=schema.d.ts.map