import * as React from "react";

interface MDButtonProps {
  /**
   * Size of the button.
   * @default "medium"
   */
  size?: "small" | "medium" | "large";

  /**
   * Variant of the button.
   * @default "contained"
   */
  variant?: "text" | "contained" | "outlined" | "gradient";

  /**
   * Color of the button.
   * @default "white"
   */
  color?: "white" | "primary" | "secondary" | "info" | "success" | "warning" | "error" | "light" | "dark";

  /**
   * Whether the button is circular.
   * @default false
   */
  circular?: boolean;

  /**
   * Whether the button is icon-only (no text).
   * @default false
   */
  iconOnly?: boolean;

  /**
   * The content of the button.
   */
  children: React.ReactNode;

  /**
   * Additional props passed to the root element.
   */
  [key: string]: any;
}

/**
 * MDButton is a customizable button component with support for sizes, variants, colors, and more.
 */
declare const MDButton: React.ForwardRefExoticComponent<
  MDButtonProps & React.RefAttributes<HTMLButtonElement>
>;

export default MDButton;