import { ButtonProps as RACButtonProps } from 'react-aria-components/Button';
import { ContextValue } from 'react-aria-components/slots';
import { StyleProps } from './style-utils';
import { ReactNode } from 'react';
import { FocusableRefValue, GlobalDOMAttributes } from '@react-types/shared';
import { LinkProps } from 'react-aria-components/Link';
interface ButtonStyleProps {
    /**
     * The [visual style](https://spectrum.adobe.com/page/button/#Options) of the button.
     *
     * @default 'primary'
     */
    variant?: 'primary' | 'secondary' | 'accent' | 'negative' | 'premium' | 'genai';
    /**
     * The background style of the Button.
     *
     * @default 'fill'
     */
    fillStyle?: 'fill' | 'outline';
    /**
     * The size of the Button.
     *
     * @default 'M'
     */
    size?: 'S' | 'M' | 'L' | 'XL';
    /** The static color style to apply. Useful when the Button appears over a color background. */
    staticColor?: 'white' | 'black' | 'auto';
}
export interface ButtonProps extends Omit<RACButtonProps, 'className' | 'style' | 'render' | 'children' | 'onHover' | 'onHoverStart' | 'onHoverEnd' | 'onHoverChange' | 'onClick' | keyof GlobalDOMAttributes>, StyleProps, ButtonStyleProps {
    /** The content to display in the Button. */
    children: ReactNode;
}
export interface LinkButtonProps extends Omit<LinkProps, 'className' | 'style' | 'render' | 'children' | 'onClick' | keyof GlobalDOMAttributes>, StyleProps, ButtonStyleProps {
    /** The content to display in the Button. */
    children: ReactNode;
}
export declare const ButtonContext: import("react").Context<ContextValue<Partial<ButtonProps>, FocusableRefValue<HTMLButtonElement, HTMLButtonElement>>>;
export declare const LinkButtonContext: import("react").Context<ContextValue<Partial<ButtonProps>, FocusableRefValue<HTMLAnchorElement, HTMLAnchorElement>>>;
export declare function usePendingState(isPending: boolean): {
    isProgressVisible: boolean;
};
/**
 * Buttons allow users to perform an action.
 * They have multiple styles for various needs, and are ideal for calling attention to
 * where a user needs to do something in order to move forward in a flow.
 */
export declare const Button: import("react").ForwardRefExoticComponent<ButtonProps & import("react").RefAttributes<FocusableRefValue<HTMLButtonElement, HTMLButtonElement>>>;
/**
 * A LinkButton combines the functionality of a link with the appearance of a button. Useful for allowing users to navigate to another page.
 */
export declare const LinkButton: import("react").ForwardRefExoticComponent<LinkButtonProps & import("react").RefAttributes<FocusableRefValue<HTMLAnchorElement, HTMLAnchorElement>>>;
export {};
