import type { TUseForm, TUseFormOptions } from "../types.js"; /** * Creates a form management system with validation, state tracking, and DOM integration. * * @template T - The type of form values being managed * @param {TUseFormOptions} options - Form configuration options * @param {T} options.defaultValues - Initial values for the form fields * @param {TResolver} [options.resolver] - Optional validation resolver function * @param {number} [options.debounceMs=300] - Debounce time for validation in milliseconds * @returns {TUseForm} Form management interface with methods for registration, state access, and event handling * * @example * // Basic form with Zod validation and custom debounce * const form = handleForm({ * defaultValues: { email: '', password: '', remember: false }, * resolver: zodResolver(loginSchema), * debounceMs: 500 // Custom debounce time * }); * * // Register an input element * const emailInput = document.querySelector('#email'); * Object.assign(emailInput, form.register('email')); * * // Register a checkbox element * const rememberInput = document.querySelector('#remember'); * Object.assign(rememberInput, form.register('remember', { type: 'checkbox' })); * * // Show validation errors * const errorElement = document.querySelector('#email-error'); * errorElement.appendChild(form.formState.errors('email')); * * // Handle form submission * form.onSubmit((data, event) => { * console.log('Form submitted:', data); * }); * * // Reset form * form.formState.reset(); * * // Cleanup when component unmounts * form.destroy(); */ export declare function handleForm({ defaultValues, resolver, debounceMs }: TUseFormOptions): TUseForm;