/** * Generate schema.org JSON-LD for a Quiz (Question and Answer items). * * Supports author and publisher metadata along with detailed `Question` * and `Answer` structures (including accepted/suggested answers, * feedback and scoring fields). Only provided values are emitted. * * See `QuizOptions`, `Question`, and `Answer` types for the available * fields and formats. * @returns A JSON-LD compatible `Quiz` object */ interface PersonRef { name?: string; url?: string; } interface PublisherRef { name: string; url?: string; } interface Answer { text: string; url?: string; author?: string | PersonRef; upvoteCount?: number; feedback?: string | { text?: string; score?: number; }; } interface Question { name?: string; text?: string; acceptedAnswer?: Answer | Answer[]; suggestedAnswer?: Answer | Answer[]; answerCount?: number; upvoteCount?: number; difficulty?: string; points?: number; score?: number; timeLimit?: string; attempts?: number; tags?: string[]; hints?: string[]; learningObjective?: string | string[]; timeRecommended?: string; isRequired?: boolean; } interface QuizOptions { name?: string; description?: string; url?: string; datePublished?: string; author?: string | PersonRef; publisher?: string | PublisherRef; difficulty?: string; learningResourceType?: string; educationalLevel?: string; timeRequired?: string; typicalAgeRange?: string | number; inLanguage?: string; keywords?: string[]; learningOutcome?: string | string[]; isAccessibleForFree?: boolean; questions?: Question[]; } declare const generateEducationSchema: ({ name, description, url, datePublished, author, publisher, difficulty, learningResourceType, educationalLevel, timeRequired, typicalAgeRange, inLanguage, keywords, learningOutcome, isAccessibleForFree, questions, }?: QuizOptions) => any; export { generateEducationSchema as default, generateEducationSchema };