import { VariantProps } from '../../helpers';
import * as React from "react";
export declare const buttonVariants: {
    color: {
        error: string;
        info: string;
        primary: string;
        secondary: string;
        success: string;
        warning: string;
    };
    error: {
        false: string;
        true: string;
    };
    fullSized: {
        false: string;
        true: string;
    };
    isLoading: {
        false: string;
        true: string;
    };
    rounded: {
        "2xl": string;
        "3xl": string;
        full: string;
        lg: string;
        md: string;
        none: string;
        sm: string;
        xl: string;
        xs: string;
    };
    size: {
        lg: string;
        md: string;
        sm: string;
        xl: string;
        xs: string;
    };
    variant: {
        filled: string;
        ghost: string;
        link: string;
        outline: string;
    };
};
export type Variants = typeof buttonVariants;
export declare const buttonStyles: (props?: ({
    color?: "error" | "primary" | "secondary" | "info" | "success" | "warning" | null | undefined;
    error?: boolean | null | undefined;
    fullSized?: boolean | null | undefined;
    isLoading?: boolean | null | undefined;
    rounded?: "lg" | "md" | "sm" | "xl" | "xs" | "none" | "full" | "2xl" | "3xl" | null | undefined;
    size?: "lg" | "md" | "sm" | "xl" | "xs" | null | undefined;
    variant?: "link" | "filled" | "outline" | "ghost" | null | undefined;
} & import('../..').ClassProp) | undefined) => string;
export interface ButtonProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "color">, VariantProps<typeof buttonStyles> {
    asChild?: boolean;
    label?: string;
    loading?: boolean;
    fullSized?: boolean;
    error?: boolean;
    focusEffect?: boolean;
    /**
     * @name testId
     * @description Optional data-testid attribute for E2E testing with Playwright/Cypress.
     * If not provided, falls back to `data-testid="button-{aria-label}"` or `data-testid="button-{children}"`
     * @default undefined
     * @type string
     * @example
     * ```tsx
     * <Button testId="save-button">Save</Button>
     * // Renders: <button data-testid="save-button">Save</button>
     *
     * <Button>Save</Button>
     * // Auto-generates: <button data-testid="button-Save">Save</button>
     * ```
     */
    testId?: string;
}
export type ButtonVariants = keyof typeof buttonVariants.variant;
export type VariantsEnum = keyof typeof buttonVariants;
export declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
//# sourceMappingURL=button.d.ts.map