/** * Filter machinery for the Transaction Categorization feature inside * Expense Automation. Intentionally self-contained — does NOT import anything * from `view/spendManagement/*`, because Transaction Categorization is not a * Spend Management product. Shared primitives * (`CategoryCombinationOperator`, `FilterCategoryType`) come from * `commonStateTypes/filterPrimitives`, which both feature groups consume. */ import { Amount } from '../../commonStateTypes/amount'; import { ID } from '../../commonStateTypes/common'; import { CategoryCombinationOperator, FilterCategoryType } from '../../commonStateTypes/filterPrimitives'; import { TransactionType } from '../../entity/transaction/stateTypes/transactionType'; import { SupportedTransactionWithCOT } from '../../entity/transaction/transactionState'; import { ZeniDate } from '../../zeniDayJS'; import { TransactionReviewLocalDataSelectorView } from './selectorTypes/transactionsViewSelectorTypes'; import { TransactionFilters } from './transactionFilterTypes'; /** * Re-exported here so the CES barrel can pull TC's primitives from the * Expense Automation surface without reaching into `commonStateTypes` * directly — keeps the barrel's existing import topology stable. */ export type { CategoryCombinationOperator, FilterCategoryType }; export interface TransactionView { amount: Amount; createTime: ZeniDate; date: ZeniDate; description: string; id: ID; memo: string; transaction: SupportedTransactionWithCOT; type: TransactionType; customerId?: ID; customerName?: string; transactionLocalData?: TransactionReviewLocalDataSelectorView; typeName?: string; vendorId?: ID; vendorName?: string; } /** * TC-only equivalent of `applyAdvancedFiltersOnList`. Filters a list of * `TransactionView` items against a `TransactionFilters` object using the * AND/OR combination semantics from `categoryCombinationOperator`. * * Independent of `view/spendManagement` — keeps the TC filter pipeline cleanly * inside the Expense Automation feature group. */ export declare const applyTransactionFilters: (transactions: TransactionView[], filters?: TransactionFilters) => TransactionView[];