import React__default, { ReactNode } from 'react';
import { FormikProps } from 'formik';
import { CurriculumReviewContents } from '../../../../types/curriculumContents.type.js';
import { Curriculum, ReviewQuestionElement } from '../../../../types/curriculum.type.js';

interface CurriculumReviewFormValues {
    answers: Record<string, string>;
}
interface CurriculumReviewContextValue {
    reviewContents: CurriculumReviewContents;
    formik: FormikProps<CurriculumReviewFormValues>;
    curriculum: Curriculum;
    sectionTitle: string | undefined;
    onClickEndReview: () => void;
    step: number;
    setStep: (step: number) => void;
    handleStart: () => void;
    handleNext: () => void;
    handlePrev: () => void;
    onClickReviewMyAnswer: () => void;
    handleSubmit: () => void;
    currentQuestion: ReviewQuestionElement | undefined;
    currentAnswer: string;
    currentError: string | undefined;
    handleAnswerChange: (value: string) => void;
    done: boolean;
}
interface CurriculumReviewProviderProps extends Pick<CurriculumReviewContextValue, 'reviewContents' | 'sectionTitle' | 'onClickEndReview' | 'curriculum' | 'done'> {
    children: ReactNode;
    /** 제출 후, 다음 학습으로 넘어가기 버튼 */
    onClickEndReview: () => void;
    /** key: 질문의 uuid, value: 응답 값 */
    onSubmit: (values: Record<string, string>) => Promise<boolean>;
    /** key: 질문의 uuid, value: 응답 값 */
    defaultValues?: Record<string, string>;
    onReviewValueChange: ({ reviewId, answer, }: {
        reviewId: string;
        answer: Record<string, string>;
    }) => void;
    mode: 'edit' | 'create';
}
declare function CurriculumReviewProvider({ reviewContents: _reviewContents, sectionTitle, children, onClickEndReview, onSubmit, defaultValues, curriculum, onReviewValueChange, done, }: CurriculumReviewProviderProps): React__default.ReactElement;
declare function useCurriculumReviewContext(): CurriculumReviewContextValue;

export { CurriculumReviewProvider, useCurriculumReviewContext };
