import React from 'react';
export type ButtonSize = 'xs' | 'sm' | 'md' | 'lg';
export type ButtonVariant = 'solid' | 'outline' | 'ghost' | 'link' | 'unstyled' | 'primary' | 'secondary' | 'danger';
export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
    /**
     * Button size variant
     * @default 'md'
     */
    size?: ButtonSize;
    /**
     * Visual style variant of the button
     * @default 'solid'
     */
    variant?: ButtonVariant;
    /**
     * Whether the button is in a loading state
     * @default false
     */
    isLoading?: boolean;
    /**
     * Whether the button is disabled
     * @default false
     */
    isDisabled?: boolean;
    /**
     * Text to display when button is in loading state
     */
    loadingText?: string;
    /**
     * Icon element to display before button text
     */
    leftIcon?: React.ReactNode;
    /**
     * Icon element to display after button text
     */
    rightIcon?: React.ReactNode;
    /**
     * Full width button that takes up the entire container width
     * @default false
     */
    isFullWidth?: boolean;
}
/**
 * Button component built with Tailwind CSS
 *
 * A versatile button component that supports various sizes, variants, and states
 * like loading and disabled.
 *
 * @example
 * // Basic usage
 * <Button>Click me</Button>
 *
 * @example
 * // Primary variant with icon
 * <Button variant="primary" leftIcon={<Icon name="edit" />}>Edit</Button>
 *
 * @example
 * // Loading state
 * <Button isLoading loadingText="Saving...">Save</Button>
 */
export declare const TailwindButton: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
export default TailwindButton;
//# sourceMappingURL=TailwindButton.d.ts.map