import { Rng } from "@stembord/rand"; import * as React from "react"; import { InputProps } from "reactstrap"; import { IInputAnswer, IInputAnswerHandler, IInputPromptProps, InputType } from "./InputPrompt"; import { IMultipleChoicePromptProps } from "./MultipleChoicePrompt"; import { IQuestionProps } from "./Question"; import { IQuizProps } from "./Quiz"; import { ITrueFalsePromptProps } from "./TrueFalsePrompt"; export declare abstract class PromptData { static parse(quiz: QuizData, child: React.ReactElement): TrueFalsePromptData | InputPromptData | MultipleChoicePromptData; quiz: QuizData; prompt?: React.ReactChild | React.ReactChild[]; constructor(quiz: QuizData, prompt?: React.ReactChild | React.ReactChild[]); abstract getScore(input: any[]): number; } export declare class TrueFalsePromptData extends PromptData { static parse(quiz: QuizData, child: React.ReactElement): TrueFalsePromptData; static is(value: any): value is TrueFalsePromptData; answer: boolean; true: React.ReactChild; false: React.ReactChild; constructor(quiz: QuizData, prompt: React.ReactChild | React.ReactChild[], answer: boolean, trueValue?: React.ReactChild, falseValue?: React.ReactChild); getScore(input: [boolean]): number; } export interface IChoiceData { answer: boolean; children: React.ReactChild | React.ReactChild[]; } export declare class MultipleChoicePromptData extends PromptData { static parse(quiz: QuizData, child: React.ReactElement): MultipleChoicePromptData; static is(value: any): value is TrueFalsePromptData; onlyOne: boolean; randomOrder: boolean; choices: IChoiceData[]; constructor(quiz: QuizData, prompt: React.ReactChild | React.ReactChild[], choices: IChoiceData[], onlyOne?: boolean, randomOrder?: boolean); getScore(input: boolean[]): number; private sortChoices; } export interface IInputProps { Component?: React.ComponentType; inputProps?: InputProps; type: InputType; answer: IInputAnswer; placeholder?: string; } export declare type Input = React.ComponentType; export declare class InputPromptData extends PromptData { static parse(quiz: QuizData, child: React.ReactElement): InputPromptData; static is(value: any): value is TrueFalsePromptData; answers: IInputAnswerHandler[]; render: (Input: Input) => React.ReactChild | React.ReactChild[]; constructor(quiz: QuizData, render: (Input: Input) => React.ReactChild | React.ReactChild[]); addAnswer(index: number, answer: IInputAnswerHandler): void; getScore(input: string[]): number; } export declare class ExplainationData { static parse(quiz: QuizData, child: React.ReactElement): ExplainationData; quiz: QuizData; multipleSteps: boolean; children: React.ReactChild[]; constructor(quiz: QuizData, multipleSteps: boolean, children: React.ReactChild | React.ReactChild[]); } export declare class QuestionData { static parse(quiz: QuizData, child: React.ReactElement): QuestionData; quiz: QuizData; prompt: PromptData; explaination?: ExplainationData; constructor(quiz: QuizData, prompt: PromptData, explaination?: ExplainationData); } export declare class QuizData { static parse(props: IQuizProps): QuizData; title: React.ReactChild; seed: number; rng: Rng; randomOrder: boolean; autoStart: boolean; questions: QuestionData[]; descriptions: Array; constructor(title: React.ReactChild); sortQuestions(): void; }