///
import type { ARIAButtonSlotProps } from '@fluentui/react-aria';
import type { ComponentProps } from '@fluentui/react-utilities';
import type { ComponentState } from '@fluentui/react-utilities';
import { ForwardRefComponent } from '@fluentui/react-utilities';
import * as React_2 from 'react';
import type { Slot } from '@fluentui/react-utilities';
import type { SlotClassNames } from '@fluentui/react-utilities';
/**
* Buttons give people a way to trigger an action.
*/
export declare const Button: ForwardRefComponent;
export declare const buttonClassNames: SlotClassNames;
/**
* @internal
* Internal context provider used to update default values between internal components
*/
export declare const ButtonContextProvider: React_2.Provider;
/**
* @internal
* Internal context value used to update default values between internal components
*/
export declare interface ButtonContextValue {
size?: ButtonSize;
}
export declare type ButtonProps = ComponentProps & {
/**
* A button can have its content and borders styled for greater emphasis or to be subtle.
* - 'secondary' (default): Gives emphasis to the button in such a way that it indicates a secondary action.
* - 'primary': Emphasizes the button as a primary action.
* - 'outline': Removes background styling.
* - 'subtle': Minimizes emphasis to blend into the background until hovered or focused.
* - 'transparent': Removes background and border styling.
*
* @default 'secondary'
*/
appearance?: 'secondary' | 'primary' | 'outline' | 'subtle' | 'transparent';
/**
* When set, allows the button to be focusable even when it has been disabled. This is used in scenarios where it
* is important to keep a consistent tab order for screen reader and keyboard users. The primary example of this
* pattern is when the disabled button is in a menu or a commandbar and is seldom used for standalone buttons.
*
* @default false
*/
disabledFocusable?: boolean;
/**
* A button can show that it cannot be interacted with.
*
* @default false
*/
disabled?: boolean;
/**
* A button can format its icon to appear before or after its content.
*
* @default 'before'
*/
iconPosition?: 'before' | 'after';
/**
* A button can be rounded, circular, or square.
*
* @default 'rounded'
*/
shape?: 'rounded' | 'circular' | 'square';
/**
* A button supports different sizes.
*
* @default 'medium'
*/
size?: ButtonSize;
};
/**
* A button supports different sizes.
*/
declare type ButtonSize = 'small' | 'medium' | 'large';
export declare type ButtonSlots = {
/**
* Root of the component that renders as either a `