import React, { MouseEventHandler } from "react";
import { PressEvent } from "@react-types/shared";
export declare type ButtonProps = React.PropsWithChildren<{
    /** A React ref to attach to the rendered Button */
    ref?: React.ForwardedRef<HTMLButtonElement>;
    /** An HTML ID attribute that will be attached to the the rendered component. Useful for targeting it from tests */
    id?: string;
    /** Controls the type of button that is rendered */
    type?: "button" | "reset" | "submit";
    /** Controls if this button should steal focus when mounted */
    autoFocus?: boolean;
    /** Controls if this button is disabled */
    isDisabled?: boolean;
    /** Controls if the button will grow to fill its parent */
    fillParent?: boolean;
    /** Icon element will be placed before the children. */
    icon?: string;
    /** Icon element size. */
    iconSize?: "xs" | "sm" | "md" | "lg" | "xl";
    /** Controls if the button shows Loader */
    isLoading?: boolean;
    /** Callback invoked when this button is pressed */
    onPress?: (e: PressEvent) => void;
    /**
     * @deprecated Use `onPress` instead.
     *
     * The only reason this exists is so that this Button can be used inside `next/link`s (https://nextjs.org/docs/api-reference/next/link#if-the-child-is-a-custom-component-that-wraps-an-a-tag says `onClick` must be a supported prop)
     * `next/link` overrides the `onClick` handler of its child to do client-side navigation (https://github.com/vercel/next.js/blob/5e185fc5da227801d3f12724be3577f4a719aa69/packages/next/client/link.tsx#L284)
     */
    onClick?: MouseEventHandler<HTMLButtonElement>;
    /**
     * Controls what kind of button this is.
     *
     * _primary_:
     * _secondary_:
     * _positive_:
     * _negative_:
     * _quiet_: Useful when only the functionality of a button is needed, without affecting styles of the content
     */
    variant?: "primary" | "secondary" | "positive" | "negative" | "quiet" | "link";
}>;
export declare const Button: React.ForwardRefExoticComponent<Pick<ButtonProps, "children" | "autoFocus" | "id" | "isDisabled" | "onClick" | "variant" | "onPress" | "icon" | "type" | "fillParent" | "isLoading" | "iconSize"> & React.RefAttributes<HTMLButtonElement>>;
