luxlabs header browser preview


@class NSData, NSString, IMDMessageProcessingController, NSArray, NSRecursiveLock, NSMutableDictionary, IMDCKUtilities, IMDChatStore, IMDMessageHistorySyncController, TUConversationManager;

@interface IMDChatRegistry : NSObject <TUConversationManagerDelegate, IMUnlockMonitorListener> {
    NSMutableDictionary *_chatsByGroupID;
    NSRecursiveLock *_chatsLock;
    NSRecursiveLock *_handlesLock;
    NSMutableDictionary *_chats;
    BOOL _isLoading;
    BOOL _firstUnlockTriggered;
    BOOL _doneLoadingAfterMerge;
    BOOL _blackholedChatsExistCache;
}

@property (readonly) unsigned long long hash;
@property (readonly) Class superclass;
@property (readonly, copy) NSString *description;
@property (readonly, copy) NSString *debugDescription;
@property (retain, nonatomic) NSMutableDictionary *idToHandlesMap;
@property (readonly, nonatomic) NSData *historyToken;
@property (retain, nonatomic) IMDCKUtilities *ckUtilities;
@property (retain, nonatomic) IMDChatStore *chatStore;
@property (nonatomic) BOOL hasDumpedLogsForNoExisitingGroup;
@property (readonly, nonatomic) IMDMessageProcessingController *messageProcessingController;
@property (readonly, nonatomic) IMDMessageHistorySyncController *messageHistorySyncController;
@property (retain, nonatomic) NSMutableDictionary *personCentricGroupedChatsCache;
@property (retain, nonatomic) NSMutableDictionary *cachedAliasToCNIDMap;
@property (readonly, nonatomic) TUConversationManager *conversationManager;
@property (readonly, nonatomic) NSArray *chats;
@property (readonly, nonatomic) NSArray *allChats;
@property (readonly, nonatomic) NSArray *cachedChats;
@property (readonly, nonatomic) unsigned long long cachedChatCount;
@property (readonly, nonatomic) unsigned long long persistedChatCount;
@property (readonly) unsigned long long hash;
@property (readonly) Class superclass;
@property (readonly, copy) NSString *description;
@property (readonly, copy) NSString *debugDescription;

+ (id)sharedInstance;
+ (id)supportedServiceNames;

