import * as react from 'react';
import react__default from 'react';
import { VariantProps } from 'class-variance-authority';
import { button, buttonGroup } from '@shakibdshy/tailwind-theme';

type ButtonColor = 'primary' | 'secondary' | 'info' | 'neutral' | 'error' | 'warning' | 'success';
type ButtonVariant = 'primary' | 'outline' | 'flat' | 'light' | 'ghost' | 'text';
type ButtonSize = 'sm' | 'md' | 'lg' | 'xl' | '2xl';
type ButtonRounded = 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full' | 'none';
type ButtonVariants = VariantProps<typeof button>;
interface RippleOptions {
    hasRipple?: boolean;
    rippleColor?: string;
    rippleDuration?: number;
}
interface AriaButtonProps {
    "aria-label"?: string;
    "aria-describedby"?: string;
    "aria-pressed"?: boolean;
    "aria-expanded"?: boolean;
    "aria-controls"?: string;
    "aria-haspopup"?: boolean | "menu" | "dialog" | "listbox" | "tree" | "grid";
}
interface CommonProps extends ButtonVariants, AriaButtonProps, RippleOptions {
    className?: string;
    isDisabled?: boolean;
    isLoading?: boolean;
    spinner?: React.ReactNode;
    children: React.ReactNode;
    color?: ButtonColor;
    variant?: ButtonVariant;
    size?: ButtonSize;
    rounded?: ButtonRounded;
    spinnerColor?: ButtonColor | 'white';
}
interface ButtonAsButtonProps extends CommonProps {
    as?: "button";
    type?: "button" | "submit" | "reset";
}
type OmitCommonProps = Omit<CommonProps, "children" | keyof AriaButtonProps>;
type AnchorPropsWithoutColor = Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'color'>;
interface ButtonAsAnchorProps extends AnchorPropsWithoutColor, OmitCommonProps {
    as: "a";
    href: string;
}
type ButtonProps = ButtonAsButtonProps | ButtonAsAnchorProps;

declare const Button: react__default.ForwardRefExoticComponent<ButtonProps & react__default.RefAttributes<HTMLAnchorElement | HTMLButtonElement>>;

type ButtonGroupVariants = VariantProps<typeof buttonGroup>;
interface ButtonGroupAriaProps {
    "aria-label"?: string;
    "aria-orientation"?: "horizontal" | "vertical";
    role?: "group" | "toolbar";
}
interface ButtonGroupProps extends ButtonGroupVariants, ButtonGroupAriaProps {
    className?: string;
    children: react__default.ReactNode;
}

type UseButtonGroupProps = ButtonGroupProps;
declare function useButtonGroup(props: UseButtonGroupProps): {
    groupProps: {
        className: string;
        "aria-label"?: string;
        "aria-orientation"?: "horizontal" | "vertical";
        role?: "group" | "toolbar";
    };
    children: react.ReactNode;
};

declare function ButtonGroup(props: UseButtonGroupProps): react__default.JSX.Element;

