import React, { ReactElement } from 'react'; import type { BaseButtonProps, ButtonColor, ButtonSize, ButtonVariant } from './types'; import { IconProps } from '../icons/generated'; export type { ButtonColor, ButtonVariant } from './types'; export interface ButtonProps extends BaseButtonProps { fill?: boolean; /** @default 'filled' */ variant?: ButtonVariant; /** @default 'secondary' */ color?: ButtonColor; /** @default 'medium' */ size?: ButtonSize; /** @default false */ loading?: boolean; /** * 버튼 좌측 영역에 렌더링 될 아이콘 요소 * - Icon 컴포넌트 color props가 없으면 variant와 color에 따라 currentColor가 지정됩니다. * - Icon 컴포넌트 size props가 있더라도 Icon 사이즈는 ButtonSize에 따라 고정됩니다. */ leftIcon?: ReactElement; /** * 버튼 우측 영역에 렌더링 될 아이콘 요소 * - Icon 컴포넌트 color props가 없으면 variant와 color에 따라 currentColor가 지정됩니다. * - Icon 컴포넌트 size props가 있더라도 Icon 사이즈는 ButtonSize에 따라 고정됩니다. */ rightIcon?: ReactElement; } export interface ButtonIconProps { size: ButtonSize; } export declare const Button: React.ForwardRefExoticComponent>;