import * as React from "react"; import { IQuestionProps } from "./Question"; import { QuizData } from "./QuizData"; export interface IQuizProps { title: React.ReactChild; seed?: number; randomOrder?: boolean; autoStart?: boolean; children: Array> | React.ReactElement; } export declare class Quiz extends React.PureComponent { static defaultProps: { autoStart: boolean; }; static is(value: any): value is Quiz; static parse(props: IQuizProps): QuizData; data: QuizData; constructor(props: IQuizProps); componentWillReceiveProps(props: IQuizProps): void; render(): JSX.Element; } export interface IResult { score?: number; input?: any[]; correct?: boolean; explained?: boolean; step?: number; } export declare const isDone: (result: IResult) => boolean; export declare const isCorrect: (result: IResult) => boolean; export declare const isIncorrect: (result: IResult) => boolean; export declare const isExplained: (result: IResult) => boolean; export declare enum QuizState { start = "start", questions = "questions", results = "results", reviewing = "reviewing" } export interface IInternalQuizProps { quiz: QuizData; } export interface IInternalQuizState { state: QuizState; input: any[]; current: IResult; currentIndex: number; results: IResult[]; } export declare class InternalQuiz extends React.PureComponent { constructor(props: IInternalQuizProps); getResults(): IResult[]; getCorrect(): number; getCount(): number; render(): JSX.Element; private renderState; private setCurrent; private getInitialResults; private update; private onStart; private onExplain; private onSubmit; private onNextStep; private updateCurrent; private findIndexNextUnfinished; private onNext; private onReview; private onReset; }