import { LucideIcon } from "lucide-react";
import { ButtonHTMLAttributes } from "react";
import "./styles.css";
type ButtonProps = ButtonHTMLAttributes<HTMLButtonElement> & {
    isLoading?: boolean;
    loadingText?: string;
    size?: "xs" | "sm" | "md" | "lg";
    variant?: "solid" | "outline" | "ghost" | "invisible";
    scheme?: "primary" | "success" | "warning" | "danger" | "info";
    leftIcon?: LucideIcon;
    rightIcon?: LucideIcon;
};
/**
 * Button component - used for user interactions and form submissions
 *
 * @param props - Button component properties
 * @param props.isLoading - Controls loading state with spinner. Default: false
 * @param props.loadingText - Text to display during loading state
 * @param props.size - Button size. Default: "md"
 * @param props.variant - Visual variant of the button. Default: "solid"
 * @param props.scheme - Button color scheme. Default: "primary"
 * @param props.leftIcon - Optional icon to display on the left
 * @param props.rightIcon - Optional icon to display on the right
 *
 * **...Other valid HTML properties for button**
 *
 * @returns Button JSX element
 *
 * @example
 * ```tsx
 * // Basic button
 * <Button>Click me</Button>
 *
 * // Button with color scheme
 * <Button scheme="success">Save</Button>
 *
 * // Button with loading state
 * <Button isLoading loadingText="Saving...">
 *  Save
 * </Button>
 *
 * // Button with icons
 * <Button leftIcon={SaveIcon} scheme="success">
 *  Save
 * </Button>
 *
 * // Custom button
 * <Button
 *  size="lg"
 *  variant="outline"
 *  scheme="danger"
 *  rightIcon={TrashIcon}
 * >
 *  Delete
 * </Button>
 * ```
 */
declare function Button(props: ButtonProps): import("react/jsx-runtime").JSX.Element;
export { Button };
//# sourceMappingURL=index.d.ts.map