@class NSUUID, RTDistanceCalculator, NSString, HKHealthStore, RTPlatform, _HKWorkoutObserver, HKMedicalIDStore, RTContactsManager, HKWorkoutClusterStore, HKObserverQuery, RTDefaultsManager; @interface RTHealthKitManager : RTService <_HKWorkoutObserverDelegate, RTDiagnosticProvider> @property (retain, nonatomic) NSUUID *currentWorkoutSessionIdentifier; @property (retain, nonatomic) RTContactsManager *contactsManager; @property (retain, nonatomic) _HKWorkoutObserver *workoutObserver; @property (retain, nonatomic) HKHealthStore *healthStore; @property (retain, nonatomic) HKMedicalIDStore *medicalIDStore; @property (copy, nonatomic) id /* block */ errorFunction; @property (retain, nonatomic) HKWorkoutClusterStore *workoutClusterStore; @property (retain, nonatomic) HKObserverQuery *theNewWorkoutsForRaceRouteQuery; @property (retain, nonatomic) HKObserverQuery *theNewWorkoutsForSMSuggestionsQuery; @property (nonatomic) BOOL receivedInitialNewWorkoutsQueryResponse; @property (retain, nonatomic) RTDefaultsManager *defaultsManager; @property (retain, nonatomic) RTPlatform *platform; @property (retain, nonatomic) RTDistanceCalculator *distanceCalculator; @property (nonatomic) BOOL listenForNewWorkoutsForRaceRouteEnabled; @property (nonatomic) BOOL listenForNewWorkoutsForSMSuggestionsEnabled; @property (nonatomic) unsigned long long workoutMinDistance; @property (nonatomic) unsigned long long workoutMinDistanceCycling; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; + (id)stringFromTimeInterval:(double)a0; + (unsigned long long)HKHealthKitWorkoutActivityTypeFromRTWorkoutActivityType:(long long)a0; + (long long)RTHealthKitWorkoutActivityTypeFromHKWorkoutActivityType:(unsigned long long)a0; + (BOOL)isPermittedWorkoutActivityType:(unsigned long long)a0; + (BOOL)isFakeRunningUpdate:(id)a0; + (id)stringFromDate:(id)a0 dateFormat:(id)a1; + (id)stringFromHealthKitDecimationLevel:(unsigned long long)a0; + (id)stringFromRTHealthKitWorkoutActivityType:(long long)a0; + (id)stringFromWorkoutActivityType:(unsigned long long)a0; - (void)internalRemoveObserver:(id)a0 name:(id)a1; - (void)internalAddObserver:(id)a0 name:(id)a1; - (void)_shutdownWithHandler:(id /* block */)a0; - (void)_setup; - (void)sendDiagnosticsToURL:(id)a0 options:(id)a1 handler:(id /* block */)a2; - (BOOL)_generateDiagnosticFilesAtURL:(id)a0 error:(id *)a1; - (void).cxx_destruct; - (void)didUpdateWorkoutSnapshot:(id)a0; - (void)_shiftLocations:(struct CLLocationCoordinate2D { double x0; double x1; } *)a0 locationsCount:(unsigned long long)a1; - (id)_convertHealthKitDataToJSONCompatibleType:(id)a0 stats:(id)a1; - (void)_createNewWorkoutClusterStore; - (BOOL)_createWorkoutClusterWithWorkoutUUIDs:(id)a0 bestWorkoutUUID:(id)a1 lastWorkoutUUID:(id)a2 relevanceValue:(double)a3 workoutRouteSnapshot:(id)a4 workoutRouteLabel:(id)a5 error:(id *)a6; - (void)_decimateLocations:(struct CLLocationCoordinate2D { double x0; double x1; } *)a0 locationsCount:(unsigned long long)a1 totalDuration:(double)a2 decimationLevel:(unsigned long long)a3 handler:(id /* block */)a4; - (BOOL)_deleteWorkoutCluster:(id)a0 error:(id *)a1; - (BOOL)_doesWorkoutHaveSubsetRoute:(id)a0; - (BOOL)_dumpHealthKitMetaData:(id)a0 dir:(id)a1 stats:(id)a2 error:(id *)a3; - (BOOL)_dumpWorkoutClusterAtDir:(id)a0 stats:(id)a1 error:(id *)a2; - (BOOL)_dumpWorkoutLocationsUsingData:(id)a0 dir:(id)a1 stats:(id)a2 error:(id *)a3; - (void)_fetchEmergencyContactsWithHandler:(id /* block */)a0; - (void)_fetchWorkoutClusterContainingWorkoutUUID:(id)a0 handler:(id /* block */)a1; - (void)_fetchWorkoutClusterUUIDsContainingWorkoutUUIDs:(id)a0 handler:(id /* block */)a1; - (void)_fetchWorkoutClustersWithHandler:(id /* block */)a0; - (void)_fetchWorkoutRouteLocationsUsingWorkoutRoute:(id)a0 batchSize:(unsigned long long)a1 fetchOnlyFirstFew:(BOOL)a2 handler:(id /* block */)a3; - (void)_fetchWorkoutRouteSnapshotForClusterUUID:(id)a0 handler:(id /* block */)a1; - (void)_fetchWorkoutUUIDsForClusterUUID:(id)a0 handler:(id /* block */)a1; - (void)_generateRaceRouteClustersWithLimit:(unsigned long long)a0 handler:(id /* block */)a1; - (unsigned long long)_getDecimationSkipAheadFactorForDuration:(double)a0; - (double)_getDurationForWorkout:(id)a0; - (id)_getEndDateForWorkout:(id)a0; - (id)_getHealthKitDataWithStartDate:(id)a0 limit:(long long)a1 includeLocations:(BOOL)a2 includeOdometerReadings:(BOOL)a3 odometerSamplingIntervalComponents:(id)a4 error:(id *)a5; - (id)_getLatestWorkoutDateIntervalWithStartDate:(id)a0 error:(id *)a1; - (id)_getLatestWorkoutWithStartDate:(id)a0 nearLocation:(id)a1 distanceThreshold:(double)a2 onlySourcedFromFitnessApp:(BOOL)a3 workoutTypes:(id)a4 error:(id *)a5; - (id)_getOdometerReadingUsingWorkout:(id)a0 samplingIntervalComponents:(id)a1 error:(id *)a2; - (id)_getPredicatesFromRTWorkoutDefaultTypes:(id)a0; - (id)_getRTContactsFromHKEmergencyContacts:(id)a0 error:(id *)a1; - (id)_getRTWorkoutDefaultTypesForRaceRoute; - (id)_getRTWorkoutDefaultTypesForSMSuggestions; - (void)_getRouteLocationsUsingWorkout:(id)a0 decimationLevel:(unsigned long long)a1 limit:(unsigned long long)a2 shift:(BOOL)a3 handler:(id /* block */)a4; - (id)_getStartDateForWorkout:(id)a0; - (id)_getTotalDistanceForWorkout:(id)a0; - (id)_getWorkoutAllTypes; - (id)_getWorkoutDefaultEndDateForRaceRoute; - (id)_getWorkoutDefaultStartDateForRaceRoute; - (id)_getWorkoutRouteUsingWorkout:(id)a0 error:(id *)a1; - (long long)_getWorkoutsCountWithStartDate:(id)a0 nearLocation:(id)a1 distanceThreshold:(double)a2 onlySourcedFromFitnessApp:(BOOL)a3 error:(id *)a4; - (id)_getWorkoutsWithStartDate:(id)a0 limit:(long long)a1 sortDescriptors:(id)a2 nearLocation:(id)a3 distanceThreshold:(double)a4 onlySourcedFromFitnessApp:(BOOL)a5 workoutTypes:(id)a6 error:(id *)a7; - (id)_getWorkoutsWithUUIDs:(id)a0 error:(id *)a1; - (BOOL)_isWorkoutFiltered:(id)a0 currentLocation:(id)a1 distanceThreshold:(double)a2 error:(id *)a3; - (void)_listenForNewWorkoutsForRaceRoute; - (void)_onNewWorkoutForRaceRouteNotification; - (void)_onNewWorkoutForSMSuggestionsNotification; - (BOOL)_saveEntireHealthKitDataToURL:(id)a0 outAbsoluteURL:(id *)a1 includeWorkoutData:(BOOL)a2 includeLocations:(BOOL)a3 includeOdometerReadings:(BOOL)a4 odometerSamplingIntervalComponents:(id)a5 includeClustersData:(BOOL)a6 error:(id *)a7; - (void)_updateHealthKitStartDatesUsingData:(id)a0 currentStartDate:(id *)a1 nextStartDate:(id *)a2; - (BOOL)_updateWorkoutClusterWithUUID:(id)a0 newBestWorkoutUUID:(id)a1 newLastWorkoutUUID:(id)a2 newRelevance:(id)a3 newWorkoutAssociations:(id)a4 workoutAssociationsToRemove:(id)a5 error:(id *)a6; - (BOOL)_updateWorkoutClusterWithUUID:(id)a0 workoutRouteLabel:(id)a1 error:(id *)a2; - (BOOL)_updateWorkoutClusterWithUUID:(id)a0 workoutRouteSnapshot:(id)a1 error:(id *)a2; - (BOOL)_writeLocations:(id)a0 csvFileURL:(id)a1 error:(id *)a2; - (BOOL)_writeToFileAtURL:(id)a0 contentString:(id)a1 error:(id *)a2; - (BOOL)_writeToJSONAtURL:(id)a0 data:(id)a1 error:(id *)a2; - (void)createNewWorkoutClusterStore; - (BOOL)createWorkoutClusterWithWorkoutUUIDs:(id)a0 bestWorkoutUUID:(id)a1 lastWorkoutUUID:(id)a2 relevanceValue:(double)a3 workoutRouteSnapshot:(id)a4 workoutRouteLabel:(id)a5 error:(id *)a6; - (BOOL)deleteWorkoutCluster:(id)a0 error:(id *)a1; - (void)fetchEmergencyContactsWithHandler:(id /* block */)a0; - (void)fetchRouteLocationsUsingWorkout:(id)a0 decimationLevel:(unsigned long long)a1 limit:(unsigned long long)a2 shift:(BOOL)a3 handler:(id /* block */)a4; - (void)fetchWorkoutClusterContainingWorkoutUUID:(id)a0 handler:(id /* block */)a1; - (void)fetchWorkoutClusterUUIDsContainingWorkoutUUIDs:(id)a0 handler:(id /* block */)a1; - (void)fetchWorkoutClustersWithHandler:(id /* block */)a0; - (void)fetchWorkoutRouteLocationsUsingWorkoutRoute:(id)a0 batchSize:(unsigned long long)a1 fetchOnlyFirstFew:(BOOL)a2 handler:(id /* block */)a3; - (void)fetchWorkoutRouteSnapshotForClusterUUID:(id)a0 handler:(id /* block */)a1; - (void)fetchWorkoutUUIDsForClusterUUID:(id)a0 handler:(id /* block */)a1; - (void)generateRaceRouteClustersWithLimit:(unsigned long long)a0 handler:(id /* block */)a1; - (id)getHealthKitDataWithStartDate:(id)a0 limit:(long long)a1 includeLocations:(BOOL)a2 includeOdometerReadings:(BOOL)a3 odometerSamplingIntervalComponents:(id)a4 error:(id *)a5; - (id)getLatestWorkoutDateIntervalWithStartDate:(id)a0 error:(id *)a1; - (id)getLatestWorkoutWithStartDate:(id)a0 nearLocation:(id)a1 distanceThreshold:(double)a2 onlySourcedFromFitnessApp:(BOOL)a3 workoutTypes:(id)a4 error:(id *)a5; - (id)getOdometerReadingUsingWorkout:(id)a0 samplingIntervalComponents:(id)a1 error:(id *)a2; - (id)getWorkoutDefaultSortDescriptors; - (id)getWorkoutRouteUsingWorkout:(id)a0 error:(id *)a1; - (long long)getWorkoutsCountWithStartDate:(id)a0 nearLocation:(id)a1 distanceThreshold:(double)a2 onlySourcedFromFitnessApp:(BOOL)a3 error:(id *)a4; - (id)getWorkoutsWithStartDate:(id)a0 limit:(long long)a1 sortDescriptors:(id)a2 nearLocation:(id)a3 distanceThreshold:(double)a4 onlySourcedFromFitnessApp:(BOOL)a5 workoutTypes:(id)a6 error:(id *)a7; - (id)getWorkoutsWithUUIDs:(id)a0 error:(id *)a1; - (id)initWithContactsManager:(id)a0 defaultsManager:(id)a1 distanceCalculator:(id)a2 healthKitStore:(id)a3 platform:(id)a4 workoutClusterStore:(id)a5; - (id)initWithContactsManager:(id)a0 defaultsManager:(id)a1 distanceCalculator:(id)a2 platform:(id)a3; - (BOOL)isWorkoutActivityType:(unsigned long long)a0 inTypes:(id)a1; - (void)onNewWorkoutForRaceRouteNotification; - (void)onNewWorkoutForSMSuggestionsNotification; - (BOOL)saveEntireHealthKitDataToURL:(id)a0 outAbsoluteURL:(id *)a1 includeWorkoutData:(BOOL)a2 includeLocations:(BOOL)a3 includeOdometerReadings:(BOOL)a4 odometerSamplingIntervalComponents:(id)a5 includeClustersData:(BOOL)a6 error:(id *)a7; - (BOOL)updateWorkoutClusterWithUUID:(id)a0 newBestWorkoutUUID:(id)a1 newLastWorkoutUUID:(id)a2 newRelevance:(id)a3 newWorkoutAssociations:(id)a4 workoutAssociationsToRemove:(id)a5 error:(id *)a6; - (BOOL)updateWorkoutClusterWithUUID:(id)a0 workoutRouteLabel:(id)a1 error:(id *)a2; - (BOOL)updateWorkoutClusterWithUUID:(id)a0 workoutRouteSnapshot:(id)a1 error:(id *)a2; @end