- (unsigned long long)markAsSpamForIDs:(id)a0 style:(unsigned char)a1 onServices:(id)a2 chatID:(id)a3 queryID:(id)a4 autoReport:(BOOL)a5;
- (BOOL)_existingItemRequiresUpgrade:(id)a0 itemFromCKRecord:(id)a1;
- (void)removeChat:(id)a0;
- (void)updateLastMessageForChat:(id)a0 hintMessage:(id)a1 historyQuery:(BOOL)a2;
- (void)updateStateForChat:(id)a0 hintMessage:(id)a1 shouldRebuildFailedMessageDate:(BOOL)a2;
- (id)chatForRoom:(id)a0 account:(id)a1 chatIdentifier:(id)a2 guid:(id)a3;
- (void)updateRecoverableMessageSyncState:(long long)a0 forMessageRowID:(long long)a1 onPartIndex:(long long)a2;
- (void)updateChatUsingSyncData:(id)a0;
- (id)_aliasToCNIDMapForAliases:(id)a0;
- (id)init;
- (void)permanentlyDeleteRecoverableMessagesInChatsWithGUIDs:(id)a0 completionHandler:(id /* block */)a1;
- (id)existingGroupChatsContainingHandles:(id)a0;
- (id)_findChatWinnerInDuplicateChatArray:(id)a0 fixDisplayName:(BOOL *)a1;
- (id)_conversationItemForChat:(id)a0 conversation:(id)a1;
- (void)_fixUpChatParticipantsIfNeeded:(id)a0;
- (id)_itemFromCKRecord:(id)a0;
- (void)dealloc;
- (id)_chatForTUGroupID:(id)a0 participants:(id)a1;
- (id)_chatInfoForChats:(id)a0;
- (id)_cachedChatWithGUID:(id)a0;
- (void)clearRecoverableMessageTombStones;
- (void)setUpInitialConversationManager;
- (id)_newestExistingChatWithOriginalGroupID:(id)a0 onService:(id)a1;
- (void)_chatGUIDsThatNeedRemergingWithCompletionHandler:(id /* block */)a0;
- (id)allExistingChatsWithIdentifier:(id)a0 style:(unsigned char)a1;
- (id)truncatedSortedChatsGroupedByPersonCentricID:(id)a0 count:(long long)a1 pinnedChatIdentifiers:(id)a2;
- (id)_chatForTUConversation:(id)a0;
- (void)_updateCurrentAliasToCNIDDictionaryAndHistoryTokenWithCompletionHandler:(id /* block */)a0;
- (id)chatForHandle:(id)a0 account:(id)a1 chatIdentifier:(id)a2 guid:(id)a3 lastAddressedHandle:(id)a4 lastAddressedSIMID:(id)a5 isBlackholed:(BOOL)a6;
- (void)updateStateForChat:(id)a0 forcePost:(BOOL)a1 shouldRebuildFailedMessageDate:(BOOL)a2;
- (id)chatForHandles:(id)a0 account:(id)a1 chatIdentifier:(id)a2 style:(unsigned char)a3 groupID:(id)a4 displayName:(id)a5 guid:(id)a6 lastAddressedHandle:(id)a7 lastAddressedSIMID:(id)a8 isBlackholed:(BOOL)a9;
- (void)systemDidLeaveFirstDataProtectionLock;
- (void)addChat:(id)a0 firstLoad:(BOOL)a1 store:(BOOL)a2;
- (id)_parentChatIDFromCKRecord:(id)a0;
- (void)_setGroupID:(id)a0 forChatAndAllSiblings:(id)a1;
- (void)markDeferredChatsAsNeedingSync;
- (id)_messageStore;
- (id)existingChatForID:(id)a0 account:(id)a1;
- (id)_createGroupChatsArray;
- (void)clearPendingDeleteTable;
- (id)existingChatsFilteredUsingPredicate:(id)a0;
- (id)recoverableMessagesMetadata;
- (id)_spamMessageCreator;
- (void)_evictCachedChat:(id)a0;
- (BOOL)_mergeDuplicateGroupsIfNeeded;
- (void)__removeChatFromGroupIDChatIndex:(id)a0;
- (id)_newestExistingChatWithGroupID:(id)a0 onService:(id)a1;
- (void)updateFaceTimeGroupName:(id)a0;
- (void)_updateChat:(id)a0 usingSyncData:(id)a1;
- (void)handleMessageUpdateConflictType:(id)a0 serverRecord:(id)a1 localRowID:(long long)a2;
- (void)_insertChatUsingSyncData:(id)a0;
- (void)_markGroupPhotosAsUnpurgeableIfNecessary;
- (id)existingiMessageChatForID:(id)a0 withChatStyle:(unsigned char)a1;
- (void)_setInitialLoadForTesting:(BOOL)a0;
- (void)updateStateForChat:(id)a0 forcePost:(BOOL)a1;
- (id)_chatInfoForConnection;
- (BOOL)_shouldHandleInternalPhishingAttempts;
- (void)updateStateForChat:(id)a0 forcePost:(BOOL)a1 shouldRebuildFailedMessageDate:(BOOL)a2 shouldCalculateUnreadCount:(BOOL)a3;
- (void)_populateLastMessageForChat:(id)a0;
- (id)existingChatsWithGroupID:(id)a0;
- (void)updateChatWithGUID:(id)a0 serverChangeToken:(id)a1 recordID:(id)a2;
- (id)groupChatsBasedOnIdentityUsingCacheIfApplicable:(id)a0;
- (void)conversationManager:(id)a0 conversation:(id)a1 addedMembersLocally:(id)a2;
- (void)repairInconsistentMergedChatsIfNecessary:(id)a0;
- (void)checkBlackholedChatsExistAfterUpdatingChatWithAdd:(BOOL)a0;
- (void)waitForLoadedChatsWithCompletionHandler:(id /* block */)a0;
- (id)existingSMSChatForID:(id)a0 withChatStyle:(unsigned char)a1;
- (id)aliasToCNIDMap;
- (void)markChatAsDeferredForSyncingUsingSyncData:(id)a0;
- (id)blackholedChats;
- (id)_findExistingGroupChatForConversation:(id)a0 onSession:(id)a1;
- (id)_findLosingChatGUIDsInArrayOfChats:(id)a0 withWinner:(id)a1;
- (id)_handlesWithChangedContactsOriginalMap:(id)a0 newMap:(id)a1;
- (void)updateMeCardHasUpdatedForAllChats;
- (id)_addChatFromCacheMiss:(id)a0 preferExistingChat:(BOOL)a1;
- (void)_performPostUnlockHousekeeping;
- (id)allExistingChatsWithIdentifier:(id)a0;
- (void)updateFaceTimeGroupPhoto:(id)a0;
- (unsigned long long)markAsSpamForIDs:(id)a0 style:(unsigned char)a1 onServices:(id)a2 chatID:(id)a3 queryID:(id)a4 autoReport:(BOOL)a5 isJunkReportedToCarrier:(BOOL)a6;
- (void)_markForksAsSyncedForChat:(id)a0;
- (void)updateStateForChat:(id)a0 hintMessage:(id)a1 shouldRebuildFailedMessageDate:(BOOL)a2 setUnreadCountToZero:(BOOL)a3;
- (void)_reportMessageDictionaryForMessages:(id)a0 withLastAddressedHandle:(id)a1 maxMessageLength:(unsigned long long)a2 isAutoReport:(BOOL)a3 withChat:(id)a4 maxMessagesToReport:(unsigned long long)a5 totalMessageCount:(unsigned long long *)a6 notifyInternalSecurity:(BOOL)a7 isJunkReportedToCarrier:(BOOL)a8 iMessageReportSpamDictionaries:(id)a9 textMessageReportSpamDictionaries:(id)a10;
- (void)removeItem:(id)a0 fromChat:(id)a1;
- (void)_reportToIDSTextMessageSpam:(id)a0;
- (id)_upgradeChatToGroupChat:(id)a0 forConversation:(id)a1;
- (void)addMessage:(id)a0 toChat:(id)a1;
- (BOOL)updateSyncedSyndicationRanges:(id)a0 forGUID:(id)a1;
- (void)updateStateForChat:(id)a0 fromMessage:(id)a1 toMessage:(id)a2 forcePost:(BOOL)a3 hintMessage:(id)a4 shouldRebuildFailedMessageDate:(BOOL)a5 shouldCalculateUnreadCount:(BOOL)a6 setUnreadCountToZero:(BOOL)a7;
- (void)_updateCachedCNIDMapForHandles:(id)a0;
- (id)_sharedMessageStore;
- (id)recoverableMessagesMetadataPendingCloudKitDeleteWithLimit:(unsigned long long)a0;
- (void)_updateCachedAliasToCNIDMap:(id)a0 withHistoryToken:(id)a1 completionHandler:(id /* block */)a2;
- (void)updateGroupIDForChat:(id)a0 newGroupID:(id)a1;
- (id)_chatInfoForNumberOfChats:(long long)a0;
- (void)_checkForContactChanges;
- (void)systemDidUnlock;
- (id)_chatsWithBlackholed:(BOOL)a0;
- (id)allChatsWithIdentifier:(id)a0 style:(unsigned char)a1 serviceNames:(id)a2;
- (id)_cachedChatsWithGroupID:(id)a0;
- (BOOL)isBeingSetup;
- (id)_allHandles;
- (void)addChat:(id)a0;
- (id)_createGroupChatForConversation:(id)a0 onSession:(id)a1;
- (id)existingOneOnOneChatsWithIdentifiers:(id)a0;
- (id)_existingiMessageChatForChatIdentifier:(id)a0 style:(unsigned char)a1;
- (id)existingChatWithGUID:(id)a0;
- (id)messagesToUploadToCloudKitWithLimit:(unsigned long long)a0;
- (id)_initiatorForConversation:(id)a0 chat:(id)a1;
- (id)_generateCurrentAliasToCNIDDictionary;
- (void)_adoptUpdatedStateForExistingItem:(id)a0 itemFromCKRecord:(id)a1;
- (void)_reportToIDSiMessageSpam:(id)a0;
- (id)existingChatsWithPinningIdentifier:(id)a0;
- (BOOL)_hasInconsistentJoinStateAcrossMergedChats:(id)a0;
- (void)removeMessage:(id)a0 fromChat:(id)a1;
- (void)_serializeChatsForRemerge:(id)a0 guidsThatNeedRemerging:(id *)a1 chatDictionaryArray:(id *)a2;
- (void)_setSortIDOnIncomingMessage:(id)a0 forChat:(id)a1;
- (void)_finalizeIncomingChat:(id)a0;
- (id)existingChatsForIDs:(id)a0 displayName:(id)a1 groupID:(id)a2 style:(unsigned char)a3;
- (void)_triggerRemergeForPersonCentricID:(id)a0;
- (id)groupChatsBasedOnIdentity:(id)a0;
- (void)moveMessagesWithGUIDsToRecentlyDeleted:(id)a0 deleteDate:(id)a1;
- (BOOL)_hasInconsistentGroupPhotoGUIDAcrossMergedChats:(id)a0;
- (void)_reloadChatsForDatabaseMergeOrDatabaseSwitch;
- (id)sortPersonCentricChatGroups:(id)a0;
- (void)updateStateForChat:(id)a0 forcePost:(BOOL)a1 shouldRebuildFailedMessageDate:(BOOL)a2 setUnreadCountToZero:(BOOL)a3;
- (id)_exactGroupChatMatchOrNewestMatchingGroupID:(id)a0 serviceName:(id)a1 participants:(id)a2 toIdentifier:(id)a3;
- (void)recoverMessagesWithChatGUIDs:(id)a0;
- (void).cxx_destruct;
- (void)updateNotificationUnreadCountForChat:(id)a0;
- (id)allHandlesForID:(id)a0;
- (id)findDuplicateChats:(id)a0;
- (id)existingChatWithIdentifier:(id)a0 account:(id)a1;
- (id)_existingChatsForIDs:(id)a0 serviceName:(id)a1 displayName:(id)a2 groupID:(id)a3 style:(unsigned char)a4;
- (BOOL)handleMessageUpdate:(id)a0;
- (id)_lookupChatUsingParentChatID:(id)a0 service:(id)a1;
- (id)_existingChatForSyncData:(id)a0 originalGUID:(id)a1;
- (BOOL)loadChatsWithCompletionBlock:(id /* block */)a0;
- (id)existingChatsFilteredUsingPredicate:(id)a0 sortedUsingLastMessageDateAscending:(BOOL)a1 olderThan:(id)a2 limit:(unsigned long long)a3;
- (BOOL)repairDuplicateChatsIfNeeded;
- (void)_chatGUIDsThatNeedRemerging:(id *)a0 chatDictionaryArray:(id *)a1 oldPersonCentricID:(id)a2;
- (BOOL)filterediMessageChatsExist;
- (void)_populateContactIDOnHandles;
- (void)_makeAllAttachmentsClassC;
- (BOOL)updateProperties:(id)a0 chat:(id)a1 style:(unsigned char)a2;
- (void)processMessageUsingCKRecord:(id)a0;
- (void)addItem:(id)a0 toChat:(id)a1;
- (void)moveMessagesInChatsWithGUIDsToRecentlyDeleted:(id)a0 deleteDate:(id)a1;
- (BOOL)hasKnownSenderChatWithChatIdentifier:(id)a0;
- (id)recoverableMessagesMetadataPendingCloudKitSaveWithLimit:(unsigned long long)a0;
- (id)existingChatWithEngramID:(id)a0;
- (void)updateLastMessageForChat:(id)a0 hintMessage:(id)a1;
- (void)removeIMDHandleFromRegistry:(id)a0;
- (id)existingChatsFilteredUsingPredicate:(id)a0 sortedUsingLastMessageDateAscending:(BOOL)a1 limit:(unsigned long long)a2;
- (id)_activeTUConversations;
- (void)_repairInconsistentJoinStatesAcrossMergedChatsIfNecessary:(id)a0;
- (id)personCentricGroupedChatsArrayWithMaximumNumberOfChats:(long long)a0 skipsLastMessageLoading:(BOOL)a1 usingChats:(id)a2 useCachedChatGroups:(BOOL)a3 includingPinnedChatIdentifiers:(id)a4 repairInconsistentMergedChats:(BOOL)a5;
- (BOOL)doneLoadingAfterMerge;
- (id)_addChatsFromCacheMisses:(id)a0 preferExistingChats:(BOOL)a1;
- (void)updateStateForChat:(id)a0 hintMessage:(id)a1 shouldRebuildFailedMessageDate:(BOOL)a2 shouldCalculateUnreadCount:(BOOL)a3;
- (id)existingiMessageChatForID:(id)a0;
- (void)_addItemToParentChatIfNotLocationItem:(id)a0 parentChat:(id)a1 updatedLastMessageCount:(unsigned long long)a2;
- (id)_extractHandlesFromMap:(id)a0 usingCNID:(id)a1;
- (id)stringForChatStyle:(unsigned char)a0;
- (void)simulateMessageReceive:(id)a0 serviceName:(id)a1 groupID:(id)a2 handles:(id)a3 sender:(id)a4 date:(id)a5 associatedMessageType:(long long)a6 associatedMessageGuid:(id)a7;
- (id)_chatInfoInRange:(struct _NSRange { unsigned long long x0; unsigned long long x1; })a0 wantsBlackholed:(BOOL)a1;
- (id)generateUnusedChatIdentifierForGroupChatWithAccount:(id)a0;
- (void)_fixUpChatParticipantsIfNeeded:(id)a0 usingChatGUIDToChatMap:(id)a1;
- (void)refreshUIWhileSyncing;
- (void)resolveChatConflictUsingSyncData:(id)a0 localGUID:(id)a1;
- (void)updateStateForChat:(id)a0 hintMessage:(id)a1;
- (void)_persistMergeIDMergedChatsIfNeeded;
- (id)existingChatsForIDs:(id)a0 onService:(id)a1 displayName:(id)a2 groupID:(id)a3 style:(unsigned char)a4;
- (id)existingChatForRoom:(id)a0 account:(id)a1;
- (id)existingChatForIDs:(id)a0 account:(id)a1 displayName:(id)a2 groupID:(id)a3 style:(unsigned char)a4;
- (id)_preferredFileTransferFromGroupPhotoGUIDs:(id)a0;
- (id)_siblingChatForChat:(id)a0 usingChatGUIDToChatMap:(id)a1;
- (void)_contactsChanged:(id)a0;
- (void)_chatGUIDsThatNeedRemerging:(id *)a0 chatDictionaryArray:(id *)a1 aliasMap:(id)a2;
- (void)addMessage:(id)a0 toChat:(id)a1 deferSpotlightIndexing:(BOOL)a2;
- (void)addIMDHandleToRegistry:(id)a0;
- (BOOL)blackholedChatsExist;
- (id)_allChatInfo;
- (void)_repairInconsistentGroupPhotoGuidAcrossMergedChatsIfNecessary:(id)a0;
- (id)allExistingSupportedServiceChatsWithIdentifier:(id)a0 style:(unsigned char)a1;
- (id)bestCandidateGroupChatWithFromIdentifier:(id)a0 toIdentifier:(id)a1 displayName:(id)a2 participants:(id)a3 groupID:(id)a4 serviceName:(id)a5;
- (void)updateCachedChatsSyncStatusTo:(long long)a0 forGUIDs:(id)a1;
- (id)existingSMSChatForID:(id)a0;
- (id)_participantIDSetFromHandles:(id)a0 toIdentifier:(id)a1;
- (id)_blackholedChatInfoForNumberOfChats:(long long)a0;
- (void)_enumeratePersonMergedChatsWithMaximumNumberOfChats:(long long)a0 usingChats:(id)a1 useCachedChatGroups:(BOOL)a2 includingPinnedChatIdentifiers:(id)a3 usingBlock:(id /* block */)a4;
- (void)_reportMessageDictionaryForMessages:(id)a0 withLastAddressedHandle:(id)a1 maxMessageLength:(unsigned long long)a2 isAutoReport:(BOOL)a3 withChat:(id)a4 maxMessagesToReport:(unsigned long long)a5 totalMessageCount:(unsigned long long *)a6 isJunkReportedToCarrier:(BOOL)a7 iMessageReportSpamDictionaries:(id)a8 textMessageReportSpamDictionaries:(id)a9;
- (void)__addChatToGroupIDChatIndex:(id)a0;
- (void)invalidatePersonCentricGroupedChatsCache;
- (BOOL)_ensureNoExistingGroupForSyncData:(id)a0;
- (void)_forceReloadChats:(BOOL)a0;
- (id)findDuplicateUnnamedGroups:(id)a0;
- (id)_tuConversationForChat:(id)a0;
- (id)_chatGUIDToChatMapForChats:(id)a0;
- (void)processMessageUsingCKRecord:(id)a0 updatedLastMessageCount:(int)a1;
- (id)_oneToOneChatForRemoteHandle:(id)a0;
- (id)chatsToUploadToCloudKitWithLimit:(unsigned long long)a0;
- (id)_mergedPinningIdentifiersForChats:(id)a0 chatGUIDToChatMap:(id)a1 groupedChatsByPersonCentricIdWithSortedChats:(id)a2;
- (id)existingChatForIDs:(id)a0 account:(id)a1 style:(unsigned char)a2;
- (void)_fixSMSGroupChatAndStoreIfNeeded:(id)a0 iMessageChat:(id)a1 chatToRegenerate:(id *)a2;
- (id)existingChatsForIDs:(id)a0 onService:(id)a1 style:(unsigned char)a2;
- (void)setHistoryToken:(id)a0;
- (id)_newestGroupChatMatchingParticipants:(id)a0 displayName:(id)a1 strictDisplayNameMatching:(BOOL)a2 serviceName:(id)a3 toIdentifier:(id)a4;
- (id)messagesPendingUpdateT1ToCloudKitWithLimit:(unsigned long long)a0;
- (id)copyRecordIDsAndGUIDsPendingCloudKitDelete;
- (BOOL)_contactsBasedMerginEnabled;
- (id)messagesPendingUpdateT2ToCloudKitWithLimit:(unsigned long long)a0;
- (BOOL)updateUnreadCountForChat:(id)a0;
- (BOOL)_chat:(id)a0 isDuplicateOfChat:(id)a1;

@end