import { FormOnSubmit } from "@webiny/form"; import { UIElement, UIElementConfig } from "../UIElement"; import { FormElementRenderProps } from "../elements/form/FormElement"; import { ButtonElement } from "../elements/ButtonElement"; import { FormContentElement } from "./FormView/FormContentElement"; import { FormHeaderElement } from "./FormView/FormHeaderElement"; import { FormFooterElement } from "./FormView/FormFooterElement"; import { FormContainerElement } from "./FormView/FormContainerElement"; import { UIView } from "../UIView"; export interface FormViewConfig extends UIElementConfig { setupForm?: boolean; onSubmit?: FormOnSubmit; getTitle?: (props: FormElementRenderProps) => string; getFormData?: () => Record; isLoading?: () => boolean; onCancel?: () => void; testId?: string; noElevation?: boolean; className?: string; } interface GetterWithProps { (props: FormElementRenderProps): T; } interface GetterWithoutProps { (): T; } export declare class FormView extends UIView { constructor(id: string, config?: FormViewConfig); addElement(element: TElement): TElement; setTitle(title: string | GetterWithProps): void; setOnSubmit(onSubmit: FormOnSubmit): void; setFormData(getter: GetterWithoutProps>): void; getFormContainer(): FormContainerElement; getFormContentElement(): FormContentElement; getFormHeaderElement(): FormHeaderElement; getFormFooterElement(): FormFooterElement; getSubmitButtonElement(): ButtonElement; private addElements; } export {};