import { default as React } from 'react';
import { Icon } from '@phosphor-icons/react';
export declare const KUMO_BUTTON_VARIANTS: {
    readonly shape: {
        readonly base: {
            readonly classes: "";
            readonly description: "Default rectangular button shape";
        };
        readonly square: {
            readonly classes: "items-center justify-center p-0";
            readonly description: "Square button for icon-only actions";
        };
        readonly circle: {
            readonly classes: "items-center justify-center p-0 rounded-full";
            readonly description: "Circular button for icon-only actions";
        };
    };
    readonly size: {
        readonly xs: {
            readonly classes: "h-5 gap-1 rounded-sm px-1.5 text-xs";
            readonly description: "Extra small button for compact UIs";
        };
        readonly sm: {
            readonly classes: "h-6.5 gap-1 rounded-md px-2 text-xs";
            readonly description: "Small button for secondary actions";
        };
        readonly base: {
            readonly classes: "h-9 gap-1.5 rounded-lg px-3 text-base";
            readonly description: "Default button size";
        };
        readonly lg: {
            readonly classes: "h-10 gap-2 rounded-lg px-4 text-base";
            readonly description: "Large button for primary CTAs";
        };
    };
    readonly compactSize: {
        readonly xs: {
            readonly classes: "size-3.5";
        };
        readonly sm: {
            readonly classes: "size-6.5";
        };
        readonly base: {
            readonly classes: "size-9";
        };
        readonly lg: {
            readonly classes: "size-10";
        };
    };
    readonly variant: {
        readonly primary: {
            readonly classes: "bg-kumo-brand !text-white hover:bg-kumo-brand-hover focus:bg-kumo-brand-hover disabled:bg-kumo-brand/50";
            readonly description: "High-emphasis button for primary actions";
        };
        readonly secondary: {
            readonly classes: "bg-kumo-control !text-kumo-default ring not-disabled:hover:border-secondary! not-disabled:hover:bg-kumo-control disabled:bg-kumo-control/50 disabled:!text-kumo-default/70 ring-kumo-line data-[state=open]:bg-kumo-control";
            readonly description: "Default button style for most actions";
        };
        readonly ghost: {
            readonly classes: "text-kumo-default hover:bg-kumo-tint shadow-none bg-inherit";
            readonly description: "Minimal button with no background";
        };
        readonly destructive: {
            readonly classes: "bg-kumo-danger !text-white hover:bg-kumo-danger/70";
            readonly description: "Danger button for destructive actions like delete";
        };
        readonly "secondary-destructive": {
            readonly classes: "bg-kumo-control !text-kumo-danger ring not-disabled:hover:border-secondary! not-disabled:hover:bg-kumo-control disabled:bg-kumo-control/50 disabled:!text-kumo-danger/70 ring-kumo-line data-[state=open]:bg-kumo-control";
            readonly description: "Secondary button with destructive text for less prominent dangerous actions";
        };
        readonly outline: {
            readonly classes: "bg-kumo-base text-kumo-default ring ring-kumo-line";
            readonly description: "Bordered button with transparent background";
        };
    };
};
export declare const KUMO_BUTTON_DEFAULT_VARIANTS: {
    readonly shape: "base";
    readonly size: "base";
    readonly variant: "secondary";
};
export type KumoButtonShape = keyof typeof KUMO_BUTTON_VARIANTS.shape;
export type KumoButtonSize = keyof typeof KUMO_BUTTON_VARIANTS.size;
export type KumoButtonVariant = keyof typeof KUMO_BUTTON_VARIANTS.variant;
export interface KumoButtonVariantsProps {
    shape?: KumoButtonShape;
    size?: KumoButtonSize;
    variant?: KumoButtonVariant;
}
export declare function buttonVariants({ variant, size, shape, }?: KumoButtonVariantsProps): string;
export type ButtonProps = React.ButtonHTMLAttributes<HTMLButtonElement> & KumoButtonVariantsProps & {
    children?: React.ReactNode;
    className?: string;
    icon?: Icon | React.ReactNode;
    loading?: boolean;
};
export type LinkButtonProps = React.AnchorHTMLAttributes<HTMLAnchorElement> & KumoButtonVariantsProps & {
    children?: React.ReactNode;
    className?: string;
    icon?: Icon | React.ReactNode;
    external?: boolean;
    linksExternal?: boolean;
};
export declare const Button: React.ForwardRefExoticComponent<React.ButtonHTMLAttributes<HTMLButtonElement> & KumoButtonVariantsProps & {
    children?: React.ReactNode;
    className?: string;
    icon?: Icon | React.ReactNode;
    loading?: boolean;
} & React.RefAttributes<HTMLButtonElement>>;
export declare const RefreshButton: ({ "aria-label": ariaLabel, loading, ...props }: ButtonProps) => import("react/jsx-runtime").JSX.Element;
export declare const LinkButton: React.ForwardRefExoticComponent<React.AnchorHTMLAttributes<HTMLAnchorElement> & KumoButtonVariantsProps & {
    children?: React.ReactNode;
    className?: string;
    icon?: Icon | React.ReactNode;
    external?: boolean;
    linksExternal?: boolean;
} & React.RefAttributes<HTMLAnchorElement>>;
//# sourceMappingURL=button.d.ts.map