import { ButtonHTMLAttributes, FC, ReactNode, Ref } from 'react';
export interface ButtonBaseProps extends ButtonHTMLAttributes {
/**
* Defines the visual style of the button, affecting color schemes and emphasis.
*/
variant?: 'primary' | 'secondary';
/**
* Adjusts the button's structural appearance (background, border, etc.).
*/
appearance?: 'fill' | 'outline' | 'ghost' | 'transparent';
/**
* Disables the button when true.
* Prevents user interaction and applies a visually disabled state.
*/
disabled?: boolean;
/**
* Optional custom CSS class for the button element.
* Useful for design system overrides or scoped styles.
*/
className?: string;
/**
* When true, renders the button as a child component using `Slot` (e.g., from Radix UI).
* Enables polymorphic rendering — useful for making the button act as a link or custom tag.
*/
asChild?: boolean;
/**
* Content of the button — text, icon, or any React node.
*/
children?: ReactNode;
/**
* Ref forwarded to the native `