import { default as React } from 'react';
import { LoaderSizeTypes, LoaderVariantTypes } from '../../loaders/loader';
import { TooltipPlacement, TooltipColor } from '../../common/tooltip';
type ShapeNames = 'rounded' | 'pill' | 'circle';
type VariantNames = 'solid' | 'ghost' | 'transparent';
type ColorNames = 'primary' | 'white' | 'gray' | 'success' | 'info' | 'warning' | 'danger';
type SizeNames = 'large' | 'medium' | 'small' | 'mini' | 'tiny';
export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
    isLoading?: boolean;
    disabled?: boolean;
    shape?: ShapeNames;
    variant?: VariantNames;
    color?: ColorNames;
    size?: SizeNames;
    fullWidth?: boolean;
    loaderSize?: LoaderSizeTypes;
    loaderVariant?: LoaderVariantTypes;
    /** Tooltip text or content to display on hover */
    tooltip?: React.ReactNode;
    /** Tooltip placement relative to button */
    tooltipPlacement?: TooltipPlacement;
    /** Tooltip color theme */
    tooltipColor?: TooltipColor;
    /** Show an arrow on the tooltip */
    tooltipArrow?: boolean;
    onClick?: React.MouseEventHandler<HTMLButtonElement>;
    'aria-label'?: string;
    'aria-describedby'?: string;
}
export declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
export default Button;
