@class NSData, NSString, WBSCloudHistoryPushAgentProxy, WBSCloudKitThrottler, NSMutableDictionary, NSDictionary, NSObject, WBSCloudHistoryConfiguration, WBSOneShotTimer, NSMutableArray; @protocol WBSCloudHistoryDataStore, WBSHistoryServiceDatabaseProtocol, WBSCloudKitContainerManateeObserving, OS_dispatch_queue, WBSHistoryServiceDatabaseStore; @interface WBSCloudHistory : NSObject <WBSCloudKitThrottlerDataStore, WBSCloudHistoryServiceProtocol> { NSObject<OS_dispatch_queue> *_cloudHistoryQueue; NSObject<OS_dispatch_queue> *_waitUntilMetadataHasLoadedQueue; id<WBSHistoryServiceDatabaseProtocol> _database; NSData *_pushThrottlerData; NSData *_fetchThrottlerData; NSData *_syncCircleSizeRetrievalThrottlerData; NSData *_longLivedSaveOperationData; unsigned long long _syncCircleSize; BOOL _cloudHistoryEnabled; BOOL _saveChangesWhenHistoryLoads; BOOL _fetchChangesWhenHistoryLoads; struct unique_ptr<SafariShared::SuddenTerminationDisabler, std::default_delete<SafariShared::SuddenTerminationDisabler>> { struct __compressed_pair<SafariShared::SuddenTerminationDisabler *, std::default_delete<SafariShared::SuddenTerminationDisabler>> { struct SuddenTerminationDisabler *__value_; } __ptr_; } _saveOperationSuddenTerminationDisabler; struct unique_ptr<SafariShared::SuddenTerminationDisabler, std::default_delete<SafariShared::SuddenTerminationDisabler>> { struct __compressed_pair<SafariShared::SuddenTerminationDisabler *, std::default_delete<SafariShared::SuddenTerminationDisabler>> { struct SuddenTerminationDisabler *__value_; } __ptr_; } _fetchOperationSuddenTerminationDisabler; struct unique_ptr<SafariShared::SuddenTerminationDisabler, std::default_delete<SafariShared::SuddenTerminationDisabler>> { struct __compressed_pair<SafariShared::SuddenTerminationDisabler *, std::default_delete<SafariShared::SuddenTerminationDisabler>> { struct SuddenTerminationDisabler *__value_; } __ptr_; } _replayLongLivedSaveOperationSuddenTerminationDisabler; BOOL _replayLongLivedSaveOperationHasBeenPerformed; WBSCloudHistoryConfiguration *_configuration; id<WBSCloudHistoryDataStore> _store; WBSCloudKitThrottler *_saveChangesThrottler; WBSCloudKitThrottler *_fetchChangesThrottler; WBSCloudKitThrottler *_syncCircleSizeRetrievalThrottler; WBSOneShotTimer *_serverBackoffTimer; BOOL _saveChangesWhenBackoffTimerFires; BOOL _fetchChangesWhenBackoffTimerFires; WBSCloudHistoryPushAgentProxy *_pushAgent; WBSOneShotTimer *_pushNotificationFetchTimer; NSMutableDictionary *_syncCircleSizeRetrievalCompletionHandlersByOperation; id /* block */ _fetchCompletionHandler; id /* block */ _saveCompletionHandler; id<WBSCloudKitContainerManateeObserving> _containerManateeObserver; NSMutableArray *_storeDeterminationCompletionBlocks; long long _currentManateeState; BOOL _manateeStateNeedsUpdate; BOOL _isWaitingForPCSIdentityUpdate; BOOL _determiningStoreType; NSDictionary *_namedProfileLocalIdentifiersToServerIdentifiersMap; NSDictionary *_namedProfileServerIdentifiersToLocalIdentifiersMap; } @property (nonatomic) unsigned long long numberOfDevicesInSyncCircle; @property (nonatomic, getter=isCloudHistoryEnabled) BOOL cloudHistoryEnabled; @property (nonatomic) BOOL removedHistoryItemsArePendingSave; @property (weak, nonatomic) id<WBSHistoryServiceDatabaseStore> databaseStore; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; - (void)_updateDeviceCountInResponseToPushNotification; - (void)saveChangesToCloudHistoryStoreBypassingThrottler; - (void)updateConfiguration:(id)a0 completionHandler:(id /* block */)a1; - (void)_backOffWithInterval:(double)a0; - (id)recordOfPastOperationsForThrottler:(id)a0; - (void)fetchAndMergeChangesBypassingThrottler:(BOOL)a0 completionHandler:(id /* block */)a1; - (void)dealloc; - (void)_processPendingPushNotifications; - (long long)_priorityForSaveWithVisits:(id)a0 tombstones:(id)a1 bypassingThrottler:(BOOL)a2; - (id)dateOfNextPermittedSaveChangesAttempt; - (void)_persistedLongLivedSaveOperationID:(id *)a0 databaseGenerations:(id *)a1; - (void)_pcsIdentitiesChangedNotification:(id)a0; - (void)_cloudHistoryConfigurationChanged:(id)a0; - (void)_pruneTombstonesThatCanNoLongerMatchVisitsFetchedFromCloud; - (void)resetForAccountChangeWithCompletionHandler:(id /* block */)a0; - (void)_fetchAndMergeChangesWithServerChangeTokenData:(id)a0 withPriority:(long long)a1; - (unsigned long long)_cachedNumberOfDevicesInSyncCircle; - (void)_serverBackoffTimerFired:(id)a0; - (void)_registerSaveCompletionHandler:(id /* block */)a0; - (double)_backoffTimeIntervalFromError:(id)a0; - (void)_enumerateDatabasesWithProfileLocalIdentifiers:(id)a0 createIfNeeded:(BOOL)a1 enumerationBlock:(id /* block */)a2 completionBlock:(id /* block */)a3; - (void)_setCachedNumberOfDevicesInSyncCircle:(unsigned long long)a0; - (void)_fetchAddedProfileLocalIdentifiers:(id)a0; - (long long)_estimatedPriorityForPotentialSaveAttempt; - (void)_updateProfileLocalIdentifiersToServerIdentifiersMapInDatabase; - (void)_postSaveChangesAttemptCompletedNotificationWithAllPendingDataSaved:(BOOL)a0; - (id).cxx_construct; - (void)_pushNotificationsAreInitializedWithCompletionHandler:(id /* block */)a0; - (void)_loadMetadataAsynchronously; - (BOOL)_shouldSyncProfiles; - (void)_getServerChangeTokenDataWithCompletion:(id /* block */)a0; - (id)_convertProfileLocalIdentifierToServerIdentifier:(id)a0; - (void)_setPushNotificationAreInitialized:(BOOL)a0; - (void)_callAndResetFetchCompletionHandlerWithError:(id)a0; - (void)_pushNotificationReceived:(id)a0; - (void)_removePersistedLongLivedSaveOperationDictionary; - (id)initWithDatabase:(id)a0 configuration:(id)a1 databaseStore:(id)a2 completionBlock:(id /* block */)a3; - (long long)_resultFromError:(id)a0; - (void)_updateThrottlerPolicies; - (void)_saveChangesWhenHistoryLoads; - (void)_setServerChangeToken:(id)a0; - (void)_determineNumberOfDevicesInSyncCircleForOperation:(id)a0 completionHandler:(id /* block */)a1; - (id)_currentSyncCircleSizeRetrievalThrottlerPolicyString; - (void)_registerFetchCompletionHandler:(id /* block */)a0; - (void)_updateProfileServerIdentifiersToLocalIdentifiersMapBasedOnLocalToServerMap; - (void)_determineCloudHistoryStoreWithCompletion:(id /* block */)a0; - (void)_fetchChangesInResponseToPushNotification:(id)a0; - (void)_resetCloudHistoryDataWithCompletionHandler:(id /* block */)a0; - (void).cxx_destruct; - (void)setRecordOfPastOperations:(id)a0 forThrottler:(id)a1; - (void)_persistLongLivedSaveOperationDictionaryWithOperationID:(id)a0 databaseGenerations:(id)a1; - (void)_resetForAccountChangeWithCompletionHandler:(id /* block */)a0; - (id)_convertProfileServerIdentifierToLocalIdentifier:(id)a0; - (void)updateProfileLocalIdentifiersToServerIdentifiersMap:(id)a0 completionHandler:(id /* block */)a1; - (id)_manateeErrorCode:(id)a0; - (void)_initializePushNotificationSupport; - (id)_currentFetchChangesThrottlerPolicyString; - (void)fetchAndMergeChangesBypassingThrottler; - (void)_fetchChangesWhenHistoryLoads; - (void)saveChangesToCloudHistoryStore; - (void)resetForAccountChange; - (void)_performBlockAsynchronouslyOnCloudHistoryQueueAfterMetadataHasLoaded:(id /* block */)a0; - (void)_transitionCloudHistoryStoreToManateeState:(long long)a0 completion:(id /* block */)a1; - (void)_handleManateeErrorIfNeeded:(id)a0; - (void)fetchAndMergeChanges; - (void)_replayPersistedLongLivedSaveOperationIfNecessary; - (void)fetchDateOfNextPermittedSaveChangesAttemptWithCompletionHandler:(id /* block */)a0; - (void)_registerForHistoryWasLoadedNotificationIfNecessary; - (void)_callAndResetSaveCompletionHandlerWithError:(id)a0; - (void)_deleteAllCloudHistoryAndSaveAgain; - (void)getVisitsAndTombstonesNeedingSyncWithVisitSyncWindow:(double)a0 completion:(id /* block */)a1; - (id)_currentSaveChangesThrottlerPolicyString; - (void)_updateHistoryAfterSuccessfulPersistedLongLivedSaveOperationWithGenerations:(id)a0 completion:(id /* block */)a1; - (void)_saveVisits:(id)a0 tombstones:(id)a1 toCloudHistoryBypassingThrottler:(BOOL)a2 longLivedOperationPersistenceCompletion:(id /* block */)a3 withCallback:(id /* block */)a4; - (void)saveChangesBypassingThrottler:(BOOL)a0 completionHandler:(id /* block */)a1; @end