import { type ButtonHTMLAttributes, type ReactNode } from 'react';
import { type VariantProps } from '../../lib/cv.js';
declare const button: (props?: ({
    variant?: "link" | "primary" | "secondary" | "danger" | "ghost" | "outline" | undefined;
    size?: "sm" | "lg" | "icon" | "xs" | "md" | undefined;
} & {
    class?: string | false | null | undefined;
    className?: string | false | null | undefined;
}) | undefined) => string;
export type ButtonVariants = VariantProps<typeof button>;
export interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement>, ButtonVariants {
    loading?: boolean;
    /** Stretch the button to fill its container width. */
    full?: boolean;
    /** Icon rendered before the children. Use with `size="icon"` for icon-only buttons. */
    leftIcon?: ReactNode;
    /** Icon rendered after the children. */
    rightIcon?: ReactNode;
    children?: ReactNode;
}
export declare const Button: import("react").ForwardRefExoticComponent<ButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
export { button as buttonVariants };
//# sourceMappingURL=Button.d.ts.map