import type { WithElementRef } from 'bits-ui';
import type { HTMLAnchorAttributes, HTMLButtonAttributes } from 'svelte/elements';
import { type VariantProps } from 'tailwind-variants';
export declare const buttonVariants: import("tailwind-variants").TVReturnType<{
    variant: {
        primary: string;
        secondary: string;
        link: string;
        ghost: string;
        red: string;
        yellow: string;
        green: string;
        blue: string;
        indigo: string;
        violet: string;
        purple: string;
        fuchsia: string;
        pink: string;
        rose: string;
        orange: string;
        amber: string;
        lime: string;
        emerald: string;
        teal: string;
        cyan: string;
        sky: string;
    };
    size: {
        default: string;
        sm: string;
        lg: string;
        icon: string;
        iconSm: string;
        iconLg: string;
    };
}, undefined, "touch-manipulation hover:cursor-pointer backdrop-blur-md motion-safe:focus-visible:transition-transform focus-visible:outline-2 outline-offset-2 inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-2xl active:scale-95 text-sm font-medium motion-safe:transition-all disabled:pointer-events-none disabled:opacity-50 duration-300 active:duration-100 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", {
    variant: {
        primary: string;
        secondary: string;
        link: string;
        ghost: string;
        red: string;
        yellow: string;
        green: string;
        blue: string;
        indigo: string;
        violet: string;
        purple: string;
        fuchsia: string;
        pink: string;
        rose: string;
        orange: string;
        amber: string;
        lime: string;
        emerald: string;
        teal: string;
        cyan: string;
        sky: string;
    };
    size: {
        default: string;
        sm: string;
        lg: string;
        icon: string;
        iconSm: string;
        iconLg: string;
    };
}, undefined, import("tailwind-variants").TVReturnType<{
    variant: {
        primary: string;
        secondary: string;
        link: string;
        ghost: string;
        red: string;
        yellow: string;
        green: string;
        blue: string;
        indigo: string;
        violet: string;
        purple: string;
        fuchsia: string;
        pink: string;
        rose: string;
        orange: string;
        amber: string;
        lime: string;
        emerald: string;
        teal: string;
        cyan: string;
        sky: string;
    };
    size: {
        default: string;
        sm: string;
        lg: string;
        icon: string;
        iconSm: string;
        iconLg: string;
    };
}, undefined, "touch-manipulation hover:cursor-pointer backdrop-blur-md motion-safe:focus-visible:transition-transform focus-visible:outline-2 outline-offset-2 inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-2xl active:scale-95 text-sm font-medium motion-safe:transition-all disabled:pointer-events-none disabled:opacity-50 duration-300 active:duration-100 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", unknown, unknown, undefined>>;
export type ButtonVariant = VariantProps<typeof buttonVariants>['variant'];
export type ButtonSize = VariantProps<typeof buttonVariants>['size'];
export type ButtonProps = WithElementRef<HTMLButtonAttributes> & WithElementRef<HTMLAnchorAttributes> & {
    variant?: ButtonVariant;
    size?: ButtonSize;
    checkCurrent?: boolean;
};
declare const Button: import("svelte").Component<ButtonProps, {}, "ref">;
type Button = ReturnType<typeof Button>;
export default Button;
