import React, { ComponentPropsWithoutRef } from "react"; import { type VariantProps } from "tailwind-variants"; import type { IconComponent, IconProps } from "../../icons/types"; import { disabledVariants } from "../../styles"; import { LinkProps } from "../Link"; export declare const buttonVariants: import("tailwind-variants").TVReturnType<{ rounded: { true: string; }; variant: { primary: string; secondary: string; "secondary-transparent": string; tertiary: string; destructive: string; ghost: string; frosted: string; }; onlyIcon: { true: string; }; isLoading: { true: string; }; }, undefined, "justify-center font-medium focus-visible:outline-hidden", { size: { xs: string; sm: string; md: string; lg: string; }; leftIcon: { true: string; }; rightIcon: { true: string; }; }, undefined, import("tailwind-variants").TVReturnType<{ size: { xs: string; sm: string; md: string; lg: string; }; leftIcon: { true: string; }; rightIcon: { true: string; }; }, undefined, "inline-flex items-center whitespace-nowrap rounded-md transition duration-200", { size: { xs: string; sm: string; md: string; lg: string; }; leftIcon: { true: string; }; rightIcon: { true: string; }; }, undefined, import("tailwind-variants").TVReturnType<{ size: { xs: string; sm: string; md: string; lg: string; }; leftIcon: { true: string; }; rightIcon: { true: string; }; }, undefined, "inline-flex items-center whitespace-nowrap rounded-md transition duration-200", unknown, unknown, undefined>>>; type BaseButtonProps = ComponentPropsWithoutRef<"button"> & Omit, "onlyIcon" | "leftIcon" | "rightIcon"> & VariantProps & { /** * Used to show a loading indicator in the button for async actions. */ isLoading?: boolean; renderLink?: React.ComponentType; iconSide?: "left" | "right"; } & Omit; export type ButtonWithIconProps = BaseButtonProps & { /** * Icon can either be used as a material icon or as a custom icon. */ icon: IconComponent; overrides?: { Icon: { props: IconProps; }; }; }; export type ButtonWithCustomIconProps = BaseButtonProps & { icon: React.ReactNode; }; type ButtonWithAnyIconProps = ButtonWithIconProps | ButtonWithCustomIconProps; export type ButtonProps = BaseButtonProps | ButtonWithAnyIconProps; export type ButtonSize = ButtonProps["size"]; /** * Button is our standard interactive element that triggers a response. * You can place text and icons inside of a button. * Our Buttons can also act as a link by passing `href`. */ export declare const Button: React.ForwardRefExoticComponent>; export {}; //# sourceMappingURL=Button.d.ts.map