import { FormHook } from './form-hook'; import { LanguageKeys, MultiLingual } from "../multi-lingual/index"; import { FormHookInterface } from './interface'; import { AnyObjectSchema } from 'yup'; /** * `data` is optional on the structure type, and `Object.hasOwn(undefined, ...)` * throws. That throw landed in `formDidLoadHandler` before `formContext.form` * was ever assigned, so a form given a malformed structure -- or none at all -- * never mounted `form-structure` and sat on its loader forever. The * "wrong form structure" panel was unreachable, because it only renders inside * the component that never mounted. * * A present-but-false `isMobileForm` still has to beat the prop, so this is a * key check rather than a truthiness check. */ export declare const resolveIsMobileForm: (structure: { data?: Record; } | undefined, fallback: boolean) => boolean; export type FormLanguageChange = { form: FormHook; locale: Record; localeLanguage: LanguageKeys; structure: Record; }; export declare const formLanguageChange: (formContext: FormLanguageChange, newLanguage: LanguageKeys) => Promise; export type FormErrorHandler = { errorMessage: string; locale: Record; errorCallback?: (error: any, message: string) => Promise; }; export declare const formErrorHandler: (formContext: FormErrorHandler, error: any) => Promise; export type FormLoadingHandler = { isLoading: boolean; loadingChanges?: (loading: boolean) => void; }; export declare const formLoadingHandler: (formContext: FormLoadingHandler, isLoading: boolean) => Promise; export type FormSuccessHandler = { el: HTMLElement; isLoading: boolean; form: FormHook; locale: Record; disableScrollToTop?: boolean; loadingChanges?: (loading: boolean) => void; successCallback?: (data: any, message?: string) => Promise; }; export declare const formSuccessHandler: (formContext: FormSuccessHandler, data: any) => Promise; export type FormDidLoadHandler = { gistId?: string; form: FormHook; structureUrl?: string; isMobileForm: boolean; language: LanguageKeys; localeLanguage: LanguageKeys; structure: Record; changeLanguage: (newLanguage: LanguageKeys) => Promise; }; export declare const formDidLoadHandler: (formContext: FormDidLoadHandler & FormHookInterface, validator: AnyObjectSchema) => Promise; export type FormGetFormHandler = { form: FormHook; }; export declare const formGetFormHandler: (formContext: FormGetFormHandler) => Promise>; export type HandleFormSubmit = { form: FormHook; }; export declare const handleFormSubmit: (formContext: HandleFormSubmit) => Promise; export type FormStructureRenderedHandler = { formReadyCallback?: () => void; }; export declare const formStructureRenderedHandler: (formContext: FormStructureRenderedHandler, isRendered: boolean) => Promise; export type OnFormSubmit = { formValues: T; afterSuccess?: (payload: object, header: object) => void; context: FormHookInterface & MultiLingual & { form: FormHook; }; middleware?: (payload: object, header: object, url: string) => { header: object; payload: object; url: string; }; }; export declare const getMarketingValues: (structure?: FormHookInterface["structure"]) => Record; export declare const onFormSubmit: ({ context, formValues, middleware, afterSuccess }: OnFormSubmit) => Promise; export declare const functionHooks: { formLanguageChange: (formContext: FormLanguageChange, newLanguage: LanguageKeys) => Promise; formErrorHandler: (formContext: FormErrorHandler, error: any) => Promise; handleFormSubmit: (formContext: HandleFormSubmit) => Promise; formLoadingHandler: (formContext: FormLoadingHandler, isLoading: boolean) => Promise; formSuccessHandler: (formContext: FormSuccessHandler, data: any) => Promise; formDidLoadHandler: (formContext: FormDidLoadHandler & FormHookInterface, validator: AnyObjectSchema) => Promise; formGetFormHandler: (formContext: FormGetFormHandler) => Promise>; onFormSubmit: ({ context, formValues, middleware, afterSuccess }: OnFormSubmit) => Promise; formStructureRenderedHandler: (formContext: FormStructureRenderedHandler, isRendered: boolean) => Promise; };