/// <reference types="react" />
import PropTypes from 'prop-types';
import { CardsGridProps } from '../../organism/cards-grid';
interface ContinueLearningButtonProps {
    ongoingCoursesAvailable?: boolean;
    onClick?: () => void;
}
interface ProviderContext {
    skin: {
        common: {
            primary: string;
            secondary: string;
        };
    };
    translate: (key: string) => string;
}
export declare const ContinueLearningButton: {
    (props: ContinueLearningButtonProps, context: ProviderContext): JSX.Element;
    contextTypes: {
        skin: PropTypes.Requireable<PropTypes.InferProps<{
            common: PropTypes.Requireable<{
                [x: string]: any;
            }>;
            images: PropTypes.Requireable<PropTypes.InferProps<{
                'logo-mobile': PropTypes.Requireable<any>;
                logo: PropTypes.Requireable<any>;
                'logo-email': PropTypes.Requireable<any>;
                login: PropTypes.Requireable<any>;
            }>>;
            icons: PropTypes.Requireable<{
                [x: string]: any;
            }>;
            mod: PropTypes.Requireable<{
                [x: string]: any;
            }>;
            courses: PropTypes.Requireable<any[]>;
            texts: PropTypes.Requireable<{
                [x: string]: any;
            }>;
        }>>;
        translate: PropTypes.Requireable<(...args: any[]) => any>;
    };
    propTypes: {
        ongoingCoursesAvailable: PropTypes.Requireable<boolean>;
        onClick: PropTypes.Requireable<(...args: any[]) => any>;
    };
};
interface Metrics {
    score?: number;
    questionsToReview?: number;
    totalContents?: number;
}
declare type BannerMicrolearning = Record<string, never> | {
    action: () => void;
    oldSwitchValue: boolean;
};
interface SkillDetailProps {
    title: string;
    icon: {
        name: string;
        color: string;
    };
    skillRef: string;
    description?: string;
    metrics?: Metrics;
    focused?: boolean;
    availableForReview?: boolean;
    ongoingCoursesAvailable?: boolean;
    skillIncludedCourses: CardsGridProps;
    filters: {
        onChange?: () => void;
        options?: unknown[];
    };
    onBackClick?: () => void;
    onReviewClick?: () => void;
    onContinueLearningClick?: () => void;
    search: {
        oldValue: string;
        onChange: () => void;
    };
    bannerMicrolearning?: BannerMicrolearning;
}
declare const SkillDetail: {
    (props: SkillDetailProps, context: ProviderContext): JSX.Element;
    contextTypes: {
        translate: PropTypes.Requireable<(...args: any[]) => any>;
        skin: PropTypes.Requireable<PropTypes.InferProps<{
            common: PropTypes.Requireable<{
                [x: string]: any;
            }>;
            images: PropTypes.Requireable<PropTypes.InferProps<{
                'logo-mobile': PropTypes.Requireable<any>;
                logo: PropTypes.Requireable<any>;
                'logo-email': PropTypes.Requireable<any>;
                login: PropTypes.Requireable<any>;
            }>>;
            icons: PropTypes.Requireable<{
                [x: string]: any;
            }>;
            mod: PropTypes.Requireable<{
                [x: string]: any;
            }>;
            courses: PropTypes.Requireable<any[]>;
            texts: PropTypes.Requireable<{
                [x: string]: any;
            }>;
        }>>;
    };
    propTypes: {
        title: PropTypes.Validator<string>;
        icon: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
            name: PropTypes.Requireable<string>;
            color: PropTypes.Requireable<string>;
        }>>>;
        skillRef: PropTypes.Validator<string>;
        description: PropTypes.Requireable<string>;
        metrics: PropTypes.Requireable<PropTypes.InferProps<{
            score: PropTypes.Requireable<number>;
            questionsToReview: PropTypes.Requireable<number>;
            totalContents: PropTypes.Requireable<number>;
        }>>;
        focused: PropTypes.Requireable<boolean>;
        availableForReview: PropTypes.Requireable<boolean>;
        ongoingCoursesAvailable: PropTypes.Requireable<boolean>;
        skillIncludedCourses: PropTypes.Requireable<PropTypes.InferProps<{
            list: PropTypes.Requireable<(PropTypes.InferProps<any> | null | undefined)[]>;
            customStyle: PropTypes.Requireable<{
                [x: string]: string | null | undefined;
            }>;
            loading: PropTypes.Requireable<boolean>;
        }>>;
        filters: PropTypes.Requireable<PropTypes.InferProps<{
            onChange: PropTypes.Requireable<(...args: any[]) => any>;
            options: PropTypes.Requireable<(PropTypes.InferProps<{
                name: PropTypes.Validator<string>;
                value: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
                selected: PropTypes.Requireable<boolean>;
                validOption: PropTypes.Requireable<boolean>;
            }> | null | undefined)[]>;
        }>>;
        onBackClick: PropTypes.Requireable<(...args: any[]) => any>;
        onReviewClick: PropTypes.Requireable<(...args: any[]) => any>;
        onContinueLearningClick: PropTypes.Requireable<(...args: any[]) => any>;
        search: PropTypes.Requireable<PropTypes.InferProps<{
            oldValue: PropTypes.Requireable<string>;
            onChange: PropTypes.Requireable<(...args: any[]) => any>;
        }>>;
        bannerMicrolearning: PropTypes.Requireable<PropTypes.InferProps<{
            action: PropTypes.Requireable<(...args: any[]) => any>;
            oldSwitchValue: PropTypes.Requireable<boolean>;
        }>>;
    };
};
export default SkillDetail;
//# sourceMappingURL=index.d.ts.map