import { FormBuilder } from '@codella-software/utils'; /** * Hook options for useFormBuilder */ export interface UseFormBuilderOptions> { /** FormBuilder instance */ builder: FormBuilder; } /** * Hook return value for useFormBuilder */ export interface UseFormBuilderReturn> { /** Current form values */ values: T; /** Form validation errors */ errors: Record; /** Form touched fields */ touched: Record; /** Current form step (for multi-step forms) */ currentStep: number; /** Total form steps */ totalSteps: number; /** Is form currently submitting */ isSubmitting: boolean; /** Is form valid */ isValid: boolean; /** Set field value */ setFieldValue: (field: keyof T, value: any) => Promise; /** Set field touched */ setFieldTouched: (field: keyof T, touched: boolean) => void; /** Validate entire form */ validate: () => Promise>; /** Submit form */ submit: () => Promise; /** Reset form to initial values */ reset: () => void; /** Go to next step */ nextStep: () => void; /** Go to previous step */ prevStep: () => void; } /** * React hook that wraps FormBuilder and provides form state management * * @param options - Hook options including FormBuilder instance * @returns Form state and methods * * @example * ```tsx * const builder = new FormBuilder<{ name: string }>() * .addField({ name: 'name', type: 'text', label: 'Name' }) * .build(); * * function MyForm() { * const form = useFormBuilder({ builder }); * return ( *
{ e.preventDefault(); form.submit(); }}> * form.setFieldValue('name', e.target.value)} * /> * {form.errors.name && {form.errors.name}} * *
* ); * } * ``` */ export declare function useFormBuilder>(options: UseFormBuilderOptions): UseFormBuilderReturn; //# sourceMappingURL=useFormBuilder.d.ts.map