import type { MlBaseFormProps } from '../ml-base-form/types'; import type { JSXElementRender } from '../types'; import type { Pipeline, PipelineExtensions, PipelineState } from './extensions'; export interface MlFormProps extends Omit< MlBaseFormProps, 'formData' | 'headerLeftSlots' | 'headerRightSlots' | 'footerLeftSlots' | 'footerRightSlots' > { defaultFormData?: MlBaseFormProps['formData']; extensions?: PipelineExtensions; headerLeftSlot?: JSXElementRender; headerRightSlot?: JSXElementRender; footerLeftSlot?: JSXElementRender; footerRightSlot?: JSXElementRender; } export interface MlFormExposed { getFormData: () => MlBaseFormProps['formData']; setFormData: ( nextFormData: MlBaseFormProps['formData'] | ((formState: PipelineState) => MlBaseFormProps['formData']), ) => Promise; setParitalFormData: ( partialFormData: MlBaseFormProps['formData'] | ((formState: PipelineState) => Partial), ) => Promise; cellRequiredFail: () => boolean; validateCellRequiredFail: () => boolean; getExtensionStateAtKey: Pipeline['getStateAtKey']; }