@class NSMutableDictionary, CellThroughputAdviser, FlowScrutinizer, NSDate, NSObject, NSDictionary, FlowRefreshScheduler, CoreTelephonyShim, RepeatedConnFailureDetector, NWStatsManager, NSString, AppAnalytics, ProcessAnalytics, ObjectAnalytics, CellularStateRelay, ProxyAnalytics, NetworkAnalyticsStateRelay, UsageAnalytics; @protocol OS_dispatch_source; @interface FlowAnalyticsEngine : AnalyticsEngineCore <ProxyAnalyticsDelegate, NWStatsManagerDelegate, FlowImmediateRefreshDelegate, CellThroughputAdviserDelegate, ManagedEventInfoProtocol> { UsageAnalytics *uspace; ProcessAnalytics *pspace; AppAnalytics *aspace; ObjectAnalytics *calspace; NSMutableDictionary *processCache; NSMutableDictionary *appState; NSMutableDictionary *appCompactState; NSMutableDictionary *pluginToBundleCache; NSMutableDictionary *audioBundleCache; NSMutableDictionary *webBrowserBundleCache; NSMutableDictionary *allAppEndpoints; NSMutableDictionary *resolvedAppEndpoints; NSMutableDictionary *determinedTrackersFromAPICount; NWStatsManager *nstatManager; BOOL nstatManagerConfigured; int cellularInterfaceIndex; NSDate *lastCellularThresholdRefreshTime; NSString *networkUsageTraceFileRootName; int nstatTraceFileFD; struct ct_green_tea_logger_s { } *_greenTeaLogger; unsigned long long logStateHandle; NSObject<OS_dispatch_source> *siginfo; unsigned int pdpBitmap; id /* block */ dataUsageRefreshCompletionBlock; int dataUsageRefreshCompletionNumWaiting; NSDate *lastFullRefreshTime; id tetherObserver; BOOL isTetherActive; id algosScoreObserver; id appStateChangeObserver; id cellTCCapabilityObserver; id transferSizeObserver; id assetDownloadObserver; id sizeableBackgroundTransferObserver; id cellThroughputAdvisoryReqObserver; CellThroughputAdviser *cellThroughputAdviser; NSDictionary *throughputAdviserConfigurationParameters; NSObject<OS_dispatch_source> *throughputAdvicePollingTimer; double throughputAdvicePollingInterval; unsigned long long assetDownloadProcessId; RepeatedConnFailureDetector *repeatedConnFailureDetector; FlowScrutinizer *flowScrutinizer; NSObject<OS_dispatch_source> *flushInactiveLedgerTimer; FlowRefreshScheduler *refreshScheduler; NSMutableDictionary *flowCache; NSMutableDictionary *flowInstant; id flowObserver; id relayReadyObserver; ObjectAnalytics *fspace; ObjectAnalytics *lfpspace; ObjectAnalytics *domspace; ObjectAnalytics *expspace; ObjectAnalytics *epspace; NSObject<OS_dispatch_source> *flushOldFlowRecordsTimer; BOOL isScreenDark; NSDate *screenDarkTimestamp; BOOL isScreenLocked; char _nrFrequencyBand; id userSwitchObserver; id domainResolvingObserver; id userAppTrackingObserver; id userEndpointTrackingObserver; BOOL appTrackingEnabled; BOOL endpointTrackingEnabled; NSMutableDictionary *snapshotFlowUUIDs; NSMutableDictionary *trackedSourceIDs; double domainUsageBucketDuration; unsigned long long usageCoalescingSpanSecs; unsigned long long usageWindowUnitsCount; unsigned long long outcomeArrayLogEntryCount; BOOL flowCountExceededThreshold; BOOL thunderingHerdFlowCountExceededThreshold; unsigned long long trackedFlowCountSincePrimaryInterfaceChanged; CoreTelephonyShim *ctShim; } @property (retain) CellularStateRelay *cellRelay; @property (retain) NetworkAnalyticsStateRelay *wifiRelay; @property (retain) NetworkAnalyticsStateRelay *mostRecentPrimaryRelay; @property (nonatomic) BOOL delegateToProxyAnalytics; @property (retain, nonatomic) ProxyAnalytics *proxyAnalytics; @property BOOL haveCalendar; @property BOOL haveTypicalUsage; @property (readonly, nonatomic) NSMutableDictionary *flowWatchers; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; + (id)sharedInstance; + (void)workspaceSaveWithCallback:(id /* block */)a0; + (void)checkForegroundStateForProcessWithUUID:(id)a0 replyQueue:(id)a1 reply:(id /* block */)a2; + (BOOL)appBundleIdentifierIsWebBrowser:(id)a0; + (void)summaryAppDomainUsageBy:(unsigned int)a0 reply:(id /* block */)a1; + (void)performAppTrackingPeriodicActivityWithReply:(id /* block */)a0; + (void)recentUsageForApps:(id)a0 replyQueue:(id)a1 reply:(id /* block */)a2; + (void)identifierForUUID:(id)a0 replyQueue:(id)a1 reply:(id /* block */)a2; + (void)appsWithFlowsPassingTest:(id /* block */)a0 replyQueue:(id)a1 reply:(id /* block */)a2; + (void)performAppPeriodicActivityWithReply:(id /* block */)a0; + (void)endRNFPeriod; + (void)performAppExperiencePeriodicActivityWithReply:(id /* block */)a0; + (void)performAppTrackingActionWithOptions:(id)a0 userId:(unsigned int)a1 reply:(id /* block */)a2; + (void)performAppEndpointTrackingPeriodicActivityWithReply:(id /* block */)a0; + (id)queue; + (id)appBundleIdentifierFromAuditToken:(struct { unsigned int x0[8]; })a0; + (id)appBundleIdentifierFromBundleIdentifier:(id)a0; - (void)_dumpState; - (void)_generateInfoForId:(unsigned long long)a0 context:(const char *)a1 uuid:(id)a2 completionBlock:(id /* block */)a3; - (void)generateInfoForId:(unsigned long long)a0 context:(const char *)a1 uuid:(id)a2 completionBlock:(id /* block */)a3; - (void)clearAppEndpoints:(id)a0; - (void)relayAudioVideoStatus:(unsigned int)a0 rxThroughput:(double)a1 txThroughput:(double)a2 at:(double)a3 reset:(BOOL)a4; - (void)handleLaunchServicesApplicationUnregistration:(id)a0; - (BOOL)_performSystemLevelAppDomainUsageAnalyticsFromDate:(id)a0 toDate:(id)a1; - (void)_compactUsageForApp:(id)a0 intervalType:(int)a1 givenLastRun:(id)a2; - (void)clearAppDomainUsageForUserWithID:(unsigned int)a0; - (void)workspaceSaveWithCallback:(id /* block */)a0; - (void)_calendarUsageForApp:(id)a0 givenLastRun:(id)a1; - (id)_flowFetchForName:(id)a0; - (void)_performAppTrackingPeriodicTasksWithReply:(id /* block */)a0; - (id)_appDomainUsageBy:(unsigned int)a0 bundleName:(id)a1 forDomain:(id)a2 domainOwner:(id)a3 domainType:(unsigned short)a4 domainClassification:(short)a5 context:(id)a6 contextVerificationType:(unsigned short)a7 initiatedType:(unsigned int)a8; - (void)createAppEndpointsStorageForUserId:(unsigned int)a0; - (void)_saveAndUnloadSelectState; - (void)dealloc; - (void)_resolveAppEndpointsForUserId:(unsigned int)a0 bundleName:(id)a1; - (BOOL)_handlesFlowEntity:(id)a0; - (void)_setupDailyMaintenanceActivity; - (void)_pruneFlowHistory; - (void)_updateAppEndpoints:(id)a0 type:(unsigned long long)a1 userId:(unsigned int)a2 bundleName:(id)a3 flowClosing:(BOOL)a4; - (void)_handleApplicationNotificationCompactForBundleName:(id)a0 edgeMode:(BOOL)a1; - (void)_archiveAppEndpointsForUserId:(unsigned int)a0 bundleName:(id)a1; - (BOOL)_isLiveUsageinScope:(id)a0 forTime:(id)a1; - (void)_reportDomainTrackingDropFor:(id)a0 withCause:(unsigned long long)a1 detail:(id)a2; - (void)_archiveRecord:(id)a0; - (void)_performAppDomainUsageAnalytics; - (unsigned long long)_liveUsageCountForProcess:(id)a0 subscriberTag:(id)a1; - (id)initWithWorkspace:(id)a0 params:(id)a1 queue:(id)a2; - (void)_handleApplicationNotificationStateChangedForBundleName:(id)a0 edgeMode:(BOOL)a1 intervalType:(int)a2; - (void)_removeAllInfoForProcess:(id)a0; - (id)_processFetchForName:(id)a0 bundle:(id)a1 extension:(id)a2 shouldFillMiss:(BOOL)a3; - (void)_handleAppTrackingNotification:(id)a0; - (void)createSnapshotFor:(id)a0 pred:(id)a1 actions:(id)a2 reply:(id /* block */)a3; - (void)_summaryAppDomainUsageBy:(unsigned int)a0 reply:(id /* block */)a1; - (void)_updateLiveUsage:(id)a0 wifiIn:(long long)a1 wifiOut:(long long)a2 cellIn:(long long)a3 cellOut:(long long)a4 wiredIn:(long long)a5 wiredOut:(long long)a6 xIn:(long long)a7 xOut:(long long)a8 isJumboFlow:(BOOL)a9 isExpensive:(BOOL)a10 closing:(BOOL)a11; - (id)_fetchFromFlowCacheWithName:(id)a0; - (void)stopObservingLaunchServices; - (void)_handleSIGUSR1; - (void)getNetworkBitmapsWithNames:(id)a0 startTime:(unsigned long long)a1 endTime:(unsigned long long)a2 options:(id)a3 reply:(id /* block */)a4; - (void)relayCellThroughputAdvice:(unsigned int)a0 at:(double)a1; - (id)getOption:(id)a0; - (id)_fetchFromProcCacheWithName:(id)a0; - (void)_algosScoreFor:(id)a0 score:(double)a1; - (void)storeSnapshotFlowUUID:(id)a0 forSourceKey:(id)a1; - (void)logOutcomeArray:(id)a0; - (BOOL)_appBundleIdentifierIsWebBrowser:(id)a0; - (id)_parseEvent:(id)a0 withGeneration:(id *)a1; - (void)_logExcessCellUsage:(long long)a0 snapshot:(id)a1; - (void)_noteSizeableBackgroundTransferEvent:(id)a0; - (void)_sendStatisticsReport:(id)a0; - (void)identifierForUUID:(id)a0 queue:(id)a1 reply:(id /* block */)a2; - (void)_performAppPeriodicTasksWithReply:(id /* block */)a0; - (void)pollFlows; - (void)_updateDeterminedTrackersFromAPICountForUserId:(unsigned int)a0 bundleName:(id)a1 increment:(unsigned long long)a2; - (BOOL)handlesEntity:(id)a0; - (void)_updateTetheringUsage:(BOOL)a0; - (void)_handleEndpointTrackingNotification:(id)a0; - (void)performThresholdingOn:(id)a0 forKey:(id)a1 andValue:(id)a2 connection:(id)a3 createdBlock:(id /* block */ *)a4 hitBlock:(id /* block */)a5 errorBlock:(id /* block */)a6; - (id)_has1stPartyImpliedBundleNameBehavior:(id)a0; - (void)_setupNotificationCenterAndRelayObservers; - (int)_performQueryOnEntityFromProcCache:(id)a0 target:(id)a1 pred:(id)a2 found:(id *)a3; - (void)_insertProcCache:(id)a0 underName:(id)a1; - (int)performQueryOnEntityFromCache:(id)a0 pred:(id)a1 altpred:(id *)a2 actions:(id)a3 found:(id *)a4; - (void)_refreshFullDataUsageWithCallback:(id /* block */)a0; - (void)_generateFlowAnomalySymptom:(unsigned int)a0 currentUsage:(unsigned long long)a1 snapshot:(id)a2; - (void)removeSnapshotFlowUUIDsForSourceKey:(id)a0; - (unsigned long long)_submitAppDomainUsageRecordInfoAnalytics; - (void)performAppTrackingPeriodicTasksComplete:(id)a0 error:(id)a1; - (void)_recentUsageForApps:(id)a0 replyQueue:(id)a1 reply:(id /* block */)a2; - (void)_dumpSubFlowCounts; - (id)_repurposeAppEndpointRecords:(id)a0; - (void)_fetchAppEndpointsRecordForUserId:(unsigned int)a0 bundleName:(id)a1; - (void)performQueryPostProcessing:(id)a0 actions:(id)a1 processOutcome:(id)a2; - (void)_checkCellExcessUsageActions:(unsigned long long)a0 previous:(unsigned long long)a1 snapshot:(id)a2; - (id)createFlushInactiveLedgerTimer:(id)a0; - (void)_evalDomainTrackingDropOf:(id)a0; - (void)_refreshFullDataUsageComplete; - (void)performAppPeriodicTasksComplete:(id)a0 error:(id)a1; - (void)_requestDetailedCellFlowMonitoring:(BOOL)a0; - (void)_startFlowMonitoring; - (void)_applyCountsTo:(id)a0 fromLiveUsage:(id)a1 mustReset:(BOOL)a2; - (void)_handleSnapshotForDomains:(id)a0; - (id)_liveUsageFetchForProcess:(id)a0; - (void)resetDataFor:(id)a0 nameKind:(id)a1; - (void)_performAppEndpointTrackingPeriodicTasksWithReply:(id /* block */)a0; - (void)postAWDMetric:(id)a0 withIdentifier:(unsigned int)a1; - (void)observeValueForKeyPath:(id)a0 ofObject:(id)a1 change:(id)a2 context:(void *)a3; - (void)identifierForUUID:(id)a0 reply:(id /* block */)a1; - (BOOL)_performAppLevelAppDomainUsageAnalyticsFromDate:(id)a0 toDate:(id)a1; - (BOOL)_processNameIsValid:(id)a0; - (double)_usageFingerprintForBundleName:(id)a0; - (void).cxx_destruct; - (BOOL)_setupSignalHandling; - (unsigned long long)_pruneAppExperienceRecords; - (unsigned long long)_clearStaleNetDomainsRecords; - (BOOL)domainInfoProcessingForSnapshot:(id)a0 process:(id)a1 attributedName:(id)a2 remoteAddress:(id)a3 isWebBrowser:(BOOL)a4; - (void)_setupPrefsStoreObserving; - (void)_removeInfoFromWorkspaceForProcess:(id)a0; - (BOOL)_isLiveUsageInRollingWindow:(id)a0 forTime:(id)a1; - (id)_attemptConvertingPluginNameToContainingAppName:(id)a0; - (void)performAppTrackingActionWithOptions:(id)a0 userId:(unsigned int)a1 reply:(id /* block */)a2; - (int)_performQueryOnEntityFromInstantFlowCache:(id)a0 target:(id)a1 pred:(id)a2 found:(id *)a3; - (void)submitAppEndpointToDateSPICallMetric; - (unsigned long long)_clearUninstalledAppEntries; - (void)_handleSnapshot:(id)a0; - (BOOL)_setupLocalCache; - (id)_processFetchForName:(id)a0 bundle:(id)a1 shouldFillMiss:(BOOL)a2; - (void)_startMonitoringNetworkInterface:(int)a0 usingThreshold:(unsigned long long)a1; - (void)_endRNFPeriod; - (void)_changedForegroundState:(BOOL)a0 forBundle:(id)a1; - (void)usageManager:(id)a0 thresholdReachedOn:(unsigned int)a1; - (void)_newCoreMediaAssetDownloadEvent:(id)a0; - (BOOL)_isLiveFlowPerfinScope:(id)a0 forTime:(id)a1 andTag:(id)a2; - (void)updateEffectiveUserId:(id)a0; - (void)endpointMaintenanceOnClose:(id)a0; - (void)postCAEvent:(id)a0 withName:(id)a1; - (void)_reportThresholdedFlowCount:(unsigned long long)a0 threshold:(unsigned long long)a1; - (void)_performAppExperiencePeriodicTasksWithReply:(id /* block */)a0; - (void)_stopMonitoringNetworkInterface:(int)a0; - (BOOL)_handlesProcEntity:(id)a0; - (id)setOption:(id)a0; - (BOOL)_requiresUserValidationPredicateForEntity:(id)a0; - (id)_appEndpointsInProcess:(id)a0; - (void)_appsWithFlowsPassingTest:(id /* block */)a0 replyQueue:(id)a1 reply:(id /* block */)a2; - (void)clearAppEndpointsForUserWithID:(unsigned int)a0; - (void)_refreshFullDataUsage; - (void)_didReceiveSnapshot:(id)a0; - (unsigned long long)_aggregateSumDomainUsageAnalyticsOnField:(id)a0 forPredicate:(id)a1; - (void)_newExpectedTransfer:(id)a0; - (BOOL)_bundleBackgroundAudioCapable:(id)a0; - (void)clearAppDomainUsage:(id)a0; - (void)_liveUsagePackForProcess:(id)a0 subscriberTag:(id)a1; - (BOOL)isSnapshotFlowUUIDStored:(id)a0; - (id)_appExperienceForApp:(id)a0 forTime:(id)a1; - (unsigned long long)_submitAppEndpointRecordInfoAnalytics; - (unsigned long long)_clearStaleAppEndpointRecords; - (void)performQueryOnEntity:(id)a0 fetchRequestProperties:(id)a1 pred:(id)a2 sort:(id)a3 actions:(id)a4 service:(id)a5 connection:(id)a6 reply:(id /* block */)a7; - (void)_removeOldFlowRecords; - (void)_clearAppDomainAndEndpointTrackingForUserWithID:(unsigned int)a0; - (BOOL)_setupObjectAnalyticsWorkspaces:(id)a0; - (BOOL)_shouldSendStatisticsReport:(id)a0; - (void)_removeFromProcCache:(id)a0; - (void)submitNetworkDomainUsageToDateSPICallMetric; - (id)_trafficEnvelopeToTier:(double)a0; - (void)performAppEndpointTrackingPeriodicTasksComplete:(id)a0 error:(id)a1; - (void)performAppExperiencePeriodicTasksComplete:(id)a0 error:(id)a1; - (void)_checkForegroundStateForProcessWithUUID:(id)a0 replyQueue:(id)a1 reply:(id /* block */)a2; - (void)startObservingLaunchServices; - (void)_newFlowData:(id)a0; - (void)statsManager:(id)a0 didReceiveNWSnapshot:(id)a1; - (void)sendPowerLogReport:(id)a0 isStart:(BOOL)a1; - (BOOL)_shouldProcessDomainInfoForBundleID:(id)a0 implicit:(id *)a1 knownToLaunchServices:(BOOL *)a2 ignoredInLaunchServices:(BOOL *)a3 isWebBrowser:(BOOL *)a4; @end