import React from "react";
import { PressableProps } from "../../atoms/pressable/pressable";
import { MoleculeComponentProps } from "../../../theme/src/types";
import { ButtonAtoms } from "./button.config";
export type ButtonProps = PressableProps & {
    /**
     * Whether the button is in a loading state.
     *
     * @default false
     */
    isLoading?: boolean;
    /**
     * Whether the button should span the entire width of the parent container.
     *
     * @default false
     */
    isFullWidth?: boolean;
    /** The text value to display when the button is in a loading state */
    loadingText?: string;
    /**
     * The position of the loading spinner with respect to the loadingText.
     *
     * @default "start"
     */
    spinnerPlacement?: "start" | "end";
    /** Icon to display on the left side of the main text */
    leftIcon?: React.ReactElement;
    /** Icon to display on the right side of the main text */
    rightIcon?: React.ReactElement;
    children?: string;
};
/** Button is used to trigger an action or event, such as submitting a form, opening a dialog, canceling an action, or performing a delete operation */
declare const Button: React.MemoExoticComponent<React.ForwardRefExoticComponent<Omit<Omit<MoleculeComponentProps<"Button", ButtonProps, ButtonAtoms>, "atoms"> & {
    atoms?: ButtonAtoms | undefined;
}, "ref"> & React.RefAttributes<unknown>>>;
export default Button;
//# sourceMappingURL=button.d.ts.map