import React from "react";
import type { HydratedTheme } from "../../../../../theme-core/src/schema";
type BaseButtonProps = {
    theme: HydratedTheme;
    children?: React.ReactNode;
    size?: "sm" | "md" | "lg" | "xl";
    className?: string;
    glow?: string;
    variant?: string;
};
export type OutlineButtonProps = BaseButtonProps & {
    borderThickness?: string;
    background?: string;
    color?: string;
};
export type SolidButtonProps = BaseButtonProps & {
    subtleGradient?: boolean;
    background?: string;
};
export type GradientButtonProps = BaseButtonProps & {
    gradient: unknown;
};
export type ButtonProps = BaseButtonProps & Partial<OutlineButtonProps> & Partial<SolidButtonProps> & Partial<GradientButtonProps> & {
    styles?: React.CSSProperties;
};
/**
 * Generic Button component
 *
 * Supports both old button system (via ButtonSpec) and new button system (via variant prop).
 * When variant is provided and theme.buttons exists, uses CSS variables from the new system.
 * Otherwise falls back to the old resolveButton logic.
 */
export declare function Button({ theme, children, className, size, variant, styles, }: ButtonProps): import("react/jsx-runtime").JSX.Element;
export declare const PrimaryButton: ({ theme, children, className, size, }: BaseButtonProps) => import("react/jsx-runtime").JSX.Element;
export declare const SecondaryButton: ({ theme, children, className, size, }: BaseButtonProps) => import("react/jsx-runtime").JSX.Element;
export declare const GhostButton: ({ theme, children, className, size, }: BaseButtonProps) => import("react/jsx-runtime").JSX.Element;
export declare const LinkButton: ({ theme, children, className, size, }: BaseButtonProps) => import("react/jsx-runtime").JSX.Element;
export declare const CtaGradientButton: ({ theme, children, className, size, }: BaseButtonProps) => import("react/jsx-runtime").JSX.Element;
export declare const AccentButton: ({ theme, children, className, size, }: BaseButtonProps) => import("react/jsx-runtime").JSX.Element;
export {};
