import type { ButtonHTMLAttributes, ReactNode } from "react";
import type { InteractionStatesOptions } from "@react-md/states";
import type { PropsWithRef } from "@react-md/utils";
import type { ButtonThemeProps } from "./buttonThemeClassNames";
import type { FABPosition, FABProps } from "./FAB";
/**
* This interface includes all the props that the `Button` component accepts so
* the main use case might be creating a functionality wrapper for the `Button`
* component, but passes all props down as normal.
*/
export interface ButtonProps extends ButtonThemeProps, ButtonHTMLAttributes, Omit, "disableSpacebarClick"> {
/**
* The button's type attribute. This is set to "button" by default so that
* forms are not accidentally submitted when this prop is omitted since
* buttons without a type attribute work as submit by default.
*/
type?: "button" | "reset" | "submit";
/**
* Any children to render within the button. This will normally just be text
* or an icon.
*
* Please note that it is considered invalid html to have a `