import React, { MouseEvent, ReactNode } from 'react';
import { ButtonProps as AriaButtonProps } from 'react-aria-components';
import './Button.scss';
export declare enum ButtonType {
    Primary = "primary",
    Secondary = "secondary",
    Tertiary = "tertiary",
    Discovery = "discovery",
    Alert = "alert",
    Warning = "warning",
    Success = "success",
    Disabled = "disabled"
}
export type ButtonProps = Omit<AriaButtonProps, 'type'> & {
    type?: ButtonType | string;
    size?: 'small' | 'standard';
    disabled?: boolean;
    leftIcon?: ReactNode;
    rightIcon?: ReactNode;
    isLoading?: boolean;
    onClick?: (e: MouseEvent) => void;
    style?: React.CSSProperties;
    children?: ReactNode | string;
    htmlType?: AriaButtonProps['type'];
};
/**
 * Button Component
 * @param props
 * @param {object} props.children - The content of the Button
 * @param {string} props.className - The class name of the Button
 * @param {ButtonType | string} props.type - {ButtonType | string} The type of the Button, including primary, secondary, tertiary, discovery, alert, warning, success, disabled
 * @param {AriaButtonProps['type']} props.htmlType - The html type of the Button, such as `submit`, `reset`, or `button`
 * @param {boolean} props.disabled - The disabled state of the Button
 * @param {'small' | 'standard'} props.size - The size of the Button
 * @param {ReactNode} props.leftIcon - The left icon of the Button
 * @param {ReactNode} props.rightIcon - The right icon of the Button
 * @param {boolean} props.isLoading - The loading state of the Button
 * @param {function} props.onClick - The click event handler of the Button
 * @param {function} props.onPress - The press event handler of the Button
 * @param {function} props.onHoverStart - The hover start event handler of the Button
 * @param {function} props.onHoverEnd - The hover end event handler of the Button
 * @param {function} props.onHoverChange - The hover change event handler of the Button
 * @param {React.CSSProperties} props.style - The style of the Button
 * @returns {ReactNode} - The Button component
 */
export default function Button(props: ButtonProps): import("react/jsx-runtime").JSX.Element;
