import { ClientAnalytics } from '@zeniai/client-analytics'; import { AccountBase, Amount, Attachment, AutoFields, BillStageCodeType, BillStatusCodeType, ClassBase, CompanyMileageConfigInfo, CountryWithCurrency, Currency, DuplicateLine, FetchState, FetchStateAndError, ID, Merchant, NestedAccountHierarchyForReport, NestedClassHierarchyForReport, Recommendation, RecommendedAccountBase, UncategorizedAccounts } from '@zeniai/client-epic-state'; import { AutoCompleteData } from '../../../common/autoComplete/autoCompleteProps'; import { CreatableSingleSelectFieldValue } from '../../../creatableSingleSelect/CreatableSingleSelectField'; import { AutoCompleteSingleSelectFieldValue, OptionType } from '../../../formElements/autoCompleteSingleSelectField/AutoCompleteSingleSelectField'; import { FormSectionProps } from '../../../formElements/common/formSection'; import { CurrencyAmountFormData } from '../../../formElements/currencyAmountField/CurrencyAmountField'; import { GroupedSingleSelectFieldValue } from '../../../formElements/labeledGroupSingleSelectFieldWithRecommendationCheckbox/GroupedSingleSelectField'; import { MileageFormData, OutOfPocketFormData } from '../types'; export interface CustomerSearchAutoComplete { customerSearchAutoCompleteData: AutoCompleteData; loadOptions?: (inputValue: string, callback: (defaultOptions: OptionType[]) => void) => void; } export interface LineItemsSectionFormData { lineId: string; mileage: MileageFormData; outOfPocket: OutOfPocketFormData; reimbursementType: string; } export type FormDataKeys = keyof LineItemsSectionFormData; export declare const uniqueName: (sectionId: string, key: FormDataKeys) => `${string}.lineId` | `${string}.reimbursementType` | `${string}.mileage` | `${string}.outOfPocket`; export declare const formUniqueName: (formId: ID) => `${string}_form`; export type FormDataKeyUniqueNames = ReturnType; export interface LineInfoFormData { lineId: ID; lineIndex: number; mileage: { class: GroupedSingleSelectFieldValue; amount?: Amount; customer?: AutoCompleteSingleSelectFieldValue; distanceInMiles?: number; memo?: string; transactionDate?: Date; }; outOfPocket: { account: GroupedSingleSelectFieldValue; class: GroupedSingleSelectFieldValue; isCategoryFirstTimeAutofilled: boolean; isCategoryUpdateSelected: boolean; isRetainedCategorySelected: boolean; merchant: CreatableSingleSelectFieldValue; recommendations: Recommendation[]; amount?: OutOfPocketCurrencyAmount; customer?: AutoCompleteSingleSelectFieldValue; memo?: string; recommendedAccount?: RecommendedAccountBase; retainedAccount?: AccountBase; transactionDate?: Date; }; reimbursementType: string; file?: Attachment; homeCurrencyConversions?: Amount; } export interface OutOfPocketCurrencyAmount extends Amount { currency: CurrencyAmountFormData; } export interface ReimbursementSectionProps extends FormSectionProps { accountList: AccountBase[]; accountsHierarchyList: NestedAccountHierarchyForReport[]; allCurrencies: CountryWithCurrency[]; classHierarchyList: NestedClassHierarchyForReport[]; classList: ClassBase[]; currencyConversionState: FetchStateAndError; defaultCurrency: Currency; fileRequiredLineIds: ID[]; hasFile: boolean; hasMultipleLineItems: boolean; isAccountingClassesEnabled: boolean; isAddReimbursementDisabled: boolean; isReimbursementCommentingEnabled: boolean; lineData: LineInfoFormData; lineIndex: number; merchantList: Merchant[]; remiStage: BillStageCodeType; uncategorizedAccounts: UncategorizedAccounts; analytics?: ClientAnalytics; autoFields?: AutoFields; companyMileageConfigInfo?: CompanyMileageConfigInfo; customerSearchAutoComplete?: CustomerSearchAutoComplete; duplicateLineDetails?: DuplicateLine; recommendationFetchState?: FetchState; reimbursementId?: string; remiStatus?: BillStatusCodeType; style?: React.CSSProperties; tentativeMerchantName?: string; onDuplicateLineClick: (reimbursementId: ID, lineId: ID) => void; onRemoveReimbursement: (lineIndex: number) => void; removeDuplicateReimbursementForLine: (lineId: string) => void; scrollToSection: (id: string) => void; clearTentativeNameForLine?: (lineId: string) => void; } export declare const ReimbursementSection: ({ lineData, currencyConversionState, recommendationFetchState, remiStage, lineIndex, accountList, classList, merchantList, hasFile, defaultCurrency, hasMultipleLineItems, fileRequiredLineIds, duplicateLineDetails, remiStatus, sectionId, isDisabled, isReimbursementCommentingEnabled, isAddReimbursementDisabled, style, autoFields, analytics, reimbursementId, tentativeMerchantName, companyMileageConfigInfo, customerSearchAutoComplete, uncategorizedAccounts, removeDuplicateReimbursementForLine, scrollToSection, onDuplicateLineClick, onRemoveReimbursement, clearTentativeNameForLine, allCurrencies, accountsHierarchyList, classHierarchyList, isAccountingClassesEnabled, }: ReimbursementSectionProps) => import("react/jsx-runtime").JSX.Element;