import { useRender } from "@base-ui/react/use-render"; import * as React from "react"; export type ButtonVariant = "default" | "destructive" | "outline" | "secondary" | "ghost" | "link"; export type ButtonSize = "default" | "sm" | "lg" | "icon"; /** * Serializable button state exposed to Base UI render callbacks. */ export interface ButtonState extends Record { variant: ButtonVariant; size: ButtonSize; disabled: boolean; } interface ButtonVariantOptions { variant?: ButtonVariant; size?: ButtonSize; className?: string; } /** * Props for the shared button component. */ export interface ButtonProps extends Omit, "children" | "className" | "disabled"> { /** * Visual style variant. * @default "default" */ variant?: ButtonVariant; /** * Size preset. * @default "default" */ size?: ButtonSize; /** * Whether the button should ignore user interaction. * @default false */ disabled?: boolean; /** * Additional CSS classes merged with the button styles. * @default undefined */ className?: string; /** * Custom element or render callback used to replace the default ` * * ``` * * @see {@link https://base-ui.com/react/components/button | Base UI Button} */ declare const Button: React.ForwardRefExoticComponent & React.RefAttributes>; declare namespace Button { type State = ButtonState; type Props = ButtonProps; } export { Button, buttonVariants }; //# sourceMappingURL=button.d.ts.map