@class NSDate, NSString, NSSet, NSMutableDictionary, PLIOReportStats, PPSMetricMonitorService, NSMutableSet, NSObject, PLProcessMetadata; @protocol OS_dispatch_queue, OS_dispatch_source; @interface PLPowerMetricMonitorService : PLService <PPSMetricMonitorServiceDelegate> @property (retain) PPSMetricMonitorService *metricMonitorService; @property (nonatomic) long long updateMode; @property (nonatomic) double updateInterval; @property BOOL isMonitoring; @property BOOL isCollectingMetrics; @property (retain, nonatomic) NSMutableDictionary *metrics; @property (retain, nonatomic) NSMutableDictionary *cachedMetrics; @property (retain, nonatomic) NSMutableDictionary *metricsAtLastQueryTime; @property (retain, nonatomic) PLProcessMetadata *trackedProcess; @property (retain, nonatomic) NSMutableSet *systemMetricEntryKeys; @property (retain, nonatomic) NSMutableSet *processSpecificMetricEntryKeys; @property (retain, nonatomic) NSMutableSet *batteryGaugeConflictingSystemMetricEntryKeys; @property (retain, nonatomic) NSMutableSet *batteryGaugeConflictingProcessSpecificEntryKeys; @property (retain, nonatomic) NSMutableSet *entryKeysToCollect; @property (retain, nonatomic) NSMutableSet *entryKeysRequested; @property (retain, nonatomic) NSMutableSet *entryKeysCollected; @property (retain, nonatomic) NSMutableDictionary *entryKeyToEntryInfo; @property (retain) NSObject<OS_dispatch_queue> *monitorQueue; @property (retain, nonatomic) NSObject<OS_dispatch_source> *metricCollectionRepeatingTimer; @property (retain, nonatomic) NSObject<OS_dispatch_source> *metricCollectionTimeoutTimer; @property (copy, nonatomic) id /* block */ metricCollectionCompletionHandler; @property (retain, nonatomic) PLIOReportStats *energyModelStats; @property (retain, nonatomic) PLIOReportStats *pmpCountersStats; @property (retain, nonatomic) NSDate *currQueryTime; @property (retain, nonatomic) NSDate *lastQueryTime; @property (nonatomic) int lastQueryCount; @property (nonatomic) int currQueryCount; @property (retain, nonatomic) id costElement; @property (readonly, nonatomic) NSSet *energyScoringEntities; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; + (void)load; + (BOOL)deviceUsesPMPCounters; - (id)init; - (void)initOperatorDependancies; - (void).cxx_destruct; - (void)_cleanUp; - (void)_parseGasGaugeMetricsFromEntry:(id)a0; - (void)_parseLocationMetricsFromEntry:(id)a0; - (void)_agentDidUpdateWithEntryKey:(id)a0; - (void)_batteryGaugeServiceDidBecomeActive; - (void)_batteryGaugeServiceDidBecomeInactive; - (BOOL)_canCacheMetrics; - (void)_cancelMetricCollectionTimeoutTimer; - (void)_cancelMetricCollectionTimer; - (void)_collectMetricsWithTimeout:(double)a0 completionHandler:(id /* block */)a1; - (double)_computeDisplayCostWithAvgRed:(int)a0 avgGreen:(int)a1 avgBlue:(int)a2; - (void)_computeEnergyScoreForProcess; - (double)_computeGPUCostWithGPUSec:(id)a0; - (double)_computeLocationCostWithWifiCost:(int)a0 gpsCost:(int)a1 cellCost:(int)a2 skyhookCost:(int)a3; - (double)_computeNetworkingCostWithWifiIn:(int)a0 wifiOut:(int)a1 cellIn:(int)a2 cellOut:(int)a3; - (id)_extractCurrentUsageMetrics; - (void)_metricCollectionTimedOut; - (void)_parseApplicationMetricsFromEntry:(id)a0; - (void)_parseCoalitionMetricsFromEntry:(id)a0; - (void)_parseDisplayAPLMetricsFromEntry:(id)a0 cacheMetrics:(BOOL)a1; - (void)_parseDisplayBacklightPowerMetricsFromEntry:(id)a0; - (void)_parseEnergyModelOrPMPMetricsFromSample:(id)a0 withSampleDuration:(double)a1 sourceChannel:(long long)a2; - (void)_parseProcessMonitorMetricsFromEntry:(id)a0; - (void)_parseProcessNetworkMetricsFromEntry:(id)a0; - (void)_parseSMCInstantMetricsFromEntry:(id)a0; - (void)_parseWifiPowerMetricsFromEntry:(id)a0; - (BOOL)_pidIsValid:(int)a0; - (void)_postAgentNotificationWithProcess:(id)a0; - (void)_registerNotificationWithAgent:(Class)a0 type:(id)a1 tableName:(id)a2 isProcessSpecific:(BOOL)a3 canRequestWhileBatteryGaugeIsRunning:(BOOL)a4 minRequestInterval:(double)a5 block:(id /* block */)a6; - (void)_sendMetrics; - (void)_setLastActiveStartTimeAndLastSuspendTimeWithPid:(int)a0 appState:(int)a1 currentTime:(id)a2; - (void)_setUpAgents; - (void)_setUpIOReporting; - (void)_startMetricCollectionTimeoutTimerWithTimeout:(double)a0 block:(id /* block */)a1; - (void)_startMetricCollectionTimerWithInterval:(double)a0 block:(id /* block */)a1; - (void)_updateIOReportStats; - (void)_updateMetricsWithThermalState; - (void)addMonitoredProcessWithPID:(int)a0 error:(id *)a1; - (void)allClientsDidDisconnect; - (double)currentUpdateInterval; - (long long)currentUpdateMode; - (void)finishMonitoringAndSendMetrics; - (BOOL)isMonitoringMetrics; - (int)pidForProcessName:(id)a0; - (void)removeMonitoredProcessWithPID:(int)a0; - (void)setUpForMonitoring; - (void)startMonitoringWithConfigurationMode:(long long)a0 updateInterval:(double)a1; @end