luxlabs header browser preview


@class NSError, NSString, NSArray, WBSCloudTabDevice, NSMutableDictionary, NSDictionary, NSObject, NSMutableArray;
@protocol OS_dispatch_queue, WBSCloudTabStoreDelegate;

@interface WBSCloudTabStore : NSObject <WBSCloudTabDeviceProvider> {
    NSObject<OS_dispatch_queue> *_internalQueue;
    NSMutableArray *_syncedCloudTabDevicesFromKVS;
    NSMutableDictionary *_deviceUUIDsToCloseRequestsFromKVS;
    BOOL _hasAttemptedToRemoveCurrentDeviceFromKVS;
    BOOL _isFetchingDataFromCloudKit;
    BOOL _hasAttemptedToFetchDevicesAtLeastOnce;
    NSMutableArray *_syncedCloudTabDevicesFromCloudKit;
    NSArray *_filteredAndSortedSyncedCloudTabDevicesFromCloudKit;
    WBSCloudTabDevice *_currentDevice;
    NSMutableDictionary *_deviceUUIDsToCloseRequestsFromCloudKit;
    NSError *_lastFetchError;
}

@property (readonly, nonatomic) BOOL atLeastOneOtherActiveDeviceIsRegistered;
@property (readonly, copy, nonatomic) NSArray *syncedCloudTabDevices;
@property (weak, nonatomic) id<WBSCloudTabStoreDelegate> wbsDelegate;
@property (readonly, nonatomic) BOOL syncAgentIsAvailable;
@property (readonly, nonatomic) long long uniqueDeviceMultiplicity;
@property (readonly, nonatomic) BOOL currentDeviceIsRegisteredInCloudKit;
@property (readonly, copy, nonatomic) NSDictionary *dictionaryRepresentationOfCurrentDeviceInCloudKit;
@property (readonly, nonatomic) NSError *lastFetchError;
@property (readonly, nonatomic) unsigned long long totalSyncedCloudTabDeviceCount;
@property (readonly, nonatomic) BOOL cloudTabsAreEnabled;
@property (readonly) unsigned long long hash;
@property (readonly) Class superclass;
@property (readonly, copy) NSString *description;
@property (readonly, copy) NSString *debugDescription;

- (id)init;
- (id)_keyValueStoreDictionaryRepresentation:(long long)a0;
- (void)fetchSyncedCloudTabDevicesAndCloseRequestsFromCloudKit;
- (BOOL)closeTab:(id)a0 onDevice:(id)a1;
- (id)_currentDeviceUUID;
- (BOOL)closeAllTabsOnDevice:(id)a0;
- (void)_removeObjectFromKeyValueStore:(long long)a0 forKey:(id)a1;
- (void)_setDictionaryInKeyValueStore:(long long)a0 dictionary:(id)a1 forKey:(id)a2;
- (void).cxx_destruct;
- (void)addCloudTabsObserver:(id)a0;
- (BOOL)closeTabs:(id)a0 onDevice:(id)a1;
- (id)syncedRemoteCloudTabDevicesForProfileWithIdentifier:(id)a0;
- (void)_closeRequestedTabIfPossible:(id)a0;
- (void)clearTabsForFirstDuplicateDeviceInCloudKitWithName:(id)a0 passingTest:(id /* block */)a1;
- (void)pruneExpiredDevicesFromCloudKit;
- (void)_addCloseRequestDictionary:(id)a0 toDeviceUUIDsToCloseRequestsDictionary:(id)a1 requestUUID:(id)a2;
- (void)_addDeviceDictionaryFromKVS:(id)a0 deviceUUID:(id)a1;
- (BOOL)_closeTabs:(id)a0 onDevice:(id)a1;
- (BOOL)_deviceIsStoredInCloudKit:(id)a0;
- (id)_deviceWithTabsWithOutstandingCloseRequestsRemoved:(id)a0 closeRequestsForDevice:(id)a1;
- (id)_devicesByFilteringAndSortingDevices:(id)a0;
- (id)_devicesByRemovingDevicesFromKVSWithOutstandingCloseRequests:(id)a0;
- (void)_didFetchDeviceDictionariesFromCloudKit:(id)a0 fetchedCloseRequests:(id)a1 error:(id)a2;
- (void)_didFetchDeviceDictionariesFromCloudKit:(id)a0 fetchedCloseRequests:(id)a1 fetchedDevicesBySyncing:(BOOL)a2 error:(id)a3;
- (unsigned long long)_indexOfDevice:(id)a0 inSyncedCloudTabDevices:(id)a1;
- (void)_pruneOrphanedCloseRequestsFromKVS;
- (void)_syncAgentProxyConnectionWasInvalidated:(id)a0;
- (void)_tabWasClosed:(id)a0 onDevice:(id)a1 deviceIsStoredInCloudKit:(BOOL)a2 syncedCloudTabDevices:(id)a3;
- (void)_tabsWereClosed:(id)a0 onDevice:(id)a1 deviceIsStoredInCloudKit:(BOOL)a2 syncedCloudTabDevices:(id)a3;
- (BOOL)_writeCloseRequestForTab:(id)a0 onDevice:(id)a1 deviceIsStoredInCloudKit:(BOOL)a2;
- (void)clearTabsForFirstDuplicateDeviceInCloudKitWithName:(id)a0;
- (void)createSyncedCloudTabDevicesAndCloseRequestsFromKVS;
- (void)deleteAllDevicesFromCloudKit;
- (void)handleCloseTabRequestsFromCloudKit;
- (void)resetSyncedCloudTabDevicesAndCloseRequestsFromCloudKit;
- (void)resetSyncedCloudTabDevicesAndCloseRequestsFromKVS;
- (void)saveCurrentCloudTabDeviceDictionaryToCloudKit:(id)a0 completionHandler:(id /* block */)a1;

@end