import { Amount } from '../../../../commonStateTypes/amount'; import { FetchStateAndError, ID } from '../../../../commonStateTypes/common'; import { Recommendation } from '../../../../commonStateTypes/recommendationBase'; import { AccountBase, RecommendedAccountBase } from '../../../../entity/account/accountState'; import { BankAccount } from '../../../../entity/bankAccount/bankAccount'; import { BillStage, OutsideZeniPaymentModeType } from '../../../../entity/billPay/billTransaction/billTransactionState'; import { InternationalTransferFeeBearerPaymentMethod } from '../../../../entity/billPay/billTransaction/internationalTransferFeeBearerPaymentMethod'; import { Contact } from '../../../../entity/billPay/contact/contact'; import { RecurringBillFrequency, RecurringBillPaymentStatus, RecurringBillStatus } from '../../../../entity/billPay/recurringBills/recurringBillsState'; import { ClassBase, RecommendedClassBase } from '../../../../entity/class/classState'; import { PaymentInstrument } from '../../../../entity/paymentInstrument/paymentInstrument'; import { Attachment } from '../../../../entity/transaction/stateTypes/attachment'; import { TransactionWithAccountAndClassLine } from '../../../../entity/transaction/stateTypes/transactionLine'; import { Vendor } from '../../../../entity/vendor/vendorState'; import { ZeniDate } from '../../../../zeniDayJS'; import { RecurringDatePickerOptions } from '../../../common/recurringViewHelper'; import { FundingAccount } from '../../commonSetup/setupViewState'; import { BillTransactionDetailKey } from '../billDetailView/billDetailViewState'; import { BillPayConfig } from '../billPayConfig/billPayConfigState'; export interface EditBillDetail { addBillAutoFields: AddBillAutoFields; billDetailLocalData: BillDetailLocalData; fetchStatus: FetchStateAndError; isInitialEdit: boolean; recommendationByLineId: Record; replaceBillData: boolean; saveStatus: FetchStateAndError; showSkipAutofill: boolean; uploadFetchState: FetchStateAndError; billId?: ID; isBillMarkedForRetry?: boolean; suggestedVendorIdFromParsedInvoice?: ID; } export declare const initialBillDetail: EditBillDetail; export interface EditBillDetailViewState { editBillStateById: Record; newBillState: EditBillDetail; updateVendorContactState: FetchStateAndError; newAddedBillPaymentAccountId?: ID; } export interface RecurringBillInstance { instance: number; isDeleted: boolean; vendorReceiveDate: ZeniDate; vendorReceiveDateNotes: string; billPaymentStatus?: RecurringBillPaymentStatus; billStatus?: RecurringBillStatus; paymentDate?: ZeniDate; readonly?: boolean; recipientTotalAmount?: number; stage?: BillStage; totalAmount?: number; transactionId?: ID; } export interface BillDetailLocalData { isCancelled: boolean; isCollectToAccountInfoFromVendorContact: boolean; isRecurring: boolean; showVendorGptRecommendationText: boolean; updatesByLineId: Record; candidateVendorname?: string; currencyConversionState?: FetchStateAndError; file?: Attachment; lastRecommendedVendorName?: string; outsideZeniPaymentLocalData?: OutsideZeniPaymentLocalData; paymentDetailsSection?: PaymentDetailsSection; recipientTotalAmount?: Amount; recommendedVendorId?: ID; recurringBillInstances?: RecurringBillInstance[]; recurringConfig?: RecurringBillConfigLocalData; toAccountVendorEmail?: string; totalAmount?: Amount; totalAmountAfterConversion?: Amount; vendor?: Vendor; whatForSection?: WhatForSection; } export interface WhatForSection { billDueDate?: ZeniDate; currencyCode?: string; invoiceDate?: ZeniDate; invoiceNumber?: string; isInvoiceDateAutoUpdated?: boolean; memo?: string; recipientCurrencyCode?: string; } export interface PaymentDetailsSection { conversionRate?: number; internationalTransferFeeBearerPaymentMethod?: InternationalTransferFeeBearerPaymentMethod; paymentDate?: ZeniDate; paymentTo?: ID; paymentType?: BillPayConfig; withdrawFrom?: FundingAccount; } export interface AddBillAutoFields { isVendorWithNewCurrency: boolean; linesFields: Record; paymentDetailsSectionFields: string[]; vendor: string; whatForSectionFields: string[]; currencyInInvoice?: string; tentativeVendorName?: string; vendorCurrency?: string; } export declare const defaultRecommendationStateObj: LineItemOnlyRecommendationsLocalData; declare const toPaymentModeType: (v: string) => "BankAccount" | "Contact" | "PaymentInstrument"; export type PaymentModeType = ReturnType; export type PaymentMode = BankAccount | PaymentInstrument | Contact; export type EditRecurringBillType = 'current' | 'all'; export interface RecurringBillConfigLocalData { isActive: boolean; isApprovalRequired: boolean; totalPaymentCycles: number; currentInstance?: number; endDate?: ZeniDate; endDateSelectorOptionType?: RecurringDatePickerOptions; frequency?: RecurringBillFrequency; id?: ID; startDate?: ZeniDate; updateRecurringBills?: EditRecurringBillType; } export interface OutsideZeniPaymentLocalData { paymentDate?: ZeniDate; paymentMode?: OutsideZeniPaymentModeType; } export interface LineItemOnlyRecommendationsLocalData { isCategoryFirstTimeAutofilled: boolean; isCategoryOrClassUpdated: boolean; isCategoryUpdateSelected: boolean; isClassFirstTimeAutofilled: boolean; isClassUpdateSelected: boolean; isRetainedCategorySelected: boolean; isRetainedClassSelected: boolean; updateAllCheckbox: boolean; recommendedCategory?: RecommendedAccountBase; recommendedClass?: RecommendedClassBase; retainedCategory?: AccountBase; retainedClass?: ClassBase; } export interface LineItemRecommendationsLocalData extends Omit, LineItemOnlyRecommendationsLocalData { account?: AccountBase; class?: ClassBase; } export {};