import { MouseEventHandler } from "react"; export type ButtonVariant = "primary" | "danger" | "info"; export type ButtonSize = "small" | "medium" | "large"; interface BaseButtonProps extends React.ButtonHTMLAttributes { children: React.ReactNode; size?: ButtonSize; onClick?: MouseEventHandler; type?: "submit" | "button"; block?: boolean; href?: string; download?: string; target?: React.HTMLAttributeAnchorTarget; rel?: string; } interface PrimaryButtonProps extends BaseButtonProps { variant?: "primary"; disabled?: boolean; } interface InfoButtonProps extends BaseButtonProps { variant: "info"; disabled?: false; } interface DangerButtonProps extends BaseButtonProps { variant: "danger"; disabled?: boolean; } export type ButtonProps = PrimaryButtonProps | InfoButtonProps | DangerButtonProps; export {};