@class _EMSearchableIndexPendingRemovals, EMCoreAnalyticsCollector, NSDate, EFStoppableScheduler, EFCancelationToken, EFLazyCache, NSObject, NSMutableArray, CSSearchableIndex, EFObservable, NSString, EFFuture, NSMutableSet; @protocol EDSearchableIndexDataSource, OS_os_activity, EDSearchableIndexReasonProvider, EFSuspendableScheduler, EDSearchableIndexSchedulableDelegate, EFCancelable, OS_os_log, EFAssertableScheduler; @interface EDSearchableIndex : NSObject <CSSearchableIndexDelegate, EDSearchableIndexVerifierDataSource, EFSignpostable, EFLoggable, EDSearchableIndexSchedulable, EMSearchableIndexInterface> { NSString *_indexName; EFCancelationToken *_cancelationToken; id<EFCancelable> _stateCancelable; EFStoppableScheduler<EFAssertableScheduler> *_stateTransitionScheduler; id<EFCancelable> _coalescingTimer; long long _resumeCount; long long _transaction; unsigned long long _throttledIndexingBatchSize; unsigned long long _throttledDataSourceBatchSize; unsigned long long _currentMaximumBatchSize; NSObject<OS_os_activity> *_batchIndexingActivity; NSMutableSet *_removedIdentifiers; NSMutableArray *_preparingItems; NSMutableArray *_pendingItems; NSMutableArray *_preprocessingItems; NSMutableArray *_processingItems; NSMutableSet *_pendingDomainRemovals; _EMSearchableIndexPendingRemovals *_pendingIdentifierRemovals; EFStoppableScheduler<EFSuspendableScheduler, EFAssertableScheduler> *_indexingScheduler; EFStoppableScheduler *_dataSourceScheduler; EFStoppableScheduler *_addIndexItemsScheduler; EFStoppableScheduler *_preprocessingScheduler; struct os_unfair_lock_s { unsigned int _os_unfair_lock_opaque; } _mainThreadAccessibleIvarLock; EFStoppableScheduler *_indexingBatchScheduler; EFLazyCache *_searchResultsCache; BOOL _isActive; BOOL _needsRefresh; BOOL _needsVerification; BOOL _coalesceTimerFired; BOOL _scheduledProcessing; BOOL _scheduledRefresh; BOOL _scheduledVerification; BOOL _indexImmediately; _Atomic long long _countOfBlocksAffectingDataSourceAndIndex; NSDate *_lastReindexRadarPrompt; } @property (class, readonly, copy) NSString *userHandle; @property (class, readonly) NSObject<OS_os_log> *signpostLog; @property (class, readonly) NSObject<OS_os_log> *log; @property (readonly, getter=_transaction) long long transaction; @property (retain, nonatomic) CSSearchableIndex *searchIndex; @property (readonly) unsigned long long currentMaximumBatchSize; @property (readonly, copy, nonatomic) NSString *copyDiagnosticInformation; @property (nonatomic) BOOL skipIndexExclusionCheck; @property (nonatomic) BOOL clientStateFetched; @property (nonatomic) BOOL enableSpotlightVerification; @property (copy, nonatomic) NSString *searchableIndexBundleID; @property (nonatomic) double coalescingDelaySeconds; @property (nonatomic) double dataSourceUpdateTimeLimit; @property (readonly) long long resumeCount; @property (readonly, getter=isActive) BOOL active; @property (retain, nonatomic) EFFuture *delayDataSourceAssignmentFuture; @property (readonly, nonatomic) EMCoreAnalyticsCollector *analyticsCollector; @property (readonly, copy, nonatomic) NSString *indexName; @property (weak, nonatomic) id<EDSearchableIndexDataSource> dataSource; @property (weak, nonatomic) id<EDSearchableIndexReasonProvider> reasonProvider; @property (weak, nonatomic) id<EDSearchableIndexSchedulableDelegate> schedulableDelegate; @property (readonly, nonatomic) unsigned long long pendingIndexItemsCount; @property (nonatomic) BOOL isIndexingDisabled; @property (readonly, getter=isPerformingBlockAffectingDataSourceAndIndex) BOOL performingBlockAffectingDataSourceAndIndex; @property (getter=isPersistenceAvailable) BOOL persistenceAvailable; @property (readonly, nonatomic) EFObservable *powerObservable; @property (readonly, nonatomic, getter=isPluggedIn) BOOL pluggedIn; @property (readonly, nonatomic) BOOL shouldCancelSearchQuery; @property (readonly, nonatomic) BOOL canIndexAttachments; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; @property (readonly) unsigned long long signpostID; @property (nonatomic, getter=isDataSourceIndexingPermitted) BOOL dataSourceIndexingPermitted; + (BOOL)isIncrementalIndexingType:(long long)a0; + (id)_localClientState; + (id)_localClientStateURL; + (id)_reindexReasonString:(long long)a0; + (void)_saveLocalClientState:(id)a0; + (BOOL)isValidTransaction:(long long)a0; - (void)searchableIndex:(id)a0 reindexAllSearchableItemsWithAcknowledgementHandler:(id /* block */)a1; - (void)setForeground:(BOOL)a0; - (void)searchableIndex:(id)a0 reindexSearchableItemsWithIdentifiers:(id)a1 acknowledgementHandler:(id /* block */)a2; - (void)dealloc; - (void)reindexAllSearchableItemsWithAcknowledgementHandler:(id /* block */)a0; - (void)_invalidateCache; - (void)removeAllItems; - (void)suspend; - (void)_suspend; - (void)_resume; - (void)refresh; - (id)initWithName:(id)a0 dataSource:(id)a1 reasonProvider:(id)a2; - (void)scheduleRecurringActivity; - (void)logPowerEventWithIdentifier:(id)a0 eventData:(id)a1; - (id)currentReasons; - (void)resume; - (void).cxx_destruct; - (id)purgeReasons; - (id)exclusionReasons; - (void)applicationWillSuspend; - (void)test_tearDown; - (void)addSearchQueryCancelable:(id)a0; - (void)indexMessages:(id)a0 includeBody:(BOOL)a1 indexingType:(long long)a2; - (void)applicationWillResume; - (id)dataSourceRefreshReasons; - (void)removeSearchQueryCancelable:(id)a0; - (void)removeItemsWithIdentifiers:(id)a0; - (void)removeItemsForDomainIdentifier:(id)a0; - (void)_registerStateCaptureHandler; - (void)attachmentBecameAvailable:(id)a0; - (void)indexItems:(id)a0; - (void)indexItems:(id)a0 immediately:(BOOL)a1; - (void)reindexSearchableItemsWithIdentifiers:(id)a0 acknowledgementHandler:(id /* block */)a1; - (id)searchableItemSnippetDataMatchingCriterion:(id)a0; - (void)_dataSourceRequestNeededUpdatesExcludingIdentifiers:(id)a0 completion:(id /* block */)a1; - (void)_invalidateItemsInTransactions:(id)a0; - (void)_sendAnalyticsForReindexReason:(long long)a0; - (void)removeMessages:(id)a0; - (void)_clearOrphanedSearchableMessagesFromDatabase; - (void)_coalescingTimerFired; - (void)_collectAnalyticsForReindexReason:(long long)a0; - (void)_collectAnalyticsForReindexReason:(long long)a0 withInfo:(id)a1; - (id)_consumeBatchOfSize:(unsigned long long)a0; - (unsigned long long)_countOfItemsInPendingQueues; - (void)_dataSourceAssignTransaction:(long long)a0 forIdentifiers:(id)a1 completion:(id /* block */)a2; - (void)_dataSourceAssignTransaction:(long long)a0 updates:(id)a1 completion:(id /* block */)a2; - (void)_dataSourceInvalidateItemsGreaterThanTransaction:(long long)a0 completion:(id /* block */)a1; - (void)_dataSourcePrepareToIndexItems:(id)a0 fromRefresh:(BOOL)a1 withCompletion:(id /* block */)a2; - (void)_dataSourceScheduleWork:(id /* block */)a0; - (void)_dataSourceVerifyRepresentativeSampleWithCompletion:(id /* block */)a0; - (void)_doIndexItems:(id)a0 fromRefresh:(BOOL)a1 immediately:(BOOL)a2; - (id)_eventDataForTransitionState:(id)a0; - (void)_fetchLastClientState; - (void)_getDomainRemovals:(id *)a0 identifierRemovals:(id *)a1; - (void)_handleFailingTransactionIDs:(id)a0; - (id)_identifiersForItems:(id)a0; - (id)_identifiersStringForItems:(id)a0 maxLength:(unsigned long long)a1; - (void)_indexItems:(id)a0 fromRefresh:(BOOL)a1 immediately:(BOOL)a2; - (void)_logSignpostForIndexingBatchAssignedDomainRemovalCount:(unsigned long long)a0; - (void)_logSignpostForIndexingBatchAssignedUpdatesWithItemsIndexedCount:(unsigned long long)a0; - (void)_logSignpostForIndexingBatchCompletedWithItemsIndexedCount:(id)a0; - (void)_logSignpostForIndexingBatchStartWithPendingItemsCount:(id)a0; - (long long)_nextTransaction; - (void)_noteNeedsLastClientStateFetch; - (id)_pendingIdentifiers; - (void)_powerStateChanged; - (BOOL)_preprocessItemIfNecessary:(id)a0 fromRefresh:(BOOL)a1; - (id)_processDomainRemovals:(id)a0; - (void)_processIdentifierRemovals:(id)a0; - (BOOL)_processIndexingBatch:(id)a0 clientState:(id)a1 itemsNotIndexed:(id)a2; - (void)_processRefreshRequestWithCompletion:(id /* block */)a0; - (void)_processSpotlightVerificationWithCompletion:(id /* block */)a0; - (void)_promptToFileRadarAboutReindexing:(id /* block */)a0; - (void)_queueConsumeBudgetElapsedPeriod:(double)a0; - (void)_queueConsumeBudgetItemCount:(unsigned long long)a0; - (BOOL)_queueContentsAllowsRefresh; - (void)_queueRefresh; - (void)_queueTransitionActive:(BOOL)a0 fromRefresh:(BOOL)a1; - (void)_registerDistantFutureSpotlightVerification; - (void)_resumeIndexingScheduler; - (void)_scheduleDataSourceRefresh; - (void)_scheduleProcessPendingItemsFromRefresh:(BOOL)a0; - (void)_scheduleSpotlightVerification; - (void)_scheduleSpotlightVerificationOnIndexingQueueWithCompletion:(id /* block */)a0; - (void)_startCoalescingTimer; - (void)_stopCoalescingTimer; - (void)_storeLastKnownReindexReason:(long long)a0 withInfo:(id)a1; - (void)_suspendIndexingScheduler; - (double)_throttleRequestedSize:(unsigned long long *)a0 targetTime:(double)a1 action:(id /* block */)a2; - (void)_transitionWithBudgetTimeUsed:(double)a0; - (void)_verifySpotlightIndex; - (void)beginUpdatesAffectingDataSourceAndIndex; - (id)bundleIDForSearchableIndexVerifier:(id)a0; - (id)dataSamplesForSearchableIndexVerifier:(id)a0 searchableIndex:(id)a1 count:(unsigned long long)a2 lastVerifiedMessageID:(long long)a3; - (void)endUpdatesAffectingDataSourceAndIndex; - (void)indexAttachmentsForMessageWithIdentifier:(id)a0 immediately:(BOOL)a1; - (void)indexItems:(id)a0 fromRefresh:(BOOL)a1 immediately:(BOOL)a2; - (void)indexRichLinksForMessageWithIdentifier:(id)a0 immediately:(BOOL)a1; - (id)indexedEmptySubjectIdentifers; - (id)issueDiagnosticsRequestForMessageRowId:(id)a0; - (id)knownTransactionIDsForSearchableIndexVerifier:(id)a0; - (void)markMessagesAsPrinted:(id)a0; - (id)messageIDsMatchingQuery:(id)a0; - (void)performBlockAffectingDataSourceAndIndex:(id /* block */)a0; - (void)reindexAllItemsWithOptions:(unsigned long long)a0 acknowledgementHandler:(id /* block */)a1; - (void)removeAllItemsWithAcknowledgementHandler:(id /* block */)a0; - (void)removeItemsWithIdentifiers:(id)a0 reasons:(id)a1 fromRefresh:(BOOL)a2; - (void)richLinkBecameAvailable:(id)a0; - (id)searchableIndexForSearchableIndexVerifier:(id)a0; @end