// This file is generated and will be overwritten automatically. #import #import @class MBNNActiveGuidanceInfo; @class MBNNBannerInstruction; @class MBNNFixLocation; @class MBNNMapMatcherOutput; @class MBNNRoad; @class MBNNSpeedLimit; @class MBNNUpcomingRouteAlert; @class MBNNVoiceInstruction; NS_SWIFT_NAME(NavigationStatus) __attribute__((visibility ("default"))) @interface MBNNNavigationStatus : NSObject // This class provides custom init which should be called - (nonnull instancetype)init NS_UNAVAILABLE; // This class provides custom init which should be called + (nonnull instancetype)new NS_UNAVAILABLE; - (nonnull instancetype)initWithRouteState:(MBNNRouteState)routeState locatedAlternativeRouteId:(nullable NSString *)locatedAlternativeRouteId stale:(BOOL)stale location:(nonnull MBNNFixLocation *)location routeIndex:(uint32_t)routeIndex legIndex:(uint32_t)legIndex stepIndex:(uint32_t)stepIndex isFallback:(BOOL)isFallback inTunnel:(BOOL)inTunnel predicted:(NSTimeInterval)predicted geometryIndex:(uint32_t)geometryIndex shapeIndex:(uint32_t)shapeIndex intersectionIndex:(uint32_t)intersectionIndex roads:(nonnull NSArray *)roads voiceInstruction:(nullable MBNNVoiceInstruction *)voiceInstruction bannerInstruction:(nullable MBNNBannerInstruction *)bannerInstruction speedLimit:(nullable MBNNSpeedLimit *)speedLimit keyPoints:(nonnull NSArray *)keyPoints mapMatcherOutput:(nonnull MBNNMapMatcherOutput *)mapMatcherOutput offRoadProba:(float)offRoadProba activeGuidanceInfo:(nullable MBNNActiveGuidanceInfo *)activeGuidanceInfo upcomingRouteAlerts:(nonnull NSArray *)upcomingRouteAlerts nextWaypointIndex:(uint32_t)nextWaypointIndex layer:(nullable NSNumber *)layer; @property (nonatomic, readonly) MBNNRouteState routeState; /** * Id of alternative route that we matched. This field calculated in OffRoute `routeState`. * `nullopt` for non-OffRoute `routeState` or if no one alternative route matches. */ @property (nonatomic, readonly, nullable, copy) NSString *locatedAlternativeRouteId; /** * We didn't have location updates for too much time. * This can be handled as "grey puck" or "No GPS" on client side. */ @property (nonatomic, readonly, getter=isStale) BOOL stale; /** enhanced location */ @property (nonatomic, readonly, nonnull) MBNNFixLocation *location; /** index of route */ @property (nonatomic, readonly) uint32_t routeIndex; /** index of current leg in route bounds */ @property (nonatomic, readonly) uint32_t legIndex; /** index of current step in leg bounds */ @property (nonatomic, readonly) uint32_t stepIndex; /** * `true` if status was produced in "fallback" mode, i.e. navigation tiles were not used * (e.g. they are not available), usually it means worse user experience */ @property (nonatomic, readonly, getter=isIsFallback) BOOL isFallback; /** is current location belongs to tunnel */ @property (nonatomic, readonly, getter=isInTunnel) BOOL inTunnel; /** "prediction" time, i.e. duration between this status and the latest location update */ @property (nonatomic, readonly) NSTimeInterval predicted; /** index in full rotue geometry */ @property (nonatomic, readonly) uint32_t geometryIndex; /** index in leg shape */ @property (nonatomic, readonly) uint32_t shapeIndex; /** index in step bounds(i.e. on each new step we start indexing from 0) */ @property (nonatomic, readonly) uint32_t intersectionIndex; /** * List of known names and shields for the current road. * Semantically corresponds to `BannerSection.components`. * * To retrieve legacy data: * - roadName - join `text` field of `roads` from beginning until `roads` end or `text == "/"` * - imageBaseUrl - use the first non-empty `imageBaseUrl` in `roads` * - shieldName - get the last path component of `imageBaseUrl` */ @property (nonatomic, readonly, nonnull, copy) NSArray *roads; /** voice instruction to be presented */ @property (nonatomic, readonly, nullable) MBNNVoiceInstruction *voiceInstruction; /** banner instruction to be presented */ @property (nonatomic, readonly, nullable) MBNNBannerInstruction *bannerInstruction; /** * current speed limit * `nullopt` for unknown speed limit * For more accurate speed limit, depending on time / weather / etc conditions use GraphAccessor.getAdasAttributes(EdgeId) */ @property (nonatomic, readonly, nullable) MBNNSpeedLimit *speedLimit; /** * Contains key points(for example corners) of route shape passed by pack between `getStatus` calls or from last notification of observer. * For now can be used in route mode only, always contain at least one point besides the very first `getStatus` call. * Only `coordinate`, ``bearing`, `monotonicTimestampNanoseconds` and `time` fields are filled. Last point is always the same as `location`. */ @property (nonatomic, readonly, nonnull, copy) NSArray *keyPoints; /** Output of map matcher on this status. */ @property (nonatomic, readonly, nonnull) MBNNMapMatcherOutput *mapMatcherOutput; /** * Probability of vehicle to be off-road: * 1.0 - vehicle is definitely off-road, 0.0 - vehicle is definitely on-road */ @property (nonatomic, readonly) float offRoadProba; /** Will be empty if we are in free-drive now(i.e. routeState == invalid) */ @property (nonatomic, readonly, nullable) MBNNActiveGuidanceInfo *activeGuidanceInfo; /** Array of upcoming route alerts, doesn't contain route alerts that were already passed by user */ @property (nonatomic, readonly, nonnull, copy) NSArray *upcomingRouteAlerts; /** Index of next waypoint on the route in the initial list of waypoints. If no waypoints - 0 */ @property (nonatomic, readonly) uint32_t nextWaypointIndex; /** current Z-level, can be used to build route from proper level of road */ @property (nonatomic, readonly, nullable) NSNumber *layer; @end