@class NSMutableArray, NSString, NSURL, WBSSQLiteStatementCache, WBSHistoryTagDatabaseController, NSDictionary, WBSSQLiteDatabase, WBSHistoryServiceURLCompletion, NSObject, WBSHistoryCrypto, NSMapTable, NSMutableSet; @protocol OS_dispatch_queue, OS_dispatch_group; @interface WBSHistoryServiceDatabase : NSObject { NSObject *_queue; NSObject *_fileOperationGroup; unsigned long long _currentRangeForTemporaryID; WBSHistoryCrypto *_crypto; WBSSQLiteDatabase *_database; NSDictionary *_databaseOptions; WBSSQLiteStatementCache *_statements; NSMapTable *_delegates; NSMapTable *_listeners; NSMutableSet *_registeredListeners; struct LatestVisitInformationMap { struct unordered_map, std::equal_to, std::allocator>> { struct __hash_table, std::__unordered_map_hasher, std::hash, std::equal_to>, std::__unordered_map_equal, std::equal_to, std::hash>, std::allocator>> { struct unique_ptr, void *> *> *[], std::__bucket_list_deallocator, void *> *> *>>> { struct __compressed_pair, void *> *> **, std::__bucket_list_deallocator, void *> *> *>>> { void **__value_; struct __bucket_list_deallocator, void *> *> *>> { struct __compressed_pair, void *> *> *>> { unsigned long long __value_; } __data_; } __value_; } __ptr_; } __bucket_list_; struct __compressed_pair, void *> *>, std::allocator, void *>>> { struct __hash_node_base, void *> *> { void *__next_; } __value_; } __p1_; struct __compressed_pair, std::hash, std::equal_to>> { unsigned long long __value_; } __p2_; struct __compressed_pair, std::equal_to, std::hash>> { float __value_; } __p3_; } __table_; } _map; } _latestVisitMap; BOOL _hasComputedLatestVisit; struct unordered_map, std::equal_to, std::allocator>> { struct __hash_table, std::__unordered_map_hasher, std::hash, std::equal_to>, std::__unordered_map_equal, std::equal_to, std::hash>, std::allocator>> { struct unique_ptr, void *> *> *[], std::__bucket_list_deallocator, void *> *> *>>> { struct __compressed_pair, void *> *> **, std::__bucket_list_deallocator, void *> *> *>>> { void **__value_; struct __bucket_list_deallocator, void *> *> *>> { struct __compressed_pair, void *> *> *>> { unsigned long long __value_; } __data_; } __value_; } __ptr_; } __bucket_list_; struct __compressed_pair, void *> *>, std::allocator, void *>>> { struct __hash_node_base, void *> *> { void *__next_; } __value_; } __p1_; struct __compressed_pair, std::hash, std::equal_to>> { unsigned long long __value_; } __p2_; struct __compressed_pair, std::equal_to, std::hash>> { float __value_; } __p3_; } __table_; } _temporaryIDToItem; struct unordered_map, std::equal_to, std::allocator>> { struct __hash_table, std::__unordered_map_hasher, std::hash, std::equal_to>, std::__unordered_map_equal, std::equal_to, std::hash>, std::allocator>> { struct unique_ptr, void *> *> *[], std::__bucket_list_deallocator, void *> *> *>>> { struct __compressed_pair, void *> *> **, std::__bucket_list_deallocator, void *> *> *>>> { void **__value_; struct __bucket_list_deallocator, void *> *> *>> { struct __compressed_pair, void *> *> *>> { unsigned long long __value_; } __data_; } __value_; } __ptr_; } __bucket_list_; struct __compressed_pair, void *> *>, std::allocator, void *>>> { struct __hash_node_base, void *> *> { void *__next_; } __value_; } __p1_; struct __compressed_pair, std::hash, std::equal_to>> { unsigned long long __value_; } __p2_; struct __compressed_pair, std::equal_to, std::hash>> { float __value_; } __p3_; } __table_; } _visitForTemporaryID; NSMutableArray *_pendingVisits; struct atomic { struct __cxx_atomic_impl> { _Atomic BOOL __a_value; } __a_; } _integrityCheckPending; NSURL *_clearHistoryInProgressFileURL; id /* block */ _pendingVisitsTimeout; WBSHistoryTagDatabaseController *_tagController; } @property (readonly, copy, nonatomic) NSString *databaseID; @property (readonly, nonatomic) NSURL *databaseURL; @property (readonly, nonatomic) WBSHistoryServiceURLCompletion *urlCompletion; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; - (void)finishClearingHistoryIfNecessaryWithCompletionHandler:(id /* block */)a0; - (void)warmUp; - (void)resetCloudHistoryDataWithCompletionHandler:(id /* block */)a0; - (void)fetchDomainExpansions:(id /* block */)a0; - (void)vacuumHistoryWithCompletionHandler:(id /* block */)a0; - (void)setMetadataValue:(id)a0 forKey:(id)a1 completionHandler:(id /* block */)a2; - (void)fetchMetadataForKeys:(id)a0 completionHandler:(id /* block */)a1; - (void)getVisitedLinksWithCompletionHandler:(id /* block */)a0; - (id)_generateItemsDictionary:(const void *)a0; - (void)flushWithCompletionHandler:(id /* block */)a0; - (BOOL)_prepareDatabase:(id *)a0; - (unsigned long long)_countOfItems; - (void)fetchDatabaseURL:(id /* block */)a0; - (id)init; - (void)fetchAutocompleteTriggersForURLString:(id)a0 completionHandler:(id /* block */)a1; - (void)_removeLegacyHistoryDatabaseIfNeeded; - (void)clearHistoryVisitsAddedAfterDate:(id)a0 beforeDate:(id)a1 tombstoneMode:(unsigned long long)a2 completionHandler:(id /* block */)a3; - (void)fetchAllTombstonesWithCompletionHandler:(id /* block */)a0; - (void)_queuePendingUpdates; - (void)dealloc; - (id)_fetchTagsWithOptions:(unsigned long long)a0 predicate:(id)a1 writeDescriptor:(int)a2; - (void)_checkpointWriteAheadLog; - (void)fetchEventsForListener:(id)a0 completionHandler:(id /* block */)a1; - (void)database:(id)a0 hadSevereError:(id)a1; - (id)_findAllRelatedVisitsToItems:(const void *)a0 forPlan:(void *)a1; - (struct unordered_map, std::equal_to, std::allocator>> { struct __hash_table, std::__unordered_map_hasher, std::hash, std::equal_to>, std::__unordered_map_equal, std::equal_to, std::hash>, std::allocator>> { struct unique_ptr, void *> *> *[], std::__bucket_list_deallocator, void *> *> *>>> { struct __compressed_pair, void *> *> **, std::__bucket_list_deallocator, void *> *> *>>> { void **x0; struct __bucket_list_deallocator, void *> *> *>> { struct __compressed_pair, void *> *> *>> { unsigned long long x0; } x0; } x1; } x0; } x0; struct __compressed_pair, void *> *>, std::allocator, void *>>> { struct __hash_node_base, void *> *> { void *x0; } x0; } x1; struct __compressed_pair, std::hash, std::equal_to>> { unsigned long long x0; } x2; struct __compressed_pair, std::equal_to, std::hash>> { float x0; } x3; } x0; })_recomputeLatestVisitsForItems:(const void *)a0 error:(id *)a1; - (void)updateVisitWithIdentifier:(id)a0 title:(id)a1 completionHandler:(id /* block */)a2; - (void)addDelegate:(id)a0 listenerName:(id)a1 forConnection:(id)a2; - (void)groupVisitsIntoSessionsBetweenStartDate:(id)a0 endDate:(id)a1 completionHandler:(id /* block */)a2; - (BOOL)_commitPendingVisits:(id)a0; - (id)_executePlan:(void *)a0 outDeletedItemCount:(unsigned long long *)a1 outDeletedVisitCount:(unsigned long long *)a2; - (void)setLastSeenDate:(id)a0 forCloudClientVersion:(unsigned long long)a1 completionHandler:(id /* block */)a2; - (void)assignURLString:(id)a0 toTopicTagsWithIDs:(id)a1 completionHandler:(id /* block */)a2; - (long long)_permanentIDsForVisitIfAvailable:(long long)a0; - (id)_dateForMetadataKey:(id)a0 error:(id *)a1; - (void)markEventsAsReceivedByListener:(id)a0 eventIDs:(id)a1 completionHandler:(id /* block */)a2; - (void)fetchWithOptions:(unsigned long long)a0 predicate:(id)a1 completionHandler:(id /* block */)a2; - (long long)_permanentIDsForItemIfAvailable:(long long)a0; - (id)_generateVisitsDictionary:(const void *)a0; - (void)performMaintenanceWithAgeLimit:(double)a0 itemCountLimit:(unsigned long long)a1 completionHandler:(id /* block */)a2; - (void)computeFrequentlyVisitedSites:(unsigned long long)a0 minimalVisitCountScore:(unsigned long long)a1 blockList:(id)a2 allowList:(id)a3 options:(unsigned long long)a4 currentTime:(double)a5 completionHandler:(id /* block */)a6; - (void)_clearWBSHistorySQLiteStoreClearHistoryKeys; - (void)setTitle:(id)a0 ofTagWithID:(long long)a1 completionHandler:(id /* block */)a2; - (id)_insertTombstonesForURLs:(id)a0 afterDate:(id)a1 beforeDate:(id)a2 tombstoneMode:(unsigned long long)a3; - (void)forceCloseWithCompletionHandler:(id /* block */)a0; - (id)initWithID:(id)a0 url:(id)a1 options:(id)a2 fileOperationGroup:(id)a3 error:(id *)a4; - (void)recomputeItemScoresWithCompletionHandler:(id /* block */)a0; - (void)replayAndAddTombstones:(id)a0 completionHandler:(id /* block */)a1; - (void)searchForUserTypedString:(id)a0 options:(unsigned long long)a1 currentTime:(double)a2 writeHandle:(id)a3 completionHandler:(id /* block */)a4; - (void)_registerHistoryTagFrecencyScoringFunction; - (id)_preparePlan:(void *)a0 ageLimit:(double)a1 itemCountLimit:(unsigned long long)a2; - (unsigned long long)_pruneTombstonesOnDatabaseQueueWithEndDatePriorToDate:(id)a0 error:(id *)a1; - (void)addAutocompleteTrigger:(id)a0 forURL:(id)a1 completionHandler:(id /* block */)a2; - (void)deletionPlanForAgeLimit:(double)a0 itemCountLimit:(unsigned long long)a1 completionHandler:(id /* block */)a2; - (id).cxx_construct; - (id)_metadataForKey:(id)a0 error:(id *)a1; - (BOOL)_reopenDatabase:(id *)a0; - (BOOL)_commitPendingItems:(id)a0; - (void)checkIfLocalVisitExistsForDatabaseIDs:(id)a0 withCompletion:(id /* block */)a1; - (id)_collectDeletedHighLevelDomainsFromDeletedHostnamesForPlan:(void *)a0; - (void)recordVisitWithIdentifier:(id)a0 sourceVisit:(id)a1 title:(id)a2 wasHTTPNonGet:(BOOL)a3 loadSuccessful:(BOOL)a4 origin:(long long)a5 attributes:(unsigned long long)a6 statusCode:(long long)a7 completionHandler:(id /* block */)a8; - (id)_preparePlan:(void *)a0 itemsToDelete:(const void *)a1 visitsToDelete:(const void *)a2 afterDate:(id)a3 beforeDate:(id)a4; - (id)_findAllRelatedVisits:(const void *)a0 forPlan:(void *)a1 afterDate:(id)a2 beforeDate:(id)a3; - (void)clearAllHistoryInsertingTombstoneUpToDate:(id)a0 completionHandler:(id /* block */)a1; - (id)_ensureLatestVisitsAreComputed; - (BOOL)_shouldEmitLegacyTombstones; - (void)convertTombstoneWithGenerationToSecureFormat:(long long)a0 lastSyncedGeneration:(long long)a1 completionHandler:(id /* block */)a2; - (id)_recomputeItemScores:(void *)a0; - (void)_closeTagController; - (long long)_lastSyncedGeneration; - (id)_findObsoleteItemsForPlan:(void *)a0; - (id)_findItemIDsForPendingVisitsWithError:(id *)a0; - (id)_collectDeletedHostnamesForPlan:(void *)a0; - (id)_collectDeletedHighLevelDomainsForPlan:(void *)a0; - (void)deletionPlanForItemsToDelete:(id)a0 visitsToDelete:(id)a1 completionHandler:(id /* block */)a2; - (void)pruneTombstonesWithEndDatePriorToDate:(id)a0 completionHandler:(id /* block */)a1; - (void)_finishedClearingHistory; - (id)_recomputeVisitScores:(void *)a0; - (id)_fetchListenerNamesFromDatabase:(id *)a0; - (void)updateDatabaseAfterSuccessfulSyncWithGeneration:(long long)a0 completionHandler:(id /* block */)a1; - (id)_fetchEventsForListener:(id)a0 error:(id *)a1; - (void).cxx_destruct; - (void)lastSeenDateForCloudClientVersion:(unsigned long long)a0 completionHandler:(id /* block */)a1; - (void)dispatchEvent:(id)a0 listenersToIgnore:(id)a1 persistForDelayedDispatching:(BOOL)a2 completionHandler:(id /* block */)a3; - (void)getHighLevelHTTPFamilyDomainsVisitedAfterDate:(id)a0 beforeDate:(id)a1 onlyFromThisDevice:(BOOL)a2 completionHandler:(id /* block */)a3; - (id)_generateDisposedVisitsForPlan:(void *)a0; - (void)updateVisitWithIdentifier:(id)a0 removeAttributes:(unsigned long long)a1 addAttributes:(unsigned long long)a2 completionHandler:(id /* block */)a3; - (id)_clearHistoryItems:(id)a0 afterDate:(id)a1 beforeDate:(id)a2 tombstoneMode:(unsigned long long)a3; - (void)getItemCountBeforeDate:(id)a0 completionHandler:(id /* block */)a1; - (void)visitsAndTombstonesNeedingSyncWithVisitSyncWindow:(double)a0 completionHandler:(id /* block */)a1; - (id)_deleteOldestItems:(unsigned long long)a0 forPlan:(void *)a1; - (id)_fetchVisitsWithOptions:(unsigned long long)a0 predicate:(id)a1 writeDescriptor:(int)a2; - (id)_markEventsAsReceivedByListener:(id)a0 eventIDs:(id)a1; - (void)createTagsForIdentifiers:(id)a0 withTitles:(id)a1 type:(unsigned long long)a2 level:(long long)a3 completionHandler:(id /* block */)a4; - (void)expireOldVisits:(double)a0 completionHandler:(id /* block */)a1; - (void)clearHistoryItems:(id)a0 afterDate:(id)a1 beforeDate:(id)a2 tombstoneMode:(unsigned long long)a3 completionHandler:(id /* block */)a4; - (id)_clearHistoryVisitsAddedAfterDate:(id)a0 beforeDate:(id)a1 tombstoneMode:(unsigned long long)a2; - (void)visitIdentifiersMatchingExistingVisits:(id)a0 completionHandler:(id /* block */)a1; - (id)_collectDeletedURLsForPlan:(void *)a0; - (void)_updateItem:(long long)a0 visitCountScore:(long long)a1 dailyVisitCounts:(id)a2 weeklyVisitCounts:(id)a3 shouldRecomputeDerivedVisitCounts:(BOOL)a4; - (void)fetchCloudClientVersionTable:(id /* block */)a0; - (void)_ensureDatabaseIsSynced; - (id)_fetchObjectToTagMappingsWithOptions:(unsigned long long)a0 predicate:(id)a1 writeDescriptor:(int)a2; - (void)_startingClearHistoryOperationForStartDate:(id)a0 endDate:(id)a1; - (void)_notifyExecutionOfPlan:(void *)a0; - (void)_dispatchEvent:(id)a0 listenersToIgnore:(id)a1 persistForDelayedDispatching:(BOOL)a2 completionHandler:(id /* block */)a3; - (double)_oldestLatestVisit; - (long long)allocateTemporaryIDRange:(long long *)a0; - (void)_updateVisitWithIdentifier:(id)a0 removeAttributes:(unsigned long long)a1 addAttributes:(unsigned long long)a2 pendingVisit:(id)a3; - (id)_setMetadataValue:(id)a0 forKey:(id)a1; - (void)_commitPendingUpdates; - (id)_expireOldVisits:(double)a0; - (void)ensureLatestVisitsAreComputed:(id /* block */)a0; - (long long)_writeEventToDatabase:(id)a0 listeners:(id)a1 error:(id *)a2; - (id)_generateUpdatedLastVisit:(const void *)a0; - (id)_convertTombstoneWithGenerationToSecureFormat:(long long)a0 lastSyncedGeneration:(long long)a1; - (id)_lastSeenDateForCloudClientVersion:(unsigned long long)a0; - (int)_migrateToCurrentSchemaVersionIfNeeded; - (BOOL)_addAutocompleteTrigger:(id)a0 forURL:(id)a1 error:(id *)a2; - (long long)_currentGeneration; - (id)_clearAllHistoryInsertingTombstoneUpToDate:(id)a0; - (id)_updateListenerRegistration:(id)a0 lastSeen:(double)a1; @end