import React from 'react';
export type ButtonVariant = 'solid' | 'outline' | 'ghost' | 'link' | 'unstyled' | 'primary' | 'secondary' | 'danger';
export type ButtonSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
export type ButtonColorScheme = 'primary' | 'secondary' | 'success' | 'warning' | 'error' | 'info' | 'neutral' | 'red';
export interface ButtonProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'color'> {
    variant?: ButtonVariant;
    size?: ButtonSize;
    colorScheme?: ButtonColorScheme;
    leftIcon?: React.ReactNode;
    rightIcon?: React.ReactNode;
    isLoading?: boolean;
    loadingText?: string;
    isFullWidth?: boolean;
    isDisabled?: boolean;
    isActive?: boolean;
    isFocusable?: boolean;
    spinner?: React.ReactNode;
    spinnerPlacement?: 'start' | 'end';
    form?: string;
    type?: 'button' | 'submit' | 'reset';
    name?: string;
    value?: string;
    className?: string;
    wrapperClassName?: string;
    iconClassName?: string;
    spinnerClassName?: string;
    onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;
    onFocus?: (event: React.FocusEvent<HTMLButtonElement>) => void;
    onBlur?: (event: React.FocusEvent<HTMLButtonElement>) => void;
    onKeyDown?: (event: React.KeyboardEvent<HTMLButtonElement>) => void;
    onKeyUp?: (event: React.KeyboardEvent<HTMLButtonElement>) => void;
    onMouseEnter?: (event: React.MouseEvent<HTMLButtonElement>) => void;
    onMouseLeave?: (event: React.MouseEvent<HTMLButtonElement>) => void;
    onMouseDown?: (event: React.MouseEvent<HTMLButtonElement>) => void;
    onMouseUp?: (event: React.MouseEvent<HTMLButtonElement>) => void;
    onTouchStart?: (event: React.TouchEvent<HTMLButtonElement>) => void;
    onTouchEnd?: (event: React.TouchEvent<HTMLButtonElement>) => void;
    onTouchMove?: (event: React.TouchEvent<HTMLButtonElement>) => void;
    onTouchCancel?: (event: React.TouchEvent<HTMLButtonElement>) => void;
}
declare const MemoizedButton: React.MemoExoticComponent<React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>>;
export { MemoizedButton as Button };
export default MemoizedButton;
//# sourceMappingURL=Button.d.ts.map