import { MouseEventHandler, AriaAttributes } from 'react'; import { Size } from '../../shared/src/size.js'; import { MergedRef } from '../../shared/src/useMergedRefs.js'; import { InternalProps, InteractionProps } from '../../shared/src/types.js'; import '../../styling/src/styled-system/props-handler.js'; import 'csstype'; import '../../styling/src/useResponsiveValue.js'; import '../../styling/src/BreakpointProvider.js'; import 'react/jsx-runtime'; import '../../shared/src/type-fest.js'; import '../../styling/src/styled-system/StylingContext.js'; type ButtonVariant = "primary" | "secondary" | "tertiary" | "negative" | "upsell"; interface UseButtonProps extends Partial, InteractionProps { autoFocus?: boolean | number; cssModule?: string; fluid?: boolean; inherit?: boolean; loading?: boolean; onClick: MouseEventHandler; size?: Size; type?: "button" | "submit" | "reset"; variant?: ButtonVariant; } interface UseButtonReturn { "aria-busy": boolean; "aria-live": AriaAttributes["aria-live"]; className: string; onClick: MouseEventHandler; ref: MergedRef; type: UseButtonProps["type"]; } declare function useButton({ active, as, autoFocus, cssModule: module, fluid, focus, forwardedRef, hover, inherit, loading, onClick, size, type, variant }: UseButtonProps): UseButtonReturn; export { type ButtonVariant, type UseButtonProps, type UseButtonReturn, useButton };