import { VariantProps } from 'class-variance-authority';
import * as React from 'react';
/**
 * Variants:
 *   - `default` — canonical primary action. Equivalent to `primary` (alias).
 *   - `primary` — alias of `default`; provided for callers coming from the
 *     vanilla Button API where `primary` is the canonical name.
 *   - `destructive`, `outline`, `secondary`, `ghost`, `link`, `glass`,
 *     `glass-primary` — see CVA mapping below.
 */
declare const buttonVariants: (props?: ({
    variant?: "glass" | "link" | "outline" | "default" | "ghost" | "destructive" | "primary" | "secondary" | "glass-primary" | null | undefined;
    size?: "default" | "sm" | "lg" | "icon" | "icon-sm" | "icon-lg" | null | undefined;
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
export type ButtonTone = 'glass' | 'shadcn';
export type ButtonProps = React.ComponentProps<'button'> & VariantProps<typeof buttonVariants> & {
    asChild?: boolean;
    /** Show a loading spinner and disable the button */
    loading?: boolean;
    /** Icon element to display alongside the label */
    icon?: React.ReactNode;
    /** Position the icon before or after the label */
    iconPosition?: 'left' | 'right';
    /**
     * Visual tone. `'glass'` (default) emits the library's gradient/glow
     * styling. `'shadcn'` emits canonical shadcn / Tailwind-v4 classes so
     * the button blends into a shadcn host app.
     */
    tone?: ButtonTone;
};
declare function Button({ className, variant, size, asChild, loading, icon, iconPosition, tone, disabled, children, ...props }: ButtonProps): import("react/jsx-runtime").JSX.Element;
export { Button, buttonVariants };
//# sourceMappingURL=button.d.ts.map