import PropTypes from 'prop-types';
import { IconPreviewProps } from '../../molecule/icon-preview/types';
import { ButtonLinkProps } from '../../atom/button-link/types';
declare const SkillEditionPropTypes: {
    skillInformations: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
        form: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
            title: PropTypes.Requireable<string>;
            subtitle: PropTypes.Requireable<string>;
            select: PropTypes.Requireable<PropTypes.InferProps<{
                title: PropTypes.Requireable<string>;
                subtitle: PropTypes.Requireable<string>;
                'data-name': PropTypes.Requireable<string>;
                field: PropTypes.Requireable<PropTypes.InferProps<{
                    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)[]>;
                    'aria-label': PropTypes.Requireable<string>;
                    onChange: PropTypes.Requireable<(...args: any[]) => any>;
                }>>;
            }>>;
            inputText: PropTypes.Requireable<PropTypes.InferProps<{
                title: PropTypes.Requireable<string>;
                field: PropTypes.Requireable<PropTypes.InferProps<{
                    autoFocus: PropTypes.Requireable<boolean>;
                    title: PropTypes.Requireable<string>;
                    placeholder: PropTypes.Requireable<string>;
                    defaultValue: PropTypes.Requireable<string>;
                    theme: PropTypes.Requireable<string>;
                    disabled: PropTypes.Requireable<boolean>;
                    value: PropTypes.Requireable<string>;
                    hint: PropTypes.Requireable<string>;
                    error: PropTypes.Requireable<string>;
                    onChange: PropTypes.Requireable<(...args: any[]) => any>;
                    description: PropTypes.Requireable<string>;
                    modified: PropTypes.Requireable<boolean>;
                    type: PropTypes.Requireable<string>;
                    valid: PropTypes.Requireable<boolean>;
                    'aria-label': PropTypes.Requireable<string>;
                    'data-name': PropTypes.Requireable<string>;
                    inputColor: PropTypes.Requireable<boolean>;
                }>>;
            }>>;
            inputTextArea: PropTypes.Requireable<PropTypes.InferProps<{
                title: PropTypes.Requireable<string>;
                field: PropTypes.Requireable<PropTypes.InferProps<{
                    placeholder: PropTypes.Requireable<string>;
                    title: PropTypes.Requireable<string>;
                    name: PropTypes.Requireable<string>;
                    theme: PropTypes.Requireable<string>;
                    disabled: PropTypes.Requireable<boolean>;
                    value: PropTypes.Requireable<string>;
                    hint: PropTypes.Requireable<string>;
                    error: PropTypes.Requireable<string>;
                    onChange: PropTypes.Requireable<(...args: any[]) => any>;
                    description: PropTypes.Requireable<string>;
                    modified: PropTypes.Requireable<boolean>;
                    valid: PropTypes.Requireable<boolean>;
                }>>;
            }>>;
        }>>>;
        iconEditor: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
            title: PropTypes.Validator<string>;
            iconPreview: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
                title: PropTypes.Requireable<string>;
                icon: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
                    name: PropTypes.Validator<string>;
                    color: PropTypes.Requireable<string>;
                }>>>;
            }>>>;
            inputText: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
                autoFocus: PropTypes.Requireable<boolean>;
                title: PropTypes.Requireable<string>;
                placeholder: PropTypes.Requireable<string>;
                defaultValue: PropTypes.Requireable<string>;
                theme: PropTypes.Requireable<string>;
                disabled: PropTypes.Requireable<boolean>;
                value: PropTypes.Requireable<string>;
                hint: PropTypes.Requireable<string>;
                error: PropTypes.Requireable<string>;
                onChange: PropTypes.Requireable<(...args: any[]) => any>;
                description: PropTypes.Requireable<string>;
                modified: PropTypes.Requireable<boolean>;
                type: PropTypes.Requireable<string>;
                valid: PropTypes.Requireable<boolean>;
                'aria-label': PropTypes.Requireable<string>;
                'data-name': PropTypes.Requireable<string>;
                inputColor: PropTypes.Requireable<boolean>;
            }>>>;
            buttonLink: PropTypes.Requireable<PropTypes.InferProps<{
                label: PropTypes.Requireable<string>;
                ariaLabel: PropTypes.Requireable<string>;
                'data-name': PropTypes.Requireable<string>;
                onClick: PropTypes.Requireable<(...args: any[]) => any>;
            }>>;
        }>>>;
    }>>>;
    translations: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
        title: PropTypes.Validator<string>;
        subtitle: PropTypes.Validator<string>;
        localesOptions: PropTypes.Validator<(PropTypes.InferProps<{
            label: PropTypes.Validator<string>;
            ref: PropTypes.Validator<string>;
            onClick: PropTypes.Validator<(...args: any[]) => any>;
        }> | null | undefined)[]>;
        items: PropTypes.Requireable<{
            [x: string]: NonNullable<PropTypes.InferProps<{
                title: PropTypes.Validator<string>;
                onEditClick: PropTypes.Validator<(...args: any[]) => any>;
                onDeleteClick: PropTypes.Validator<(...args: any[]) => any>;
            }>>;
        }>;
        button: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
            label: PropTypes.Validator<string>;
            onClick: PropTypes.Validator<(...args: any[]) => any>;
            disabled: PropTypes.Requireable<boolean>;
        }>>>;
    }>>>;
    content: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
        title: PropTypes.Validator<string>;
        subtitle: PropTypes.Validator<string>;
        button: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
            label: PropTypes.Validator<string>;
            onClick: PropTypes.Validator<(...args: any[]) => any>;
        }>>>;
        list: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
            items: PropTypes.Requireable<NonNullable<PropTypes.InferProps<{
                ref: PropTypes.Validator<string>;
                title: PropTypes.Validator<string>;
                subtitle: PropTypes.Validator<string>;
                image: PropTypes.Validator<string>;
                tags: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
                    label: PropTypes.Validator<string>;
                    iconName: PropTypes.Validator<string>;
                }>>>;
                checkbox: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
                    checked: PropTypes.Validator<boolean>;
                    onChange: PropTypes.Validator<(...args: any[]) => any>;
                }>>>;
            }>>[]>;
            search: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
                value: PropTypes.Validator<string>;
                placeholder: PropTypes.Validator<string>;
                onChange: PropTypes.Validator<(...args: any[]) => any>;
            }>>>;
            emptyResult: PropTypes.Requireable<PropTypes.InferProps<{
                title: PropTypes.Validator<string>;
                description: PropTypes.Validator<string>;
            }>>;
            checkbox: PropTypes.Requireable<PropTypes.InferProps<{
                title: PropTypes.Validator<string>;
                checked: PropTypes.Validator<boolean>;
                onChange: PropTypes.Validator<(...args: any[]) => any>;
            }>>;
        }>>>;
    }>>>;
};
export default SkillEditionPropTypes;
export declare type SelectOption = {
    name: string;
    value?: string | number;
    selected?: boolean;
    validOption?: boolean;
};
export declare type FieldSelectProps = {
    options: SelectOption[];
    'aria-label': string;
    onChange: () => void;
};
declare type FormProps = {
    title: string;
    subtitle: string;
    select: {
        title: string;
        subtitle: string;
        'data-name': string;
        field: FieldSelectProps;
    };
    inputText: {
        title: string;
        field: InputTextProps;
    };
    inputTextArea: {
        title: string;
        field: InputTextareaProps;
    };
};
declare type IconEditorProps = {
    title: string;
    iconPreview: IconPreviewProps;
    inputText: InputTextProps;
    buttonLink?: {
        label: string;
        ariaLabel: string;
        onClick: () => void;
    };
};
export declare type SkillInformationsProps = {
    form: FormProps;
    iconEditor: IconEditorProps;
};
export declare const themeStyle: {
    setup: string;
    coorpmanager: string;
    cockpit: string;
    default: string;
};
export declare type TranslationPropsType = {
    title: string;
    subtitle: string;
    localesOptions: {
        label: string;
        ref: string;
        onClick: () => void;
    }[];
    items?: {
        [ref: string]: {
            title: string;
            onEditClick: () => void;
            onDeleteClick: () => void;
        };
    };
    button: {
        label: string;
        onClick: () => void;
        disabled?: boolean;
    };
    emptyResult?: {
        title: string;
        description: string;
    };
};
export declare type ContentListItemType = {
    ref: string;
    title: string;
    subtitle: string;
    image: string;
    tags: {
        label: string;
        iconName: string;
    };
    checkbox: {
        checked: boolean;
        onChange: (value: boolean) => void;
    };
    deleteButton?: ButtonLinkProps;
};
export declare type CheckboxWithTitleProps = {
    title?: string;
    checked?: boolean;
    onChange?: (value: boolean) => void;
};
export declare type ContentPropsType = {
    title: string;
    subtitle: string;
    button: {
        label: string;
        onClick: () => void;
    };
    list: {
        title?: string;
        items?: ContentListItemType[];
        search: {
            value: string;
            placeholder: string;
            onChange: (value: string) => void;
        };
        emptyResult?: {
            title: string;
            description: string;
        };
        checkbox?: {
            title: string;
            checked: boolean;
            onChange: (value: boolean) => void;
        };
    };
    actionButtons?: ButtonLinkProps[];
    checkboxWithTitle?: CheckboxWithTitleProps;
};
export declare type SkillEditionPropsType = {
    skillInformations: SkillInformationsProps;
    translations: TranslationPropsType;
    content: ContentPropsType;
};
export declare type InputTextProps = {
    autoFocus?: boolean;
    title?: string;
    placeholder?: string;
    defaultValue?: string;
    theme?: keyof typeof themeStyle;
    disabled?: boolean;
    value?: string;
    hint?: string;
    error?: string;
    onChange?: (value: string) => void;
    description?: string;
    modified?: boolean;
    type?: string;
    valid?: boolean;
    'aria-label'?: string;
    'data-name'?: string;
    inputColor?: boolean;
};
export declare type InputTextareaProps = {
    placeholder?: string;
    title?: string;
    name?: string;
    theme?: keyof typeof themeStyle;
    disabled?: boolean;
    value?: string;
    hint?: string;
    error?: string;
    onChange?: (value: string) => void;
    description?: string;
    modified?: boolean;
    valid?: boolean;
};
//# sourceMappingURL=types.d.ts.map