import { AccountBase, Amount, AutoFields, ClassBase, CountryWithCurrency, Merchant, NestedAccountHierarchyForReport, NestedClassHierarchyForReport, Recommendation, RecommendedAccountBase, UncategorizedAccounts, ZeniDate } from '@zeniai/client-epic-state';
import { AutoCompleteData } from '../../../common/autoComplete/autoCompleteProps';
import { OptionType as AutoCompleteOptionType, AutoCompleteSingleSelectFieldValue } from '../../../formElements/autoCompleteSingleSelectField/AutoCompleteSingleSelectField';
import { FormSectionProps } from '../../../formElements/common/formSection';
import { OutOfPocketFormDataKeys } from '../types';
export declare const uniqueName: (sectionId: string, key: OutOfPocketFormDataKeys) => `${string}.memo` | `${string}.amount` | `${string}.class` | `${string}.customer` | `${string}.account` | `${string}.isCategoryUpdateSelected` | `${string}.isRetainedCategorySelected` | `${string}.merchant` | `${string}.reimbursementType` | `${string}.transactionDate`;
export interface CustomerSearchAutoComplete {
    customerSearchAutoCompleteData: AutoCompleteData;
    loadOptions?: (inputValue: string, callback: (defaultOptions: AutoCompleteOptionType[]) => void) => void;
}
export interface OutOfPocket {
    amount: Amount;
    isCategoryFirstTimeAutofilled: boolean;
    isCategoryUpdateSelected: boolean;
    isConvertedCurrencyLoading: boolean;
    isRecommendationLoading: boolean;
    isRetainedCategorySelected: boolean;
    recommendations: Recommendation[];
    account?: string;
    class?: string;
    customerAutoCompleteData?: AutoCompleteSingleSelectFieldValue;
    homeCurrencyDetails?: Amount;
    memo?: string;
    merchant?: string;
    recommendedAccount?: RecommendedAccountBase;
    retainedAccount?: AccountBase;
    transactionDate?: ZeniDate;
}
export interface OutOfPocketFormProps extends FormSectionProps {
    accountList: AccountBase[];
    accountsHierarchyList: NestedAccountHierarchyForReport[];
    allCurrencies: CountryWithCurrency[];
    classHierarchyList: NestedClassHierarchyForReport[];
    classList: ClassBase[];
    isAccountingClassesEnabled: boolean;
    isAddReimbursementDisabled: boolean;
    isReimbursementCommentingEnabled: boolean;
    lineIndex: number;
    merchantList: Merchant[];
    outOfPocket: OutOfPocket;
    uncategorizedAccounts: UncategorizedAccounts;
    autoFields?: AutoFields;
    customerSearchAutoComplete?: CustomerSearchAutoComplete;
    reimbursementId?: string;
    style?: React.CSSProperties;
    tentativeMerchantName?: string;
}
export declare const OutOfPocketForm: ({ lineIndex, outOfPocket, accountList, classList, isAccountingClassesEnabled, merchantList, isAddReimbursementDisabled, sectionId, isReimbursementCommentingEnabled, isDisabled, autoFields, accountsHierarchyList, classHierarchyList, reimbursementId, tentativeMerchantName, allCurrencies, uncategorizedAccounts, customerSearchAutoComplete, }: OutOfPocketFormProps) => import("react/jsx-runtime").JSX.Element;
