import * as React from "react";
export type ButtonSize = "default" | "sm" | "xs" | "xxs" | "lg" | "icon" | "iconSm" | "iconXs";
declare function ButtonSizeProvider({ value, children, }: {
    value: ButtonSize;
    children: React.ReactNode;
}): React.JSX.Element;
declare const buttonVariants: (props?: ({
    variant?: "default" | "defaultInverted" | "destructive" | "ghost" | "link" | "outline" | "secondary" | "select" | null | undefined;
    size?: "default" | "icon" | "iconSm" | "iconXs" | "lg" | "select" | "sm" | "xs" | "xxs" | null | undefined;
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
type BaseButtonProps = React.ComponentProps<"button"> & {
    asChild?: boolean;
};
type SelectButtonProps = BaseButtonProps & {
    variant: "select";
    size?: never;
};
export type GenericButtonProps = BaseButtonProps & {
    variant?: "default" | "defaultInverted" | "destructive" | "outline" | "secondary" | "ghost" | "link";
    size?: ButtonSize;
};
type ButtonProps = SelectButtonProps | GenericButtonProps;
declare function Button({ className, variant, size, asChild, ...props }: ButtonProps): React.JSX.Element;
export { Button, ButtonSizeProvider, buttonVariants };
