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 { Antd } from '../../components/antd'; import { BaseRecord, GetOneResponse, HttpError, LiveModeProps } from '../../interfaces'; import { UseUpdateReturnType } from '../data/useUpdate'; import { UseCreateReturnType } from '../data/useCreate'; declare type ButtonProps = Antd.ButtonProps; export declare type ActionParams = { action?: 'edit' | 'create' | 'clone'; }; declare type ActionFormProps = useCreateFormProps & useEditFormProps & useCloneFormProps; declare type ResourcelessActionFormProps = Omit, 'resource'>; export declare type TuseFormProps = 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; }; export declare const useForm: ({ action: actionFromProps, resource: resourceFromProps, ...rest }?: TuseFormProps) => UseFormReturnType; export {};