import { Dispatch, SetStateAction } from "react"; import { QueryObserverResult } from "react-query"; import { FormInstance, FormProps } from "antd"; import { useCreateFormProps } from "./useCreateForm"; import { useEditFormProps } from "./useEditForm"; import { useCloneFormProps } from "./useCloneForm"; import { ButtonProps } from "../../components/antd"; import { BaseRecord, GetOneResponse, HttpError, LiveModeProps } from "../../interfaces"; import { UseUpdateReturnType } from "../data/useUpdate"; import { UseCreateReturnType } from "../data/useCreate"; export declare type ActionParams = { action?: "edit" | "create" | "clone"; }; declare type ActionFormProps = useCreateFormProps & useEditFormProps & useCloneFormProps; declare type ResourcelessActionFormProps = Omit, "resource">; export declare type useFormProps = ActionParams & { resource?: string; } & ResourcelessActionFormProps & LiveModeProps; export declare type UseFormReturnType = { form: FormInstance; formProps: FormProps; editId?: string; setEditId?: Dispatch>; saveButtonProps: ButtonProps & { onClick: () => void; }; queryResult?: QueryObserverResult>; mutationResult: UseUpdateReturnType | UseCreateReturnType; formLoading: boolean; setCloneId?: Dispatch>; cloneId?: string; }; /** * `useForm` is used to manage forms. It uses Ant Design {@link https://ant.design/components/form/ Form} data scope management under the hood and returns the required props for managing the form actions. * * @see {@link https://refine.dev/docs/api-references/hooks/form/useForm} for more details. * * @typeParam TData - Result data of the query extends {@link https://refine.dev/docs/api-references/interfaceReferences#baserecord `BaseRecord`} * @typeParam TError - Custom error object that extends {@link https://refine.dev/docs/api-references/interfaceReferences#httperror `HttpError`} * @typeParam TVariables - Values for params. default `{}` * * */ export declare const useForm: ({ action: actionFromProps, resource: resourceFromProps, ...rest }?: useFormProps) => UseFormReturnType; export {};