import PropTypes from 'prop-types';
import { ButtonLinkProps, IconType } from '../button-link/types';
export declare const buttonPropTypes: {
    'data-name': PropTypes.Requireable<string>;
    disabled: PropTypes.Requireable<boolean>;
    label: PropTypes.Validator<string>;
    onClick: PropTypes.Requireable<(...args: any[]) => any>;
    type: PropTypes.Requireable<string>;
    buttonLinkType: PropTypes.Requireable<string>;
    icon: PropTypes.Requireable<PropTypes.InferProps<{
        theme: PropTypes.Requireable<string>;
        position: PropTypes.Requireable<string>;
        type: PropTypes.Requireable<string>;
        faIcon: PropTypes.Requireable<PropTypes.InferProps<{
            name: PropTypes.Validator<string>;
            color: PropTypes.Requireable<string>;
            backgroundColor: PropTypes.Requireable<string>;
            size: PropTypes.Requireable<number>;
            customStyle: PropTypes.Requireable<{
                [x: string]: NonNullable<string | number | null | undefined> | null | undefined;
            }>;
        }>>;
    }>>;
    customStyle: PropTypes.Requireable<{
        [x: string]: NonNullable<string | number | null | undefined> | null | undefined;
    }>;
};
declare const propTypes: {
    buttons: PropTypes.Validator<(PropTypes.InferProps<{
        'data-name': PropTypes.Requireable<string>;
        disabled: PropTypes.Requireable<boolean>;
        label: PropTypes.Validator<string>;
        onClick: PropTypes.Requireable<(...args: any[]) => any>;
        type: PropTypes.Requireable<string>;
        buttonLinkType: PropTypes.Requireable<string>;
        icon: PropTypes.Requireable<PropTypes.InferProps<{
            theme: PropTypes.Requireable<string>;
            position: PropTypes.Requireable<string>;
            type: PropTypes.Requireable<string>;
            faIcon: PropTypes.Requireable<PropTypes.InferProps<{
                name: PropTypes.Validator<string>;
                color: PropTypes.Requireable<string>;
                backgroundColor: PropTypes.Requireable<string>;
                size: PropTypes.Requireable<number>;
                customStyle: PropTypes.Requireable<{
                    [x: string]: NonNullable<string | number | null | undefined> | null | undefined;
                }>;
            }>>;
        }>>;
        customStyle: PropTypes.Requireable<{
            [x: string]: NonNullable<string | number | null | undefined> | null | undefined;
        }>;
    }> | null | undefined)[]>;
    'data-name': PropTypes.Requireable<string>;
    'aria-label': PropTypes.Requireable<string>;
};
export default propTypes;
export declare type Theme = 'archived' | 'published' | 'deleted';
export declare type ButtonProps = Omit<ButtonLinkProps, 'type' | 'icon'> & {
    type?: 'default' | 'defaultLeft' | 'dangerous' | 'dangerousLeft';
    buttonLinkType?: ButtonLinkProps['type'];
    icon?: IconType & {
        theme?: Theme;
    };
};
export declare type ButtonMenuProps = {
    buttons: ButtonProps[];
    'data-name'?: string;
    'aria-label'?: string;
};
export declare type ButtonMenuPropsFixture = {
    props: ButtonMenuProps;
};
//# sourceMappingURL=types.d.ts.map