import { Dispatch, SetStateAction } from 'react'; import { ClientAnalytics } from '@zeniai/client-analytics'; import { Amount, AuthParams, BankAccount, BankNameByRoutingState, BillStageCodeType, CompanyMileageConfigInfo, CreateBankAccountLocalData, Currency, EditRemiDetailSelectorView, FetchState, FetchStateAndError, ID, PlaidConnectionDetails, PlaidLinkTokenType, ReceiptsProcessingPayload, ReimbursementTypeCode, RemiDetailLocalData, UncategorizedAccounts } from '@zeniai/client-epic-state'; import { RequestToOpenThreadType } from '../../commentsAndNotes/utils/ThreadsProvider'; import { AutoCompleteActions, AutoCompleteData } from '../../common/autoComplete/autoCompleteProps'; import { CreatableSingleSelectFieldValue } from '../../creatableSingleSelect/CreatableSingleSelectField'; import { FormData as UserBankAccountFormData } from './UserBankAccountPage'; import { LineInfoFormData } from './sections/ReimbursementSection'; import { lineInfoSectionId, paymentAtSectionId, whatForSectionId } from './types'; export interface WhatForSectionFormData { reportTitle?: string; } /** * Form Data Type */ export interface FormData { [lineInfoSectionId]: LineInfoFormData[]; [paymentAtSectionId]: CreatableSingleSelectFieldValue; [whatForSectionId]: WhatForSectionFormData; } export declare const uniqueName: (sectionId: ID) => `${string}_form`; export interface EditReimbursementDetailPageProps { authParams: AuthParams; bankAccountCreationState: FetchStateAndError; bankAccounts: BankAccount[]; bankNameByRouting: Record; defaultCurrency: Currency; fetchBankNameByRoutingStatus: FetchStateAndError; isAccountingClassesEnabled: boolean; isReimbursementCommentingEnabled: boolean; isSignedInUserReimbursementCreator: boolean; isUserAdmin: boolean; plaidConnectionDetails: PlaidConnectionDetails; remiDetails: EditRemiDetailSelectorView; uncategorizedAccounts: UncategorizedAccounts; uploadInvoiceEndPoint: string; analytics?: ClientAnalytics; bankAccountToCreate?: CreateBankAccountLocalData; companyMileageConfigInfo?: CompanyMileageConfigInfo; customerSearchAutoCompleteActions?: AutoCompleteActions; customerSearchAutoCompleteData?: AutoCompleteData; disableInternalOverlay?: boolean; initialOpenThreadRequest?: RequestToOpenThreadType; isAiCfoAccessEnabled?: boolean; reimbursementId?: string; setShowSkipAutoFill?: Dispatch>; showSkipAutoFill?: boolean; clearAddRemiAutoFields: (lineId: ID) => void; clearDuplicateReimbursementDetail: () => void; clearRemiSaveStatus: () => void; discardReimbursementDetailsFromLocalStore: (reimbursementId?: ID) => void; fetchDuplicateReimbursement: () => void; onAmountChanged: (lineID: ID, currencyCode: string) => void; onBackClickFromBankAccountPage: () => void; onDuplicateLineClick: (reimbursementId: ID, lineId: ID) => void; onExistingMerchantChange: (merchantId: string, lineId: string) => void; onFetchBankName: (routingNumber: string) => void; onHomeCurrencyConversionUpdate: (homeCurrencyConversions: Amount, lineId: ID, reimbursementId?: ID) => void; onNewMerchantChange: (merchantName: string, lineId: string) => void; onReceiptsUpload: (response: ReceiptsProcessingPayload | undefined, lineId: number, shouldOverwrite: boolean) => void; onSaveBankAccount: () => void; onUserBankDetailsUpdated: (formData: UserBankAccountFormData) => void; removeDuplicateReimbursementForLine: (lineId: ID) => void; saveRemiDetails: (remiStageCode: BillStageCodeType) => void; submitRemiDetails: () => void; updateReimbursementType: (reimbursementType: ReimbursementTypeCode, lineId: ID, reimbursementId?: ID) => void; clearTentativeNameForLine?: (lineId: string) => void; deleteBankAccount?: (bankAccountId: ID) => void; deleteReimbursement?: () => void; onAddNewRule?: () => void; onAskAiCfoClick?: () => void; onCurrentLineIdForUploadChange?: (lineId: number) => void; onEstablishConnectionClick?: (publicToken: ID) => void; onFetchLinkTokenClick?: (plaidLinkTokenType: PlaidLinkTokenType) => void; onReimbursementDetailsChanged?: (remiDetailLocalData: RemiDetailLocalData) => void; redirectToReimbursementDetailScreen?: () => void; redirectToReimbursementListScreen?: () => void; removeFileFromLine?: (lineId: number) => void; updateInvoiceUploadFetchState?: (fetchState: FetchState) => void; } declare const EditReimbursementDetailPage: ({ remiDetails, authParams, defaultCurrency, customerSearchAutoCompleteData, customerSearchAutoCompleteActions, companyMileageConfigInfo, uploadInvoiceEndPoint, isAccountingClassesEnabled, isReimbursementCommentingEnabled, isUserAdmin, analytics, reimbursementId, plaidConnectionDetails, bankAccountCreationState, bankNameByRouting, bankAccounts, isSignedInUserReimbursementCreator, uncategorizedAccounts, bankAccountToCreate, fetchBankNameByRoutingStatus, onUserBankDetailsUpdated, onFetchBankName, onSaveBankAccount, fetchDuplicateReimbursement, clearDuplicateReimbursementDetail, clearRemiSaveStatus, removeDuplicateReimbursementForLine, onDuplicateLineClick, onExistingMerchantChange, onNewMerchantChange, onReceiptsUpload, saveRemiDetails, submitRemiDetails, discardReimbursementDetailsFromLocalStore, onReimbursementDetailsChanged, updateReimbursementType, onHomeCurrencyConversionUpdate, redirectToReimbursementListScreen, redirectToReimbursementDetailScreen, deleteReimbursement, removeFileFromLine, onAmountChanged, updateInvoiceUploadFetchState, clearTentativeNameForLine, onAddNewRule, onFetchLinkTokenClick, onEstablishConnectionClick, deleteBankAccount, onBackClickFromBankAccountPage, initialOpenThreadRequest, disableInternalOverlay, isAiCfoAccessEnabled, onAskAiCfoClick, onCurrentLineIdForUploadChange, showSkipAutoFill: showSkipAutoFillProp, setShowSkipAutoFill: setShowSkipAutoFillProp, }: EditReimbursementDetailPageProps) => import("react/jsx-runtime").JSX.Element; export default EditReimbursementDetailPage;