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<T>} options - Form configuration options
 * @param {T} options.defaultValues - Initial values for the form fields
 * @param {TResolver<T>} [options.resolver] - Optional validation resolver function
 * @param {number} [options.debounceMs=300] - Debounce time for validation in milliseconds
 * @returns {TUseForm<T>} 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<T>({ defaultValues, resolver, debounceMs }: TUseFormOptions<T>): TUseForm<T>;
