import React from 'react';
import { ButtonAttributes, Props, Size } from '../utils/types';
declare type ButtonSize = Extract<Size, 'sm' | 'md' | 'lg'>;
export declare const buttonType: {
    readonly button: "button";
    readonly reset: "reset";
    readonly submit: "submit";
};
export declare const buttonModifier: {
    readonly block: "block";
    readonly error: "error";
    readonly iconOnly: "icon-only";
    readonly loading: "loading";
    readonly open: "open";
    readonly withArrow: "with-arrow";
};
export declare const buttonVariant: {
    readonly actionOutline: "action-outline";
    readonly dropdown: "dropdown";
    readonly dropdownSecondary: "dropdown-secondary";
    readonly errorOutline: "error-outline";
    readonly form: "form";
    readonly infoOutline: "info-outline";
    readonly primary: "primary";
    readonly secondary: "secondary";
    readonly successOutline: "success-outline";
    readonly tertiary: "tertiary";
};
export declare type ButtonType = typeof buttonType[keyof typeof buttonType];
export declare type ButtonModifier = typeof buttonModifier[keyof typeof buttonModifier];
export declare type ButtonVariant = typeof buttonVariant[keyof typeof buttonVariant];
export interface ButtonProps extends ButtonAttributes, Props {
    /**
     * @since 10.19.0
     */
    block?: boolean;
    /**
     * @since 10.19.0
     */
    className?: string;
    /**
     * @since 10.19.0
     */
    disabled?: boolean;
    /**
     * @since 10.19.0
     */
    dropdown?: boolean;
    /**
     * @since 10.19.0
     */
    error?: boolean;
    /**
     * @since 10.19.0
     */
    icon?: string;
    /**
     * @since 10.19.0
     */
    loading?: boolean;
    /**
     * @since 10.19.0
     */
    open?: boolean;
    /**
     * @since 10.19.0
     */
    size?: ButtonSize;
    /**
     * @since 10.19.0
     */
    tabIndex?: number;
    /**
     * @since 10.19.0
     */
    type?: ButtonType;
    /**
     * @since 10.19.0
     */
    variant?: ButtonVariant;
}
export declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
export default Button;
