import { RecommendationPayload } from '../../../commonPayloadTypes/recommendationPayload'; import { URLPayload } from '../../../commonPayloadTypes/urlPayload'; import { Amount } from '../../../commonStateTypes/amount'; import { AccountBasePayload } from '../../account/accountPayload'; import { RecommendationByLineId, Transaction } from '../stateTypes/transaction'; import { AttachmentPayload } from './attachmentPayload'; import { TransactionIDPayload } from './transactionIDPayload'; import { LinePayload } from './transactionLinePayload'; export interface TransactionPayload extends TransactionIDPayload, AccountBasePayload { book_close_date: string | null; company_inc_date: string | null; currency_code: string; currency_symbol: string; transaction_create_time: string; transaction_date: string; transaction_description: string; transaction_memo: string; /** Transactions list API: preferred debit integration id for transfer flows */ account_integration_id?: string | null; accounting_project_id?: string | null; accounting_project_integration_id?: string | null; accounting_project_name?: string | null; amount?: number; attachments?: AttachmentPayload[]; category_id?: string | null; category_integration_id?: string | null; category_name?: string | null; class_id?: string | null; class_name?: string | null; customer_id?: string | null; customer_name?: string | null; document_id?: string; is_recommended_transaction?: boolean; is_updating_transaction?: boolean; lines?: LinePayload[]; linked_transactions?: TransactionIDPayload[]; logo?: URLPayload; payment_type?: string; payment_type_name?: string; qbo_account_id?: string | null; qbo_account_name?: string | null; recipient_currency_code?: string; recipient_currency_symbol?: string; recipient_total_amount?: number; recommendations?: RecommendationPayload[]; sync_token?: string; target_account_id?: string | null; target_account_integration_id?: string | null; target_account_name?: string | null; to_from_account_id?: string | null; to_from_account_integration_id?: string | null; to_from_account_name?: string | null; total_amount?: number; /** Transactions list API: count of categorizable lines across all statuses (not just the active tab) */ total_lines_count?: number; transaction_type_name?: string; transaction_update_time?: string; vendor_id?: string | null; vendor_name?: string | null; } type LinesWithCOTTracking = LinePayload & { cot_viewing_flags?: { category: { types_viewed: string[]; }; class: { types_viewed: string[]; }; vendor: { types_viewed: string[]; }; }; }; export interface TransactionPayloadWithCOTTracking extends TransactionPayload { lines: LinesWithCOTTracking[]; } export declare const getTransactionPayloadAmount: (payload: TransactionPayload) => Amount; export declare const toTransaction: (payload: TransactionPayload) => Transaction; export declare const toTransactionPayload: (transaction: Transaction) => Partial; export declare const injectCOTFlagsIntoTransactionPayload: (payload: Partial, transaction: Transaction) => Partial; export declare const getRecommendationsPerLine: (lines?: LinePayload[], recommendations?: RecommendationPayload[]) => RecommendationByLineId | undefined; export {};