type UseButtonProps = ButtonProps;
declare function useButton(props: UseButtonProps): {
    buttonProps: {
        "aria-label"?: string;
        "aria-describedby"?: string;
        "aria-pressed"?: boolean;
        "aria-expanded"?: boolean;
        "aria-controls"?: string;
        "aria-haspopup"?: boolean | "menu" | "dialog" | "listbox" | "tree" | "grid";
        className: string;
    } | {
        href: string;
        ping?: string | undefined | undefined;
        role?: react.AriaRole | undefined;
        "aria-label"?: string | undefined | undefined;
        "aria-describedby"?: string | undefined | undefined;
        "aria-pressed"?: boolean | "false" | "mixed" | "true" | undefined | undefined;
        "aria-expanded"?: (boolean | "true" | "false") | undefined;
        "aria-controls"?: string | undefined | undefined;
        "aria-haspopup"?: boolean | "false" | "true" | "menu" | "listbox" | "tree" | "grid" | "dialog" | undefined | undefined;
        download?: any;
        hrefLang?: string | undefined | undefined;
        media?: string | undefined | undefined;
        target?: react.HTMLAttributeAnchorTarget | undefined;
        referrerPolicy?: react.HTMLAttributeReferrerPolicy | undefined;
        defaultChecked?: boolean | undefined | undefined;
        defaultValue?: string | number | readonly string[] | undefined;
        suppressContentEditableWarning?: boolean | undefined | undefined;
        suppressHydrationWarning?: boolean | undefined | undefined;
        accessKey?: string | undefined | undefined;
        autoCapitalize?: "off" | "none" | "on" | "sentences" | "words" | "characters" | undefined | (string & {}) | undefined;
        autoFocus?: boolean | undefined | undefined;
        contentEditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
        contextMenu?: string | undefined | undefined;
        dir?: string | undefined | undefined;
        draggable?: (boolean | "true" | "false") | undefined;
        enterKeyHint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
        hidden?: boolean | undefined | undefined;
        id?: string | undefined | undefined;
        lang?: string | undefined | undefined;
        nonce?: string | undefined | undefined;
        slot?: string | undefined | undefined;
        spellCheck?: (boolean | "true" | "false") | undefined;
        style?: react.CSSProperties | undefined;
        tabIndex?: number | undefined | undefined;
        title?: string | undefined | undefined;
        translate?: "yes" | "no" | undefined | undefined;
        radioGroup?: string | undefined | undefined;
        about?: string | undefined | undefined;
        content?: string | undefined | undefined;
        datatype?: string | undefined | undefined;
        inlist?: any;
        prefix?: string | undefined | undefined;
        property?: string | undefined | undefined;
        rel?: string | undefined | undefined;
        resource?: string | undefined | undefined;
        rev?: string | undefined | undefined;
        typeof?: string | undefined | undefined;
        vocab?: string | undefined | undefined;
        autoCorrect?: string | undefined | undefined;
        autoSave?: string | undefined | undefined;
        itemProp?: string | undefined | undefined;
        itemScope?: boolean | undefined | undefined;
        itemType?: string | undefined | undefined;
        itemID?: string | undefined | undefined;
        itemRef?: string | undefined | undefined;
        results?: number | undefined | undefined;
        security?: string | undefined | undefined;
        unselectable?: "on" | "off" | undefined | undefined;
        popover?: "" | "auto" | "manual" | undefined | undefined;
        popoverTargetAction?: "toggle" | "show" | "hide" | undefined | undefined;
        popoverTarget?: string | undefined | undefined;
        inert?: boolean | undefined | undefined;
        inputMode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search" | undefined | undefined;
        is?: string | undefined | undefined;
        "aria-activedescendant"?: string | undefined | undefined;
        "aria-atomic"?: (boolean | "true" | "false") | undefined;
        "aria-autocomplete"?: "none" | "inline" | "list" | "both" | undefined | undefined;
        "aria-braillelabel"?: string | undefined | undefined;
        "aria-brailleroledescription"?: string | undefined | undefined;
        "aria-busy"?: (boolean | "true" | "false") | undefined;
        "aria-checked"?: boolean | "false" | "mixed" | "true" | undefined | undefined;
        "aria-colcount"?: number | undefined | undefined;
        "aria-colindex"?: number | undefined | undefined;
        "aria-colindextext"?: string | undefined | undefined;
        "aria-colspan"?: number | undefined | undefined;
        "aria-current"?: boolean | "false" | "true" | "page" | "step" | "location" | "date" | "time" | undefined | undefined;
        "aria-description"?: string | undefined | undefined;
        "aria-details"?: string | undefined | undefined;
        "aria-disabled"?: (boolean | "true" | "false") | undefined;
        "aria-dropeffect"?: "none" | "copy" | "execute" | "link" | "move" | "popup" | undefined | undefined;
        "aria-errormessage"?: string | undefined | undefined;
        "aria-flowto"?: string | undefined | undefined;
        "aria-grabbed"?: (boolean | "true" | "false") | undefined;
        "aria-hidden"?: (boolean | "true" | "false") | undefined;
        "aria-invalid"?: boolean | "false" | "true" | "grammar" | "spelling" | undefined | undefined;
        "aria-keyshortcuts"?: string | undefined | undefined;
        "aria-labelledby"?: string | undefined | undefined;
        "aria-level"?: number | undefined | undefined;
        "aria-live"?: "off" | "assertive" | "polite" | undefined | undefined;
        "aria-modal"?: (boolean | "true" | "false") | undefined;
        "aria-multiline"?: (boolean | "true" | "false") | undefined;
        "aria-multiselectable"?: (boolean | "true" | "false") | undefined;
        "aria-orientation"?: "horizontal" | "vertical" | undefined | undefined;
        "aria-owns"?: string | undefined | undefined;
        "aria-placeholder"?: string | undefined | undefined;
        "aria-posinset"?: number | undefined | undefined;
        "aria-readonly"?: (boolean | "true" | "false") | undefined;
        "aria-relevant"?: "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text" | "text additions" | "text removals" | undefined | undefined;
        "aria-required"?: (boolean | "true" | "false") | undefined;
        "aria-roledescription"?: string | undefined | undefined;
        "aria-rowcount"?: number | undefined | undefined;
        "aria-rowindex"?: number | undefined | undefined;
        "aria-rowindextext"?: string | undefined | undefined;
        "aria-rowspan"?: number | undefined | undefined;
        "aria-selected"?: (boolean | "true" | "false") | undefined;
        "aria-setsize"?: number | undefined | undefined;
        "aria-sort"?: "none" | "ascending" | "descending" | "other" | undefined | undefined;
        "aria-valuemax"?: number | undefined | undefined;
        "aria-valuemin"?: number | undefined | undefined;
        "aria-valuenow"?: number | undefined | undefined;
        "aria-valuetext"?: string | undefined | undefined;
        dangerouslySetInnerHTML?: {
            __html: string | TrustedHTML;
        } | undefined | undefined;
        onCopy?: react.ClipboardEventHandler<HTMLAnchorElement> | undefined;
        onCopyCapture?: react.ClipboardEventHandler<HTMLAnchorElement> | undefined;
        onCut?: react.ClipboardEventHandler<HTMLAnchorElement> | undefined;
        onCutCapture?: react.ClipboardEventHandler<HTMLAnchorElement> | undefined;
        onPaste?: react.ClipboardEventHandler<HTMLAnchorElement> | undefined;
        onPasteCapture?: react.ClipboardEventHandler<HTMLAnchorElement> | undefined;
        onCompositionEnd?: react.CompositionEventHandler<HTMLAnchorElement> | undefined;
        onCompositionEndCapture?: react.CompositionEventHandler<HTMLAnchorElement> | undefined;
        onCompositionStart?: react.CompositionEventHandler<HTMLAnchorElement> | undefined;
        onCompositionStartCapture?: react.CompositionEventHandler<HTMLAnchorElement> | undefined;
        onCompositionUpdate?: react.CompositionEventHandler<HTMLAnchorElement> | undefined;
        onCompositionUpdateCapture?: react.CompositionEventHandler<HTMLAnchorElement> | undefined;
        onFocus?: react.FocusEventHandler<HTMLAnchorElement> | undefined;
        onFocusCapture?: react.FocusEventHandler<HTMLAnchorElement> | undefined;
        onBlur?: react.FocusEventHandler<HTMLAnchorElement> | undefined;
        onBlurCapture?: react.FocusEventHandler<HTMLAnchorElement> | undefined;
        onChange?: react.FormEventHandler<HTMLAnchorElement> | undefined;
        onChangeCapture?: react.FormEventHandler<HTMLAnchorElement> | undefined;
        onBeforeInput?: react.FormEventHandler<HTMLAnchorElement> | undefined;
        onBeforeInputCapture?: react.FormEventHandler<HTMLAnchorElement> | undefined;
        onInput?: react.FormEventHandler<HTMLAnchorElement> | undefined;
        onInputCapture?: react.FormEventHandler<HTMLAnchorElement> | undefined;
        onReset?: react.FormEventHandler<HTMLAnchorElement> | undefined;
        onResetCapture?: react.FormEventHandler<HTMLAnchorElement> | undefined;
        onSubmit?: react.FormEventHandler<HTMLAnchorElement> | undefined;
        onSubmitCapture?: react.FormEventHandler<HTMLAnchorElement> | undefined;
        onInvalid?: react.FormEventHandler<HTMLAnchorElement> | undefined;
        onInvalidCapture?: react.FormEventHandler<HTMLAnchorElement> | undefined;
        onLoad?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onLoadCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onError?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onErrorCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onKeyDown?: react.KeyboardEventHandler<HTMLAnchorElement> | undefined;
        onKeyDownCapture?: react.KeyboardEventHandler<HTMLAnchorElement> | undefined;
        onKeyPress?: react.KeyboardEventHandler<HTMLAnchorElement> | undefined;
        onKeyPressCapture?: react.KeyboardEventHandler<HTMLAnchorElement> | undefined;
        onKeyUp?: react.KeyboardEventHandler<HTMLAnchorElement> | undefined;
        onKeyUpCapture?: react.KeyboardEventHandler<HTMLAnchorElement> | undefined;
        onAbort?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onAbortCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onCanPlay?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onCanPlayCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onCanPlayThrough?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onCanPlayThroughCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onDurationChange?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onDurationChangeCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onEmptied?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onEmptiedCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onEncrypted?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onEncryptedCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onEnded?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onEndedCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onLoadedData?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onLoadedDataCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onLoadedMetadata?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onLoadedMetadataCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onLoadStart?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onLoadStartCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onPause?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onPauseCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onPlay?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onPlayCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onPlaying?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onPlayingCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onProgress?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onProgressCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onRateChange?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onRateChangeCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onResize?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onResizeCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onSeeked?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onSeekedCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onSeeking?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onSeekingCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onStalled?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onStalledCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onSuspend?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onSuspendCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onTimeUpdate?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onTimeUpdateCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onVolumeChange?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onVolumeChangeCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onWaiting?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onWaitingCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onAuxClick?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
        onAuxClickCapture?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
        onClick?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
        onClickCapture?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
        onContextMenu?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
        onContextMenuCapture?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
        onDoubleClick?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
        onDoubleClickCapture?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
        onDrag?: react.DragEventHandler<HTMLAnchorElement> | undefined;
        onDragCapture?: react.DragEventHandler<HTMLAnchorElement> | undefined;
        onDragEnd?: react.DragEventHandler<HTMLAnchorElement> | undefined;
        onDragEndCapture?: react.DragEventHandler<HTMLAnchorElement> | undefined;
        onDragEnter?: react.DragEventHandler<HTMLAnchorElement> | undefined;
        onDragEnterCapture?: react.DragEventHandler<HTMLAnchorElement> | undefined;
        onDragExit?: react.DragEventHandler<HTMLAnchorElement> | undefined;
        onDragExitCapture?: react.DragEventHandler<HTMLAnchorElement> | undefined;
        onDragLeave?: react.DragEventHandler<HTMLAnchorElement> | undefined;
        onDragLeaveCapture?: react.DragEventHandler<HTMLAnchorElement> | undefined;
        onDragOver?: react.DragEventHandler<HTMLAnchorElement> | undefined;
        onDragOverCapture?: react.DragEventHandler<HTMLAnchorElement> | undefined;
        onDragStart?: react.DragEventHandler<HTMLAnchorElement> | undefined;
        onDragStartCapture?: react.DragEventHandler<HTMLAnchorElement> | undefined;
        onDrop?: react.DragEventHandler<HTMLAnchorElement> | undefined;
        onDropCapture?: react.DragEventHandler<HTMLAnchorElement> | undefined;
        onMouseDown?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
        onMouseDownCapture?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
        onMouseEnter?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
        onMouseLeave?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
        onMouseMove?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
        onMouseMoveCapture?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
        onMouseOut?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
        onMouseOutCapture?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
        onMouseOver?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
        onMouseOverCapture?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
        onMouseUp?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
        onMouseUpCapture?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
        onSelect?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onSelectCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onTouchCancel?: react.TouchEventHandler<HTMLAnchorElement> | undefined;
        onTouchCancelCapture?: react.TouchEventHandler<HTMLAnchorElement> | undefined;
        onTouchEnd?: react.TouchEventHandler<HTMLAnchorElement> | undefined;
        onTouchEndCapture?: react.TouchEventHandler<HTMLAnchorElement> | undefined;
        onTouchMove?: react.TouchEventHandler<HTMLAnchorElement> | undefined;
        onTouchMoveCapture?: react.TouchEventHandler<HTMLAnchorElement> | undefined;
        onTouchStart?: react.TouchEventHandler<HTMLAnchorElement> | undefined;
        onTouchStartCapture?: react.TouchEventHandler<HTMLAnchorElement> | undefined;
        onPointerDown?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
        onPointerDownCapture?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
        onPointerMove?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
        onPointerMoveCapture?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
        onPointerUp?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
        onPointerUpCapture?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
        onPointerCancel?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
        onPointerCancelCapture?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
        onPointerEnter?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
        onPointerLeave?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
        onPointerOver?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
        onPointerOverCapture?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
        onPointerOut?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
        onPointerOutCapture?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
        onGotPointerCapture?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
        onGotPointerCaptureCapture?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
        onLostPointerCapture?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
        onLostPointerCaptureCapture?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
        onScroll?: react.UIEventHandler<HTMLAnchorElement> | undefined;
        onScrollCapture?: react.UIEventHandler<HTMLAnchorElement> | undefined;
        onWheel?: react.WheelEventHandler<HTMLAnchorElement> | undefined;
        onWheelCapture?: react.WheelEventHandler<HTMLAnchorElement> | undefined;
        onAnimationStart?: react.AnimationEventHandler<HTMLAnchorElement> | undefined;
        onAnimationStartCapture?: react.AnimationEventHandler<HTMLAnchorElement> | undefined;
        onAnimationEnd?: react.AnimationEventHandler<HTMLAnchorElement> | undefined;
        onAnimationEndCapture?: react.AnimationEventHandler<HTMLAnchorElement> | undefined;
        onAnimationIteration?: react.AnimationEventHandler<HTMLAnchorElement> | undefined;
        onAnimationIterationCapture?: react.AnimationEventHandler<HTMLAnchorElement> | undefined;
        onToggle?: react.ToggleEventHandler<HTMLAnchorElement> | undefined;
        onBeforeToggle?: react.ToggleEventHandler<HTMLAnchorElement> | undefined;
        onTransitionCancel?: react.TransitionEventHandler<HTMLAnchorElement> | undefined;
        onTransitionCancelCapture?: react.TransitionEventHandler<HTMLAnchorElement> | undefined;
        onTransitionEnd?: react.TransitionEventHandler<HTMLAnchorElement> | undefined;
        onTransitionEndCapture?: react.TransitionEventHandler<HTMLAnchorElement> | undefined;
        onTransitionRun?: react.TransitionEventHandler<HTMLAnchorElement> | undefined;
        onTransitionRunCapture?: react.TransitionEventHandler<HTMLAnchorElement> | undefined;
        onTransitionStart?: react.TransitionEventHandler<HTMLAnchorElement> | undefined;
        onTransitionStartCapture?: react.TransitionEventHandler<HTMLAnchorElement> | undefined;
        className: string;
    } | {
        type: string | undefined;
        disabled: boolean | undefined;
        "aria-label"?: string;
        "aria-describedby"?: string;
        "aria-pressed"?: boolean;
        "aria-expanded"?: boolean;
        "aria-controls"?: string;
        "aria-haspopup"?: boolean | "menu" | "dialog" | "listbox" | "tree" | "grid";
        className: string;
    } | {
        type: string | undefined;
        disabled: boolean | undefined;
        href: string;
        ping?: string | undefined | undefined;
        role?: react.AriaRole | undefined;
        "aria-label"?: string | undefined | undefined;
        "aria-describedby"?: string | undefined | undefined;
        "aria-pressed"?: boolean | "false" | "mixed" | "true" | undefined | undefined;
        "aria-expanded"?: (boolean | "true" | "false") | undefined;
        "aria-controls"?: string | undefined | undefined;
        "aria-haspopup"?: boolean | "false" | "true" | "menu" | "listbox" | "tree" | "grid" | "dialog" | undefined | undefined;
        download?: any;
        hrefLang?: string | undefined | undefined;
        media?: string | undefined | undefined;
        target?: react.HTMLAttributeAnchorTarget | undefined;
        referrerPolicy?: react.HTMLAttributeReferrerPolicy | undefined;
        defaultChecked?: boolean | undefined | undefined;
        defaultValue?: string | number | readonly string[] | undefined;
        suppressContentEditableWarning?: boolean | undefined | undefined;
        suppressHydrationWarning?: boolean | undefined | undefined;
        accessKey?: string | undefined | undefined;
        autoCapitalize?: "off" | "none" | "on" | "sentences" | "words" | "characters" | undefined | (string & {}) | undefined;
        autoFocus?: boolean | undefined | undefined;
        contentEditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
        contextMenu?: string | undefined | undefined;
        dir?: string | undefined | undefined;
        draggable?: (boolean | "true" | "false") | undefined;
        enterKeyHint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
        hidden?: boolean | undefined | undefined;
        id?: string | undefined | undefined;
        lang?: string | undefined | undefined;
        nonce?: string | undefined | undefined;
        slot?: string | undefined | undefined;
        spellCheck?: (boolean | "true" | "false") | undefined;
        style?: react.CSSProperties | undefined;
        tabIndex?: number | undefined | undefined;
        title?: string | undefined | undefined;
        translate?: "yes" | "no" | undefined | undefined;
        radioGroup?: string | undefined | undefined;
        about?: string | undefined | undefined;
        content?: string | undefined | undefined;
        datatype?: string | undefined | undefined;
        inlist?: any;
        prefix?: string | undefined | undefined;
        property?: string | undefined | undefined;
        rel?: string | undefined | undefined;
        resource?: string | undefined | undefined;
        rev?: string | undefined | undefined;
        typeof?: string | undefined | undefined;
        vocab?: string | undefined | undefined;
        autoCorrect?: string | undefined | undefined;
        autoSave?: string | undefined | undefined;
        itemProp?: string | undefined | undefined;
        itemScope?: boolean | undefined | undefined;
        itemType?: string | undefined | undefined;
        itemID?: string | undefined | undefined;
        itemRef?: string | undefined | undefined;
        results?: number | undefined | undefined;
        security?: string | undefined | undefined;
        unselectable?: "on" | "off" | undefined | undefined;
        popover?: "" | "auto" | "manual" | undefined | undefined;
        popoverTargetAction?: "toggle" | "show" | "hide" | undefined | undefined;
        popoverTarget?: string | undefined | undefined;
        inert?: boolean | undefined | undefined;
        inputMode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search" | undefined | undefined;
        is?: string | undefined | undefined;
        "aria-activedescendant"?: string | undefined | undefined;
        "aria-atomic"?: (boolean | "true" | "false") | undefined;
        "aria-autocomplete"?: "none" | "inline" | "list" | "both" | undefined | undefined;
        "aria-braillelabel"?: string | undefined | undefined;
        "aria-brailleroledescription"?: string | undefined | undefined;
        "aria-busy"?: (boolean | "true" | "false") | undefined;
        "aria-checked"?: boolean | "false" | "mixed" | "true" | undefined | undefined;
        "aria-colcount"?: number | undefined | undefined;
        "aria-colindex"?: number | undefined | undefined;
        "aria-colindextext"?: string | undefined | undefined;
        "aria-colspan"?: number | undefined | undefined;
        "aria-current"?: boolean | "false" | "true" | "page" | "step" | "location" | "date" | "time" | undefined | undefined;
        "aria-description"?: string | undefined | undefined;
        "aria-details"?: string | undefined | undefined;
        "aria-disabled"?: (boolean | "true" | "false") | undefined;
        "aria-dropeffect"?: "none" | "copy" | "execute" | "link" | "move" | "popup" | undefined | undefined;
        "aria-errormessage"?: string | undefined | undefined;
        "aria-flowto"?: string | undefined | undefined;
        "aria-grabbed"?: (boolean | "true" | "false") | undefined;
        "aria-hidden"?: (boolean | "true" | "false") | undefined;
        "aria-invalid"?: boolean | "false" | "true" | "grammar" | "spelling" | undefined | undefined;
        "aria-keyshortcuts"?: string | undefined | undefined;
        "aria-labelledby"?: string | undefined | undefined;
        "aria-level"?: number | undefined | undefined;
        "aria-live"?: "off" | "assertive" | "polite" | undefined | undefined;
        "aria-modal"?: (boolean | "true" | "false") | undefined;
        "aria-multiline"?: (boolean | "true" | "false") | undefined;
        "aria-multiselectable"?: (boolean | "true" | "false") | undefined;
        "aria-orientation"?: "horizontal" | "vertical" | undefined | undefined;
        "aria-owns"?: string | undefined | undefined;
        "aria-placeholder"?: string | undefined | undefined;
        "aria-posinset"?: number | undefined | undefined;
        "aria-readonly"?: (boolean | "true" | "false") | undefined;
        "aria-relevant"?: "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text" | "text additions" | "text removals" | undefined | undefined;
        "aria-required"?: (boolean | "true" | "false") | undefined;
        "aria-roledescription"?: string | undefined | undefined;
        "aria-rowcount"?: number | undefined | undefined;
        "aria-rowindex"?: number | undefined | undefined;
        "aria-rowindextext"?: string | undefined | undefined;
        "aria-rowspan"?: number | undefined | undefined;
        "aria-selected"?: (boolean | "true" | "false") | undefined;
        "aria-setsize"?: number | undefined | undefined;
        "aria-sort"?: "none" | "ascending" | "descending" | "other" | undefined | undefined;
        "aria-valuemax"?: number | undefined | undefined;
        "aria-valuemin"?: number | undefined | undefined;
        "aria-valuenow"?: number | undefined | undefined;
        "aria-valuetext"?: string | undefined | undefined;
        dangerouslySetInnerHTML?: {
            __html: string | TrustedHTML;
        } | undefined | undefined;
        onCopy?: react.ClipboardEventHandler<HTMLAnchorElement> | undefined;
        onCopyCapture?: react.ClipboardEventHandler<HTMLAnchorElement> | undefined;
        onCut?: react.ClipboardEventHandler<HTMLAnchorElement> | undefined;
        onCutCapture?: react.ClipboardEventHandler<HTMLAnchorElement> | undefined;
        onPaste?: react.ClipboardEventHandler<HTMLAnchorElement> | undefined;
        onPasteCapture?: react.ClipboardEventHandler<HTMLAnchorElement> | undefined;
        onCompositionEnd?: react.CompositionEventHandler<HTMLAnchorElement> | undefined;
        onCompositionEndCapture?: react.CompositionEventHandler<HTMLAnchorElement> | undefined;
        onCompositionStart?: react.CompositionEventHandler<HTMLAnchorElement> | undefined;
        onCompositionStartCapture?: react.CompositionEventHandler<HTMLAnchorElement> | undefined;
        onCompositionUpdate?: react.CompositionEventHandler<HTMLAnchorElement> | undefined;
        onCompositionUpdateCapture?: react.CompositionEventHandler<HTMLAnchorElement> | undefined;
        onFocus?: react.FocusEventHandler<HTMLAnchorElement> | undefined;
        onFocusCapture?: react.FocusEventHandler<HTMLAnchorElement> | undefined;
        onBlur?: react.FocusEventHandler<HTMLAnchorElement> | undefined;
        onBlurCapture?: react.FocusEventHandler<HTMLAnchorElement> | undefined;
        onChange?: react.FormEventHandler<HTMLAnchorElement> | undefined;
        onChangeCapture?: react.FormEventHandler<HTMLAnchorElement> | undefined;
        onBeforeInput?: react.FormEventHandler<HTMLAnchorElement> | undefined;
        onBeforeInputCapture?: react.FormEventHandler<HTMLAnchorElement> | undefined;
        onInput?: react.FormEventHandler<HTMLAnchorElement> | undefined;
        onInputCapture?: react.FormEventHandler<HTMLAnchorElement> | undefined;
        onReset?: react.FormEventHandler<HTMLAnchorElement> | undefined;
        onResetCapture?: react.FormEventHandler<HTMLAnchorElement> | undefined;
        onSubmit?: react.FormEventHandler<HTMLAnchorElement> | undefined;
        onSubmitCapture?: react.FormEventHandler<HTMLAnchorElement> | undefined;
        onInvalid?: react.FormEventHandler<HTMLAnchorElement> | undefined;
        onInvalidCapture?: react.FormEventHandler<HTMLAnchorElement> | undefined;
        onLoad?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onLoadCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onError?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onErrorCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onKeyDown?: react.KeyboardEventHandler<HTMLAnchorElement> | undefined;
        onKeyDownCapture?: react.KeyboardEventHandler<HTMLAnchorElement> | undefined;
        onKeyPress?: react.KeyboardEventHandler<HTMLAnchorElement> | undefined;
        onKeyPressCapture?: react.KeyboardEventHandler<HTMLAnchorElement> | undefined;
        onKeyUp?: react.KeyboardEventHandler<HTMLAnchorElement> | undefined;
        onKeyUpCapture?: react.KeyboardEventHandler<HTMLAnchorElement> | undefined;
        onAbort?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onAbortCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onCanPlay?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onCanPlayCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onCanPlayThrough?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onCanPlayThroughCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onDurationChange?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onDurationChangeCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onEmptied?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onEmptiedCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onEncrypted?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onEncryptedCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onEnded?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onEndedCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onLoadedData?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onLoadedDataCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onLoadedMetadata?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onLoadedMetadataCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onLoadStart?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onLoadStartCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onPause?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onPauseCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onPlay?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onPlayCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onPlaying?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onPlayingCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onProgress?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onProgressCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onRateChange?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onRateChangeCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onResize?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onResizeCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onSeeked?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onSeekedCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onSeeking?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onSeekingCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onStalled?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onStalledCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onSuspend?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onSuspendCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onTimeUpdate?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onTimeUpdateCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onVolumeChange?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onVolumeChangeCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onWaiting?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onWaitingCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onAuxClick?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
        onAuxClickCapture?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
        onClick?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
        onClickCapture?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
        onContextMenu?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
        onContextMenuCapture?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
        onDoubleClick?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
        onDoubleClickCapture?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
        onDrag?: react.DragEventHandler<HTMLAnchorElement> | undefined;
        onDragCapture?: react.DragEventHandler<HTMLAnchorElement> | undefined;
        onDragEnd?: react.DragEventHandler<HTMLAnchorElement> | undefined;
        onDragEndCapture?: react.DragEventHandler<HTMLAnchorElement> | undefined;
        onDragEnter?: react.DragEventHandler<HTMLAnchorElement> | undefined;
        onDragEnterCapture?: react.DragEventHandler<HTMLAnchorElement> | undefined;
        onDragExit?: react.DragEventHandler<HTMLAnchorElement> | undefined;
        onDragExitCapture?: react.DragEventHandler<HTMLAnchorElement> | undefined;
        onDragLeave?: react.DragEventHandler<HTMLAnchorElement> | undefined;
        onDragLeaveCapture?: react.DragEventHandler<HTMLAnchorElement> | undefined;
        onDragOver?: react.DragEventHandler<HTMLAnchorElement> | undefined;
        onDragOverCapture?: react.DragEventHandler<HTMLAnchorElement> | undefined;
        onDragStart?: react.DragEventHandler<HTMLAnchorElement> | undefined;
        onDragStartCapture?: react.DragEventHandler<HTMLAnchorElement> | undefined;
        onDrop?: react.DragEventHandler<HTMLAnchorElement> | undefined;
        onDropCapture?: react.DragEventHandler<HTMLAnchorElement> | undefined;
        onMouseDown?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
        onMouseDownCapture?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
        onMouseEnter?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
        onMouseLeave?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
        onMouseMove?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
        onMouseMoveCapture?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
        onMouseOut?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
        onMouseOutCapture?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
        onMouseOver?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
        onMouseOverCapture?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
        onMouseUp?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
        onMouseUpCapture?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
        onSelect?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onSelectCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
        onTouchCancel?: react.TouchEventHandler<HTMLAnchorElement> | undefined;
        onTouchCancelCapture?: react.TouchEventHandler<HTMLAnchorElement> | undefined;
        onTouchEnd?: react.TouchEventHandler<HTMLAnchorElement> | undefined;
        onTouchEndCapture?: react.TouchEventHandler<HTMLAnchorElement> | undefined;
        onTouchMove?: react.TouchEventHandler<HTMLAnchorElement> | undefined;
        onTouchMoveCapture?: react.TouchEventHandler<HTMLAnchorElement> | undefined;
        onTouchStart?: react.TouchEventHandler<HTMLAnchorElement> | undefined;
        onTouchStartCapture?: react.TouchEventHandler<HTMLAnchorElement> | undefined;
        onPointerDown?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
        onPointerDownCapture?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
        onPointerMove?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
        onPointerMoveCapture?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
        onPointerUp?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
        onPointerUpCapture?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
        onPointerCancel?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
        onPointerCancelCapture?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
        onPointerEnter?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
        onPointerLeave?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
        onPointerOver?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
        onPointerOverCapture?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
        onPointerOut?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
        onPointerOutCapture?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
        onGotPointerCapture?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
        onGotPointerCaptureCapture?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
        onLostPointerCapture?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
        onLostPointerCaptureCapture?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
        onScroll?: react.UIEventHandler<HTMLAnchorElement> | undefined;
        onScrollCapture?: react.UIEventHandler<HTMLAnchorElement> | undefined;
        onWheel?: react.WheelEventHandler<HTMLAnchorElement> | undefined;
        onWheelCapture?: react.WheelEventHandler<HTMLAnchorElement> | undefined;
        onAnimationStart?: react.AnimationEventHandler<HTMLAnchorElement> | undefined;
        onAnimationStartCapture?: react.AnimationEventHandler<HTMLAnchorElement> | undefined;
        onAnimationEnd?: react.AnimationEventHandler<HTMLAnchorElement> | undefined;
        onAnimationEndCapture?: react.AnimationEventHandler<HTMLAnchorElement> | undefined;
        onAnimationIteration?: react.AnimationEventHandler<HTMLAnchorElement> | undefined;
        onAnimationIterationCapture?: react.AnimationEventHandler<HTMLAnchorElement> | undefined;
        onToggle?: react.ToggleEventHandler<HTMLAnchorElement> | undefined;
        onBeforeToggle?: react.ToggleEventHandler<HTMLAnchorElement> | undefined;
        onTransitionCancel?: react.TransitionEventHandler<HTMLAnchorElement> | undefined;
        onTransitionCancelCapture?: react.TransitionEventHandler<HTMLAnchorElement> | undefined;
        onTransitionEnd?: react.TransitionEventHandler<HTMLAnchorElement> | undefined;
        onTransitionEndCapture?: react.TransitionEventHandler<HTMLAnchorElement> | undefined;
        onTransitionRun?: react.TransitionEventHandler<HTMLAnchorElement> | undefined;
        onTransitionRunCapture?: react.TransitionEventHandler<HTMLAnchorElement> | undefined;
        onTransitionStart?: react.TransitionEventHandler<HTMLAnchorElement> | undefined;
        onTransitionStartCapture?: react.TransitionEventHandler<HTMLAnchorElement> | undefined;
        className: string;
    };
    isAnchor: boolean;
    isLoading: boolean | undefined;
    isDisabled: boolean | undefined;
    spinner: react.ReactNode;
    spinnerColor: "white" | ButtonColor | undefined;
    children: react.ReactNode;
    hasRipple: boolean;
    rippleColor: string | undefined;
    rippleDuration: number | undefined;
};

export { Button, type ButtonAsAnchorProps, type ButtonAsButtonProps, type ButtonColor, ButtonGroup, type ButtonGroupProps, type ButtonGroupVariants, type ButtonProps, type ButtonRounded, type ButtonSize, type ButtonVariant, type ButtonVariants, type CommonProps, type RippleOptions, type UseButtonProps, useButton, useButtonGroup };
