import { ReactNode } from 'react'; import { LoadingIcon, LoadingPosition } from '../Loading'; export type ButtonRef = HTMLButtonElement; export type ButtonTypes = 'button' | 'submit' | 'reset'; export type ButtonColors = 'primary' | 'secondary' | 'tertiary' | 'danger' | 'black'; export type ButtonVariants = 'filled' | 'outline' | 'ghost'; export type ButtonSizes = 'sm' | 'md' | 'lg'; export interface ButtonProps extends React.ComponentPropsWithRef<'button'> { /** * `button`, `submit` or `reset` */ type?: ButtonTypes; /** * `primary`, `secondary`, `tertiary` or `danger` */ color?: ButtonColors; /** * `filled`, `outline` or `ghost` */ variant?: ButtonVariants; /** * `sm`, `md` or `lg` */ size?: ButtonSizes; /** * Does it has a text ? */ children?: ReactNode; /** * Display Icon Component to the left */ leftIcon?: ReactNode; /** * Display Icon Component to the right */ rightIcon?: ReactNode; /** * Is it loading ? */ isLoading?: boolean; /** * Override Loading Icon */ loadingIcon?: LoadingIcon; /** * Loading Icon Position * `left`, `right` */ loadingPosition?: LoadingPosition; /** * Disabled status */ disabled?: boolean; /** * Optional class for styling purpose */ className?: string; } /** * Primary UI component for user interaction */ declare const Button: import('react').ForwardRefExoticComponent & import('react').RefAttributes>; export default Button;