import * as react_jsx_runtime from 'react/jsx-runtime';
import React__default, { ElementType } from 'react';
import { VariantProps as VariantPropsInternal } from './variants.js';

declare const button: (props?: ({
    variant?: "flat" | "text" | "solid" | "outline" | "danger" | undefined;
    size?: "sm" | "md" | "lg" | undefined;
    disabled?: boolean | undefined;
    isLoading?: boolean | undefined;
} & {
    className?: string;
}) | undefined) => string;
type ButtonProps<T extends ElementType = 'button'> = VariantPropsInternal<typeof button> & {
    as?: T;
    ref?: React__default.Ref<any>;
    isLoading?: boolean;
    defaultLoaderVariant?: 'bars' | 'pulse' | 'spinner' | 'threeDot';
    loader?: React__default.ReactNode;
    children?: React__default.ReactNode;
} & Omit<React__default.ComponentPropsWithRef<T>, 'as' | 'className' | 'ref'> & {
    className?: string;
};
declare function Button<T extends ElementType = 'button'>({ as, ref, children, className, isLoading, type, variant, size, disabled, loader, defaultLoaderVariant, ...props }: ButtonProps<T>): react_jsx_runtime.JSX.Element;

export { Button, type ButtonProps };
