import { AccountBase, ClassBase, Currency, ID, NestedAccountHierarchyForReport, NestedClassHierarchyForReport, Recommendation, RecommendedAccountBase, RecommendedClassBase, User, VendorDetails, VendorType } from '@zeniai/client-epic-state';
import { CountrySelectFieldValue } from '../../../../../address/addressHelper';
import { AutoCompleteData } from '../../../../../common/autoComplete/autoCompleteProps';
import { FormSectionProps } from '../../../../../formElements/common/formSection';
import { GroupedSingleSelectFieldValue } from '../../../../../formElements/groupedSingleSelectField/GroupedSingleSelectField';
import { UserSingleSelectFieldValue } from '../../../../../formElements/labeledUserSingleSelectField/UserSingleSelectField';
import { SingleSelectFieldValue } from '../../../../../singleSelect/SingleSelectField';
import { OptionType as AutoCompleteOptionType, CreatableAutoCompleteSingleSelectFieldValue } from './../../../../../formElements/creatableAutoCompleteSingleSelectField/CreatableAutoCompleteSingleSelectField';
export interface VendorDetailsFormData {
    isCategoryRecommendationPrefilled: boolean;
    isClassRecommendationPrefilled: boolean;
    isRecommendedCategorySelected: boolean;
    isRecommendedClassSelected: boolean;
    isVendor1099: string;
    recommendedCategory: RecommendedAccountBase | undefined;
    recommendedClass: RecommendedClassBase | undefined;
    vendor: CreatableAutoCompleteSingleSelectFieldValue;
    vendorCategory: GroupedSingleSelectFieldValue;
    vendorClass: GroupedSingleSelectFieldValue;
    vendorCountry: CountrySelectFieldValue;
    vendorCurrency: Currency | undefined;
    vendorName: string;
    vendorOwner: UserSingleSelectFieldValue;
    vendorType: SingleSelectFieldValue;
}
export type FormDataKeys = keyof VendorDetailsFormData;
declare const subFieldUniqueName: (sectionId: string, key: FormDataKeys, subKey?: "currencyCode" | "currencySymbol") => `${string}.vendor` | `${string}.vendorCurrency.currencySymbol` | `${string}.vendorCurrency.currencyCode` | `${string}.recommendedCategory` | `${string}.recommendedClass` | `${string}.vendorName` | `${string}.isRecommendedCategorySelected` | `${string}.isRecommendedClassSelected` | `${string}.isCategoryRecommendationPrefilled` | `${string}.isClassRecommendationPrefilled` | `${string}.isVendor1099` | `${string}.vendorCategory` | `${string}.vendorClass` | `${string}.vendorCountry` | `${string}.vendorCurrency` | `${string}.vendorOwner` | `${string}.vendorType`;
export interface VendorSearchAutoComplete {
    vendorSearchAutoCompleteData?: AutoCompleteData;
    loadOptions?: (inputValue: string, callback: (defaultOptions: AutoCompleteOptionType[]) => void) => void;
}
export type FormDataKeyUniqueNames = ReturnType<typeof subFieldUniqueName>;
export interface VendorDetailsSectionProps extends FormSectionProps {
    accountsHierarchyList: NestedAccountHierarchyForReport[];
    allAccounts: AccountBase[];
    allClasses: ClassBase[];
    classHierarchyList: NestedClassHierarchyForReport[];
    currentVendorOption: CreatableAutoCompleteSingleSelectFieldValue;
    hasInternationalWireTransfer: boolean;
    page: string;
    screenType: "create" | "edit";
    selectedVendorDetails: VendorDetails;
    vendorTypeList: VendorType[];
    allOwners?: User[];
    isAccountingClassesEnabled?: boolean;
    isLocalCurrencyEnabled?: boolean;
    readOnlyMode?: boolean;
    recommendations?: Recommendation[];
    selectedAccountId?: ID;
    selectedClassId?: ID;
    selectedOwnerId?: ID;
    selectedType?: string;
    selectedVendorId?: ID;
    selectedVendorName?: string;
    vendorSearchAutoComplete?: VendorSearchAutoComplete;
    onFetchAndUpdateVendorRecommendations: (vendorName: string) => void;
}
export declare const VendorDetailsSection: ({ selectedVendorId, selectedVendorDetails, hasInternationalWireTransfer, currentVendorOption, selectedAccountId, selectedClassId, selectedOwnerId, selectedType, selectedVendorName, vendorSearchAutoComplete, allAccounts, allClasses, vendorTypeList, allOwners, screenType, sectionId, recommendations, page, readOnlyMode, accountsHierarchyList, classHierarchyList, isAccountingClassesEnabled, isLocalCurrencyEnabled, onFetchAndUpdateVendorRecommendations, }: VendorDetailsSectionProps) => import("react/jsx-runtime").JSX.Element;
export {};
