import PropTypes from 'prop-types';
import { ICONS } from '../../util/button-icons';
export declare const iconPropTypes: {
    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;
        }>;
    }>>;
};
declare const propTypes: {
    type: PropTypes.Requireable<string>;
    usage: PropTypes.Requireable<string>;
    label: PropTypes.Requireable<string>;
    content: PropTypes.Requireable<PropTypes.ReactNodeLike>;
    'aria-label': PropTypes.Requireable<string>;
    tooltipText: PropTypes.Requireable<string>;
    tooltipPlacement: PropTypes.Requireable<string>;
    'data-name': PropTypes.Requireable<string>;
    'data-testid': PropTypes.Requireable<string>;
    icon: PropTypes.Requireable<PropTypes.InferProps<{
        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;
            }>;
        }>>;
    }>>;
    onClick: PropTypes.Requireable<(...args: any[]) => any>;
    link: PropTypes.Requireable<PropTypes.InferProps<{
        href: PropTypes.Requireable<string>;
        download: PropTypes.Requireable<boolean>;
        target: PropTypes.Requireable<string>;
    }>>;
    hoverBackgroundColor: PropTypes.Requireable<string>;
    hoverColor: PropTypes.Requireable<string>;
    disabled: PropTypes.Requireable<boolean>;
    className: PropTypes.Requireable<string>;
    customStyle: PropTypes.Requireable<{
        [x: string]: NonNullable<string | number | null | undefined> | null | undefined;
    }>;
};
export declare type FaIconType = {
    name: string;
    color?: string;
    backgroundColor?: string;
    size?: number;
    customStyle?: Record<string, number | string>;
};
export declare type IconType = {
    position: 'right' | 'left';
    type?: keyof typeof ICONS;
    faIcon?: FaIconType;
};
export declare type ButtonLinkProps = {
    type?: 'primary' | 'secondary' | 'tertiary' | 'text' | 'dangerous';
    usage?: 'button' | 'submit' | 'reset';
    label?: string;
    content?: PropTypes.ReactNodeLike;
    'aria-label'?: string;
    tooltipText?: string;
    tooltipPlacement?: 'left' | 'right' | 'top' | 'bottom';
    'data-name'?: string;
    'data-testid'?: string;
    icon?: IconType;
    onClick?: () => void;
    onKeyDown?: () => void;
    link?: {
        href?: string;
        download?: boolean;
        target?: '_self' | '_blank' | '_parent' | '_top';
    };
    hoverBackgroundColor?: string;
    hoverColor?: string;
    disabled?: boolean;
    className?: string;
    customStyle?: Record<string, string | number>;
    useTitle?: boolean;
};
export declare type Fixture = {
    props: ButtonLinkProps;
};
export default propTypes;
//# sourceMappingURL=types.d.ts.map