@class NSString, EDRemindMeNotificationController, EDMessagePersistence, NSPredicate, EDMessageQueryEvaluator, EFCancelationToken, EMQuery, EDPersistenceHookRegistry, NSObject, NSMutableSet; @protocol OS_os_log, EDRemoteSearchProvider, EFScheduler, EDMessageQueryHelperDelegate; @interface EDMessageQueryHelper : NSObject { struct atomic_flag { _Atomic BOOL _Value; } _didStart; NSMutableSet *_noLongerMatchingMessages; NSMutableSet *_ignoredMessages; struct os_unfair_lock_s { unsigned int _os_unfair_lock_opaque; } _noLongerMatchingMessagesLock; struct os_unfair_lock_s { unsigned int _os_unfair_lock_opaque; } _ignoredMessagesLock; } @property (class, readonly) NSObject *log; @property (readonly, nonatomic) long long initialBatchSize; @property (readonly, nonatomic) long long maximumBatchSize; @property (readonly, nonatomic) EDMessagePersistence *messagePersistence; @property (readonly, nonatomic) EDPersistenceHookRegistry *hookRegistry; @property (readonly, nonatomic) id remoteSearchProvider; @property (readonly, nonatomic) EDRemindMeNotificationController *remindMeNotificationController; @property (readonly, nonatomic) id scheduler; @property (readonly, weak, nonatomic) id delegate; @property (retain, nonatomic) EDMessageQueryEvaluator *queryEvaluator; @property (nonatomic) BOOL shouldReconcileJournal; @property (nonatomic) BOOL keepMessagesInListOnBucketChange; @property (readonly, nonatomic) BOOL updateDisplayDate; @property (retain, nonatomic) NSPredicate *ignoreMessagesPredicate; @property (nonatomic) BOOL addMessagesSynchronously; @property (readonly) NSString *pendingFlagChangesKey; @property (readonly) NSString *pendingConversationIDChangesKey; @property (readonly) NSString *pendingSenderBucketChangesKey; @property (readonly) NSString *pendingReadLaterDateChangesKey; @property (readonly) NSString *pendingDisplayDateChangesKey; @property (retain, nonatomic) EFCancelationToken *cancelationToken; @property (readonly, nonatomic) EMQuery *query; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; - (void)dealloc; - (void)start; - (void)persistenceDidAddMessages:(id)a0 generationWindow:(id)a1; - (void)persistenceIsChangingConversationID:(long long)a0 messages:(id)a1 generationWindow:(id)a2; - (void)persistenceWillChangeFlags:(id)a0 messages:(id)a1; - (void).cxx_destruct; - (void)persistenceDidDeleteAllMessagesInMailboxesWithURLs:(id)a0 generationWindow:(id)a1; - (void)cancel; - (void)persistenceDidAddAddresses:(id)a0 toSender:(id)a1 generation:(long long)a2; - (void)persistenceDidRemoveAddresses:(id)a0 fromSender:(id)a1 generation:(long long)a2; - (void)persistenceDidChangeFlags:(id)a0 messages:(id)a1 generationWindow:(id)a2; - (void)persistenceDidUpdateProperties:(id)a0 message:(id)a1 generationWindow:(id)a2; - (void)persistenceDidChangeGlobalMessageID:(long long)a0 orConversationID:(long long)a1 message:(id)a2 generationWindow:(id)a3; - (void)persistenceDidChangeReadLaterDate:(id)a0 messages:(id)a1 changeIsRemote:(BOOL)a2 generationWindow:(id)a3; - (void)persistenceDidDeleteMessages:(id)a0 generationWindow:(id)a1; - (void)persistenceDidUpdateDisplayDateForMessages:(id)a0 changeIsRemote:(BOOL)a1 generation:(long long)a2; - (void)persistenceDidChangeConversationNotificationLevel:(long long)a0 conversationID:(long long)a1 generationWindow:(id)a2; - (void)persistenceDidReconcileJournaledMessages:(id)a0 generationWindow:(id)a1; - (void)persistenceWillChangeConversationID:(long long)a0 messages:(id)a1; - (void)persistenceWillChangeReadLaterDate:(id)a0 messages:(id)a1; - (void)persistenceWillUpdateDisplayDateForMessages:(id)a0; - (void)_foundMessages:(id)a0; - (void)_calculateAndReportChangesForPersistedMessages:(id)a0 withPendingChangesKey:(id)a1 changeBlock:(id /* block */)a2; - (id)_filteredMessagesForPredicate:(id)a0 limit:(long long)a1; - (void)_getInitialResults; - (id)_persistedMessagesFromSendersWithAddresses:(id)a0; - (void)_persistenceDidDeleteMessages:(id)a0 includeMessagesWithDeletedFlag:(BOOL)a1; - (id)_predicateWithAdditionalPredicates:(id)a0; - (void)_prepareForSenderBucketChangeForThreadsWithSenderAddresses:(id)a0; - (void)_reportChangesForCurrentlyMatchingMessages:(id)a0 previouslyMatchingMessages:(id)a1 keyPaths:(id)a2; - (void)_reportChangesForPersistedMessages:(id)a0 withPendingChangesKey:(id)a1 keyPaths:(id)a2; - (void)_reportSenderBucketChangeForThreadsWithSenderAddresses:(id)a0; - (id)_transformAndFilterMessages:(id)a0 includeDeleted:(BOOL)a1 removeIgnoredMessages:(BOOL)a2; - (id)_unjournaledMessagesForMessages:(id)a0; - (void)_updateDisplayDateForMessagesIfNeeded; - (void)controller:(id)a0 messageTimerFired:(id)a1; - (id)initWithQuery:(id)a0 initialBatchSize:(long long)a1 maximumBatchSize:(long long)a2 messagePersistence:(id)a3 hookRegistry:(id)a4 remoteSearchProvider:(id)a5 scheduler:(id)a6 remindMeNotificationController:(id)a7 delegate:(id)a8 shouldReconcileJournal:(BOOL)a9 shouldAddMessagesSynchronously:(BOOL)a10 keepMessagesInListOnBucketChange:(BOOL)a11; - (id)messagesWithAdditionalPredicates:(id)a0 limit:(long long)a1; - (void)persistenceDidChangeSenders:(id)a0 generation:(long long)a1; - (void)persistenceWillAddAddresses:(id)a0 toSender:(id)a1; - (void)persistenceWillChangeSenders:(id)a0; - (void)persistenceWillChangeSendersForAddresses:(id)a0; - (void)persistenceWillRemoveAddresses:(id)a0 fromSender:(id)a1; - (void)remoteSearchDidFindMessages:(id)a0; - (void)remoteSearchDidFinish; - (id)sortableMessagesWithAdditionalPredicates:(id)a0 limit:(long long)a1; @end