import { type InputHTMLAttributes, type CSSProperties, type ReactNode } from 'react'; import { type SFieldSize, type SFieldAddonAlign, type SFieldStatus } from '../SField'; import { type SIconName } from '../SIcon'; import { type SColor } from '../../lib/color'; import { type Rule } from '../../lib/form'; import { type STooltipProps } from '../STooltip'; export interface SInputProps extends Omit, 'size' | 'value' | 'onChange' | 'type' | 'prefix' | 'suffix'> { /** 값 (제어) */ value?: string | number; /** 값 변경 (sdUpdate) — 문자열 전달 */ onValueChange?: (value: string) => void; /** 네이티브 onChange (form-agnostic 연동용, RHF 등) */ onChange?: InputHTMLAttributes['onChange']; /** 입력 타입 */ type?: 'text' | 'password' | 'email' | 'number' | 'tel' | 'search' | 'url'; /** 크기 */ size?: SFieldSize; /** 좌측 아이콘명 */ icon?: SIconName; /** 좌측 아이콘 색상 */ iconColor?: SColor; /** 입력 앞(좌측) 커스텀 노드 — 원본 slot="prefix" */ prefix?: ReactNode; /** 입력 뒤(우측) 커스텀 노드 — 원본 slot="suffix" */ suffix?: ReactNode; /** 지우기 버튼 */ clearable?: boolean; /** 유효성 규칙 — blur 시 자동 검증 */ rules?: Rule[]; /** 필드 상태 ('default' | 'pass' | 'error') */ status?: SFieldStatus; /** 포커스 상태 (제어/반영) */ focused?: boolean; /** 호버 상태 (제어/반영) */ hovered?: boolean; /** 내부 input 요소 className */ inputClass?: string; /** 내부 input 요소 style */ inputStyle?: CSSProperties; label?: string; labelWidth?: number | string; /** 레이블 툴팁 텍스트 */ labelTooltip?: string; /** 레이블 툴팁 상세 옵션 */ labelTooltipProps?: Partial; hint?: string; error?: boolean; errorMessage?: string; addonLabel?: string; /** 어드온 정렬 */ addonAlign?: SFieldAddonAlign; width?: number | string; disabled?: boolean; readOnly?: boolean; className?: string; style?: CSSProperties; } /** SInput — sd-input 포팅. SField(테두리 박스) + borderless native input + clearable/password/icon. */ export declare const SInput: import("react").ForwardRefExoticComponent>;