import { ConvertContext, ServerStandardResult } from '@clue_nidapp/shared'; import { SubmitSuccessResData, NeedVerificationRes } from '../core/request'; import { BusinessConfirmOptions, FieldsValidateResultObserver, FormCoreData, ICustomField, Link, SectionCaptchaOptions, ShowModalOptions, SmsCaptchaOptions, SubmitFormData, IValidityResult } from '../types'; import { SubmitType } from './types'; export declare enum FormLifeCycleEvent { Init = "Init", ConvertContext = "ConvertContext", DetailReady = "DetailReady", CityDataReady = "CityDataReady", FieldFocus = "FieldFocus", FieldReset = "FieldReset", FieldValidateResult = "FieldValidateResult", CustomSubmitParams = "CustomSubmitParams", ValidateBeforeSubmitForm = "ValidateBeforeSubmitForm", BeforeSubmitForm = "BeforeSubmitForm", AfterSubmitForm = "AfterSubmitForm", SubmitFormSuccess = "SubmitFormSuccess", NeedVerification = "NeedVerification", NeedSelectionVerification = "NeedSelectionVerification", NeedSMSVerification = "NeedSMSVerification", NeedBusinessConfirm = "NeedBusinessConfirm", SubmitResultWithClue = "SubmitResultWithClue", SubmitFormError = "SubmitFormError", SubmitFormFail = "SubmitFormFail", ShowModal = "ShowModal", ShowLayerForm = "ShowLayerForm", CloseLayerForm = "CloseLayerForm", OpenLink = "OpenLink", Finish = "Finish" } export interface FormEventListener { ShowModal: (param: { type: 'success' | 'warning' | 'error'; message: string; buttonText: string; }) => void; } export declare type SubmitResultParam = ServerStandardResult; export interface CustomSubmitParamsCtx { params: ICustomField[]; submitType: SubmitType; } export interface FormLifeCycleEventListener { [FormLifeCycleEvent.Init]: () => void; [FormLifeCycleEvent.DetailReady]: (innerData: FormCoreData, detailReadyCount: number) => void; [FormLifeCycleEvent.ConvertContext]: (convertContext: ConvertContext) => void; [FormLifeCycleEvent.CustomSubmitParams]: (paramsCtx: CustomSubmitParamsCtx) => void; [FormLifeCycleEvent.AfterSubmitForm]: (res: SubmitResultParam) => void; [FormLifeCycleEvent.SubmitFormSuccess]: () => void; [FormLifeCycleEvent.CityDataReady]: (params: Record) => void; [FormLifeCycleEvent.NeedVerification]: (res: NeedVerificationRes['data']) => void; [FormLifeCycleEvent.SubmitResultWithClue]: (res: SubmitResultParam) => void; [FormLifeCycleEvent.FieldFocus]: (fieldIdOrFieldType: number | string) => void; [FormLifeCycleEvent.FieldValidateResult]: FieldsValidateResultObserver; [FormLifeCycleEvent.ValidateBeforeSubmitForm]: (validateResult: IValidityResult) => void; [FormLifeCycleEvent.BeforeSubmitForm]: (params: { submitData: SubmitFormData; submitType?: SubmitType; }) => void; [FormLifeCycleEvent.SubmitFormError]: (res: any) => void; [FormLifeCycleEvent.SubmitFormFail]: (res: any) => void; [FormLifeCycleEvent.NeedSelectionVerification]: (captchaOptions: SectionCaptchaOptions) => void; [FormLifeCycleEvent.NeedSMSVerification]: (captchaOptions: SmsCaptchaOptions) => void; [FormLifeCycleEvent.NeedBusinessConfirm]: (options: BusinessConfirmOptions) => void; [FormLifeCycleEvent.ShowLayerForm]: () => void; [FormLifeCycleEvent.CloseLayerForm]: () => void; [FormLifeCycleEvent.Finish]: () => void; [FormLifeCycleEvent.FieldReset]: () => void; [FormLifeCycleEvent.OpenLink]: (url: string, type: Link['type']) => void; [FormLifeCycleEvent.ShowModal]: (options: ShowModalOptions) => void; [key: string]: any; }