import { type CSSProperties, type ReactNode } from 'react'; export interface SFormValidationError { /** 검증에 실패한 필드 name 목록 (DOM 순서) */ names: string[]; } /** ref로 노출되는 폼 제어 메서드 (sd-form @Method 대응) */ export interface SFormHandle { /** 등록된 모든 필드를 검증하고 통과 여부를 반환 */ validate: () => boolean; /** 모든 필드의 검증 상태만 초기화 (값은 소비자 소유) */ resetValidation: () => void; /** resetValidation 별칭 — sd-form sdReset 대응. 값 리셋은 소비자(value/onChange) 책임 */ reset: () => void; /** 첫 번째 실패 필드로 포커스 이동 */ focusFirstInvalid: () => void; } export interface SFormProps { /** form 엘리먼트에 추가할 클래스 (sd-form formClass 대응) */ formClass?: string; /** 모든 필드 검증 통과 후 발생 (sd-form sdSubmit 대응) */ onSubmit?: () => void; /** 검증 실패 시 실패한 필드 name 목록 전달 (sd-form sdValidationError 대응) */ onValidationError?: (error: SFormValidationError) => void; children?: ReactNode; className?: string; style?: CSSProperties; } /** * SForm — sd-form 포팅. 폼 안의 rule-bearing 컨트롤(useFormField로 등록)을 모아 * submit 시 일괄 검증한다. 하나라도 실패하면 제출을 막고 첫 실패 필드에 포커스한 뒤 * onValidationError를 발생시킨다. 값은 여전히 소비자 소유(form-agnostic 유지). */ export declare const SForm: import("react").ForwardRefExoticComponent>;