import React from "react";
import { IconType } from "../adpIcon";
export declare enum ButtonSizes {
    XS = "xs",
    SM = "sm",
    MD = "md",
    LG = "lg",
    XL = "xl"
}
export type ButtonSize = `${ButtonSizes}`;
export interface Props extends Omit<React.ComponentPropsWithoutRef<"button">, "css"> {
    /**
     * Size of the button.
     * @default md
     */
    size?: ButtonSize;
    /**
     * Color of the button.
     * @default primary
     */
    color?: "primary" | "secondary" | "success" | "warning" | "error";
    /**
     * Variant of the button.
     * @default filled
     */
    variant?: "filled" | "outline" | "shade" | "text";
    /**
     * Optional icon.
     */
    icon?: IconType;
    /**
     * Placement of the icon
     */
    iconPlacement?: "start" | "end";
    children?: React.ReactNode;
    /**
     * Shows loading animation instead of the button content
     */
    loading?: boolean;
    /**
     * Type of the button
     */
    type?: "button" | "submit" | "reset";
}
export declare const ButtonSizeToSpinnerMap: Record<ButtonSize, "xxs" | "xs" | "sm" | "md" | "lg" | "xl">;
export declare const Button: React.ForwardRefExoticComponent<Props & React.RefAttributes<HTMLButtonElement>>;
