import React from "react"; import type { AriaAttributes } from "react"; import type { IconName } from "../Icon/Icon"; import type { BaseVariations, ButtonSize, HorizontalAlignment, TextVariations, PolymorphicComponentPropsWithRef, IconsColors, MQ } from "../../types"; type ButtonPrivateProps = { squareCorners?: boolean | ("TopLeft" | "TopRight" | "BottomLeft" | "BottomRight")[]; alignItems?: HorizontalAlignment; rightIconVariant?: TextVariations; rightIconColor?: IconsColors; }; export type ButtonProps = { variant?: BaseVariations; size?: ButtonSize | MQ; /** Type is ignored if "a" is provided to "as" property. Note that you can explicitly pass null. */ type?: "submit" | "button" | "reset" | null; disabled?: boolean; /** When loading is true, disabled is set to true as well. */ loading?: boolean; onClick?: (e: React.MouseEvent) => void; onFocus?: (e: React.FocusEvent) => void; onBlur?: (e: React.FocusEvent) => void; onPointerDown?: (e: React.PointerEvent) => void; leftIcon?: IconName; rightIcon?: IconName; fullWidth?: boolean; destructive?: boolean; privateProps?: ButtonPrivateProps; "data-e2e-test-id"?: string; /** @deprecated Use aria-* props directly instead */ ariaAttributes?: AriaAttributes; }; type ButtonComponent = (props: PolymorphicComponentPropsWithRef) => React.ReactNode | null; export declare const Button: ButtonComponent; export {};