@class NSDate, RTXPCActivityManager, RTWorkoutDistanceStore, RTPlatform, NSMutableDictionary, RTWorkoutMetricsManager, RTDefaultsManager, RTDistanceCalculator, RTLocationManager, RTMapServiceManager, RTHealthKitManager; @interface RTWorkoutRouteManager : RTService @property (nonatomic) BOOL isSchedulerTriggered; @property (retain, nonatomic) NSDate *lastTimeRouteLabelFailed; @property (nonatomic) long long distanceMetric; @property (retain, nonatomic) NSMutableDictionary *processWorkoutMetrics; @property (retain, nonatomic) NSMutableDictionary *workoutActivityTypeToclustersSet; @property (retain, nonatomic) RTDefaultsManager *defaultsManager; @property (retain, nonatomic) RTDistanceCalculator *distanceCalculator; @property (retain, nonatomic) RTHealthKitManager *healthKitManager; @property (retain, nonatomic) RTLocationManager *locationManager; @property (retain, nonatomic) RTMapServiceManager *mapServiceManager; @property (retain, nonatomic) RTPlatform *platform; @property (retain, nonatomic) RTXPCActivityManager *xpcActivityManager; @property (retain, nonatomic) RTWorkoutDistanceStore *workoutDistanceStore; @property (retain, nonatomic) RTWorkoutMetricsManager *workoutMetricsManager; + (id)curveOrientationTypeToString:(unsigned long long)a0; - (id)_getWorkoutRouteLabelForWorkout:(id)a0 error:(id *)a1; - (id)init; - (void)deleteWorkout:(id)a0 handler:(id /* block */)a1; - (BOOL)_updateMetricsForCurrentTime:(id)a0 minTimeKey:(id)a1 maxTimeKey:(id)a2 averageTimeKey:(id)a3 countKey:(id)a4 error:(id *)a5; - (id)initWithDefaultsManager:(id)a0 distanceCalculator:(id)a1 healthKitManager:(id)a2 locationManager:(id)a3 mapServiceManager:(id)a4 platform:(id)a5 workoutDistanceStore:(id)a6 workoutMetricsManager:(id)a7; - (BOOL)_isPreFilteredForWorkout:(id)a0 firstFewLocations:(struct CLLocationCoordinate2D { double x0; double x1; } *)a1 firstFewLocationsCount:(unsigned long long)a2 cachedDictionary:(id)a3 otherWorkout:(id)a4 firstFewOtherLocations:(struct CLLocationCoordinate2D { double x0; double x1; } *)a5 firstFewOtherLocationsCount:(unsigned long long)a6 cachedOtherDictionary:(id)a7 preFilteringResults:(id)a8 error:(id *)a9; - (BOOL)_syncClustersToHealthKit:(id)a0 error:(id *)a1; - (id)_getConstantValueForDistanceThresholdUsingDistanceMetric:(long long)a0 isDecimated:(BOOL)a1 workoutActivityType:(unsigned long long)a2 error:(id *)a3; - (BOOL)_isPreFilteredCurveOrientationBasedForWorkout:(id)a0 cachedDictionary:(id)a1 otherWorkout:(id)a2 cachedOtherDictionary:(id)a3 error:(id *)a4; - (BOOL)_isPreFilteredCentroidBasedForWorkout:(id)a0 cachedDictionary:(id)a1 otherWorkout:(id)a2 cachedOtherDictionary:(id)a3 preFilteringResults:(id)a4 error:(id *)a5; - (id)_sortWorkoutUUIDs:(id)a0 key:(id)a1 ascending:(BOOL)a2 error:(id *)a3; - (id)_clusterizeWorkoutsWithError:(id *)a0; - (id)_getRTLocationUsingRTPair:(id)a0; - (BOOL)_updateMetricsForCurrentTime:(id)a0 syncToHealthKitKey:(unsigned long long)a1 error:(id *)a2; - (id)_mapWorkoutsToUUIDs:(id)a0 error:(id *)a1; - (BOOL)_initProcessWorkoutMetricsForClusteringWithError:(id *)a0; - (id)_sortWorkouts:(id)a0 key:(id)a1 ascending:(BOOL)a2 error:(id *)a3; - (struct CLLocationCoordinate2D { double x0; double x1; } *)_getCoordinatesFromRTPairs:(id)a0; - (BOOL)_initProcessWorkoutMetricsForDistanceMatrixWithError:(id *)a0; - (BOOL)_isPreFilteredLastLocationBasedForWorkout:(id)a0 cachedDictionary:(id)a1 otherWorkout:(id)a2 cachedOtherDictionary:(id)a3 preFilteringResults:(id)a4 error:(id *)a5; - (BOOL)_refreshWorkoutsCache:(id)a0 workoutUUIDs:(id)a1 startingIndex:(unsigned long long)a2 error:(id *)a3; - (id)_getRemoteWorkoutClustersForWorkoutUUIDs:(id)a0 error:(id *)a1; - (double)similarityDistanceUsingPreFilteringResults:(id)a0 error:(id *)a1; - (double)_getConstantValueForString:(id)a0 isDecimated:(BOOL)a1 workoutActivityType:(unsigned long long)a2 error:(id *)a3; - (BOOL)_updateMetricsForCurrentTime:(id)a0 distanceMatrixKey:(unsigned long long)a1 error:(id *)a2; - (BOOL)_clearDistanceMatrixWithError:(id *)a0; - (BOOL)_saveToHealthKitClustersForCreation:(id)a0 remoteClustersForUpdationNewWorkouts:(id)a1 remoteClustersForUpdationWorkoutsToRemove:(id)a2 remoteClustersForDeletion:(id)a3 error:(id *)a4; - (void)processWorkoutsClearClusters:(BOOL)a0 clearExistingDistanceMatrix:(BOOL)a1 buildDistanceMatrix:(BOOL)a2 syncClustersToHealhtKit:(BOOL)a3 syncClustersToWatch:(BOOL)a4 filteringDistanceThreshold:(double)a5 topNWorkouts:(unsigned long long)a6 isSchedulerTriggered:(BOOL)a7 handler:(id /* block */)a8; - (void)_logClusters:(id)a0 className:(id)a1 selectorName:(id)a2; - (id)_getRelevanceLocationWithError:(id *)a0; - (double)_relevanceScoreForWorkoutUUIDs:(id)a0 representativeWorkout:(id)a1 latestWorkoutAcrossAllWorkouts:(id)a2 countOfAllWorkouts:(unsigned long long)a3 currentLocation:(id)a4 error:(id *)a5; - (id)_getWorkoutRouteSnapshotForWorkout:(id)a0 error:(id *)a1; - (id)_bestWorkoutFromWorkouts:(id)a0 error:(id *)a1; - (void)_processWorkoutsClearClusters:(BOOL)a0 clearExistingDistanceMatrix:(BOOL)a1 buildDistanceMatrix:(BOOL)a2 syncClustersToHealhtKit:(BOOL)a3 syncClustersToWatch:(BOOL)a4 filteringDistanceThreshold:(double)a5 topNWorkouts:(unsigned long long)a6 isSchedulerTriggered:(BOOL)a7 handler:(id /* block */)a8; - (void)_stepCallerWithName:(id)a0 counter:(long long)a1 totalCount:(long long)a2; - (id)_getActivityTypeToWorkoutUUIDsMapFilteredUsingDistanceThreshold:(double)a0 topN:(unsigned long long)a1 error:(id *)a2; - (BOOL)_shouldDecimateWorkout:(id)a0; - (BOOL)_syncWithRemoteClustersUsingLocalClusters:(id)a0 distanceMetric:(long long)a1 outLocalClustersForCreation:(id)a2 outRemoteClustersForUpdationNewWorkouts:(id)a3 outRemoteClustersForUpdationWorkoutsToRemove:(id)a4 outRemoteClustersForDeletion:(id)a5 error:(id *)a6; - (id)_getWorkoutFromWorkouts:(id)a0 UUID:(id)a1 error:(id *)a2; - (BOOL)_initProcessWorkoutMetricsForSyncToHealthKitWithError:(id *)a0; - (BOOL)_initProcessWorkoutMetricsForSyncFromHealthKitWithError:(id *)a0; - (BOOL)_processWorkoutsUsingActivityTypeToWorkoutUUIDsMap:(id)a0 error:(id *)a1; - (id)_getWorkoutUUIDsForCluster:(id)a0 error:(id *)a1; - (id)_lastWorkoutFromWorkouts:(id)a0 error:(id *)a1; - (void)displayWorkoutDistanceRecordsWithHandler:(id /* block */)a0; - (id)_getRTPairUsingCLLocationCoordinate2D:(struct CLLocationCoordinate2D { double x0; double x1; } *)a0; - (BOOL)_validateWorkout:(id)a0 otherWorkout:(id)a1 error:(id *)a2; - (BOOL)_initProcessWorkoutMetricsForSyncToWatchKitWithError:(id *)a0; - (void)_deleteWorkout:(id)a0 handler:(id /* block */)a1; - (void).cxx_destruct; - (BOOL)_syncClustersToWatchWithLimit:(unsigned long long)a0 error:(id *)a1; - (BOOL)_isBoundingBoxDimensionsWithinTrackThresholdsSubPrefilter:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a0; - (BOOL)_computeAndSaveDistanceMatrixForWorkoutUUIDs:(id)a0 distanceMetric:(long long)a1 error:(id *)a2; - (BOOL)_isPreFilteredRunningTrackBasedForWorkout:(id)a0 cachedDictionary:(id)a1 error:(id *)a2; - (BOOL)_deleteAllClustersFromHealthKitError:(id *)a0; - (void)_getLocationsForWorkout:(id)a0 decimationLevel:(unsigned long long)a1 limit:(long long)a2 handler:(id /* block */)a3; - (BOOL)_preComputeCacheForWorkout:(id)a0 locations:(struct CLLocationCoordinate2D { double x0; double x1; } *)a1 locationsCount:(unsigned long long)a2 decimatedLocations:(struct CLLocationCoordinate2D { double x0; double x1; } *)a3 decimatedLocationsCount:(unsigned long long)a4 cachedDictionary:(id)a5 error:(id *)a6; - (BOOL)_updateWorkoutDistanceRecordsWithObjectIDs:(id)a0 isVisited:(BOOL)a1 error:(id *)a2; - (void)processNewlyAddedWorkout:(id)a0 handler:(id /* block */)a1; - (BOOL)_isPreFilteredLocationCountBasedForWorkout:(id)a0 cachedDictionary:(id)a1 otherWorkout:(id)a2 cachedOtherDictionary:(id)a3 preFilteringResults:(id)a4 error:(id *)a5; - (BOOL)_isEligibleForCurveOrientation:(struct CLLocationCoordinate2D { double x0; double x1; } *)a0 lastLocation:(struct CLLocationCoordinate2D { double x0; double x1; } *)a1 error:(id *)a2; - (id)_readClustersFromHealthKitWithError:(id *)a0; - (id)_retrieveUUIDsToPruneWithError:(id *)a0; - (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })_getCGRectFromCoordinates:(struct CLLocationCoordinate2D { double x0; double x1; } *)a0 verticesCount:(unsigned long long)a1 outError:(id *)a2; - (double)_getMaxDistanceThresholdForMetric:(long long)a0 error:(id *)a1; - (id)_sortWorkoutUUIDsByDistance:(id)a0 error:(id *)a1; - (void)pruneDistanceMatrixWithHandler:(id /* block */)a0; - (id)_colorFromHexString:(id)a0; - (id)_getRTPairsFromCoordinates:(struct CLLocationCoordinate2D { double x0; double x1; } *)a0 count:(unsigned long long)a1; - (BOOL)_isPreFilteredForWorkout:(id)a0 otherWorkout:(id)a1 preFilteringResults:(id)a2 error:(id *)a3; - (BOOL)_initProcessWorkoutMetrics:(id *)a0; - (void)updateRelevanceScoresWithHandler:(id /* block */)a0; - (void)_updateRelevanceScoresWithHandler:(id /* block */)a0; - (unsigned long long)_getCurveOrientationTypeForLocations:(struct CLLocationCoordinate2D { double x0; double x1; } *)a0 locationsCount:(unsigned long long)a1 error:(id *)a2; - (id)_getRTLocationUsingCLLocationCoordinate2D:(struct CLLocationCoordinate2D { double x0; double x1; } *)a0; - (void)_pruneDistanceMatrixWithHandler:(id /* block */)a0; - (BOOL)_clearInMemoryClusters; - (void)_processNewlyAddedWorkout:(id)a0 handler:(id /* block */)a1; - (BOOL)_isBoundingBoxAreaLessThanThresholdSubPrefilter:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a0 verticesCount:(unsigned long long)a1 stimulationDate:(id)a2 error:(id *)a3; - (id)_latestWorkoutUUIDAcrossWorkouts:(id)a0; - (id)_paceFromWorkout:(id)a0 error:(id *)a1; - (BOOL)_isPreFilteredIOUBasedForWorkout:(id)a0 cachedDictionary:(id)a1 otherWorkout:(id)a2 cachedOtherDictionary:(id)a3 preFilteringResults:(id)a4 error:(id *)a5; - (BOOL)_areWorkoutsSimilarBetweenClusterSet1:(id)a0 clusterSet2:(id)a1 workoutActivityType:(long long)a2 maxDistanceThreshold:(double)a3 error:(id *)a4; - (BOOL)_storeWorkoutDistances:(id)a0 error:(id *)a1; @end