import { MutableRefObject } from 'react';
import { FormHandles } from '@unform/core';
import * as Yup from 'yup';
import { IObject } from '../../interfaces';
import { Resolve } from '../../services/resolve.service';
import { IUseViewProps, IViewResponse, IStatusInfo } from '../useView/useView.interfaces';
export interface IStatusInfoViewForm extends IStatusInfo {
    saving: boolean;
}
export interface IUseViewFormProps extends IUseViewProps {
    id?: any;
    resolveGet?: Resolve;
    resolveCreate?: Resolve;
    resolveUpdate?: Resolve;
    handleFormData?: ((formData: any) => any) | ((formData: any) => Promise<any>);
    onErrorValidate?: () => void;
    onSuccess?: (creating: boolean, resp: any) => void;
    onFailed?: (creating: boolean, resp: any) => void;
    yupValidateSchema?: Yup.ObjectSchema<any, any, any>;
    onValidateFormData?: (formData: any) => boolean;
}
export interface IViewFormResponse<IFilter = IObject, IQuery = IObject, IResource = any> extends IViewResponse {
    resource: any;
    formRef: MutableRefObject<FormHandles>;
    saving: boolean;
    onSubmitForm(data: any): Promise<void>;
    submit(): void;
}
//# sourceMappingURL=useViewForm.interfaces.d.ts.map