@class NSLock, NSDate, NSDictionary, NSObject, PowerUIMLTwoStageModelPredictor, NSDistributedNotificationCenter, ACCConnectionInfo, NSString, PowerUIIntelligenceManager, PowerUITrialManager, _CDContextualKeyPath, NSXPCListener, PowerUIBatteryMitigationManager, NSArray, PowerUIBDCDataManager, NSNumber, PowerUIChargingController, PowerUIAnalyticsManager; @protocol OS_dispatch_queue, _DKKnowledgeSaving, OS_os_log, OS_xpc_object, OS_dispatch_source, _DKKnowledgeQuerying, _CDLocalContext; @interface PowerUISmartChargeManager : NSObject @property (retain, nonatomic) id<_CDLocalContext> context; @property (retain, nonatomic) id<_DKKnowledgeQuerying, _DKKnowledgeSaving> knowledgeStore; @property (retain, nonatomic) NSString *defaultsDomain; @property (copy, nonatomic) id /* block */ beforeBatteryCallback; @property (copy, nonatomic) id /* block */ afterBatteryCallback; @property (retain, nonatomic) _CDContextualKeyPath *checkpointKP; @property (retain, nonatomic) NSDistributedNotificationCenter *notificationCenter; @property (retain, nonatomic) NSObject *log; @property (retain, nonatomic) NSObject *mcmLog; @property (nonatomic) unsigned long long checkpoint; @property (nonatomic) unsigned int service; @property (nonatomic) unsigned long long currentState; @property (nonatomic) BOOL enabled; @property (retain) NSDate *disabledUntilDate; @property (nonatomic) BOOL temporarilyDisabled; @property (retain, nonatomic) NSDate *_fullChargeDeadline; @property (retain, nonatomic) NSDate *uiDeadline; @property (retain, nonatomic) NSDictionary *signalDeadline; @property (retain, nonatomic) NSDate *lastComputedSignalDeadline; @property (retain, nonatomic) NSObject *queue; @property (retain, nonatomic) NSObject *xpcCallbackQueue; @property (retain, nonatomic) NSObject *timer; @property (nonatomic) int powerlogToken; @property (retain, nonatomic) NSObject *bdcConnection; @property (nonatomic) BOOL _hasLegitimateUsage; @property (nonatomic) int lastBatteryLevel; @property (nonatomic) int lastPluginStatus; @property (nonatomic) int lastFullyCharged; @property (nonatomic) BOOL lastChargerWasWireless; @property (retain, nonatomic) NSDate *lastInterruptedTime; @property (retain, nonatomic) NSNumber *engagementsLastMonthBucket; @property (retain, nonatomic) NSNumber *lastReportedNumberOfPluginEvents; @property (retain, nonatomic) NSNumber *medianPluginLength; @property (nonatomic) double empiricalTimeToFullChargeDurationMinutes; @property (nonatomic) long long deadlineSignalID; @property (nonatomic) BOOL signalsIgnored; @property (nonatomic) unsigned long long predictorType; @property (nonatomic) long long previousDecisionMakerID; @property (retain, nonatomic) NSNumber *lastNonEngagementSignalID; @property (retain, nonatomic) NSDate *previousDecisionMakerDate; @property (retain, nonatomic) PowerUIMLTwoStageModelPredictor *modelTwoStagePredictor; @property (retain, nonatomic) PowerUIIntelligenceManager *intelligenceManager; @property (retain, nonatomic) NSArray *monitors; @property (retain) NSDictionary *powerLogStatus; @property (retain) NSDictionary *previousPowerLogStatus; @property (retain) NSDate *engagementTimeOverride; @property (retain) NSDate *fullChargeDeadlineOverride; @property (retain) NSDate *repeatEngagementOverrideEndDate; @property (nonatomic) BOOL overrideAllSignals; @property (nonatomic) BOOL encounteredTLCDuringTopOff; @property (nonatomic) BOOL isDesktopDevice; @property (retain, nonatomic) NSDate *lastDesktopModeChangeDate; @property (retain, nonatomic) PowerUIBatteryMitigationManager *batteryMitigationManager; @property (retain, nonatomic) PowerUIBDCDataManager *bdcDataManager; @property (retain, nonatomic) NSXPCListener *listener; @property (retain, nonatomic) PowerUITrialManager *trialManager; @property BOOL remoteOBCEngaged; @property (retain, nonatomic) PowerUIChargingController *chargingController; @property (retain, nonatomic) PowerUIAnalyticsManager *analyticsManager; @property unsigned long long mcmCurrentState; @property (retain, nonatomic) ACCConnectionInfo *connectionInfoProvider; @property (retain, nonatomic) NSObject *mcmFidgetMitigationTimer; @property BOOL isChargePackConnected; @property BOOL mcmForbidsCharging; @property (retain) NSString *currentChargePackNFCConnectionUUID; @property (retain) NSString *currentChargePackInductiveConnectionUUID; @property (nonatomic) unsigned long long numberOfTimesMCMNotificationWasDisplayed; @property (nonatomic) BOOL OBCReengagementEvaluated; @property (nonatomic) unsigned long long deocFeatureState; @property (retain, nonatomic) NSLock *deocCurrentStatusLock; @property (retain, nonatomic) NSDate *deocAllowInflowUntilDate; @property (nonatomic) BOOL manualChargeLimitEnabled; @property unsigned long long chargeLimitToken; @property unsigned char mclTargetSoC; @property (nonatomic) BOOL becameOBCEligible; @property (nonatomic) BOOL reachedTargetSoC; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; + (id)manager; - (void)disableCharging; - (id)readNumberForPreferenceKey:(id)a0; - (void)resetDeviceHasLegitimateUsage; - (void)setDate:(id)a0 forPreferenceKey:(id)a1; - (void)resetState; - (void)isMCLCurrentlyEnabledWithHandler:(id /* block */)a0; - (void)sendBDCData:(id)a0 withMessage:(id)a1; - (void)recordDEoCAnalytics:(id)a0; - (void)pluginTimelineAddEvent:(id)a0 atDate:(id)a1 withBatteryLevel:(unsigned long long)a2; - (unsigned long long)currentChargeLimit; - (void)listMonitorSignals; - (id)lastAcquiredLocation; - (unsigned long long)projectedBatteryLevelForDuration:(unsigned long long)a0 withInitialBatteryLevel:(unsigned long long)a1; - (BOOL)isCECSupported; - (id)timeStringFromDate:(id)a0; - (void)isOBCEngagedOrChargeLimitedWithHandler:(id /* block */)a0; - (void)monitor:(id)a0 maySuggestNewFullChargeDeadline:(id)a1; - (void)enableCharging; - (BOOL)deviceHasEnoughPluggedInTime; - (id)computeSignalDeadline; - (void)smartChargingUIStateWithHandler:(id /* block */)a0; - (void)cleanupPluginHistoryWithActivity:(id)a0; - (void)stopAllMonitoring; - (void)currentLeewayWithHandler:(id /* block */)a0; - (void)resetEngagementOverrideWithHandler:(id /* block */)a0; - (void)enableDEoC; - (void)reportMCMStatusWithBatteryLevel:(int)a0; - (void)handleInternalCarryPromptEvent; - (double)durationToFullChargeFromBatteryLevel:(unsigned long long)a0; - (BOOL)shouldOBCRoutineReengage; - (BOOL)isExternalConnected; - (double)durationToFullChargeFromBatteryLevel:(unsigned long long)a0 includeTLCDelay:(BOOL)a1; - (id)shouldDisableChargingAsOfDate:(id)a0 atBatteryLevel:(unsigned long long)a1 overrideAllSignals:(BOOL)a2 withPredictor:(id)a3 bypassSaved:(BOOL)a4; - (id)constructAnalyticsStatus; - (void)evaluateIfDEoCDevice; - (void)promptBDCToQueryCurrentState; - (void)isCECCurrentlyEnabledWithHandler:(id /* block */)a0; - (id)shouldDisableChargingAtBatteryLevel:(unsigned long long)a0 withPredictor:(id)a1; - (id)recentEngagements; - (double)totalTemporarilyDisabledHours:(id)a0 withEngagements:(id)a1 withPluginEnd:(id)a2; - (BOOL)isMCLSupported; - (id)genericOBCFailureNotification:(id)a0; - (void)recordAnalytics; - (double)periodicCheckDuration; - (void)engageManualChargeLimit; - (void)handleXPCActivityOnBoot; - (void)reportHistoricalEngagements; - (unsigned long long)currentDecisionMaker; - (void)dispatchAlarmAfter:(long long)a0 withName:(id)a1; - (void)monitorMayInvalidateDEoCCache:(id)a0; - (BOOL)deviceWasRecentlyConnectedToCharger; - (BOOL)isDEoCSupported; - (void)incomingBDCRequest:(id)a0; - (void)recomputeEmpiricalTimeToFullCharge; - (void)isCECSupportedWithHandler:(id /* block */)a0; - (void)client:(id)a0 setMCMState:(unsigned long long)a1 withHandler:(id /* block */)a2; - (id)desktopModeOverride; - (void)client:(id)a0 setState:(unsigned long long)a1 withHandler:(id /* block */)a2; - (void)legacy_isOBCEngagedWithHandler:(id /* block */)a0; - (void)forceDEoCReevaluation; - (BOOL)deviceHasOverriddenLegitimateUsageDetection; - (void)updateChargingTimeSaved; - (void)isDEoCCurrentlyEnabledWithHandler:(id /* block */)a0; - (id)readStringForPreferenceKey:(id)a0; - (BOOL)listener:(id)a0 shouldAcceptNewConnection:(id)a1; - (void)isMCMCurrentlyEnabledWithHandler:(id /* block */)a0; - (void)sendHistoricalDEoCEngagementEventToCA:(id)a0; - (id)defaultDateToDisableUntilGivenDate:(id)a0; - (int)numberOfDEoCEligibleChargeSessions; - (void)clearPluginTimeline; - (void)enterDevelopmentMode; - (void)getDEoCPredictionsWithHandler:(id /* block */)a0; - (void)isOBCSupportedWithHandler:(id /* block */)a0; - (void)setNumber:(id)a0 forPreferenceKey:(id)a1; - (void)_submitEngagementEventWithBatteryLevel:(id)a0 eventType:(int)a1; - (void)recallPeriodicCheck; - (void)setTemporarilyDisabled:(BOOL)a0 until:(id)a1; - (id)updateAnalyticsWithPluginMetrics:(id)a0 withBatteryLevel:(int)a1; - (void)evaluateIfDesktopDevice; - (void)fullChargeDeadlineWithHandler:(id /* block */)a0; - (void)postOBCNotificationWithTopOff:(BOOL)a0; - (id)uiDeadlineFromFullChargeDeadline:(id)a0 atDate:(id)a1; - (void)startAllMonitoring; - (void)client:(id)a0 setCECState:(unsigned long long)a1 withHandler:(id /* block */)a2; - (void)cacheCurrentDEoCBehaviorForced:(BOOL)a0; - (void)setString:(id)a0 forPreferenceKey:(id)a1; - (void)handleCallback; - (void)enableMCL; - (void)reportBatteryHealthMetrics; - (id)cloakingMetrics:(id)a0 withIdleCheckpoints:(id)a1 withIdleStart:(id)a2 withTopOffStart:(id)a3 withPluginEnd:(id)a4; - (void)engageFrom:(id)a0 until:(id)a1 repeatUntil:(id)a2 overrideAllSignals:(BOOL)a3 withHandler:(id /* block */)a4; - (BOOL)isMCMSupported; - (void)mcmEnableCharging; - (id)readAndRemoveRecentEngagements; - (BOOL)shouldDisableChargingOverrideModel:(unsigned long long)a0; - (id)stringFromInterval:(id)a0; - (BOOL)deviceWasRecentlyActive; - (void)client:(id)a0 setChargingStatus:(BOOL)a1 withHandler:(id /* block */)a2; - (id)mcmActiveNotificationRequest; - (id)stringFromState:(unsigned long long)a0; - (void)reportMonthlyData; - (double)totalTopOffDurationWithTopOffStartCheckpoints:(id)a0 withFullyChargedCheckpoints:(id)a1 withTopOffStart:(id)a2 withFullyChargedDate:(id)a3 withPluginEnd:(id)a4; - (void)handleNewBatteryLevelForMCL:(int)a0 whileExternalConnected:(BOOL)a1; - (void)handleCallback:(BOOL)a0; - (id)chargePrediction:(unsigned long long)a0 fullyCharged:(BOOL)a1 previousCheckpoint:(unsigned long long)a2 predictor:(unsigned long long)a3; - (unsigned long long)currentModeOfOperation; - (void)handleTopOffSupervisorEventInternal; - (void)startFidgetMitigationTimer; - (void)handleNewBatteryLevel:(int)a0 whileExternalConnected:(BOOL)a1 fullyCharged:(BOOL)a2; - (void).cxx_destruct; - (void)clearAllNotificationState; - (double)idleDurationWithEngagedCheckpoints:(id)a0 withTopOffStartCheckpoints:(id)a1 withDisabledCheckpoints:(id)a2 withTopOffStart:(id)a3 withIdleStart:(id)a4 withTemporarilyDisabledStart:(id)a5 withPluginEnd:(id)a6; - (void)accessoryConnectionDetached:(id)a0; - (void)addPowerLogEventForCheckpoint:(unsigned long long)a0 decisionSignalID:(id)a1 decisionDate:(id)a2; - (void)powerStateChangedCallback; - (void)cecFullChargeDeadlineWithHandler:(id /* block */)a0; - (void)accessoryConnectionAttached:(id)a0 type:(int)a1; - (void)cleanupOverrides; - (void)handleNotificationResponse:(id)a0; - (void)sendDEoCAnalyticsToCA:(id)a0; - (void)disableDEoC; - (void)updateNotificationSettings:(BOOL)a0; - (id)eligibleEngagementIntervalFromTimelineEvents:(id)a0; - (id)adjustedFullChargeDeadlineWithSignals:(id)a0 andBatteryMitigationAdvancement:(double)a1 withDesktopMode:(BOOL)a2 withFullChargeDeadline:(id)a3 withResult:(id)a4; - (void)evaluateIfDesktopDeviceForced:(BOOL)a0; - (void)client:(id)a0 setDEoCState:(unsigned long long)a1 withHandler:(id /* block */)a2; - (id)smartTopOffFailureNotificationAtBatteryLevel:(int)a0 withDate:(id)a1; - (void)setCheckpoint:(unsigned long long)a0 withSelector:(SEL)a1; - (void)statusWithHandler:(id /* block */)a0; - (id)fullChargeDeadline; - (void)batteryGaugingStatusWithHandler:(id /* block */)a0; - (id)ttrURLforGenericFailure:(id)a0; - (id)checkpointNameFromCheckpoint:(unsigned long long)a0; - (BOOL)deviceHasSeveralInteractions; - (void)reportAggDKeys:(id)a0; - (id)initWithDefaultsDomain:(id)a0 knowledgeStore:(id)a1 contextStore:(id)a2 beforeHandlingBatteryChangeCallback:(id /* block */)a3 afterHandlingBatteryChangeCallback:(id /* block */)a4; - (void)accessoryNFCConnectionCallback:(id)a0; - (void)powerLogStatusWithHandler:(id /* block */)a0; - (id)setFullChargeDeadline:(id)a0 withOCVMitigationWaitTime:(double)a1; - (unsigned long long)controllerStateFromCheckpoint:(unsigned long long)a0; - (BOOL)watchIsInternalAndCarrySwitchDisabled; - (void)forceModelUpdate; - (void)isSmartChargingCurrentlyEnabledWithHandler:(id /* block */)a0; - (void)resetDevelopmentMode; - (void)shouldMCMBeDisplayedWithHandler:(id /* block */)a0; - (id)stringFromDecisionMaker:(long long)a0 decisionDate:(id)a1; - (void)addEngagementFromDate:(id)a0 withDuration:(double)a1; - (id)readDateForPreferenceKey:(id)a0; - (void)isDEoCSupportedWithHandler:(id /* block */)a0; - (void)loadCheckpoint; - (void)requestPeriodicCheck; - (void)updateDecisionMakerID:(long long)a0 withCheckpoint:(unsigned long long)a1; - (id)constructDailyStats:(id)a0; - (void)clearChargeLimit; - (id)constructAnalyticsStatusFromEvents:(id)a0; - (void)disableMCL; - (void)isMCLSupportedWithHandler:(id /* block */)a0; - (void)loadDefaults; - (void)registerBDCXPC; - (unsigned long long)loadChargeLimitToken; - (void)handleTopOffSupervisorEvent; - (id)ttrURLforBatteryLevel:(int)a0 withDate:(id)a1; - (void)handleAlarmEvent:(id)a0; - (BOOL)isDeviceWithLegitimateUsage; - (id)dailyStatsFromLastReported:(id)a0; - (void)simulateCurrentOutputAsOfDate:(id)a0 overrideAllSignals:(BOOL)a1 withHandler:(id /* block */)a2; - (void)client:(id)a0 setMCLState:(BOOL)a1 withHandler:(id /* block */)a2; - (void)currentChargeLimitWithHandler:(id /* block */)a0; - (void)mcmDisableCharging; @end