import { VariantProps } from 'class-variance-authority';
import { default as React } from 'react';
export declare const buttonVariants: (props?: ({
    variant?: "default" | "primary" | "ghost" | "outline" | null | undefined;
    size?: "default" | "sm" | "md" | "lg" | "icon-sm" | "icon-md" | "icon-lg" | null | undefined;
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
type ButtonVariantsProps = VariantProps<typeof buttonVariants>;
export type ButtonVariant = NonNullable<ButtonVariantsProps['variant']>;
export type ButtonSize = NonNullable<ButtonVariantsProps['size']>;
export type IconButtonSize = Extract<ButtonSize, `icon-${string}`>;
export interface ButtonProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'children'>, ButtonVariantsProps {
    as?: React.ElementType;
    className?: string;
    href?: string;
    to?: string;
    prefetch?: boolean | null;
    children: React.ReactNode;
    tooltip?: React.ReactNode;
    target?: string;
    type?: 'button' | 'submit' | 'reset';
    onClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;
}
export declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
export {};
