import { ReactNode } from "react"; import { FieldConfig, ParsedField, ParsedField as ParsedField$1, ParsedSchema, ParsedSchema as ParsedSchema$1, Renderable, SchemaProvider, SchemaProvider as SchemaProvider$1 } from "@autoform/core"; //#region src/types.d.ts interface FieldBinding { value: any; onChange: (...event: any[]) => void; onBlur: () => void; name: string; /** ref is optional - not all adapters provide one */ ref?: React.Ref; } interface UseFieldReturn { field: FieldBinding; } type UseFieldFn = (opts: { name: string; }) => UseFieldReturn; interface AutoFormProps = Record> { /** Schema adapter that manages fields, default values, and validation. */ schema: SchemaProvider; /** * External form control handle. For react-hook-form: the return of createFormControl(). * For TanStack: the form instance returned by the adapter's useAppForm() in a parent. */ formControl?: any; /** * Runs after successful validation. Receives the values and submit event. * @default () => {} */ onSubmit?: (values: T, form: any, e?: React.BaseSyntheticEvent) => void | Promise; /** * Initial values merged over schema defaults. * @default inferred from schema */ defaultValues?: Partial; /** Controlled values that keep the form in sync with external state. */ values?: Partial; /** Extra UI rendered after the generated fields. */ children?: ReactNode; /** Layout/wrapper components for fields, errors, and structure. */ uiComponents: AutoFormUIComponents; /** Form components mapped to field types (string, number, select, etc.). */ formComponents: AutoFormFieldComponents; /** * Show a default submit button after all fields. * @default false */ withSubmit?: boolean; /** * Props forwarded to the underlying
element. * @default {} */ formProps?: React.ComponentProps<"form"> | Record; } type AutoFormComponent = = Record>(props: AutoFormProps) => React.ReactElement; type ExtendableAutoFormProps> = Omit, "uiComponents" | "formComponents"> & { uiComponents?: Partial; formComponents?: Partial; }; interface AutoFormUIComponents { /** Root form element. */ Form: React.ComponentType>; /** Wraps each field with label, error, and layout UI. */ FieldWrapper: React.ComponentType; /** Renders AutoForm configuration errors. */ ErrorMessage: React.ComponentType<{ error: string; }>; /** Submit button rendered when withSubmit is enabled. */ SubmitButton: React.ComponentType<{ children: ReactNode; }>; /** Wraps nested object fields. */ ObjectWrapper: React.ComponentType; /** Wraps array fields and owns the add-item action. */ ArrayWrapper: React.ComponentType; /** Wraps one array item and owns the remove-item action. */ ArrayElementWrapper: React.ComponentType; } interface AutoFormFieldComponents { [key: string]: React.ComponentType; } interface FieldWrapperProps { label: Renderable; error?: Renderable; children: ReactNode; id: string; parsedField: ParsedField; } interface ArrayWrapperProps { label: Renderable; error?: Renderable; children: ReactNode; inputProps: any; parsedField: ParsedField; onAddItem: () => void; } interface ArrayElementWrapperProps { children: ReactNode; onRemove: () => void; index: number; } interface ObjectWrapperProps { label: Renderable; children: ReactNode; parsedField: ParsedField; } interface AutoFormFieldProps { path: string[]; id: string; error?: string; parsedField: ParsedField; label: Renderable; inputProps: any; } interface AutoFormContextType { schema: ParsedSchema; uiComponents: AutoFormUIComponents; formComponents: AutoFormFieldComponents; } type FieldConfig$1, FieldWrapper = React.ComponentType, ObjectWrapper = React.ComponentType, ArrayWrapper = React.ComponentType, ArrayElementWrapper = React.ComponentType> = FieldConfig; //#endregion export { ArrayElementWrapperProps, ArrayWrapperProps, AutoFormComponent, AutoFormContextType, AutoFormFieldComponents, AutoFormFieldProps, AutoFormProps, AutoFormUIComponents, ExtendableAutoFormProps, FieldBinding, FieldConfig$1 as FieldConfig, FieldWrapperProps, ObjectWrapperProps, type ParsedField$1 as ParsedField, type ParsedSchema$1 as ParsedSchema, type SchemaProvider$1 as SchemaProvider, UseFieldFn, UseFieldReturn }; //# sourceMappingURL=types.d.mts.map