import { z } from 'zod'; export declare const PaperSheetHookSectionSchema: z.ZodObject<{ type: z.ZodLiteral<"hook">; text: z.ZodString; }, z.core.$strip>; export type PaperSheetHookSection = z.infer; export declare const PaperSheetInfoBoxSchema: z.ZodObject<{ icon: z.ZodString; title: z.ZodString; text: z.ZodString; }, z.core.$strip>; export type PaperSheetInfoBox = z.infer; export declare const PaperSheetBlankSchema: z.ZodObject<{ placeholder: z.ZodOptional; minWidth: z.ZodOptional; }, z.core.$strip>; export type PaperSheetBlank = z.infer; export declare const PaperSheetFillQuestionSchema: z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"fill">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; blanks: z.ZodUnion; minWidth: z.ZodOptional; }, z.core.$strip>], null>, z.ZodTuple<[z.ZodObject<{ placeholder: z.ZodOptional; minWidth: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ placeholder: z.ZodOptional; minWidth: z.ZodOptional; }, z.core.$strip>], null>]>; after: z.ZodString; conjunction: z.ZodOptional; }, z.core.$strip>; export type PaperSheetFillQuestion = z.infer; export declare const PaperSheetMcqDisplayModeSchema: z.ZodEnum<{ full_options: "full_options"; labels_only: "labels_only"; }>; export type PaperSheetMcqDisplayMode = z.infer; export declare const PaperSheetMcqOptionSchema: z.ZodObject<{ id: z.ZodString; label: z.ZodOptional; text: z.ZodString; }, z.core.$strip>; export type PaperSheetMcqOption = z.infer; export declare const PaperSheetMcqQuestionSchema: z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"mcq">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; displayMode: z.ZodEnum<{ full_options: "full_options"; labels_only: "labels_only"; }>; options: z.ZodArray; text: z.ZodString; }, z.core.$strip>>; }, z.core.$strip>; export type PaperSheetMcqQuestion = z.infer; export declare const PaperSheetLinesQuestionSchema: z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"lines">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; lines: z.ZodNumber; renderMode: z.ZodOptional>; }, z.core.$strip>; export type PaperSheetLinesQuestion = z.infer; export declare const PaperSheetCalcQuestionSchema: z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"calc">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; hint: z.ZodOptional; inputLabel: z.ZodString; unit: z.ZodString; }, z.core.$strip>; export type PaperSheetCalcQuestion = z.infer; export declare const PaperSheetMatchQuestionSchema: z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"match">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; pairs: z.ZodArray>; }, z.core.$strip>; export type PaperSheetMatchQuestion = z.infer; export declare const PaperSheetSpellingQuestionSchema: z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"spelling">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; words: z.ZodArray>; }, z.core.$strip>; export type PaperSheetSpellingQuestion = z.infer; export declare const PaperSheetClozeQuestionSchema: z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"cloze">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; segments: z.ZodArray; blanks: z.ZodArray; minWidth: z.ZodOptional; }, z.core.$strip>>; wordBank: z.ZodOptional>; }, z.core.$strip>; export type PaperSheetClozeQuestion = z.infer; export declare const PaperSheetAnswerBankOptionSchema: z.ZodObject<{ id: z.ZodString; label: z.ZodOptional; text: z.ZodString; }, z.core.$strip>; export type PaperSheetAnswerBankOption = z.infer; export declare const PaperSheetAnswerBankQuestionSchema: z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"answer_bank">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; displayMode: z.ZodEnum<{ inline_labeled: "inline_labeled"; banked: "banked"; }>; segments: z.ZodArray; blanks: z.ZodArray; minWidth: z.ZodOptional; }, z.core.$strip>>; options: z.ZodArray; text: z.ZodString; }, z.core.$strip>>; allowReuse: z.ZodOptional; }, z.core.$strip>; export type PaperSheetAnswerBankQuestion = z.infer; export declare const PaperSheetFlowBoxSchema: z.ZodObject<{ id: z.ZodString; placeholder: z.ZodOptional; minWidth: z.ZodOptional; initialValue: z.ZodOptional; readonly: z.ZodOptional; }, z.core.$strip>; export type PaperSheetFlowBox = z.infer; export declare const PaperSheetFlowRowItemSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ type: z.ZodLiteral<"box">; boxId: z.ZodString; }, z.core.$strip>, z.ZodObject<{ type: z.ZodLiteral<"operation">; label: z.ZodString; }, z.core.$strip>], "type">; export type PaperSheetFlowRowItem = z.infer; export declare const PaperSheetFlowRowSchema: z.ZodObject<{ direction: z.ZodEnum<{ ltr: "ltr"; rtl: "rtl"; }>; items: z.ZodArray; boxId: z.ZodString; }, z.core.$strip>, z.ZodObject<{ type: z.ZodLiteral<"operation">; label: z.ZodString; }, z.core.$strip>], "type">>; }, z.core.$strip>; export type PaperSheetFlowRow = z.infer; export declare const PaperSheetFlowConnectorSchema: z.ZodObject<{ fromBoxId: z.ZodString; toBoxId: z.ZodString; label: z.ZodString; direction: z.ZodEnum<{ down: "down"; up: "up"; }>; }, z.core.$strip>; export type PaperSheetFlowConnector = z.infer; export declare const PaperSheetFlowQuestionSchema: z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"flow">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; boxes: z.ZodArray; minWidth: z.ZodOptional; initialValue: z.ZodOptional; readonly: z.ZodOptional; }, z.core.$strip>>; rows: z.ZodArray; items: z.ZodArray; boxId: z.ZodString; }, z.core.$strip>, z.ZodObject<{ type: z.ZodLiteral<"operation">; label: z.ZodString; }, z.core.$strip>], "type">>; }, z.core.$strip>>; connectors: z.ZodOptional; }, z.core.$strip>>>; }, z.core.$strip>; export type PaperSheetFlowQuestion = z.infer; export declare const PaperSheetQuestionSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"fill">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; blanks: z.ZodUnion; minWidth: z.ZodOptional; }, z.core.$strip>], null>, z.ZodTuple<[z.ZodObject<{ placeholder: z.ZodOptional; minWidth: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ placeholder: z.ZodOptional; minWidth: z.ZodOptional; }, z.core.$strip>], null>]>; after: z.ZodString; conjunction: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"mcq">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; displayMode: z.ZodEnum<{ full_options: "full_options"; labels_only: "labels_only"; }>; options: z.ZodArray; text: z.ZodString; }, z.core.$strip>>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"lines">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; lines: z.ZodNumber; renderMode: z.ZodOptional>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"calc">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; hint: z.ZodOptional; inputLabel: z.ZodString; unit: z.ZodString; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"match">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; pairs: z.ZodArray>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"spelling">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; words: z.ZodArray>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"cloze">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; segments: z.ZodArray; blanks: z.ZodArray; minWidth: z.ZodOptional; }, z.core.$strip>>; wordBank: z.ZodOptional>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"answer_bank">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; displayMode: z.ZodEnum<{ inline_labeled: "inline_labeled"; banked: "banked"; }>; segments: z.ZodArray; blanks: z.ZodArray; minWidth: z.ZodOptional; }, z.core.$strip>>; options: z.ZodArray; text: z.ZodString; }, z.core.$strip>>; allowReuse: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"flow">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; boxes: z.ZodArray; minWidth: z.ZodOptional; initialValue: z.ZodOptional; readonly: z.ZodOptional; }, z.core.$strip>>; rows: z.ZodArray; items: z.ZodArray; boxId: z.ZodString; }, z.core.$strip>, z.ZodObject<{ type: z.ZodLiteral<"operation">; label: z.ZodString; }, z.core.$strip>], "type">>; }, z.core.$strip>>; connectors: z.ZodOptional; }, z.core.$strip>>>; }, z.core.$strip>], "type">; export type PaperSheetQuestion = z.infer; export declare const PaperSheetQuestionGroupSchema: z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"group">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; prompt: z.ZodString; questions: z.ZodArray; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; blanks: z.ZodUnion; minWidth: z.ZodOptional; }, z.core.$strip>], null>, z.ZodTuple<[z.ZodObject<{ placeholder: z.ZodOptional; minWidth: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ placeholder: z.ZodOptional; minWidth: z.ZodOptional; }, z.core.$strip>], null>]>; after: z.ZodString; conjunction: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"mcq">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; displayMode: z.ZodEnum<{ full_options: "full_options"; labels_only: "labels_only"; }>; options: z.ZodArray; text: z.ZodString; }, z.core.$strip>>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"lines">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; lines: z.ZodNumber; renderMode: z.ZodOptional>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"calc">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; hint: z.ZodOptional; inputLabel: z.ZodString; unit: z.ZodString; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"match">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; pairs: z.ZodArray>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"spelling">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; words: z.ZodArray>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"cloze">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; segments: z.ZodArray; blanks: z.ZodArray; minWidth: z.ZodOptional; }, z.core.$strip>>; wordBank: z.ZodOptional>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"answer_bank">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; displayMode: z.ZodEnum<{ inline_labeled: "inline_labeled"; banked: "banked"; }>; segments: z.ZodArray; blanks: z.ZodArray; minWidth: z.ZodOptional; }, z.core.$strip>>; options: z.ZodArray; text: z.ZodString; }, z.core.$strip>>; allowReuse: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"flow">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; boxes: z.ZodArray; minWidth: z.ZodOptional; initialValue: z.ZodOptional; readonly: z.ZodOptional; }, z.core.$strip>>; rows: z.ZodArray; items: z.ZodArray; boxId: z.ZodString; }, z.core.$strip>, z.ZodObject<{ type: z.ZodLiteral<"operation">; label: z.ZodString; }, z.core.$strip>], "type">>; }, z.core.$strip>>; connectors: z.ZodOptional; }, z.core.$strip>>>; }, z.core.$strip>], "type">>; }, z.core.$strip>; export type PaperSheetQuestionGroup = z.infer; export declare const PaperSheetQuestionEntrySchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"group">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; prompt: z.ZodString; questions: z.ZodArray; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; blanks: z.ZodUnion; minWidth: z.ZodOptional; }, z.core.$strip>], null>, z.ZodTuple<[z.ZodObject<{ placeholder: z.ZodOptional; minWidth: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ placeholder: z.ZodOptional; minWidth: z.ZodOptional; }, z.core.$strip>], null>]>; after: z.ZodString; conjunction: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"mcq">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; displayMode: z.ZodEnum<{ full_options: "full_options"; labels_only: "labels_only"; }>; options: z.ZodArray; text: z.ZodString; }, z.core.$strip>>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"lines">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; lines: z.ZodNumber; renderMode: z.ZodOptional>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"calc">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; hint: z.ZodOptional; inputLabel: z.ZodString; unit: z.ZodString; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"match">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; pairs: z.ZodArray>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"spelling">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; words: z.ZodArray>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"cloze">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; segments: z.ZodArray; blanks: z.ZodArray; minWidth: z.ZodOptional; }, z.core.$strip>>; wordBank: z.ZodOptional>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"answer_bank">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; displayMode: z.ZodEnum<{ inline_labeled: "inline_labeled"; banked: "banked"; }>; segments: z.ZodArray; blanks: z.ZodArray; minWidth: z.ZodOptional; }, z.core.$strip>>; options: z.ZodArray; text: z.ZodString; }, z.core.$strip>>; allowReuse: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"flow">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; boxes: z.ZodArray; minWidth: z.ZodOptional; initialValue: z.ZodOptional; readonly: z.ZodOptional; }, z.core.$strip>>; rows: z.ZodArray; items: z.ZodArray; boxId: z.ZodString; }, z.core.$strip>, z.ZodObject<{ type: z.ZodLiteral<"operation">; label: z.ZodString; }, z.core.$strip>], "type">>; }, z.core.$strip>>; connectors: z.ZodOptional; }, z.core.$strip>>>; }, z.core.$strip>], "type">>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"fill">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; blanks: z.ZodUnion; minWidth: z.ZodOptional; }, z.core.$strip>], null>, z.ZodTuple<[z.ZodObject<{ placeholder: z.ZodOptional; minWidth: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ placeholder: z.ZodOptional; minWidth: z.ZodOptional; }, z.core.$strip>], null>]>; after: z.ZodString; conjunction: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"mcq">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; displayMode: z.ZodEnum<{ full_options: "full_options"; labels_only: "labels_only"; }>; options: z.ZodArray; text: z.ZodString; }, z.core.$strip>>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"lines">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; lines: z.ZodNumber; renderMode: z.ZodOptional>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"calc">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; hint: z.ZodOptional; inputLabel: z.ZodString; unit: z.ZodString; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"match">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; pairs: z.ZodArray>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"spelling">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; words: z.ZodArray>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"cloze">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; segments: z.ZodArray; blanks: z.ZodArray; minWidth: z.ZodOptional; }, z.core.$strip>>; wordBank: z.ZodOptional>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"answer_bank">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; displayMode: z.ZodEnum<{ inline_labeled: "inline_labeled"; banked: "banked"; }>; segments: z.ZodArray; blanks: z.ZodArray; minWidth: z.ZodOptional; }, z.core.$strip>>; options: z.ZodArray; text: z.ZodString; }, z.core.$strip>>; allowReuse: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"flow">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; boxes: z.ZodArray; minWidth: z.ZodOptional; initialValue: z.ZodOptional; readonly: z.ZodOptional; }, z.core.$strip>>; rows: z.ZodArray; items: z.ZodArray; boxId: z.ZodString; }, z.core.$strip>, z.ZodObject<{ type: z.ZodLiteral<"operation">; label: z.ZodString; }, z.core.$strip>], "type">>; }, z.core.$strip>>; connectors: z.ZodOptional; }, z.core.$strip>>>; }, z.core.$strip>], "type">; export type PaperSheetQuestionEntry = z.infer; export declare const PaperSheetContentSectionSchema: z.ZodObject<{ id: z.ZodString; label: z.ZodString; theory: z.ZodOptional; infoBox: z.ZodOptional>; questions: z.ZodOptional; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; prompt: z.ZodString; questions: z.ZodArray; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; blanks: z.ZodUnion; minWidth: z.ZodOptional; }, z.core.$strip>], null>, z.ZodTuple<[z.ZodObject<{ placeholder: z.ZodOptional; minWidth: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ placeholder: z.ZodOptional; minWidth: z.ZodOptional; }, z.core.$strip>], null>]>; after: z.ZodString; conjunction: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"mcq">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; displayMode: z.ZodEnum<{ full_options: "full_options"; labels_only: "labels_only"; }>; options: z.ZodArray; text: z.ZodString; }, z.core.$strip>>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"lines">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; lines: z.ZodNumber; renderMode: z.ZodOptional>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"calc">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; hint: z.ZodOptional; inputLabel: z.ZodString; unit: z.ZodString; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"match">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; pairs: z.ZodArray>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"spelling">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; words: z.ZodArray>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"cloze">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; segments: z.ZodArray; blanks: z.ZodArray; minWidth: z.ZodOptional; }, z.core.$strip>>; wordBank: z.ZodOptional>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"answer_bank">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; displayMode: z.ZodEnum<{ inline_labeled: "inline_labeled"; banked: "banked"; }>; segments: z.ZodArray; blanks: z.ZodArray; minWidth: z.ZodOptional; }, z.core.$strip>>; options: z.ZodArray; text: z.ZodString; }, z.core.$strip>>; allowReuse: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"flow">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; boxes: z.ZodArray; minWidth: z.ZodOptional; initialValue: z.ZodOptional; readonly: z.ZodOptional; }, z.core.$strip>>; rows: z.ZodArray; items: z.ZodArray; boxId: z.ZodString; }, z.core.$strip>, z.ZodObject<{ type: z.ZodLiteral<"operation">; label: z.ZodString; }, z.core.$strip>], "type">>; }, z.core.$strip>>; connectors: z.ZodOptional; }, z.core.$strip>>>; }, z.core.$strip>], "type">>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"fill">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; blanks: z.ZodUnion; minWidth: z.ZodOptional; }, z.core.$strip>], null>, z.ZodTuple<[z.ZodObject<{ placeholder: z.ZodOptional; minWidth: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ placeholder: z.ZodOptional; minWidth: z.ZodOptional; }, z.core.$strip>], null>]>; after: z.ZodString; conjunction: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"mcq">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; displayMode: z.ZodEnum<{ full_options: "full_options"; labels_only: "labels_only"; }>; options: z.ZodArray; text: z.ZodString; }, z.core.$strip>>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"lines">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; lines: z.ZodNumber; renderMode: z.ZodOptional>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"calc">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; hint: z.ZodOptional; inputLabel: z.ZodString; unit: z.ZodString; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"match">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; pairs: z.ZodArray>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"spelling">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; words: z.ZodArray>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"cloze">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; segments: z.ZodArray; blanks: z.ZodArray; minWidth: z.ZodOptional; }, z.core.$strip>>; wordBank: z.ZodOptional>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"answer_bank">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; displayMode: z.ZodEnum<{ inline_labeled: "inline_labeled"; banked: "banked"; }>; segments: z.ZodArray; blanks: z.ZodArray; minWidth: z.ZodOptional; }, z.core.$strip>>; options: z.ZodArray; text: z.ZodString; }, z.core.$strip>>; allowReuse: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"flow">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; boxes: z.ZodArray; minWidth: z.ZodOptional; initialValue: z.ZodOptional; readonly: z.ZodOptional; }, z.core.$strip>>; rows: z.ZodArray; items: z.ZodArray; boxId: z.ZodString; }, z.core.$strip>, z.ZodObject<{ type: z.ZodLiteral<"operation">; label: z.ZodString; }, z.core.$strip>], "type">>; }, z.core.$strip>>; connectors: z.ZodOptional; }, z.core.$strip>>>; }, z.core.$strip>], "type">>>; }, z.core.$strip>; export type PaperSheetContentSection = z.infer; export declare const PaperSheetSectionSchema: z.ZodUnion; text: z.ZodString; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; label: z.ZodString; theory: z.ZodOptional; infoBox: z.ZodOptional>; questions: z.ZodOptional; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; prompt: z.ZodString; questions: z.ZodArray; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; blanks: z.ZodUnion; minWidth: z.ZodOptional; }, z.core.$strip>], null>, z.ZodTuple<[z.ZodObject<{ placeholder: z.ZodOptional; minWidth: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ placeholder: z.ZodOptional; minWidth: z.ZodOptional; }, z.core.$strip>], null>]>; after: z.ZodString; conjunction: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"mcq">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; displayMode: z.ZodEnum<{ full_options: "full_options"; labels_only: "labels_only"; }>; options: z.ZodArray; text: z.ZodString; }, z.core.$strip>>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"lines">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; lines: z.ZodNumber; renderMode: z.ZodOptional>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"calc">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; hint: z.ZodOptional; inputLabel: z.ZodString; unit: z.ZodString; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"match">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; pairs: z.ZodArray>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"spelling">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; words: z.ZodArray>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"cloze">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; segments: z.ZodArray; blanks: z.ZodArray; minWidth: z.ZodOptional; }, z.core.$strip>>; wordBank: z.ZodOptional>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"answer_bank">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; displayMode: z.ZodEnum<{ inline_labeled: "inline_labeled"; banked: "banked"; }>; segments: z.ZodArray; blanks: z.ZodArray; minWidth: z.ZodOptional; }, z.core.$strip>>; options: z.ZodArray; text: z.ZodString; }, z.core.$strip>>; allowReuse: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"flow">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; boxes: z.ZodArray; minWidth: z.ZodOptional; initialValue: z.ZodOptional; readonly: z.ZodOptional; }, z.core.$strip>>; rows: z.ZodArray; items: z.ZodArray; boxId: z.ZodString; }, z.core.$strip>, z.ZodObject<{ type: z.ZodLiteral<"operation">; label: z.ZodString; }, z.core.$strip>], "type">>; }, z.core.$strip>>; connectors: z.ZodOptional; }, z.core.$strip>>>; }, z.core.$strip>], "type">>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"fill">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; blanks: z.ZodUnion; minWidth: z.ZodOptional; }, z.core.$strip>], null>, z.ZodTuple<[z.ZodObject<{ placeholder: z.ZodOptional; minWidth: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ placeholder: z.ZodOptional; minWidth: z.ZodOptional; }, z.core.$strip>], null>]>; after: z.ZodString; conjunction: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"mcq">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; displayMode: z.ZodEnum<{ full_options: "full_options"; labels_only: "labels_only"; }>; options: z.ZodArray; text: z.ZodString; }, z.core.$strip>>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"lines">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; lines: z.ZodNumber; renderMode: z.ZodOptional>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"calc">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; hint: z.ZodOptional; inputLabel: z.ZodString; unit: z.ZodString; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"match">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; pairs: z.ZodArray>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"spelling">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; words: z.ZodArray>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"cloze">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; segments: z.ZodArray; blanks: z.ZodArray; minWidth: z.ZodOptional; }, z.core.$strip>>; wordBank: z.ZodOptional>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"answer_bank">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; displayMode: z.ZodEnum<{ inline_labeled: "inline_labeled"; banked: "banked"; }>; segments: z.ZodArray; blanks: z.ZodArray; minWidth: z.ZodOptional; }, z.core.$strip>>; options: z.ZodArray; text: z.ZodString; }, z.core.$strip>>; allowReuse: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"flow">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; boxes: z.ZodArray; minWidth: z.ZodOptional; initialValue: z.ZodOptional; readonly: z.ZodOptional; }, z.core.$strip>>; rows: z.ZodArray; items: z.ZodArray; boxId: z.ZodString; }, z.core.$strip>, z.ZodObject<{ type: z.ZodLiteral<"operation">; label: z.ZodString; }, z.core.$strip>], "type">>; }, z.core.$strip>>; connectors: z.ZodOptional; }, z.core.$strip>>>; }, z.core.$strip>], "type">>>; }, z.core.$strip>]>; export type PaperSheetSection = z.infer; export declare const PaperSheetDataSchema: z.ZodObject<{ id: z.ZodString; subject: z.ZodString; level: z.ZodString; title: z.ZodString; subtitle: z.ZodString; color: z.ZodString; accent: z.ZodString; light: z.ZodString; border: z.ZodString; sections: z.ZodArray; text: z.ZodString; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; label: z.ZodString; theory: z.ZodOptional; infoBox: z.ZodOptional>; questions: z.ZodOptional; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; prompt: z.ZodString; questions: z.ZodArray; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; blanks: z.ZodUnion; minWidth: z.ZodOptional; }, z.core.$strip>], null>, z.ZodTuple<[z.ZodObject<{ placeholder: z.ZodOptional; minWidth: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ placeholder: z.ZodOptional; minWidth: z.ZodOptional; }, z.core.$strip>], null>]>; after: z.ZodString; conjunction: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"mcq">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; displayMode: z.ZodEnum<{ full_options: "full_options"; labels_only: "labels_only"; }>; options: z.ZodArray; text: z.ZodString; }, z.core.$strip>>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"lines">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; lines: z.ZodNumber; renderMode: z.ZodOptional>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"calc">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; hint: z.ZodOptional; inputLabel: z.ZodString; unit: z.ZodString; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"match">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; pairs: z.ZodArray>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"spelling">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; words: z.ZodArray>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"cloze">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; segments: z.ZodArray; blanks: z.ZodArray; minWidth: z.ZodOptional; }, z.core.$strip>>; wordBank: z.ZodOptional>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"answer_bank">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; displayMode: z.ZodEnum<{ inline_labeled: "inline_labeled"; banked: "banked"; }>; segments: z.ZodArray; blanks: z.ZodArray; minWidth: z.ZodOptional; }, z.core.$strip>>; options: z.ZodArray; text: z.ZodString; }, z.core.$strip>>; allowReuse: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"flow">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; boxes: z.ZodArray; minWidth: z.ZodOptional; initialValue: z.ZodOptional; readonly: z.ZodOptional; }, z.core.$strip>>; rows: z.ZodArray; items: z.ZodArray; boxId: z.ZodString; }, z.core.$strip>, z.ZodObject<{ type: z.ZodLiteral<"operation">; label: z.ZodString; }, z.core.$strip>], "type">>; }, z.core.$strip>>; connectors: z.ZodOptional; }, z.core.$strip>>>; }, z.core.$strip>], "type">>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"fill">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; blanks: z.ZodUnion; minWidth: z.ZodOptional; }, z.core.$strip>], null>, z.ZodTuple<[z.ZodObject<{ placeholder: z.ZodOptional; minWidth: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ placeholder: z.ZodOptional; minWidth: z.ZodOptional; }, z.core.$strip>], null>]>; after: z.ZodString; conjunction: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"mcq">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; displayMode: z.ZodEnum<{ full_options: "full_options"; labels_only: "labels_only"; }>; options: z.ZodArray; text: z.ZodString; }, z.core.$strip>>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"lines">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; lines: z.ZodNumber; renderMode: z.ZodOptional>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"calc">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; hint: z.ZodOptional; inputLabel: z.ZodString; unit: z.ZodString; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"match">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; pairs: z.ZodArray>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"spelling">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; words: z.ZodArray>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"cloze">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; segments: z.ZodArray; blanks: z.ZodArray; minWidth: z.ZodOptional; }, z.core.$strip>>; wordBank: z.ZodOptional>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"answer_bank">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; displayMode: z.ZodEnum<{ inline_labeled: "inline_labeled"; banked: "banked"; }>; segments: z.ZodArray; blanks: z.ZodArray; minWidth: z.ZodOptional; }, z.core.$strip>>; options: z.ZodArray; text: z.ZodString; }, z.core.$strip>>; allowReuse: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"flow">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; boxes: z.ZodArray; minWidth: z.ZodOptional; initialValue: z.ZodOptional; readonly: z.ZodOptional; }, z.core.$strip>>; rows: z.ZodArray; items: z.ZodArray; boxId: z.ZodString; }, z.core.$strip>, z.ZodObject<{ type: z.ZodLiteral<"operation">; label: z.ZodString; }, z.core.$strip>], "type">>; }, z.core.$strip>>; connectors: z.ZodOptional; }, z.core.$strip>>>; }, z.core.$strip>], "type">>>; }, z.core.$strip>]>>; }, z.core.$strip>; export type PaperSheetData = z.infer; export declare const PaperSheetAnswersSchema: z.ZodRecord]>>; export type PaperSheetAnswers = z.infer; export declare const PaperSheetScoreSchema: z.ZodObject<{ got: z.ZodNumber; total: z.ZodNumber; }, z.core.$strip>; export type PaperSheetScore = z.infer; export declare const PaperSheetQuestionReviewStatusSchema: z.ZodEnum<{ correct: "correct"; incorrect: "incorrect"; "teacher-review": "teacher-review"; }>; export type PaperSheetQuestionReviewStatus = z.infer; export declare const PaperSheetQuestionReviewSchema: z.ZodObject<{ status: z.ZodEnum<{ correct: "correct"; incorrect: "incorrect"; "teacher-review": "teacher-review"; }>; label: z.ZodOptional; statusLabel: z.ZodOptional; note: z.ZodString; score: z.ZodOptional>; replyPlaceholder: z.ZodOptional; followUp: z.ZodOptional; }, z.core.$strip>; export type PaperSheetQuestionReview = z.infer; export declare const PaperSheetReviewSchema: z.ZodObject<{ score: z.ZodObject<{ got: z.ZodNumber; total: z.ZodNumber; }, z.core.$strip>; objectiveQuestionCount: z.ZodOptional; teacherReviewMarks: z.ZodOptional; teacherReviewQuestionCount: z.ZodOptional; label: z.ZodString; message: z.ZodString; note: z.ZodString; questions: z.ZodRecord; label: z.ZodOptional; statusLabel: z.ZodOptional; note: z.ZodString; score: z.ZodOptional>; replyPlaceholder: z.ZodOptional; followUp: z.ZodOptional; }, z.core.$strip>>; }, z.core.$strip>; export type PaperSheetReview = z.infer; export declare const PaperSheetFeedbackAttachmentSchema: z.ZodObject<{ id: z.ZodString; filename: z.ZodString; contentType: z.ZodString; sizeBytes: z.ZodNumber; filePath: z.ZodOptional; url: z.ZodOptional; }, z.core.$strip>; export type PaperSheetFeedbackAttachment = z.infer; export declare const PaperSheetFeedbackTurnSchema: z.ZodObject<{ id: z.ZodString; speaker: z.ZodEnum<{ student: "student"; tutor: "tutor"; }>; text: z.ZodString; attachments: z.ZodOptional; url: z.ZodOptional; }, z.core.$strip>>>; }, z.core.$strip>; export type PaperSheetFeedbackTurn = z.infer; export declare const PaperSheetFeedbackThreadSchema: z.ZodObject<{ status: z.ZodEnum<{ open: "open"; responding: "responding"; resolved: "resolved"; }>; turns: z.ZodArray; text: z.ZodString; attachments: z.ZodOptional; url: z.ZodOptional; }, z.core.$strip>>>; }, z.core.$strip>>; }, z.core.$strip>; export type PaperSheetFeedbackThread = z.infer; export declare const SparkGraderWorksheetReferencesSchema: z.ZodObject<{ problemMarkdown: z.ZodOptional; officialProblemMarkdown: z.ZodOptional; officialSolutionMarkdown: z.ZodOptional; studentTranscriptMarkdown: z.ZodOptional; gradingMarkdown: z.ZodOptional; overallFeedbackMarkdown: z.ZodOptional; paperUrl: z.ZodOptional; markSchemeUrl: z.ZodOptional; }, z.core.$strip>; export type SparkGraderWorksheetReferences = z.infer; export declare const SparkSolveSheetDraftSchema: z.ZodObject<{ schemaVersion: z.ZodLiteral<1>; mode: z.ZodLiteral<"draft">; sheet: z.ZodObject<{ id: z.ZodString; subject: z.ZodString; level: z.ZodString; title: z.ZodString; subtitle: z.ZodString; color: z.ZodString; accent: z.ZodString; light: z.ZodString; border: z.ZodString; sections: z.ZodArray; text: z.ZodString; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; label: z.ZodString; theory: z.ZodOptional; infoBox: z.ZodOptional>; questions: z.ZodOptional; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; prompt: z.ZodString; questions: z.ZodArray; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; blanks: z.ZodUnion; minWidth: z.ZodOptional; }, z.core.$strip>], null>, z.ZodTuple<[z.ZodObject<{ placeholder: z.ZodOptional; minWidth: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ placeholder: z.ZodOptional; minWidth: z.ZodOptional; }, z.core.$strip>], null>]>; after: z.ZodString; conjunction: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"mcq">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; displayMode: z.ZodEnum<{ full_options: "full_options"; labels_only: "labels_only"; }>; options: z.ZodArray; text: z.ZodString; }, z.core.$strip>>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"lines">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; lines: z.ZodNumber; renderMode: z.ZodOptional>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"calc">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; hint: z.ZodOptional; inputLabel: z.ZodString; unit: z.ZodString; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"match">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; pairs: z.ZodArray>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"spelling">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; words: z.ZodArray>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"cloze">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; segments: z.ZodArray; blanks: z.ZodArray; minWidth: z.ZodOptional; }, z.core.$strip>>; wordBank: z.ZodOptional>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"answer_bank">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; displayMode: z.ZodEnum<{ inline_labeled: "inline_labeled"; banked: "banked"; }>; segments: z.ZodArray; blanks: z.ZodArray; minWidth: z.ZodOptional; }, z.core.$strip>>; options: z.ZodArray; text: z.ZodString; }, z.core.$strip>>; allowReuse: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"flow">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; boxes: z.ZodArray; minWidth: z.ZodOptional; initialValue: z.ZodOptional; readonly: z.ZodOptional; }, z.core.$strip>>; rows: z.ZodArray; items: z.ZodArray; boxId: z.ZodString; }, z.core.$strip>, z.ZodObject<{ type: z.ZodLiteral<"operation">; label: z.ZodString; }, z.core.$strip>], "type">>; }, z.core.$strip>>; connectors: z.ZodOptional; }, z.core.$strip>>>; }, z.core.$strip>], "type">>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"fill">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; blanks: z.ZodUnion; minWidth: z.ZodOptional; }, z.core.$strip>], null>, z.ZodTuple<[z.ZodObject<{ placeholder: z.ZodOptional; minWidth: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ placeholder: z.ZodOptional; minWidth: z.ZodOptional; }, z.core.$strip>], null>]>; after: z.ZodString; conjunction: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"mcq">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; displayMode: z.ZodEnum<{ full_options: "full_options"; labels_only: "labels_only"; }>; options: z.ZodArray; text: z.ZodString; }, z.core.$strip>>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"lines">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; lines: z.ZodNumber; renderMode: z.ZodOptional>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"calc">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; hint: z.ZodOptional; inputLabel: z.ZodString; unit: z.ZodString; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"match">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; pairs: z.ZodArray>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"spelling">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; words: z.ZodArray>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"cloze">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; segments: z.ZodArray; blanks: z.ZodArray; minWidth: z.ZodOptional; }, z.core.$strip>>; wordBank: z.ZodOptional>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"answer_bank">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; displayMode: z.ZodEnum<{ inline_labeled: "inline_labeled"; banked: "banked"; }>; segments: z.ZodArray; blanks: z.ZodArray; minWidth: z.ZodOptional; }, z.core.$strip>>; options: z.ZodArray; text: z.ZodString; }, z.core.$strip>>; allowReuse: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"flow">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; boxes: z.ZodArray; minWidth: z.ZodOptional; initialValue: z.ZodOptional; readonly: z.ZodOptional; }, z.core.$strip>>; rows: z.ZodArray; items: z.ZodArray; boxId: z.ZodString; }, z.core.$strip>, z.ZodObject<{ type: z.ZodLiteral<"operation">; label: z.ZodString; }, z.core.$strip>], "type">>; }, z.core.$strip>>; connectors: z.ZodOptional; }, z.core.$strip>>>; }, z.core.$strip>], "type">>>; }, z.core.$strip>]>>; }, z.core.$strip>; references: z.ZodOptional; officialProblemMarkdown: z.ZodOptional; officialSolutionMarkdown: z.ZodOptional; studentTranscriptMarkdown: z.ZodOptional; gradingMarkdown: z.ZodOptional; overallFeedbackMarkdown: z.ZodOptional; paperUrl: z.ZodOptional; markSchemeUrl: z.ZodOptional; }, z.core.$strip>>; }, z.core.$strip>; export type SparkSolveSheetDraft = z.infer; export declare function isPaperSheetQuestionGroup(entry: PaperSheetQuestionEntry): entry is PaperSheetQuestionGroup; export declare function visitPaperSheetQuestions(entries: readonly PaperSheetQuestionEntry[] | undefined, visitor: (question: PaperSheetQuestion, parentGroup: PaperSheetQuestionGroup | null) => void): void; export declare function countPaperSheetQuestions(entries: readonly PaperSheetQuestionEntry[] | undefined): number; export declare function sumPaperSheetMarks(entries: readonly PaperSheetQuestionEntry[] | undefined): number; export declare function coerceSparkSolveSheetDraft(value: unknown): SparkSolveSheetDraft | null; export declare const SparkSolveSheetAnswersSchema: z.ZodObject<{ schemaVersion: z.ZodLiteral<1>; mode: z.ZodLiteral<"draft_answers">; answers: z.ZodRecord]>>; }, z.core.$strip>; export type SparkSolveSheetAnswers = z.infer; export declare const SparkGraderWorksheetReportSchema: z.ZodObject<{ schemaVersion: z.ZodLiteral<1>; sheet: z.ZodObject<{ id: z.ZodString; subject: z.ZodString; level: z.ZodString; title: z.ZodString; subtitle: z.ZodString; color: z.ZodString; accent: z.ZodString; light: z.ZodString; border: z.ZodString; sections: z.ZodArray; text: z.ZodString; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; label: z.ZodString; theory: z.ZodOptional; infoBox: z.ZodOptional>; questions: z.ZodOptional; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; prompt: z.ZodString; questions: z.ZodArray; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; blanks: z.ZodUnion; minWidth: z.ZodOptional; }, z.core.$strip>], null>, z.ZodTuple<[z.ZodObject<{ placeholder: z.ZodOptional; minWidth: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ placeholder: z.ZodOptional; minWidth: z.ZodOptional; }, z.core.$strip>], null>]>; after: z.ZodString; conjunction: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"mcq">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; displayMode: z.ZodEnum<{ full_options: "full_options"; labels_only: "labels_only"; }>; options: z.ZodArray; text: z.ZodString; }, z.core.$strip>>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"lines">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; lines: z.ZodNumber; renderMode: z.ZodOptional>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"calc">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; hint: z.ZodOptional; inputLabel: z.ZodString; unit: z.ZodString; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"match">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; pairs: z.ZodArray>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"spelling">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; words: z.ZodArray>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"cloze">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; segments: z.ZodArray; blanks: z.ZodArray; minWidth: z.ZodOptional; }, z.core.$strip>>; wordBank: z.ZodOptional>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"answer_bank">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; displayMode: z.ZodEnum<{ inline_labeled: "inline_labeled"; banked: "banked"; }>; segments: z.ZodArray; blanks: z.ZodArray; minWidth: z.ZodOptional; }, z.core.$strip>>; options: z.ZodArray; text: z.ZodString; }, z.core.$strip>>; allowReuse: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"flow">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; boxes: z.ZodArray; minWidth: z.ZodOptional; initialValue: z.ZodOptional; readonly: z.ZodOptional; }, z.core.$strip>>; rows: z.ZodArray; items: z.ZodArray; boxId: z.ZodString; }, z.core.$strip>, z.ZodObject<{ type: z.ZodLiteral<"operation">; label: z.ZodString; }, z.core.$strip>], "type">>; }, z.core.$strip>>; connectors: z.ZodOptional; }, z.core.$strip>>>; }, z.core.$strip>], "type">>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"fill">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; blanks: z.ZodUnion; minWidth: z.ZodOptional; }, z.core.$strip>], null>, z.ZodTuple<[z.ZodObject<{ placeholder: z.ZodOptional; minWidth: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ placeholder: z.ZodOptional; minWidth: z.ZodOptional; }, z.core.$strip>], null>]>; after: z.ZodString; conjunction: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"mcq">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; displayMode: z.ZodEnum<{ full_options: "full_options"; labels_only: "labels_only"; }>; options: z.ZodArray; text: z.ZodString; }, z.core.$strip>>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"lines">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; lines: z.ZodNumber; renderMode: z.ZodOptional>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"calc">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; hint: z.ZodOptional; inputLabel: z.ZodString; unit: z.ZodString; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"match">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; pairs: z.ZodArray>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"spelling">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; words: z.ZodArray>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"cloze">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; segments: z.ZodArray; blanks: z.ZodArray; minWidth: z.ZodOptional; }, z.core.$strip>>; wordBank: z.ZodOptional>; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"answer_bank">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; displayMode: z.ZodEnum<{ inline_labeled: "inline_labeled"; banked: "banked"; }>; segments: z.ZodArray; blanks: z.ZodArray; minWidth: z.ZodOptional; }, z.core.$strip>>; options: z.ZodArray; text: z.ZodString; }, z.core.$strip>>; allowReuse: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ id: z.ZodString; type: z.ZodLiteral<"flow">; displayNumber: z.ZodOptional; badgeLabel: z.ZodOptional; marks: z.ZodNumber; prompt: z.ZodString; boxes: z.ZodArray; minWidth: z.ZodOptional; initialValue: z.ZodOptional; readonly: z.ZodOptional; }, z.core.$strip>>; rows: z.ZodArray; items: z.ZodArray; boxId: z.ZodString; }, z.core.$strip>, z.ZodObject<{ type: z.ZodLiteral<"operation">; label: z.ZodString; }, z.core.$strip>], "type">>; }, z.core.$strip>>; connectors: z.ZodOptional; }, z.core.$strip>>>; }, z.core.$strip>], "type">>>; }, z.core.$strip>]>>; }, z.core.$strip>; answers: z.ZodRecord]>>; review: z.ZodObject<{ score: z.ZodObject<{ got: z.ZodNumber; total: z.ZodNumber; }, z.core.$strip>; objectiveQuestionCount: z.ZodOptional; teacherReviewMarks: z.ZodOptional; teacherReviewQuestionCount: z.ZodOptional; label: z.ZodString; message: z.ZodString; note: z.ZodString; questions: z.ZodRecord; label: z.ZodOptional; statusLabel: z.ZodOptional; note: z.ZodString; score: z.ZodOptional>; replyPlaceholder: z.ZodOptional; followUp: z.ZodOptional; }, z.core.$strip>>; }, z.core.$strip>; references: z.ZodOptional; officialProblemMarkdown: z.ZodOptional; officialSolutionMarkdown: z.ZodOptional; studentTranscriptMarkdown: z.ZodOptional; gradingMarkdown: z.ZodOptional; overallFeedbackMarkdown: z.ZodOptional; paperUrl: z.ZodOptional; markSchemeUrl: z.ZodOptional; }, z.core.$strip>>; }, z.core.$strip>; export type SparkGraderWorksheetReport = z.infer;