@class NSString, SDMAdviceChange, NSSet, FlowScrutinizer, NSMutableDictionary, WiFiViabilityMonitor, NSMutableSet, FlowOracle, FlowRefreshScheduler, NSObject; @protocol OS_dispatch_queue, CellThroughputAdviserDelegate; @interface CellThroughputAdviser : NSObject { BOOL _pollInProgress; double _currentPollingRate; long long _pollingCancelToken; FlowRefreshScheduler *_refreshScheduler; unsigned int _reportedAdvice; unsigned long long _reportedCause; unsigned long long _initiallyReportedCause; unsigned int _wifiViability; BOOL _traceVerbose; BOOL _avUseCasesSupported; BOOL _interfaceThresholdsResponsive; double _lastStateUpdate; double _lastActivityStatsUpdate; double _sampleStartTime; double _lastHighInterfaceUse; double _lastTransferSizeUsageTimestamp; double _lastAssetDownloadUsageTimestamp; double _lastBackgroundTransferNotifiedTimestamp; double _lastBackgroundTransferUsageTimestamp; double _lastHighInterfaceUseDampeningInterval; double _lastHighTransferSizeDampeningInterval; double _lastPromotedTransferSizeDampeningInterval; double _totalActiveTime; double _totalDisabledTime; double _totalQuiesceTime; double _totalInferredSleepTime; double _inactivityTimeoutForQuiesce; double _lastAudioVideoReport; double _minTimeIntervalBetweenAVThroughputReport; unsigned long long _numPolls; double _lastPollTime; double _pollIntervalHistogramResetTime; unsigned int _pollIntervalHistogram[36]; double _minTransferSizeThroughputForUpgrade; double _minDisplayOnTransferSizeThroughputForUpgrade; double _minTransferSizeThroughputForContinuedUpgradeSub6; double _minTransferSizeThroughputForContinuedUpgradeMmWave; double _minTransferSizeThroughputForContinuedUpgradeRequest; double _minAssetDownloadThroughputForUpgrade; double _minAssetDownloadThroughputForContinuedUpgradeRequest; double _minAssetDownloadThroughputForContinuedUpgradeSub6; double _minAssetDownloadThroughputForContinuedUpgradeMmWave; double _maxAssetDownloadDurationBelowThreshold; double _minBackgroundTransferThroughputForUpgrade; double _minBackgroundTransferThroughputForContinuedUpgradeRequest; double _minBackgroundTransferThroughputForContinuedUpgradeSub6; double _minBackgroundTransferThroughputForContinuedUpgradeMmWave; double _maxBackgroundTransferDurationBelowThreshold; NSMutableSet *_backgroundTransfers; unsigned int _numLowerTransferThresholdFlowsForUpperThreshold; unsigned int _numDisplayOnLowerTransferThresholdFlowsForUpperThreshold; unsigned int _adviceForSustainedHighInterfaceThroughput; unsigned int _adviceForModestAVFlows; unsigned int _adviceForModestAVFlowsLowerCertainty; unsigned int _adviceForBusyAVFlows; unsigned int _adviceForBusyAVFlowsLowerCertainty; unsigned int _stateLogLevel; unsigned int _stateLogLevelForVerbose; unsigned int _dispatchAfterSeqno; unsigned int _powerLogSeqno; unsigned int _CAMetricSeqno; double _CAtimeOfLastReport; BOOL _quiesced; WiFiViabilityMonitor *_wifiViabilityMonitor; NSMutableDictionary *_pendingPowerLogReport; SDMAdviceChange *_pendingCASDMAdviceChangeReport; NSSet *_previousSampleContributors; NSSet *_CApreviousAdviceInitiators; BOOL _CApreviousIsScreenDark; BOOL _CApreviousIsScreenLocked; NSMutableSet *_pendingDelayDetails; } @property (retain, nonatomic) FlowOracle *flowOracle; @property (retain, nonatomic) FlowScrutinizer *flowScrutinizer; @property (nonatomic) BOOL enabled; @property (nonatomic) BOOL isScreenDark; @property (nonatomic) BOOL isScreenLocked; @property (nonatomic) char nrFrequencyBand; @property (nonatomic) unsigned int adminAdviceOverride; @property (nonatomic) unsigned int targetAdviceLevel; @property (nonatomic) double propertyChangeTimestamp; @property (retain, nonatomic) NSObject *queue; @property (weak, nonatomic) id delegate; @property (readonly, nonatomic) double exploreExploitLearningRatioForHighTransferSize; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; + (id)sharedInstance; - (void)restoreDefaults; - (id)init; - (int)configureInstance:(id)a0; - (int)didPollFlowsCallbackOrder; - (void)postAWDMetric:(id)a0 withIdentifier:(unsigned int)a1; - (void)observeValueForKeyPath:(id)a0 ofObject:(id)a1 change:(id)a2 context:(void *)a3; - (void).cxx_destruct; - (id)_getState:(BOOL)a0; - (id)getStateAt:(double)a0; - (void)postCAEvent:(id)a0 withName:(id)a1; - (void)didPollFlowsAt:(double)a0 periodic:(BOOL)a1; - (void)_refreshAdvice:(int)a0; - (void)_updateSDMAdviceMetricState:(id)a0 at:(double)a1; - (void)performActivityStatsTimekeeping; - (BOOL)_CAActionForNewAdvice:(unsigned int)a0 cause:(unsigned long long)a1 at:(double)a2; - (void)quiesce; - (void)setPollingRate:(double)a0; - (void)_assessActivityStateForQuiesce; - (unsigned long long)_backgroundTransferActiveCauseForCurrentRadioState; - (unsigned long long)_backgroundTransferHysteresisCauseForCurrentRadioState; - (id)_buildSDMAdviceMetricForNewAdvice:(unsigned int)a0 newCause:(unsigned long long)a1 newAdviceInitiators:(id)a2 at:(double)a3; - (id)_causeInitiators:(unsigned long long)a0; - (void)_checkPendingTimers:(double)a0; - (void)_configureFlowOracleThresholds; - (unsigned long long)_coreMediaAssetDownloadActiveCauseForCurrentRadioState; - (unsigned long long)_coreMediaAssetDownloadHysteresisCauseForCurrentRadioState; - (void)_dumpArray:(id)a0; - (void)_finishPowerLogCollection; - (id)_getCombinedStateAt:(double)a0; - (void)_initiatorArray:(id)a0 addOriginNameWithForegroundPrefix:(id)a1; - (id)_initiatorNameSetFromCauseArray:(id)a0; - (unsigned long long)_largeTransferContinuesCauseForCurrentRadioState; - (unsigned long long)_largeTransferFinalHysteresisCauseForCurrentRadioState; - (unsigned long long)_largeTransferHysteresisCauseForCurrentRadioState; - (double)_minRequiredBackgroundTransferThroughputForCurrentRadioState; - (double)_minRequiredCoreMediaAssetDownloadThroughputForCurrentRadioState; - (double)_minRequiredLargeTransferThroughputForCurrentRadioState; - (BOOL)_powerLogActionForNewAdvice:(unsigned int)a0 cause:(unsigned long long)a1 at:(double)a2; - (void)_setPreviousSDMParticipantsOfAdviceChangeMetric:(id)a0; - (void)_setPriorThroughputOfAdviceChangeMetric:(id)a0 at:(double)a1; - (void)_setSubsequentThroughputOfAdviceChangeMetric:(id)a0; - (void)_startPowerLogCollectionFor:(unsigned int)a0; - (BOOL)checkBackgroundTransferCauses:(unsigned long long *)a0; - (BOOL)checkCoreMediaAssetDownloadCauses:(unsigned long long *)a0; - (BOOL)checkLibnetcoreLargeTransferCauses:(unsigned long long *)a0 andOptOuts:(unsigned long long *)a1; - (long long)configItemToLongLong:(id)a0; - (id)currentAWDSymptomsCellularSDMPollingStatistics; - (id)currentAWDSymptomsCellularSDMTimeStatistics; - (unsigned int)determineAdvice:(unsigned long long *)a0; - (unsigned int)determineNonCoreMediaRxThroughput:(double *)a0 txThroughput:(double *)a1; - (void)dumpStateAt:(double)a0 verbose:(BOOL)a1; - (BOOL)encodingRepresentsInt:(id)a0; - (BOOL)encodingRepresentsNSString:(id)a0; - (BOOL)encodingRepresentsNSTimeInterval:(id)a0; - (BOOL)encodingRepresentsNSUUID:(id)a0; - (BOOL)encodingRepresentsUint64:(id)a0; - (int)encodingToInt:(id)a0; - (id)encodingToNSString:(id)a0; - (double)encodingToNSTimeInterval:(id)a0; - (id)encodingToNSUUID:(id)a0; - (unsigned long long)encodingToUint64:(id)a0; - (id)jsonForAWDReport:(id)a0; - (id)jsonForClassification:(id)a0; - (id)jsonForInt:(int)a0; - (id)jsonForNSString:(id)a0; - (id)jsonForSnapshot:(id)a0; - (id)jsonForTimeInterval:(double)a0 indent:(int)a1; - (id)jsonForUUID:(id)a0; - (id)jsonForUint64:(unsigned long long)a0; - (void)noteAdviceForMetrics:(unsigned int)a0 cause:(unsigned long long)a1; - (void)notePollIntervalForMetrics:(double)a0; - (void)noteSizeableBackgroundTransferEventName:(id)a0 event:(unsigned long long)a1 downloadSizeBytes:(unsigned long long)a2 uploadSizeBytes:(unsigned long long)a3 at:(double)a4; - (void)performAction:(id)a0 verbose:(BOOL)a1; - (void)reportPeriodicAWDStatistics; - (void)sendSDMAdviceChangeMetric:(id)a0; - (void)setTimerCallbackWithSimulatedDelay:(double)a0 context:(id)a1; - (void)unquiesce; - (void)willPollFlows; @end