@class NSDecimalNumber, NSDateFormatter, NSMutableDictionary, PQLConnection, FHBatchProcessor, NSMutableArray; @protocol FHFetchAllTransactionsDelegate; @interface FHDatabaseManager : NSObject { PQLConnection *_db; NSDateFormatter *_dateFormatter; NSDecimalNumber *_secondsInDay; NSDecimalNumber *_decimalRmseThreshold; NSMutableDictionary *_amountAggregatesCache; NSMutableDictionary *_merchantAggregatesCache; NSMutableDictionary *_dateTimeAggregatesCache; FHBatchProcessor *_batchProcessor; struct os_unfair_lock_s { unsigned int _os_unfair_lock_opaque; } _lockDatabaseBookKeeping; struct os_unfair_lock_s { unsigned int _os_unfair_lock_opaque; } _lockDatabaseExecute; struct os_unfair_lock_s { unsigned int _os_unfair_lock_opaque; } _lockDatabaseFetch; struct os_unfair_lock_s { unsigned int _os_unfair_lock_opaque; } _lockProcessingDate; struct os_unfair_lock_s { unsigned int _os_unfair_lock_opaque; } _lockSQLStreaming; BOOL _databaseDeleted; BOOL _enableRecurChange; unsigned long long _transactionFeaturesOffset; NSMutableArray *_transactionFeaturesCache; } @property (weak, nonatomic) id delegate; @property (readonly, nonatomic) long long mostRecentTransactionDate; - (id)init:(BOOL)a0; - (void).cxx_destruct; - (BOOL)_execute:(id)a0; - (id)_fetch:(id)a0; - (void)_invertFeaturesForTransactions:(id)a0; - (id)_lockFreeFetch:(id)a0; - (BOOL)deleteDatabase:(id *)a0; - (void)updateProcessingTimeForFeature:(id)a0; - (void)closeAndUnlock:(id)a0; - (BOOL)deleteAllRecordsInTransactions:(id)a0; - (void)_checkUniqueConstraints:(id)a0 uniqueConstraintSet:(id)a1; - (void)_computeAllAggregateFeaturesWithTransactionId:(id)a0; - (id)_computeDisputeFeaturesForTransaction:(id)a0; - (id)_computePaymentFeaturesForTransaction:(id)a0; - (BOOL)_computeSingleAmountAggregateFeature:(id)a0; - (BOOL)_computeSingleDatetimeAggregateFeature:(id)a0; - (BOOL)_computeSingleMerchantAggregateFeature:(id)a0; - (void)_createDataDirectory; - (id)_createFeatureResponseFromFeatures:(id)a0 compoundFeatures:(id)a1 locale:(id)a2 forTxnID:(id)a3; - (id)_createFeatureResponseFromFeatures:(id)a0 compoundFeatures:(id)a1 locale:(id)a2 forTxnID:(id)a3 forApplication:(id)a4; - (BOOL)_executeRaw:(id)a0; - (id)_fetchv:(id)a0 args:(char *)a1; - (id)_filterAggregateFeatureByCurrentWindow:(id)a0; - (id)_filterPeriodicCategories:(id)a0; - (id)_getAllTransactions:(unsigned long long)a0 limit:(unsigned long long)a1; - (id)_getDataDirectory; - (id)_getDisputeFeaturesForTransaction:(id)a0; - (id)_getRecurringTransactionIdentifiersByClass:(unsigned long long)a0; - (id)_getTransactionByIdentifier:(id)a0; - (id)_getTransactionsMarkedForRecurrChange; - (BOOL)_hasDeterministicRealtime:(id)a0; - (BOOL)_insertOrUpdateTransactionFeatures:(id)a0 compoundFeatures:(id)a1 transactionID:(id)a2; - (void)_instrumentationTableMigration; - (BOOL)_isDatabaseCorrupt; - (BOOL)_isEligibleForSchemaMigration; - (void)_logSchema:(id)a0; - (long long)_mostRecentTransactionDate; - (void)_rebuildTablesAndIndexes:(BOOL)a0; - (id)_reconstructAggregateFeaturesWithProcessingWindow:(id)a0; - (BOOL)_signalMatchesSendSuggestionCriteria:(long long)a0 periodicCategory:(unsigned long long)a1; - (long long)_startingDateSmartFeatureComputation; - (BOOL)_truncateDatabase; - (void)_updateAggregateTablesSchema; - (void)_updateProcessingTimeForFeature:(id)a0 processingDate:(unsigned long long)a1; - (BOOL)_updateTransaction:(id)a0 withNewInternalState:(unsigned long long)a1; - (void)computeAllAggregateFeatures; - (BOOL)computeAmountAggregateFeatures; - (void)computeAndPersistDisputeFeaturesForPendingTransactions; - (void)computeAndPersistRecurringPeerPayments; - (BOOL)computeDatetimeAggregateFeatures; - (BOOL)computeMerchantAggregateFeatures; - (void)computePaymentFeatures; - (void)computeRecurringClassesWithMerchantCounts:(id)a0 peerPaymentCounts:(id)a1; - (BOOL)deleteAllFeatureRecordsForTransaction:(id)a0; - (BOOL)deleteAllMarkedTransactionFeatures; - (BOOL)deleteAllRecordsFromTransactionFeatures; - (BOOL)deleteAllRecordsInAccountInfoForTransactionSource:(id)a0; - (BOOL)deleteAllRecordsInPeerPaymentFeatures:(id)a0; - (BOOL)deleteAllRecordsInTransactionFeatures:(id)a0; - (BOOL)deleteTaggedButDeletedEvent:(id)a0; - (BOOL)deleteTaggedEventsInTimeRange:(id)a0 startDate:(id)a1 comparatorOfEndDate:(id)a2 endDate:(id)a3; - (id)featuresForTransaction:(id)a0; - (id)getAllPeerPaymentSignalsFilterDismissed:(BOOL)a0; - (id)getCurrentCashBalance; - (id)getDateFormatter; - (id)getExpectedWeeklySpend; - (id)getFHSmartFeatureByAmountType:(id)a0; - (id)getFHSmartFeatureByDateTimeType:(id)a0; - (id)getFHSmartFeatureByMerchantType:(id)a0; - (id)getFeaturePredicate:(id)a0 FHSmartFeatureAggregateType:(id)a1; - (id)getFilteredPeerPaymentForecastingSignals; - (id)getRecurringTransactionIdentifiers; - (id)getTaggedPastCalendarEvents; - (id)getTransactionByIdentifier:(id)a0; - (id)getTransactionIdsInTimeRangeFrom:(id)a0 to:(id)a1; - (unsigned long long)getTransactionInternalState:(id)a0; - (id)getTransactionSmartFeaturesForApplication:(id)a0; - (id)getTransactionsByDetailedCategory:(id)a0; - (id)getTransactionsByInternalState:(unsigned long long)a0 internalState:(unsigned long long)a1; - (id)getTransactionsByInternalState:(unsigned long long)a0 internalState:(unsigned long long)a1 offSet:(unsigned long long)a2; - (id)getTransactionsByInternalState:(unsigned long long)a0 internalState:(unsigned long long)a1 offSet:(unsigned long long)a2 addCompoundFeatures:(BOOL)a3; - (id)init:(BOOL)a0 multiThreadingEnabled:(BOOL)a1; - (BOOL)insertFeatures:(id)a0 realtimeFeatures:(id)a1; - (BOOL)insertFeaturesCompoundRealtime:(id)a0 realtimeFeatures:(id)a1; - (BOOL)insertFeaturesCompoundRealtimeWithoutEvents:(id)a0 realtimeFeatures:(id)a1; - (BOOL)insertFeaturesDeterminiticRealtime:(id)a0 realtimeFeatures:(id)a1; - (BOOL)insertFeaturesEvents:(id)a0; - (BOOL)insertFeaturesPredictedRealtime:(id)a0 realtimeFeatures:(id)a1; - (BOOL)insertInstrumentationRecord:(id)a0; - (BOOL)insertTransactionInInternalStateDirty:(id)a0; - (void)populateRecurringClassHistogramsForMerchants:(id)a0 histogram:(id)a1; - (void)populateRecurringClassHistogramsWithPeerPaymentsCounts:(id)a0 histogram:(id)a1; - (unsigned long long)processingTimeForFeature:(id)a0; - (void)publishEventsToBiome; - (id)reconstructCompoundFeaturesForTransaction:(id)a0; - (id)reconstructTransaction:(id)a0; - (BOOL)recordPeerPaymentForecastingStatus:(unsigned long long)a0 counterpartHandle:(id)a1 amount:(id)a2; - (void)retrieveAll; - (BOOL)shouldCallGetAllTransactions; - (unsigned long long)streamGenericSQLFetch:(id /* block */)a0 predicate:(id)a1 sqlFetchQuery:(id)a2; - (unsigned long long)streamQueryResults:(id)a0 usingFetchHandler:(id /* block */)a1; - (int)streamTransactionsByInternalState:(unsigned long long)a0 internalState:(unsigned long long)a1 offSet:(unsigned long long)a2 onTransaction:(id /* block */)a3; - (int)streamTransactionsByInternalState:(unsigned long long)a0 internalState:(unsigned long long)a1 onTransaction:(id /* block */)a2; - (void)unsafeRemoveAllEntriesFromTable:(id)a0; - (BOOL)updateDeleteFlagInTransactionFeatures:(unsigned long long)a0 forID:(id)a1; - (BOOL)updateGetAllStatus:(unsigned long long)a0; - (BOOL)updatePeerPaymentAccountBalance:(id)a0 amount:(id)a1 currencyCode:(id)a2; - (BOOL)updateTransactionInternalStateByIdentifier:(id)a0 newInternalState:(unsigned long long)a1; - (BOOL)updateTransactionInternalStateByTransaction:(id)a0 newInternalState:(unsigned long long)a1; - (BOOL)updateTransactionWholeRaw:(id)a0; - (BOOL)updateTransactionsInternalStateToState:(id)a0 oldInternalState:(unsigned long long)a1 newInternalState:(unsigned long long)a2; @end