import type { ReactNode, Ref } from 'react';
import type { DefaultTheme } from 'styled-components';
import type { BaseProps, ForwardRefForwardPropsComponent, PropsWithDefaults, AsProp } from '../../types';
export interface ButtonProps extends BaseProps, AsProp {
    /** Text or content for the Button. */
    children: ReactNode;
    /**
     * Determines if the Button will be disabled.
     * @default false
     */
    disabled?: boolean;
    /** A location to navigate to. Passing an href will render an anchor styled as a Button. */
    href?: string;
    /**
     * Controls the styling of the Button.
     * @default 'secondary'
     */
    variant?: 'primary' | 'secondary' | 'simple' | 'link' | 'text';
    /**
     * Controls the behavior of a Button within a Form.
     * @default 'button'
     */
    type?: 'button' | 'reset' | 'submit';
    /**
     * Set the Icon prop to `true` if you're using just an Icon in your Button. Make sure to pass an Icon as children if `true`.
     * @default false
     */
    icon?: boolean;
    /**
     * Used for a smaller sized button.
     * @default false
     */
    compact?: boolean;
    /** The label text will be used inside a Tooltip. */
    label?: string;
    /** The aria label text will be inserted as the aria-label on the Button. */
    'aria-label'?: string;
    /**
     * Optionally renders an indeterminate progress indicator in a button.
     * @default false
     */
    loading?: boolean;
    /** Ref forwarded to the wrapping element. */
    ref?: Ref<HTMLButtonElement | HTMLAnchorElement>;
}
type ButtonPropsWithDefaults = PropsWithDefaults<ButtonProps, 'variant' | 'type' | 'disabled' | 'icon' | 'loading'>;
export declare const StyledButton: import("styled-components").StyledComponent<"button", DefaultTheme, ButtonPropsWithDefaults, never>;
export declare const StyledButtonLink: import("styled-components").StyledComponent<"a", DefaultTheme, Pick<ButtonPropsWithDefaults, "href" | "variant"> & Pick<ButtonProps, "loading">, never>;
declare const Button: ForwardRefForwardPropsComponent<ButtonProps>;
export default Button;
//# sourceMappingURL=Button.d.ts.map