// This file is generated and will be overwritten automatically. #import @class MBNNRoadObject; @class MBNNRoadObjectEdgeLocation; @protocol MBNNRoadObjectsStoreObserver; /** NN users shouldn't create instances of `RoadObjectsStore`, use `Navigator.roadObjectsStore` method instead */ NS_SWIFT_NAME(RoadObjectsStore) __attribute__((visibility ("default"))) @interface MBNNRoadObjectsStore : 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; /** * Returns mapping `road object id -> RoadObjectEdgeLocation` for all road objects * which are lying on the edge with given id. * @param edgeId */ - (nonnull NSDictionary *)getForEdgeId:(uint64_t)edgeId __attribute((ns_returns_retained)); /** * Returns road object by `id` * @param road object id */ - (nullable MBNNRoadObject *)getRoadObjectForId:(nonnull NSString *)id __attribute((ns_returns_retained)); /** * Adds road object to be tracked in electronic horizon. In case if object with such id already exists updates it. * @param id unique id of object * @param roadObject road object * NB: road objects obtained from route alerts cannot be added via this API */ - (void)addCustomRoadObjectForRoadObject:(nonnull MBNNRoadObject *)roadObject; /** * Removes road object(i.e. stops tracking it in electronic horizon). * Does nothing if object with such id is not found. Observer is notified only if the object existed in the store. * @param id of road object */ - (void)removeCustomRoadObjectForId:(nonnull NSString *)id; /** * Removes a bunch of custom road objects(i.e. stops tracking them in electronic horizon). * Calls `onRoadObjectRemoved` callback only for the ids that have existed in the store. * Does nothing for the ids that haven't existed there. */ - (void)removeCustomRoadObjectsForIds:(nonnull NSArray *)ids; /** * Removes all road object(i.e. stops tracking them in electronic horizon) * @param id of road object */ - (void)removeAllCustomRoadObjects; /** * Returns list of road object ids which are (partially) belong to `edgeIds`. * @param edgeIds list of edge ids */ - (nonnull NSArray *)getRoadObjectIdsByEdgeIdsForEdgeIds:(nonnull NSArray *)edgeIds __attribute((ns_returns_retained)); /** Checks whether observers are added. */ - (BOOL)hasObservers; /** Adds observer for objects changes. */ - (void)addObserverForObserver:(nonnull id)observer; /** Removes observer for objects changes. */ - (void)removeObserverForObserver:(nonnull id)observer; @end