luxlabs header browser preview


@class WBSCRDTPositionGenerator, NSMutableDictionary, NSObject, NSDictionary, WBProfile, NSMutableArray, WBBrowserState, NSString, NSSet, NSHashTable, WBSPair, NSMutableSet, WBParticipantPresenceCoordinator, NSArray, WBTabCollection, NSCountedSet;
@protocol OS_dispatch_queue, WBTabGroupSyncAgentProtocol;

@interface WBTabGroupManager : NSObject <WBParticipantPresenceCoordinatorDelegate, WBTabGroupSyncAgentSyncObserver, WBSCRDTPositionGeneratorDelegate, WBSCloudTabDeviceProvider, WBSProfileProviding, WBStateProvider> {
    NSObject<OS_dispatch_queue> *_internalQueue;
    NSHashTable *_observers;
    NSHashTable *_cloudTabObservers;
    WBSCRDTPositionGenerator *_positionGenerator;
    NSMutableSet *_recentlyAddedTabGroupsAwaitingFirstStartPage;
    NSMutableDictionary *_removedTabGroupsByUUID;
    NSMutableDictionary *_removedTabsByUUID;
    NSMutableDictionary *_localTabsByUUID;
    NSMutableDictionary *_localTabGroupsByUUID;
    NSMutableDictionary *_syncableTabsByUUID;
    NSMutableDictionary *_syncableTabGroupsByUUID;
    NSMutableDictionary *_profilesByIdentifier;
    NSMutableDictionary *_removedProfilesByIdentifier;
    NSMutableDictionary *_devicesByUUID;
    NSString *_lastLocalDeviceNameSaved;
    BOOL _didFinishSetup;
    id /* block */ _setupCompletionHandler;
    WBSPair *_currentShareAcceptancePair;
    NSMutableArray *_pendingShareAcceptancePairQueue;
    WBParticipantPresenceCoordinator *_presenceCoordinator;
    long long _numberOfDevicePresenceReportingRequests;
    NSCountedSet *_activeTabGroupUUIDs;
    WBSPair *_activeTabGroupAndTabUUIDPair;
    NSDictionary *_tabGroupUUIDsToCKShares;
    NSMutableDictionary *_broadcastingTabGroupUUIDsToCKShare;
}

@property (readonly, nonatomic) BOOL enableSharedTabGroupsFastSyncPresence;
@property (readonly, nonatomic) BOOL hasSharedTabGroups;
@property (readonly, nonatomic) BOOL isBroadcastingPresenceUpdates;
@property (readonly, nonatomic) WBTabCollection *tabCollection;
@property (retain, nonatomic) id<WBTabGroupSyncAgentProtocol> syncAgentProxy;
@property (readonly, copy, nonatomic) NSArray *profiles;
@property (readonly, copy, nonatomic) NSArray *namedProfiles;
@property (readonly, nonatomic) BOOL hasMultipleProfiles;
@property (readonly, copy, nonatomic) NSSet *allProfileIdentifiers;
@property (readonly, copy, nonatomic) NSSet *allNamedProfileIdentifiers;
@property (readonly, copy, nonatomic) NSSet *recentlyAddedTabGroupsAwaitingFirstStartPage;
@property (readonly, nonatomic) WBProfile *defaultProfile;
@property (readonly) unsigned long long hash;
@property (readonly) Class superclass;
@property (readonly, copy) NSString *description;
@property (readonly, copy) NSString *debugDescription;
@property (readonly, nonatomic) BOOL cloudTabsAreEnabled;
@property (readonly, copy, nonatomic) NSString *defaultProfileIdentifier;
@property (readonly, nonatomic, getter=hasCompletedMigration) BOOL completedMigration;
@property (readonly, nonatomic, getter=isPersistent) BOOL persistent;
@property (readonly, nonatomic) WBBrowserState *browserState;
@property (readonly, nonatomic) WBBrowserState *lastSessionBrowserState;
@property (readonly, copy, nonatomic) NSArray *windowStates;
@property (readonly, nonatomic) int windowsFolderSpecialID;
@property (readonly, copy, nonatomic) NSArray *windows;
@property (readonly, copy, nonatomic) NSArray *namedTabGroupsInDefaultProfile;
@property (readonly, copy, nonatomic) NSArray *allNamedTabGroupsUnsorted;
@property (readonly, nonatomic) int pinnedTabsFolderID;
@property (readonly, nonatomic) int privatePinnedTabsFolderID;
@property (nonatomic) unsigned long long maximumTabsPerGroup;

