import React, { type ElementType, type ButtonHTMLAttributes, type AnchorHTMLAttributes } from 'react';
import { type EIconName } from '../Icon';
import { TAnalyticsEvent } from '../../types/analytics';
export type ButtonVariant = 'primary' | 'primary-invert' | 'secondary' | 'tertiary' | 'muted' | 'muted-invert' | 'ghost';
type ButtonSize = 'xs' | 'sm' | 'md' | 'lg';
interface BaseButtonProps {
    variant?: ButtonVariant;
    size?: ButtonSize;
    as?: ElementType;
    prefixIcon?: EIconName;
    suffixIcon?: EIconName;
    analyticsProps?: TAnalyticsEvent;
    loading?: boolean;
    onClick?: (event: React.MouseEvent<HTMLButtonElement> | React.MouseEvent<HTMLAnchorElement>) => void;
}
export type ButtonProps = BaseButtonProps & ButtonHTMLAttributes<HTMLButtonElement> & AnchorHTMLAttributes<HTMLAnchorElement>;
export declare const Button: React.ForwardRefExoticComponent<Omit<ButtonProps, "className"> & React.RefAttributes<HTMLElement>>;
export {};
