import { ReactNode } from 'react'; import { FieldValues, Control, RegisterOptions, FieldPath } from 'react-hook-form'; export interface BaseFieldProps { name: FieldPath; control?: Control; label?: string; placeholder?: string; helpText?: string; disabled?: boolean; required?: boolean; className?: string; validation?: RegisterOptions; } export interface FormFieldProps extends BaseFieldProps { children?: ReactNode; } export interface Option { value: string | number; label: string; disabled?: boolean; } export interface SelectFieldProps extends BaseFieldProps { options: Option[]; multiple?: boolean; searchable?: boolean; } export interface CheckboxFieldProps extends BaseFieldProps { options?: Option[]; } export interface RadioFieldProps extends BaseFieldProps { options: Option[]; inline?: boolean; } export interface TextAreaFieldProps extends BaseFieldProps { rows?: number; cols?: number; resize?: 'none' | 'vertical' | 'horizontal' | 'both'; }