import * as react_jsx_runtime from 'react/jsx-runtime';
import { Button as Button$1 } from '@base-ui/react/button';
import { VariantProps } from 'class-variance-authority';
import { ReactNode } from 'react';
import { buttonVariants } from './button-variants.js';
import 'class-variance-authority/types';

interface ButtonProps extends Omit<Button$1.Props, "children">, VariantProps<typeof buttonVariants> {
    /** Leading icon slot; rendered with data-icon=inline-start for padding. */
    leadingIcon?: ReactNode;
    /** Trailing icon slot; rendered with data-icon=inline-end for padding. */
    trailingIcon?: ReactNode;
    /** Optional badge (e.g. count or "NEW"); rendered after label when children present. */
    badge?: ReactNode;
    /** When true, shows spinner and disables interaction; hides leading/trailing icons. */
    loading?: boolean;
    children?: ReactNode;
}
declare function Button({ className, variant, size, leadingIcon, trailingIcon, badge, loading, children, disabled, ...props }: ButtonProps): react_jsx_runtime.JSX.Element;

export { Button, type ButtonProps, buttonVariants };
