import { RecommendationBase } from '../../../commonStateTypes/recommendationBaseCore'; import { AccountBase, RecommendedAccountBase } from '../../../entity/account/accountState'; import { ClassBase, RecommendedClassBase } from '../../../entity/class/classState'; import { SupportedTransaction } from '../../../entity/transaction/transactionState'; import { UncategorizedAccounts } from '../../accountList/accountListSelector'; import { TransactionSaveUpdates } from '../transactionDetailState'; import { TransactionDetailLocalData } from '../transactionDetailTypes'; /** * * @param transactionDetailLocalData * Uncategorized transaction * 1. Update transaction with recommended (either historical/most recently used) -> * 1a. Only fire transaction save. * 2. Update transaction with recommended category but different class -> * 2a. fire updateRecommendation with both category & Class chosen. * 2b. Fire transaction Save with chosen recommendations, * 3. Update transaction with recommended category, different class, check update all -> * 3a. fire updateRecommendation with both category & Class chosen. * 3b. Fire transaction save with chosen recommendation * 3c. Fire bulk update with all Amounts * 4. Only difference between this and Miscategorized will be that we will * additionally fire “Mark as not miscat” for every point above. */ export declare const toTransactionUpdatesFromTransactionDetailLocalData: (transactionDetailLocalData: TransactionDetailLocalData, transaction: SupportedTransaction, isExpenseAutomationEnabled: boolean, isAccountingProjectsEnabled?: boolean) => TransactionSaveUpdates; export declare const toRecommendedAccountBase: (amountValue: number, accountBase?: AccountBase, recommendationBase?: RecommendationBase) => RecommendedAccountBase | undefined; export declare const toRecommendedClassBase: (amountValue: number, classBase?: ClassBase, recommendationBase?: RecommendationBase) => RecommendedClassBase | undefined; export declare const isTransactionMiscategorized: (transaction: SupportedTransaction, isExpenseAutomationEnabled: boolean) => boolean; export declare const isTransactionUncategorized: (transaction: SupportedTransaction, uncategorizedIncomeExpense: UncategorizedAccounts) => boolean;