import { ButtonProps as CoreButtonProps } from '../../.deps/ui/core-web/src'; import { SafeOmit, SafePick } from '../../.deps/utils/src'; import { OmitPrivate, SafeExtract, Size, Variant } from '../../types'; import { IconName } from '../Icon/IconName'; import * as React from 'react'; export interface ButtonInheritedCoreButtonProps extends OmitPrivate> { } export interface ButtonInheritedButtonProps extends OmitPrivate> { } export interface ButtonOwnProps { /** * Variant of the button. * @default 'primary' */ variant?: SafeExtract; /** * Size of the button. * @default 'sm' */ size?: SafeExtract; /** * Displays an icon before the label. * @default undefined */ iconLeft?: IconName; /** * Displays an icon after the label. * @default undefined */ iconRight?: IconName; children?: React.ReactNode; /** * @deprecated - Use iconLeft or iconRight instead */ icon?: IconName; /** * Displays a loader while hiding its contents and disables all interactions. * @default false */ isLoading?: boolean; } export interface ButtonProps extends ButtonOwnProps, ButtonInheritedCoreButtonProps, ButtonInheritedButtonProps { form?: ButtonInheritedButtonProps['form']; id?: ButtonInheritedButtonProps['id']; onBlur?: ButtonInheritedButtonProps['onBlur']; onClick?: ButtonInheritedButtonProps['onClick']; onFocus?: ButtonInheritedButtonProps['onFocus']; /** * @default 'button' */ type?: ButtonInheritedButtonProps['type']; value?: ButtonInheritedButtonProps['value']; } export declare const getButtonClassName: >({ variant, size, icon, iconLeft, iconRight, isLoading, className, }: T) => string; export declare const getButtonProps: ({ variant, size, icon, iconLeft, iconRight, children, isLoading, ...props }: T) => Omit & { className: string; children: React.JSX.Element; }; export declare const Button: React.ForwardRefExoticComponent & React.RefAttributes>;