luxlabs header browser preview


@class NSTimer, FKDelayedOperation, NSString, NPSManager, NSHashTable, NSMutableDictionary, NSArray, NSMutableArray, NSObject, NSMutableSet, NSMapTable, IDSBatchIDQueryController;
@protocol OS_dispatch_queue;

@interface FKFriendsManager : NSObject <FKFriendGroupDelegate, IDSBatchIDQueryControllerDelegate> {
    NSString *_domain;
    unsigned long long _maxFriendGroups;
    unsigned long long _maxFriendsPerGroup;
    BOOL _shouldAddEmptyTrailingGroup;
    struct __CFString { } *_friendsChangedExternallyNotificationName;
    struct __CFString { } *_friendGroupTitleChangedExternallyNotificationName;
    BOOL _shouldDeduplicateFriendList;
    BOOL _shouldRemoveDestinationlessFriends;
    NSMutableArray *_friendList;
    NSMutableArray *_friendGroups;
    NPSManager *_npsManager;
    NSTimer *_addressBookRefreshTimer;
    NSObject<OS_dispatch_queue> *_saveQueue;
    NSObject<OS_dispatch_queue> *_changeLogQueue;
    unsigned long long _postCount;
    NSHashTable *_sourcedPersons;
    NSMapTable *_identifiersToPersonMap;
    BOOL _needsFriendListSync;
    BOOL _needsAddressBookRefresh;
    BOOL _didCompleteInitialLoading;
    NSMutableSet *_highPriorityDestinations;
    NSArray *_pendingDestinations;
    NSMutableDictionary *_cachedStatuses;
    NSTimer *_idsQueryTimeoutTimer;
    IDSBatchIDQueryController *_queryController;
}

@property (retain, nonatomic) FKDelayedOperation *saveOperation;
@property (retain, nonatomic) NSMutableDictionary *changeLog;
@property (nonatomic, getter=isRefreshAgainstContactsEnabled) BOOL refreshAgainstContactsEnabled;
@property (nonatomic, getter=didLastLoadHaveChanges) BOOL lastLoadHadChanges;
@property (retain, nonatomic) NSString *serviceName;
@property (readonly) unsigned long long hash;
@property (readonly) Class superclass;
@property (readonly, copy) NSString *description;
@property (readonly, copy) NSString *debugDescription;

+ (id)managerForDomain:(id)a0;
+ (void)setFriendsChangedExternallyNotificationName:(id)a0 domain:(id)a1;
+ (void)setGroupSize:(unsigned long long)a0 domain:(id)a1;
+ (void)setMaxGroupCount:(unsigned long long)a0 domain:(id)a1;
+ (id)collapseChangeLogsIntoChangeLog:(id)a0;
+ (void)setEnableEmptyTrailingGroup:(BOOL)a0 domain:(id)a1;
+ (void)setFriendGroupTitleChangedExternallyNotificationName:(id)a0 domain:(id)a1;
+ (void)setRefreshAgainstContactsOnInitEnabled:(BOOL)a0 domain:(id)a1;

- (id)initWithDomain:(id)a0;
- (void)dealloc;
- (void)_save;
- (void)save;
- (void).cxx_destruct;
- (BOOL)addFriend:(id)a0;
- (id)_destinations;
- (void)idStatusUpdatedForDestinations:(id)a0;
- (id)allPeople;
- (id)friendGroups;
- (void)_updateFriends:(id)a0;
- (BOOL)containsFriendWithABRecordGUID:(id)a0;
- (void)_addEmptyGroup;
- (void)_addPersonToIdentifiersToPersonMap:(id)a0;
- (void)_addressBookChanged:(id)a0;
- (id)reachableDestinationsForPerson:(id)a0;
- (BOOL)_addressBookSequenceNumberDidChange;
- (void)_aggdLogFriendGroupCount;
- (unsigned long long)_changeLogCount;
- (void)_loadFriendList;
- (void)_addCuratedFriends:(id)a0;
- (BOOL)isPersonFriend:(id)a0;
- (void)_addEntryToChangeLogForPerson:(id)a0 changeType:(id)a1;
- (void)_aggdLogFriendCount;
- (void)_aggdSetValue:(long long)a0 forScalarKey:(struct __CFString { } *)a1;
- (BOOL)_canAddFriendGroup;
- (BOOL)_changeLogContainsFriendAdditionsOrUpdates;
- (void)_cleanUpFriendListIfNecessary;
- (long long)_compareStatus:(long long)a0 toStatus:(long long)a1;
- (id)_copyAndResetChangeLog;
- (void)_createAddressToPersonDictionary;
- (void)_createEmptyFriendList;
- (id)_curatedFriendList;
- (void)_deduplicateFriendListIfNecessary;
- (long long)_firstEmptyPosition;
- (id)_friendAtPosition:(unsigned long long)a0;
- (void)_friendsChangedExternally;
- (void)_groupTitleChangedExternally;
- (void)_idsQueryTimeoutTimerFired;
- (void)_incrementExternalChangePostCount;
- (unsigned long long)_indexForPosition:(unsigned long long)a0 inGroup:(id)a1;
- (void)_initiateIDSDestinationStatusQuery:(id)a0;
- (int)_lastKnownAddressBookSequenceNumber;
- (void)_loadGroupTitles;
- (struct __CFString { } *)_notificationForExternalListChange;
- (unsigned long long)_numberOfFriendsInList:(id)a0;
- (void)_personValuesChanged:(id)a0;
- (void)_postChangeNotificationIfNecessary;
- (void)_postGroupListChangedNotification;
- (void)_queryDestinations:(id)a0;
- (void)_removeDestinationlessFriendsIfNecessary;
- (void)_removeFriendsAtIndices:(id)a0;
- (void)_removeGroupAtIndex:(unsigned long long)a0;
- (void)_removePersonFromIdentifiersToPersonMap:(id)a0;
- (void)_setupQueryController;
- (BOOL)_shouldAddEmptyGroup;
- (BOOL)_shouldBypassDestinationStatusCheck;
- (void)_startIDSQueryTimeoutTimer;
- (void)_stopIDSQueryTimeoutTimer;
- (void)_storeSourcedPerson:(id)a0;
- (void)_updateFriendGroups;
- (void)_updateLastKnownAddressBookSequenceNumber:(int)a0;
- (BOOL)canAddFriend;
- (void)friendGroup:(id)a0 didMoveFriends:(id)a1;
- (void)friendGroup:(id)a0 didRemoveFriend:(id)a1 atPosition:(unsigned long long)a2;
- (void)friendGroup:(id)a0 didSetFriend:(id)a1 atPosition:(unsigned long long)a2;
- (unsigned long long)groupIndexContainingFriend:(id)a0;
- (void)markFriendListAsNormalized;
- (id)personLikePerson:(id)a0;
- (id)personWithABRecordGUID:(id)a0;
- (id)personWithDestinations:(id)a0;
- (unsigned long long)positionOfFriendInGroup:(id)a0;
- (void)purgeEmptyFriendGroups;
- (BOOL)refreshAgainstAddressBook;
- (void)refreshDestinationStatuses;
- (void)reloadFriendList;
- (void)saveFriendGroupTitles;
- (BOOL)shouldAllowAddingContact:(id)a0 withContactStore:(id)a1 personValueCache:(id)a2;
- (long long)statusForPerson:(id)a0 requery:(BOOL)a1;
- (void)syncFriendGroup:(id)a0;

@end