interface IFormField { name: string; label: string; uniqueId?: string; component?: HTMLElement | JSX.Element; type?: string; required?: boolean; className?: string; options?: { [key: string]: string | number }[]; onValidate?: ((value: any) => string) | null; disableDropdown?: boolean; } interface IFormFieldsSection { name: string; fields: IFormField[]; groupLabel?: string | HTMLElement | JSX.Element; groupLabelVars?: string[]; groupLabelClassName?: string; groupClassName?: string; id?: string | number; uniqueId?: string; } interface IFieldAttribute { [key: string]: { [key: string]: string | number | boolean | Array; }; }