/** Estado de un formulario con validacion sincrona. */
export interface FormState<T extends Record<string, unknown>> {
  /** Valores actuales del formulario */
  values: T
  /** Errores por campo (undefined si el campo no tiene error) */
  errors: Partial<Record<keyof T, string>>
  /** Campos que el usuario ha modificado al menos una vez */
  touched: Partial<Record<keyof T, boolean>>
  /** Si todos los campos pasan la validacion */
  is_valid: boolean
  /** Si el submit esta en progreso */
  is_submitting: boolean
}
