import { ID } from '../../commonStateTypes/common'; import { RecommendationWithCOT } from '../../commonStateTypes/recommendationBase'; import { AccountBase, RecommendedAccountBase, UncategorizedAccountTypes } from '../../entity/account/accountState'; import { ClassBase, RecommendedClassBase } from '../../entity/class/classState'; import { Entity } from '../../entity/genericEntity/entity'; import { RecommendationWithCOTByLineId } from '../../entity/transaction/stateTypes/transaction'; import { JournalEntryTransactionLine, TransactionWithAccountAndClassLine } from '../../entity/transaction/stateTypes/transactionLine'; import { SupportedTransaction, SupportedTransactionWithCOT } from '../../entity/transaction/transactionState'; import { UncategorizedAccounts } from '../accountList/accountListSelector'; import { TransactionDetailLineItemData, TransactionDetailLocalData } from './transactionDetailTypes'; export declare const toTransactionDetailLocalData: (transaction: SupportedTransaction, defaultVendorId: ID | undefined, uncategorizedIncomeExpense: UncategorizedAccounts) => TransactionDetailLocalData; export declare const toLineEntity: (lineRecord: JournalEntryTransactionLine | TransactionWithAccountAndClassLine) => { type: "vendor" | "customer" | "merchant"; zeniId: string; qboId: string; id: ID; name: string; logo?: import("../..").ZeniUrl; } | undefined; export declare const getRecommendedCategoryClass: (isCategoryMiscategorized: boolean, isClassMiscategorized: boolean, recommendation?: RecommendationWithCOT[], account?: AccountBase, classObj?: ClassBase, uncategorizedIncomeExpense?: UncategorizedAccounts) => { recommendedAccount: RecommendedAccountBase | undefined; recommendedClass: RecommendedClassBase | undefined; }; export declare const toUpdateLineItemsOriginalCategoryClass: (transaction: SupportedTransaction, transactionDetailLocalData: TransactionDetailLocalData, lineIdsForReplace: ID[], lineIdsForUpdateAll: ID[], replace: "account" | "class" | "both", updateAll?: boolean) => TransactionDetailLocalData; export declare const toSetAllLineItemsToCategoryClass: (transaction: SupportedTransaction, transactionDetailLocalData: TransactionDetailLocalData, isUpdateAll: boolean, lineEntity?: Entity, chosenAccount?: { account: AccountBase; updateOrRetain: "update" | "retain"; }, chosenClass?: { classBase: ClassBase; updateOrRetain: "update" | "retain"; }) => TransactionDetailLocalData; export declare const toSetAllLineItemsLocalDataIsUpdateAllChecked: (transaction: SupportedTransaction, transactionDetailLocalData: TransactionDetailLocalData, isUpdateAll: boolean, entity?: Entity) => TransactionDetailLocalData; export declare const setEntityRecommendationForLineIdInLocalData: (transaction: SupportedTransactionWithCOT, transactionDetailLocalData: TransactionDetailLocalData, entity: Entity, recommendationLineIds: ID[], uncategorizedIncomeExpense: UncategorizedAccounts, recommendationWithCOTByLineId?: RecommendationWithCOTByLineId) => TransactionDetailLocalData; export declare const removeEntityRecommendationForLineIdInLocalData: (transaction: SupportedTransaction, transactionDetailLocalData: TransactionDetailLocalData, recommendationLineIds: ID[]) => TransactionDetailLocalData; export declare const getChangedLineItemCountFromLocalData: (transaction: SupportedTransaction, transactionLocalData: TransactionDetailLocalData) => number; export declare const toSetAllLineItemsToVendor: (transaction: SupportedTransaction, transactionDetailLocalData: TransactionDetailLocalData, entity: Entity) => TransactionDetailLocalData; export declare const toUpdateLineItemsToOriginalVendor: (transaction: SupportedTransaction, transactionDetailLocalData: TransactionDetailLocalData, lineIdToRetainVendorSelection: ID) => TransactionDetailLocalData; /** * Since entity could have qbo id or id based on where it was initialized, * this function is needed to check with either lineEntity or vendor or customer * @param entity * @param record * @returns */ export declare const isEntityMatching: (entity: Entity | undefined, record: TransactionDetailLineItemData) => boolean; export declare const isAccountUncategorized: (uncategorizedIncomeExpense: UncategorizedAccounts, accountQboId?: ID, validateAccountTypes?: UncategorizedAccountTypes[] | undefined) => boolean; export declare const mergeTransactionAndEntityRecommendationsWithCOT: (transactionRecommendations?: RecommendationWithCOT[], entityRecommendations?: RecommendationWithCOT[]) => RecommendationWithCOT[] | undefined;