import { NestedAccountHierarchyForReport } from '../../commonStateTypes/accountView/nestedAccountID'; import { NestedClassHierarchyForReport } from '../../commonStateTypes/classesView/nestedClassID'; import { FetchState, FetchStateAndError } from '../../commonStateTypes/common'; import { SelectorView } from '../../commonStateTypes/viewAndReport/viewAndReport'; import { AccountBase } from '../../entity/account/accountState'; import { TransactionID } from '../../entity/transaction/stateTypes/transactionID'; import { SupportedTransactionWithCOT } from '../../entity/transaction/transactionState'; import { Vendor } from '../../entity/vendor/vendorState'; import { RootState } from '../../rootStateTypes'; import { ZeniDate } from '../../zeniDayJS'; import { AccountListSelectorView } from '../accountList/accountListSelector'; import { ClassListSelectorView } from '../classList/classListSelector'; import { ProjectListSelectorView } from '../projectList/projectListSelector'; import { TransactionDetailLocalData } from './transactionDetailTypes'; export interface TransactionDetailReport extends SelectorView { accountList: AccountListSelectorView; accountsHierarchyList: NestedAccountHierarchyForReport[]; allVendors: Vendor[]; classHierarchyList: NestedClassHierarchyForReport[]; classList: ClassListSelectorView; createTransferEntryStatus: FetchState; /** Resolved credit-card pool for credit_card_payment transfer drawer. */ creditCardTransferAccountsList: AccountBase[]; deleteStatusByAttachmentName: Record; hasInFlightCategoryClassRecommendations: boolean; isAccountingClassesEnabled: boolean; isAccountingProjectsEnabled: boolean; linkedTransactions: SupportedTransactionWithCOT[]; projectList: ProjectListSelectorView; transactionDetailLocalData: TransactionDetailLocalData; transactionDetailUpdateStatus: FetchStateAndError; transferAccounts: AccountBase[]; isUpdateNotAllowed?: boolean; transaction?: SupportedTransactionWithCOT; } export interface VendorDetailsView extends SelectorView { vendors: Vendor[]; } export declare const getDetailInFlightRecommendations: (state: RootState, transactionId: TransactionID) => boolean; export declare const getTransactionDetail: (state: RootState, transactionId: TransactionID, fetchLinkedTransactions?: boolean) => TransactionDetailReport; export declare function getTransactionDetailForTransaction(rootState: RootState, transactionId: TransactionID): TransactionDetailReport | undefined; export declare const getInitialUpdatablePeriodsForTransactionRecommendations: (companyIncorporationDate?: ZeniDate, bookCloseDate?: ZeniDate) => { minDate: ZeniDate; endDate?: ZeniDate; startDate?: ZeniDate; };