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>;