import PropTypes from 'prop-types';
import type { Animation } from '@coorpacademy/react-native-animation';
import { ReviewCorrectionPopinProps } from '../../molecule/review-correction-popin/prop-types';
import { AnswerProps } from '../../molecule/answer/prop-types';
import { TemplateContextValues } from '../../template/app-review/template-context';
export declare const SlidePropsTypes: PropTypes.Requireable<PropTypes.InferProps<{
    position: PropTypes.Requireable<number>;
    loading: PropTypes.Requireable<boolean>;
    loadingAriaLabel: PropTypes.Requireable<string>;
    animationType: PropTypes.Requireable<string>;
    isCorrect: PropTypes.Requireable<boolean>;
    animateCorrectionPopin: PropTypes.Requireable<boolean>;
    showCorrectionPopin: PropTypes.Requireable<boolean>;
    disableContent: PropTypes.Requireable<boolean>;
    parentContentTitle: PropTypes.Requireable<string>;
    questionText: PropTypes.Requireable<string>;
    answerUI: PropTypes.Requireable<PropTypes.InferProps<{
        model: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
            type: PropTypes.Validator<string>;
            answer: PropTypes.Requireable<(PropTypes.InferProps<{
                title: PropTypes.Validator<string>;
                'aria-label': PropTypes.Requireable<string>;
                onClick: PropTypes.Requireable<(...args: any[]) => any>;
                onChange: PropTypes.Requireable<(...args: any[]) => any>;
                selected: PropTypes.Requireable<boolean>;
                image: PropTypes.Requireable<string>;
                options: PropTypes.Requireable<(PropTypes.InferProps<{
                    name: PropTypes.Requireable<string>;
                    selected: PropTypes.Requireable<boolean>;
                    validOption: PropTypes.Requireable<boolean>;
                    value: PropTypes.Requireable<string>;
                }> | null | undefined)[]>;
                type: PropTypes.Requireable<string>;
                name: PropTypes.Requireable<string>;
            }> | null | undefined)[]>;
        }>>>;
        help: PropTypes.Requireable<string>;
        question: PropTypes.Requireable<string>;
        media: PropTypes.Requireable<NonNullable<PropTypes.InferProps<{
            type: PropTypes.Validator<string>;
            id: PropTypes.Requireable<string>;
            width: PropTypes.Requireable<string>;
            height: PropTypes.Requireable<string>;
            url: PropTypes.Requireable<any>;
            onPlay: PropTypes.Requireable<(...args: any[]) => any>;
            onResume: PropTypes.Requireable<(...args: any[]) => any>;
            onPause: PropTypes.Requireable<(...args: any[]) => any>;
            onEnded: PropTypes.Requireable<(...args: any[]) => any>;
            onError: PropTypes.Requireable<(...args: any[]) => any>;
            autoplay: PropTypes.Requireable<boolean>;
            disableAutostart: PropTypes.Requireable<boolean>;
            loading: PropTypes.Requireable<boolean>;
            jwpOptions: PropTypes.Requireable<PropTypes.InferProps<{
                file: PropTypes.Requireable<any>;
                customProps: PropTypes.Requireable<PropTypes.InferProps<{
                    aspectratio: PropTypes.Requireable<string>;
                    tracks: PropTypes.Requireable<(PropTypes.InferProps<{
                        file: PropTypes.Requireable<any>;
                        label: PropTypes.Requireable<string>;
                        kind: PropTypes.Requireable<string>;
                        default: PropTypes.Requireable<boolean>;
                    }> | null | undefined)[]>;
                    autostart: PropTypes.Requireable<string>;
                    width: PropTypes.Requireable<string>;
                    skin: PropTypes.Requireable<PropTypes.InferProps<{
                        name: PropTypes.Requireable<string>;
                    }>>;
                }>>;
                licenseKey: PropTypes.Validator<string>;
                playerScript: PropTypes.Validator<any>;
                playerId: PropTypes.Validator<string>;
            }>>;
            mimeType: PropTypes.Validator<string>;
        }> | PropTypes.InferProps<{
            type: PropTypes.Validator<string>;
            url: PropTypes.Validator<string>;
        }> | PropTypes.InferProps<{
            type: PropTypes.Validator<string>;
            mediaUrl: PropTypes.Validator<string>;
        }> | null | undefined>>;
    }>>;
}>>;
declare const propTypes: {
    slideIndex: PropTypes.Requireable<string>;
    slide: PropTypes.Requireable<PropTypes.InferProps<{
        position: PropTypes.Requireable<number>;
        loading: PropTypes.Requireable<boolean>;
        loadingAriaLabel: PropTypes.Requireable<string>;
        animationType: PropTypes.Requireable<string>;
        isCorrect: PropTypes.Requireable<boolean>;
        animateCorrectionPopin: PropTypes.Requireable<boolean>;
        showCorrectionPopin: PropTypes.Requireable<boolean>;
        disableContent: PropTypes.Requireable<boolean>;
        parentContentTitle: PropTypes.Requireable<string>;
        questionText: PropTypes.Requireable<string>;
        answerUI: PropTypes.Requireable<PropTypes.InferProps<{
            model: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
                type: PropTypes.Validator<string>;
                answer: PropTypes.Requireable<(PropTypes.InferProps<{
                    title: PropTypes.Validator<string>;
                    'aria-label': PropTypes.Requireable<string>;
                    onClick: PropTypes.Requireable<(...args: any[]) => any>;
                    onChange: PropTypes.Requireable<(...args: any[]) => any>;
                    selected: PropTypes.Requireable<boolean>;
                    image: PropTypes.Requireable<string>;
                    options: PropTypes.Requireable<(PropTypes.InferProps<{
                        name: PropTypes.Requireable<string>;
                        selected: PropTypes.Requireable<boolean>;
                        validOption: PropTypes.Requireable<boolean>;
                        value: PropTypes.Requireable<string>;
                    }> | null | undefined)[]>;
                    type: PropTypes.Requireable<string>;
                    name: PropTypes.Requireable<string>;
                }> | null | undefined)[]>;
            }>>>;
            help: PropTypes.Requireable<string>;
            question: PropTypes.Requireable<string>;
            media: PropTypes.Requireable<NonNullable<PropTypes.InferProps<{
                type: PropTypes.Validator<string>;
                id: PropTypes.Requireable<string>;
                width: PropTypes.Requireable<string>;
                height: PropTypes.Requireable<string>;
                url: PropTypes.Requireable<any>;
                onPlay: PropTypes.Requireable<(...args: any[]) => any>;
                onResume: PropTypes.Requireable<(...args: any[]) => any>;
                onPause: PropTypes.Requireable<(...args: any[]) => any>;
                onEnded: PropTypes.Requireable<(...args: any[]) => any>;
                onError: PropTypes.Requireable<(...args: any[]) => any>;
                autoplay: PropTypes.Requireable<boolean>;
                disableAutostart: PropTypes.Requireable<boolean>;
                loading: PropTypes.Requireable<boolean>;
                jwpOptions: PropTypes.Requireable<PropTypes.InferProps<{
                    file: PropTypes.Requireable<any>;
                    customProps: PropTypes.Requireable<PropTypes.InferProps<{
                        aspectratio: PropTypes.Requireable<string>;
                        tracks: PropTypes.Requireable<(PropTypes.InferProps<{
                            file: PropTypes.Requireable<any>;
                            label: PropTypes.Requireable<string>;
                            kind: PropTypes.Requireable<string>;
                            default: PropTypes.Requireable<boolean>;
                        }> | null | undefined)[]>;
                        autostart: PropTypes.Requireable<string>;
                        width: PropTypes.Requireable<string>;
                        skin: PropTypes.Requireable<PropTypes.InferProps<{
                            name: PropTypes.Requireable<string>;
                        }>>;
                    }>>;
                    licenseKey: PropTypes.Validator<string>;
                    playerScript: PropTypes.Validator<any>;
                    playerId: PropTypes.Validator<string>;
                }>>;
                mimeType: PropTypes.Validator<string>;
            }> | PropTypes.InferProps<{
                type: PropTypes.Validator<string>;
                url: PropTypes.Validator<string>;
            }> | PropTypes.InferProps<{
                type: PropTypes.Validator<string>;
                mediaUrl: PropTypes.Validator<string>;
            }> | null | undefined>>;
        }>>;
    }>>;
    validateButton: PropTypes.Requireable<PropTypes.InferProps<{
        label: PropTypes.Validator<string>;
        onClick: PropTypes.Validator<(...args: any[]) => any>;
        disabled: PropTypes.Requireable<boolean>;
    }>>;
    correctionPopinProps: PropTypes.Requireable<PropTypes.InferProps<{
        klf: PropTypes.Requireable<PropTypes.InferProps<{
            label: PropTypes.Requireable<string>;
            tooltip: PropTypes.Requireable<string>;
        }>>;
        information: PropTypes.Requireable<PropTypes.InferProps<{
            label: PropTypes.Requireable<string>;
            message: PropTypes.Requireable<string>;
        }>>;
        next: PropTypes.Requireable<PropTypes.InferProps<{
            label: PropTypes.Requireable<string>;
            'aria-label': PropTypes.Requireable<string>;
        }>>;
        resultLabel: PropTypes.Requireable<string>;
        type: PropTypes.Requireable<string>;
    }>>;
};
export default propTypes;
export declare type PopinProps = {
    correctionPopinProps: ReviewCorrectionPopinProps;
    slideIndex: string;
    showCorrectionPopin?: boolean;
    animateCorrectionPopin?: boolean;
};
export declare type ValidateButtonProps = {
    slideIndex: string;
    validateButton: ReviewSlideProps['validateButton'];
    primarySkinColor?: string;
};
export declare type SlideProps = {
    position: number;
    loading: boolean;
    loadingAriaLabel?: string;
    animationType?: 'unstack' | 'restack';
    isCorrect?: boolean;
    animateCorrectionPopin?: boolean;
    showCorrectionPopin?: boolean;
    parentContentTitle?: string;
    questionText?: string;
    answerUI?: AnswerProps;
};
export declare type ReviewSlideProps = {
    slideIndex: string;
    num: number;
    slide: SlideProps;
    correctionPopinProps?: ReviewCorrectionPopinProps;
    validateButton: {
        label: string;
        onClick: () => void;
        disabled: boolean;
    };
    animatedStyle?: Animation['animatedStyle'][];
};
export declare type Fixture = {
    props: ReviewSlideProps;
    mobileContext?: TemplateContextValues;
};
//# sourceMappingURL=prop-types.d.ts.map