@class NSTimer, FKDelayedOperation, NSString, NPSManager, NSHashTable, NSMutableDictionary, NSArray, NSMutableArray, NSObject, NSMutableSet, NSMapTable, IDSBatchIDQueryController; @protocol OS_dispatch_queue; @interface FKFriendsManager : NSObject { 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 *_saveQueue; NSObject *_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