import React, { InputHTMLAttributes, ReactElement, ReactNode } from 'react'; import { AriaFocusProps } from '../../types/common'; import { InputAffixProps } from './InputAffix'; import { InputAlignment, InputSize, InputStatus } from './types'; import { IconProps } from '../icons/generated'; import { CSSValueWithLength } from '../../styles'; export interface InputBaseType { /** @default 'medium' */ size?: InputSize; /** @default 'left' */ alignment?: InputAlignment; /** @default 'info' */ status?: InputStatus; /** 좌측 영역에 렌더링 될 요소 */ startElement?: ReactElement | ReactNode; /** 우측 영역에 렌더링 될 요소 */ endElement?: ReactElement | ReactNode; /** Input prefix 요소 */ leftAddon?: InputAffixProps['prefix']; /** Input suffix 요소 */ rightAddon?: InputAffixProps['suffix']; width?: CSSValueWithLength; /** * 입력된 value count 노출 여부 * @default false */ showCounter?: boolean; /** * 아이콘 노출 여부 * @default true */ showStatusIcon?: boolean; /** * HTML에 전달되는 size 값 */ htmlSize?: number; } export type InputBaseProps = Omit, 'width' | 'size'> & InputBaseType & AriaFocusProps; export declare const controlledInputValue: (value?: string | number | readonly string[]) => string; export declare const InputBase: React.ForwardRefExoticComponent, "width" | "size"> & InputBaseType & AriaFocusProps & React.RefAttributes>;