@class GEORouteMatch, VKRunningCurve, NSUUID, _delegate, VKPuckAnimatorLocationProjector, CLLocation, VKTimedAnimation; @protocol VKPuckAnimatorTarget, VKPuckAnimatorDelegate; @interface VKPuckAnimator : NSObject { VKTimedAnimation *_animation; VKRunningCurve *_curve; VKPuckAnimatorLocationProjector *_locationProjector; double _vehicleHeading; long long _pausedCount; BOOL _suspended; BOOL _hasElevation; BOOL _resetCourse; struct { double latitude; double longitude; } _lastProjectedCoordinate; const struct RouteOverlayCache { void /* function */ **x0; id x1; } *_routeOverlayCache; struct linear_map, std::equal_to, std::allocator>>, std::vector>>> { struct vector>, std::allocator>>> { void *__begin_; void *__end_; struct __compressed_pair> *, std::allocator>>> { void *__value_; } __end_cap_; } _backing; } _locationUpdateSubscriptions; struct Monitorable> { struct { struct { unsigned int identifier; void *metadata; } key; } _key; double _value; _delegate *_listener; struct function { struct __value_func { struct type { unsigned char __lx[24]; } __buf_; void *__f_; } __f_; } x0; } _puckUpdatePointDeltaForAnimation; struct Monitorable> { struct { struct { unsigned int identifier; void *metadata; } key; } _key; double _value; _delegate *_listener; struct function { struct __value_func { struct type { unsigned char __lx[24]; } __buf_; void *__f_; } __f_; } x0; } _puckUpdateDistanceDeltaThreshold; struct optional { union { char __null_state_; struct LocationUpdate { CLLocation *location; GEORouteMatch *routeMatch; NSUUID *locationUpdateUUID; } __val_; } ; BOOL __engaged_; } _lastLocationUpdate; } @property (readonly, nonatomic) struct optional, geo::Mercator3>> { union { char x0; struct pair, geo::Mercator3> { struct Mercator3 { double x0[3]; } x0; struct Mercator3 { double x0[3]; } x1; } x1; } x0; BOOL x1; } currentSnappedSegment; @property (nonatomic) struct Matrix { double _e[3]; } lastProjectedPosition; @property (nonatomic) BOOL alwaysUseGoodRouteMatch; @property (retain, nonatomic) id target; @property (weak, nonatomic) id delegate; @property (nonatomic) double tracePlaybackSpeedMultiplier; @property (nonatomic) unsigned long long behavior; - (void)pause; - (id)detailedDescription; - (void)resetCourse; - (void)_step; - (void)dealloc; - (void)_queueLocationUpdate:(id)a0 routeMatch:(id)a1 locationUpdateUUID:(id)a2; - (void)updateLocation:(id)a0 routeMatch:(id)a1; - (void)start; - (unsigned long long)subscribeToLocationUpdates:(struct function { struct __value_func { struct type { unsigned char x0[24]; } x0; void *x1; } x0; })a0; - (id).cxx_construct; - (BOOL)hasElevation; - (void)stop; - (void)resume; - (void)_publishLocationUpdate:(id)a0 routeMatch:(id)a1 uuid:(id)a2; - (void).cxx_destruct; - (void)updateLocation:(id)a0 routeMatch:(id)a1 locationUpdateUUID:(id)a2; - (id)initWithCallbackQueue:(id)a0; - (void)unsubscribeFromLocationUpdates:(unsigned long long)a0; - (void)setRouteOverlayCache:(const struct RouteOverlayCache { void /* function */ **x0; id x1; } *)a0; - (void)processLocationUpdates; - (void)updatedPosition:(const void *)a0; - (void)_updateLocation:(id)a0 routeMatch:(id)a1 locationUpdateUUID:(id)a2; - (void)updateVehicleHeading:(double)a0; @end