import React from 'react'; import { ArrayElementType } from '../../types/utils/ArrayElementType'; import { CommonProps } from '../Element/Element'; import { SupportedColor, SupportedFontWeight } from '../Element/Element'; import { SupportedIconName } from '../../shared/icons'; import { CreateProps } from '../../types/utils/CreateProps'; declare type ButtonProps = CreateProps<{ /** Button variant */ variant?: SupportedButtonVariant; /** Set button size */ size?: SupportedButtonSize; /** Set button icon */ iconName?: SupportedIconName; /** Toggle button to be disabled */ disabled?: boolean; /** Triggers loading state */ loading?: boolean; /** Toggle button type */ type?: 'submit' | 'button' | 'reset'; /** Is icon placement right, defaults to left */ iconOnRight?: boolean; /** Toggle possibility of button to take all available width in mobile view */ expandWhenMobile?: boolean; /** These props only apply to text variant */ textVariantProps?: { color?: SupportedColor; fontWeight?: SupportedFontWeight; hoverColor?: SupportedColor; }; }, CommonProps<'button'>, 'color' | 'borderRadius' | 'hoverColor'>; declare const Button: React.FunctionComponent; export declare const supportedButtonSizes: readonly ["sm", "md", "lg", "xl"]; export declare const supportedButtonVariants: readonly ["primary", "purchase", "secondary", "primaryWhite", "purchaseSecondary", "secondaryWhite", "destructive", "secondaryDestructive", "text"]; export declare type SupportedButtonVariant = ArrayElementType; declare type SupportedButtonSize = ArrayElementType; export declare type ButtonVariant = SupportedButtonVariant; export declare type ButtonAttributes = ButtonProps; export default Button;