import PropTypes from 'prop-types';
import { Media } from '../questions/types';
export declare const TYPE_IMAGE = "img";
export declare const TYPE_VIDEO = "video";
export declare const TYPE_AUDIO = "audio";
export declare const MediaViewPropTypes: {
    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: {
    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 type SelectOptions = {
    name: string;
    selected: boolean;
    validOption: boolean;
    value: string;
};
export declare type Answer = {
    title?: string;
    'aria-label'?: string;
    onClick?: () => void;
    onChange?: (value: string) => void;
    selected?: boolean;
    image?: string;
    options?: SelectOptions[];
    type?: 'text' | 'select';
    name?: string;
};
export declare type AnswerProps = {
    model: {
        type: 'qcmDrag' | 'qcm' | 'qcmGraphic' | 'freeText' | 'dropDown' | 'slider' | 'template';
        answers?: Answer[];
        template?: string;
        onChange?: (value: string | number) => void;
        onSliderChange?: (value: number) => void;
        minLabel?: string;
        maxLabel?: string;
        title?: string;
    };
    help: string;
    question: string;
    media?: Media;
};
export default propTypes;
//# sourceMappingURL=prop-types.d.ts.map