import * as react_jsx_runtime from 'react/jsx-runtime';
import * as tailwind_variants from 'tailwind-variants';
import { VariantProps } from 'tailwind-variants';
import { Button as Button$1 } from 'react-aria-components';

declare const buttonVariants: tailwind_variants.TVReturnType<{
    variant: {
        default: string;
        destructive: string;
        outline: string;
        secondary: string;
        ghost: string;
        link: string;
    };
    size: {
        xs: string;
        sm: string;
        md: string;
        lg: string;
        xl: string;
        icon: string;
    };
    isDisabled: {
        true: string;
    };
    isPending: {
        true: string;
    };
}, undefined, "inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", {
    isFocusVisible: {
        true: string;
    };
    isInvalid: {
        true: string;
    };
}, undefined, tailwind_variants.TVReturnType<{
    isFocusVisible: {
        true: string;
    };
    isInvalid: {
        true: string;
    };
}, undefined, "outline-hidden", {
    isFocusVisible: {
        true: string;
    };
    isInvalid: {
        true: string;
    };
}, undefined, tailwind_variants.TVReturnType<{
    isFocusVisible: {
        true: string;
    };
    isInvalid: {
        true: string;
    };
}, undefined, "outline-hidden", unknown, unknown, undefined>>>;
interface ButtonProps extends React.ComponentProps<typeof Button$1>, VariantProps<typeof buttonVariants> {
    /**
     * Loader to display when pending.
     */
    loader?: React.ReactNode | null;
}
declare function Button({ className, variant, size, loader, ...props }: ButtonProps): react_jsx_runtime.JSX.Element;

export { Button, type ButtonProps, buttonVariants };
