import { ClientAnalytics } from '@zeniai/client-analytics';
import { AccountBase, AuthParams, ClassBase, EntityAutoCompleteView, FetchStateAndError, FilePayload, ID, NestedAccountHierarchyForReport, NestedClassHierarchyForReport, User, Vendor, VendorContactInfo, VendorDetailLocalData, VendorDetails, VendorType } from '@zeniai/client-epic-state';
import { AutoCompleteActions, AutoCompleteData } from '../../../common/autoComplete/autoCompleteProps';
import { OptionType } from '../../../formElements/creatableAutoCompleteSingleSelectField/CreatableAutoCompleteSingleSelectField';
import { vendorContactInfoSectionId } from './sections/vendorContactInfo/VendorContactInfoSection';
import { VendorDetailsFormData } from './sections/vendorDetails/VendorDetailsSection';
import { VendorDocumentsSectionFormData, vendorDocumentsSectionId } from './sections/vendorDocuments/VendorDocumentsSection';
export declare const vendorDetailsSectionId = "vendorDetails";
export interface CreateOrEditVendorPageFormRef {
    syncFormData: () => void;
}
interface CreateOrEditVendorPageFormProps {
    accountsHierarchyList: NestedAccountHierarchyForReport[];
    allAccounts: AccountBase[];
    allClasses: ClassBase[];
    authParams: AuthParams;
    classHierarchyList: NestedClassHierarchyForReport[];
    deleteFileStatusById: Record<ID, FetchStateAndError | undefined>;
    filesEndPoint: string;
    hasInternationalWireTransfer: boolean;
    id: string;
    isAccountingClassesEnabled: boolean;
    isLocalCurrencyEnabled: boolean;
    screenType: "create" | "edit";
    selectedVendor: VendorDetails;
    updateFileStatusById: Record<ID, FetchStateAndError | undefined>;
    vendorTypeList: VendorType[];
    allOwners?: User[];
    analytics?: ClientAnalytics;
    formLocalData?: VendorDetailLocalData;
    isBankAccountChanged?: boolean;
    isContactListChanged?: boolean;
    isPaymentInstrumentChanged?: boolean;
    page?: string;
    pageBackBtnClicked?: boolean;
    readOnlyMode?: boolean;
    vendorSearchAutoCompleteActions?: AutoCompleteActions;
    vendorSearchAutoCompleteData?: AutoCompleteData;
    onFetchAndUpdateVendorRecommendations: (vendorName: string) => void;
    handleFormChange?: (dirty: boolean) => void;
    onBackClick?: () => void;
    onEditFileName?: (fileId: ID, name: string) => void;
    onSaveVendor?: (fileIdsToBeDeleted?: ID[]) => void;
    onVendorSelected?: (id?: ID) => void;
    saveContactsInVendorDetailLocalData?: (contact: VendorContactInfo[]) => void;
    saveVendorDetailLocalData?: (data: VendorDetailLocalData) => void;
    toggleConfirmationPopup?: (val: boolean) => void;
    updateFilesEntity?: (files: FilePayload[]) => void;
    updateSelectedVendorForCreate?: (vendorId: ID) => void;
}
declare const CreateOrEditVendorPageForm: import('react').ForwardRefExoticComponent<CreateOrEditVendorPageFormProps & import('react').RefAttributes<CreateOrEditVendorPageFormRef>>;
export default CreateOrEditVendorPageForm;
export interface FormData {
    [vendorContactInfoSectionId]: VendorContactInfo[];
    [vendorDetailsSectionId]: VendorDetailsFormData;
    [vendorDocumentsSectionId]: VendorDocumentsSectionFormData;
}
export declare const getVendorOptions: (entityAutoCompleteView?: EntityAutoCompleteView, recommendedVendor?: Vendor, tentativeVendor?: string) => OptionType[];
export declare const getDefaultVendorOptions: (selectedVendorId?: ID, selectedVendorName?: string, vendorSearchEntityAutoCompleteView?: EntityAutoCompleteView, recommendedVendor?: Vendor, tentativeVendor?: string) => OptionType[];
