import { Amount } from '../../../../commonStateTypes/amount'; import { FetchStateAndError, FetchedState, ID } from '../../../../commonStateTypes/common'; import { SortOrder } from '../../../../commonStateTypes/selectorTypes/sortOrderTypes'; import { PageToken } from '../../../../commonStateTypes/viewAndReport/viewAndReport'; import { ChargeCardMerchant } from '../../../../entity/chargeCardTransaction/chargeCardTransaction'; import { Attachment } from '../../../../entity/transaction/stateTypes/attachment'; import { ZeniDate } from '../../../../zeniDayJS'; import { ChargeCardTransactionStatisticsPayload, RecurringExpensePayload } from './chargeCardDetailPayload'; export declare const VISA_EOD_CORRECTION_TRANSACTION_TYPE_NAME = "Card Transaction"; export interface ChargeCardDetailState { depositAccountLimitFetchStateByDepositAccountId: Record; detailById: Record; recurringExpensesByChargeCardId: Record; recurringExpensesFetchState: FetchStateAndError; } export interface RecurringExpense { amount: Amount; merchant: ChargeCardMerchant; nextPaymentDate: ZeniDate; } interface ChargeCardDetail extends FetchedState { closeChargeCardFetchState: FetchStateAndError; cvvActivationWaitStatus: FetchStateAndError; debitCardSetPinWaitStatus: FetchStateAndError; id: ID; isRefreshingViewInBackground: boolean; lockChargeCardFetchState: FetchStateAndError; transactionList: ChargeCardDetailTransactionList; transactionStatistics: TransactionStatistics; twoFAState: TwoFAState; unlockChargeCardFetchState: FetchStateAndError; updateChargeCardLimitFetchState: FetchStateAndError; updateChargeCardNameFetchState: FetchStateAndError; updateDebitCardPinAttemptFetchState: FetchStateAndError; updatePhysicalChargeCardAttemptFetchState: FetchStateAndError; updateStatus: FetchStateAndError; } interface TwoFAState { isPhoneVerified: boolean; sendOtpStatus: FetchStateAndError; verifyOtpStatus: FetchStateAndError; otpChallenge?: string; phone?: string; } export declare const toChargeCardTransactionSortKeyType: (v: string) => "type" | "amount" | "merchant" | "receipts" | "paymentDate"; export declare type ChargeCardTransactionSortKey = ReturnType; export interface ChargeCardDetailTransactionList extends FetchStateAndError { isViewReceiptClickedImmediatelyAfterUploadTransactionId: Record; transactionAttachmentsByTransactionId: Record; transactionIds: ID[]; uiState: ChargeCardDetailUiState; uploadReceiptsFetchStateByTransactionId: Record; uploadReceiptsShowTickByTransactionId: Record; } export interface TransactionAttachments extends FetchStateAndError { attachments: Attachment[]; } export declare const initialTransactionAttachments: TransactionAttachments; export interface ChargeCardDetailUiState { limit: number; pageToken: PageToken; pageTokenType: PageToken; scrollYOffset: number; sortKey: ChargeCardTransactionSortKey; sortOrder: SortOrder; } export declare const initialTransactionStatistics: TransactionStatistics; export declare const emptyChargeCardDetail: ChargeCardDetail; export interface TransactionStatistics extends FetchStateAndError { statistics: ChargeCardTransactionStatistics; } export interface ChargeCardTransactionStatistics { numberOfAuthorizedTransactionsCurrentMonth: number; numberOfCanceledTransactionsCurrentMonth: number; numberOfDeclinedTransactionsCurrentMonth: number; numberOfPaidTransactionsCurrentMonth: number; numberOfTransactionsWithReceiptsCurrentMonth: number; totalNumberOfAuthorizedTransactions: number; totalNumberOfCanceledTransactions: number; totalNumberOfDeclinedTransactions: number; totalNumberOfPaidTransactions: number; totalNumberOfTransactionsWithReceipts: number; } export declare const mapChargeCardTransactionStatisticsPayloadToChargeCardTransactionStatistics: (statistics: ChargeCardTransactionStatisticsPayload) => ChargeCardTransactionStatistics; export declare const mapRecurringExpensePayloadToRecurringExpense: (recurringExpense: RecurringExpensePayload) => RecurringExpense; export {};