import { type CSSProperties } 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 type SNumberInputSize = SFieldSize; export interface SNumberInputProps { /** 입력 값 */ value?: string | number | null; /** 값 변경 (sdUpdate) — number|null 전달 */ onValueChange?: (value: number | null) => void; /** 크기 */ size?: SNumberInputSize; /** 최솟값 */ min?: number; /** 최댓값 */ max?: number; /** 스텝 단위 */ step?: number; /** 증감 버튼 표시 */ useButton?: boolean; /** 소수점 입력 허용 */ useDecimal?: boolean; /** 소수점 이하 최대 자리수 */ maxDecimalLength?: number; /** 입력 앞 접두 텍스트 */ inputPrefix?: string; /** 입력 뒤 접미 텍스트 */ inputSuffix?: string; /** 네이티브 input className */ inputClass?: string; /** 네이티브 input style */ inputStyle?: CSSProperties; /** 마운트 시 자동 포커스 */ autoFocus?: boolean; /** 포커스 이벤트 (sdFocus) */ onFocus?: (e: React.FocusEvent) => void; /** 블러 이벤트 (sdBlur) */ onBlur?: (e: React.FocusEvent) => void; /** 폼 연동 name */ name?: string; placeholder?: string; disabled?: boolean; readOnly?: boolean; /** 유효성 규칙 — blur 시 검증 */ rules?: Rule[]; status?: SFieldStatus; focused?: boolean; hovered?: boolean; label?: string; labelWidth?: number | string; icon?: SIconName; iconColor?: SColor; labelTooltip?: string; labelTooltipProps?: Partial; addonLabel?: string; addonAlign?: SFieldAddonAlign; hint?: string; error?: boolean; errorMessage?: string; width?: number | string; className?: string; style?: CSSProperties; } /** SNumberInput — sd-number-input 포팅. 콤마 포맷 + min/max/step + 옵션 스테퍼. */ export declare const SNumberInput: import("react").ForwardRefExoticComponent>;