+ (id)ephemeralTabGroupManager;

- (BOOL)saveWindowState:(id)a0;
- (id)updateProfileWithIdentifier:(id)a0 persist:(BOOL)a1 usingBlock:(id /* block */)a2 completionHandler:(id /* block */)a3;
- (id)initWithCollection:(id)a0;
- (id)windowStateWithUUID:(id)a0;
- (id)tabGroupWithUUID:(id)a0;
- (void)beginSharingTabGroupWithUUID:(id)a0 completionHandler:(id /* block */)a1;
- (void)activeParticipantsDidUpdateInTabWithUUID:(id)a0;
- (void)shareDidUpdateForTabGroupWithUUID:(id)a0;
- (void)reorderScopedBookmarkWithUUID:(id)a0 afterBookmarkWithUUID:(id)a1 notify:(BOOL)a2;
- (void)deleteScopedBookmarkWithUUID:(id)a0 completionHandler:(id /* block */)a1;
- (void)updateScopedBookmarkWithUUID:(id)a0 title:(id)a1 address:(id)a2;
- (id)windowWithUUID:(id)a0;
- (id)_generatePositionForDevice:(id)a0 afterDevice:(id)a1;
- (void)movePresenceForParticipantToTabWithUUID:(id)a0;
- (void)closeAllTabsInProfilesWithIdentifiers:(id)a0;
- (void)_mergeTabGroups:(id)a0;
- (void)_uncacheTab:(id)a0;
- (id)_tabGroupsForProfileWithIdentifier:(id)a0;
- (void)addTabGroupObserver:(id)a0;
- (id)_tabGroupWithUUID:(id)a0;
- (void)removeTabGroupObserver:(id)a0;
- (id)_remoteDevicesForProfileWithIdentifier:(id)a0;
- (void)_beginDevicePresenceReportingIfNeeded;
- (void)moveTabGroup:(id)a0 afterTabGroup:(id)a1;
- (BOOL)insertItems:(id)a0 inParentWithID:(unsigned int)a1 afterItem:(id)a2;
- (id)devicesForProfile:(id)a0;
- (void)_reorderTabGroup:(id)a0 afterTabGroup:(id)a1;
- (id)topScopedBookmarkListForTabGroup:(id)a0;
- (BOOL)closeTab:(id)a0 onDevice:(id)a1;
- (void)_didReceiveShare:(id)a0 forTabGroupUUID:(id)a1;
- (void)endParticipantPresenceReportingForTabGroupWithUUID:(id)a0;
- (void)_updateDeviceNameIfNeededWithName:(id)a0;
- (void)_ensureProfileDirectoriesExistForProfile:(id)a0;
- (void)removeProfile:(id)a0 completionHandler:(id /* block */)a1;
- (void)removeTabGroup:(id)a0;
- (id)scopedBookmarkListWithID:(int)a0 filteredUsingString:(id)a1;
- (void)moveProfile:(id)a0 afterProfile:(id)a1;
- (id)_unnamedTabGroupsForDeviceWithUUID:(id)a0;
- (void)getPresenceTabUUIDForParticipantIdentifier:(id)a0 inTabGroup:(id)a1 completionHandler:(id /* block */)a2;
- (id)shareRecordForTabGroup:(id)a0;
- (void)getActiveParticipantsInTab:(id)a0 completionHandler:(id /* block */)a1;
- (id /* block */)_itemSyncPositionComparator;
- (void)_userDidAcceptTabGroupShareWithMetadata:(id)a0 inProfileWithIdentifier:(id)a1 completionHandler:(id /* block */)a2;
- (BOOL)saveBrowserState:(id)a0;
- (void)_addTabsInTabGroups:(id)a0 toParentIdentifierInTabsToParentIdentifiersDictionary:(id)a1;
- (void)updateTabsInTabGroup:(id)a0 completionHandler:(id /* block */)a1;
- (id)_profiles;
- (id)_performCRDTMergeAndMapTabsToParentIdentifiersWithProfilesByIdentifier:(id)a0 devicesByUUID:(id)a1 uninsertedSyncableTabsFromSyncableTabsByUUID:(id)a2;
- (void)waitForSetupWithCompletionHandler:(id /* block */)a0;
- (id)profileWithIdentifier:(id)a0;
- (id)_insertTabGroup:(id)a0 afterTabGroup:(id)a1 isMove:(BOOL)a2;
- (id)tabWithUUID:(id)a0;
- (id)_findOrCreateLocalDeviceWithName:(id)a0 forProfileWithIdentifier:(id)a1;
- (void)deleteScopedBookmarkWithUUID:(id)a0;
- (id)tabGroupMatchingShare:(id)a0;
- (void)getActiveParticipantsInTabGroup:(id)a0 completionHandler:(id /* block */)a1;
- (id)namedTabGroupsForProfileWithIdentifier:(id)a0;
- (id)_insertDevice:(id)a0 inProfile:(id)a1 completionHandler:(id /* block */)a2;
- (void)syncDidFinishWithResult:(long long)a0;
- (id)tabsForTabGroup:(id)a0;
- (void)waitForPendingChanges;
- (void)flushDeletedTabsInTabGroup:(id)a0;
- (void)beginParticipantPresenceReportingForTabGroupWithUUID:(id)a0;
- (void)participantPresenceCoordinator:(id)a0 didUpdateActiveParticipants:(id)a1 inTabGroupWithIdentifier:(id)a2;
- (void)moveTabGroup:(id)a0 toProfileWithIdentifier:(id)a1 afterTabGroup:(id)a2;
- (id)updateTabsInTabGroupWithUUID:(id)a0 persist:(BOOL)a1 usingBlock:(id /* block */)a2;
- (id)_namedProfiles;
- (void)_movePresenceForParticipantToTabWithUUID:(id)a0;
- (void)_unsafeCreateDefaultProfileIfNecessary;
- (void)deleteWindowStates:(id)a0 completionHandler:(id /* block */)a1;
- (id)updateTabGroupWithUUID:(id)a0 persist:(BOOL)a1 usingBlock:(id /* block */)a2;
- (void)appendProfile:(id)a0 completionHandler:(id /* block */)a1;
- (id)_tabWithUUID:(id)a0;
- (BOOL)_shouldEndDevicePresenceReporting;
- (void)_updateTabGroupShares:(id)a0;
- (id)updateTabWithUUID:(id)a0 persist:(BOOL)a1 notify:(BOOL)a2 usingBlock:(id /* block */)a3;
- (id)moveTabs:(id)a0 toTabGroup:(id)a1 afterTab:(id)a2 withoutPersistingTabGroupsWithUUIDStrings:(id)a3;
- (id)_generatePositionForTabGroup:(id)a0 afterTabGroup:(id)a1;
- (id)positionGenerator:(id)a0 recordNameOfBookmarksBeforeRecordWithName:(id)a1;
- (void)reloadTabGroupsFromDatabaseWithCompletionHandler:(id /* block */)a0;
- (void)activeParticipantsDidUpdateInTabGroupWithUUID:(id)a0;
- (id)_generatePositionAfterProfile:(id)a0;
- (void)recentlyAddedTabGroupIsAwaitingFirstStartPage:(id)a0;
- (id)_tabGroupCacheForTabGroup:(id)a0;
- (void)enableDevicePresenceReporting;
- (BOOL)_shouldBeginDevicePresenceReporting;
- (id)_tabCacheForTabGroup:(id)a0;
- (id)_devicesForProfileWithIdentifier:(id)a0;
- (void)_dequeueNextAcceptCloudKitShareMetadataIfNeeded;
- (id)positionGenerator:(id)a0 recordNameOfBookmarksAfterRecordWithName:(id)a1;
- (id)_shareRecordIfNeededToEndCollaborationForTabGroup:(id)a0;
- (void).cxx_destruct;
- (void)saveWindowState:(id)a0 completionHandler:(id /* block */)a1;
- (void)_didModifyUnnamedTabGroupInDeviceWithUUID:(id)a0;
- (id)_localTabGroups;
- (void)_addTab:(id)a0 toParentIdentifierInTabsToParentIdentifiersDictionary:(id)a1;
- (void)_sendAcceptanceResult:(long long)a0 forShareMetadata:(id)a1 toHandler:(id)a2;
- (id)_unsafeMutableDefaultProfile;
- (void)disableDevicePresenceReporting;
- (void)disableSuddenTerminationForPendingChanges;
- (long long)_nextInMemoryPositionChangeID;
- (void)addCloudTabsObserver:(id)a0;
- (id)_findLocalDeviceForProfileWithIdentifier:(id)a0;
- (id)unnamedTabGroupsForProfileWithIdentifier:(id)a0;
- (id)_allTabGroupsUnsorted;
- (void)_notifyScopedBookmarkChangesInFolderWithID:(int)a0;
- (id)positionGenerator:(id)a0 positionForRecordName:(id)a1;
- (void)registerWindowState:(id)a0;
- (id)profileWithServerID:(id)a0;
- (id)insertUnnamedTabGroup:(id)a0 deviceName:(id)a1;
- (void)_cacheTabGroup:(id)a0;
- (id)_unnamedTabGroupsForProfileWithIdentifier:(id)a0;
- (void)_updateTabsAndCacheTabGroup:(id)a0 withTabsByParentIdentifiers:(id)a1;
- (void)_willFlushDeletedTabs:(id)a0 inTabGroup:(id)a1;
- (id)_unsafeTabGroupUUIDsToCKShares;
- (void)_removeProfileDirectoriesForProfile:(id)a0;
- (id)_shareRecordIfNeededToBeginCollaborationForTabGroup:(id)a0;
- (long long)nextChangeIDForPositionInPositionGenerator:(id)a0;
- (void)_didFlushDeletedTabs:(id)a0 inTabGroup:(id)a1;
- (void)_didModifyUnnamedTabGroup:(id)a0;
- (void)_uncacheTabGroup:(id)a0;
- (void)insertScopedBookmark:(id)a0 inScopedBookmarkFolderWithID:(int)a1 afterBookmarkWithUUID:(id)a2;
- (void)shareRecordForTabGroup:(id)a0 completionHandler:(id /* block */)a1;
- (void)tabGroupHasDisplayedStartPage:(id)a0;
- (void)participantPresenceCoordinator:(id)a0 didUpdateActiveParticipants:(id)a1 inTabWithIdentifier:(id)a2;
- (void)getCurrentConnectionStateWithCompletionHandler:(id /* block */)a0;
- (id)syncedRemoteCloudTabDevicesForProfileWithIdentifier:(id)a0;
- (void)acceptTabGroupShareWithMetadata:(id)a0 handler:(id)a1;
- (void)saveBrowserState:(id)a0 completionHandler:(id /* block */)a1;
- (void)_tabGroupSyncDidFinish:(id)a0;
- (void)_endDevicePresenceReportingIfNeeded;
- (void)_didRemoveProfiles:(id)a0 updateProfiles:(id)a1 previousProfiles:(id)a2 removeTabGroups:(id)a3 updateTabGroups:(id)a4 previousTabGroups:(id)a5;
- (id)deviceIdentifierForPositionGenerator:(id)a0;
- (void)_commonInit;
- (void)_reloadProfilesAndTabGroupsAndNotify:(BOOL)a0 withCompletionHandler:(id /* block */)a1;
- (id)insertTabGroup:(id)a0 afterTabGroup:(id)a1;
- (void)_cacheProfile:(id)a0;
- (void)_updatePositionsForTabsInTabGroup:(id)a0;

@end