import { z } from 'zod'; export declare const updateLearningPathSchema: z.ZodObject<{ title: z.ZodOptional; description: z.ZodOptional>; difficulty: z.ZodOptional>>; estimatedHours: z.ZodOptional>; coverImageUrl: z.ZodOptional, z.ZodOptional>>; status: z.ZodOptional>; }, z.core.$strip>; export declare const createModuleSchema: z.ZodObject<{ pathId: z.ZodString; title: z.ZodString; description: z.ZodOptional; sortOrder: z.ZodOptional; }, z.core.$strip>; export declare const updateModuleSchema: z.ZodObject<{ title: z.ZodOptional; description: z.ZodOptional>; sortOrder: z.ZodOptional>; }, z.core.$strip>; export declare const updateLessonSchema: z.ZodObject<{ title: z.ZodOptional; type: z.ZodOptional>; content: z.ZodOptional>; contentItemId: z.ZodOptional>; duration: z.ZodOptional>; }, z.core.$strip>; export declare const lessonContentSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ type: z.ZodLiteral<"article">; blocks: z.ZodArray], null>>; }, z.core.$strip>, z.ZodObject<{ type: z.ZodLiteral<"video">; url: z.ZodString; platform: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ type: z.ZodLiteral<"quiz">; questions: z.ZodArray>; correctOptionId: z.ZodString; explanation: z.ZodOptional; }, z.core.$strip>>; passingScore: z.ZodNumber; }, z.core.$strip>, z.ZodObject<{ type: z.ZodLiteral<"project">; slug: z.ZodString; }, z.core.$strip>, z.ZodObject<{ type: z.ZodLiteral<"explainer">; slug: z.ZodString; }, z.core.$strip>], "type">; /** * Body accepted by `POST /api/learn/:slug/:lessonSlug/complete`. * * For quiz lessons, clients send the chosen optionId per questionId and the * server grades against the answer key. For non-quiz lessons the answers map * is ignored (accept empty body). * * NEVER accept client-supplied `quizScore`/`quizPassed` — that's the whole * point of server-side grading. This schema intentionally strips them. */ export declare const completeLessonSchema: z.ZodObject<{ answers: z.ZodOptional>; }, z.core.$strict>; //# sourceMappingURL=validators.d.ts.map