import type { ButtonBaseProps } from '@fluentui/react-button'; import { ButtonBaseState } from '@fluentui/react-button'; import type { ButtonSlots as ButtonSlots_2 } from '@fluentui/react-button'; import type { ForwardRefComponent } from '@fluentui/react-utilities'; import { JSXElement } from '@fluentui/react-utilities'; import type * as React_2 from 'react'; /** * A button component that can be rendered as another tag or focusable when disabled. */ export declare const Button: ForwardRefComponent; /** * Button component props */ export declare type ButtonProps = ButtonBaseProps; /** * Button component slots */ export declare type ButtonSlots = ButtonSlots_2; /** * Button component state */ export declare type ButtonState = ButtonBaseState & { root: { /** * Data attribute set when the button is disabled. */ 'data-disabled'?: string; /** * Data attribute set when the button is disabled but still focusable. */ 'data-disabled-focusable'?: string; /** * Data attribute set when the button renders only an icon. */ 'data-icon-only'?: string; /** * Data attribute reflecting the icon position when an icon slot is present. */ 'data-icon-position'?: ButtonBaseState['iconPosition']; }; }; /** * Renders the final JSX of the Button component, given the state. */ export declare const renderButton: (state: ButtonBaseState) => JSXElement; /** * Returns the state for a Button component, given its props and ref. * The returned state can be modified with hooks before being passed to `renderButton`. */ export declare const useButton: (props: ButtonProps, ref: React_2.Ref) => ButtonState; export { }