import { ComponentPropsWithoutRef, Ref } from 'react';
import { ButtonStylesProps } from './Button.styles';
export interface ButtonProps extends Omit<ComponentPropsWithoutRef<'button'>, 'disabled'>, ButtonStylesProps {
    /**
     * Change the component to the HTML tag or custom component of the only child.
     */
    asChild?: boolean;
    /**
     * Display a spinner to indicate to the user that the button is loading something after they interacted with it.
     */
    isLoading?: boolean;
    /**
     * If your loading state should only display a spinner, it's better to specify a label for it (a11y).
     */
    loadingLabel?: string;
    /**
     * If your loading state should also display a label, you can use this prop instead of `loadingLabel`.
     * **Please note that using this can result in layout shifting when the Button goes from loading state to normal state.**
     */
    loadingText?: string;
    ref?: Ref<HTMLButtonElement>;
}
export declare const Button: {
    ({ children, design, disabled, intent, isLoading, loadingLabel, loadingText, shape, size, asChild, className, underline, ref, ...others }: ButtonProps): import("react/jsx-runtime").JSX.Element;
    displayName: string;
};
