import { ReactNode, ButtonHTMLAttributes } from 'react';
export type ButtonVariant = "primary" | "secondary" | "outline" | "ghost";
export type ButtonSize = "small" | "medium" | "large";
export interface ButtonProps extends Omit, "disabled"> {
/** Button variant that changes the visual style */
variant?: ButtonVariant;
/** Size of the button */
size?: ButtonSize;
/** Custom class name */
className?: string;
/** Button contents */
children: ReactNode;
/** Optional icon to show before the button text */
leftIcon?: ReactNode;
/** Optional icon to show after the button text */
rightIcon?: ReactNode;
/** Whether the button is in loading state */
isLoading?: boolean;
/** Whether the button is disabled */
isDisabled?: boolean;
/** Full width button */
fullWidth?: boolean;
}
export declare const Button: ({ variant, size, className, children, leftIcon, rightIcon, isLoading, isDisabled, fullWidth, type, ...rest }: ButtonProps) => import("react").JSX.Element;