#import <UIKit/UIKit.h>
#import <AMapNaviKit/AMapNaviKit.h>
#import <React/RCTComponent.h>

@interface AMapNaviView: AMapNaviDriveView

@property (nonatomic, copy) RCTBubblingEventBlock onInitNaviFailure;
@property (nonatomic, copy) RCTBubblingEventBlock onInitNaviSuccess;
@property (nonatomic, copy) RCTBubblingEventBlock onStartNavi;
@property (nonatomic, copy) RCTBubblingEventBlock onLocationChange;
@property (nonatomic, copy) RCTBubblingEventBlock onGetNavigationText;
@property (nonatomic, copy) RCTBubblingEventBlock onEndEmulatorNavi;
@property (nonatomic, copy) RCTBubblingEventBlock onCalculateRouteFailure;
@property (nonatomic, copy) RCTBubblingEventBlock onArrivedWayPoint;
@property (nonatomic, copy) RCTBubblingEventBlock onGpsOpenStatus;
@property (nonatomic, copy) RCTBubblingEventBlock onCalculateRouteSuccess;
@property (nonatomic, copy) RCTBubblingEventBlock onPlayRing;
@property (nonatomic, copy) RCTBubblingEventBlock onGpsSignaChanged;
@property (nonatomic, copy) RCTBubblingEventBlock onNaviSettingChanged;
@property (nonatomic, copy) RCTBubblingEventBlock onNaviCancel;
@property (nonatomic, copy) RCTBubblingEventBlock onNaviComplete;

@property (nonatomic, copy) RCTBubblingEventBlock onNaviViewLoaded;
@property (nonatomic, copy) RCTBubblingEventBlock onNaviBackClick;
@property (nonatomic, copy) RCTBubblingEventBlock onScanViewButtonClick;
@property (nonatomic, copy) RCTBubblingEventBlock onNaviMapModeChanged;
@property (nonatomic, copy) RCTBubblingEventBlock onNaviMapViewModeChanged;
@property (nonatomic, copy) RCTBubblingEventBlock onNaviMapViewTrackingModeChanged;
@property (nonatomic, copy) RCTBubblingEventBlock onLockMap;

@end

@interface AMapRideNaviView : AMapNaviRideView

@property (nonatomic, copy) RCTBubblingEventBlock onInitNaviFailure;
@property (nonatomic, copy) RCTBubblingEventBlock onInitNaviSuccess;
@property (nonatomic, copy) RCTBubblingEventBlock onStartNavi;
@property (nonatomic, copy) RCTBubblingEventBlock onLocationChange;
@property (nonatomic, copy) RCTBubblingEventBlock onGetNavigationText;
@property (nonatomic, copy) RCTBubblingEventBlock onEndEmulatorNavi;
@property (nonatomic, copy) RCTBubblingEventBlock onCalculateRouteFailure;
@property (nonatomic, copy) RCTBubblingEventBlock onGpsOpenStatus;
@property (nonatomic, copy) RCTBubblingEventBlock onCalculateRouteSuccess;
@property (nonatomic, copy) RCTBubblingEventBlock onGpsSignaChanged;
@property (nonatomic, copy) RCTBubblingEventBlock onNaviSettingChanged;
@property (nonatomic, copy) RCTBubblingEventBlock onNaviCancel;
@property (nonatomic, copy) RCTBubblingEventBlock onNaviComplete;

@property (nonatomic, copy) RCTBubblingEventBlock onNaviViewLoaded;
@property (nonatomic, copy) RCTBubblingEventBlock onNaviBackClick;
@property (nonatomic, copy) RCTBubblingEventBlock onScanViewButtonClick;
@property (nonatomic, copy) RCTBubblingEventBlock onNaviMapModeChanged;
@property (nonatomic, copy) RCTBubblingEventBlock onNaviMapViewModeChanged;
@property (nonatomic, copy) RCTBubblingEventBlock onNaviMapViewTrackingModeChanged;
@property (nonatomic, copy) RCTBubblingEventBlock onLockMap;

@end

@interface AMapWalkNaviView : AMapNaviWalkView

@property (nonatomic, copy) RCTBubblingEventBlock onInitNaviFailure;
@property (nonatomic, copy) RCTBubblingEventBlock onInitNaviSuccess;
@property (nonatomic, copy) RCTBubblingEventBlock onStartNavi;
@property (nonatomic, copy) RCTBubblingEventBlock onLocationChange;
@property (nonatomic, copy) RCTBubblingEventBlock onGetNavigationText;
@property (nonatomic, copy) RCTBubblingEventBlock onEndEmulatorNavi;
@property (nonatomic, copy) RCTBubblingEventBlock onCalculateRouteFailure;
@property (nonatomic, copy) RCTBubblingEventBlock onGpsOpenStatus;
@property (nonatomic, copy) RCTBubblingEventBlock onCalculateRouteSuccess;
@property (nonatomic, copy) RCTBubblingEventBlock onGpsSignaChanged;
@property (nonatomic, copy) RCTBubblingEventBlock onNaviSettingChanged;
@property (nonatomic, copy) RCTBubblingEventBlock onNaviCancel;
@property (nonatomic, copy) RCTBubblingEventBlock onNaviComplete;

@property (nonatomic, copy) RCTBubblingEventBlock onNaviViewLoaded;
@property (nonatomic, copy) RCTBubblingEventBlock onNaviBackClick;
@property (nonatomic, copy) RCTBubblingEventBlock onScanViewButtonClick;
@property (nonatomic, copy) RCTBubblingEventBlock onNaviMapModeChanged;
@property (nonatomic, copy) RCTBubblingEventBlock onNaviMapViewModeChanged;
@property (nonatomic, copy) RCTBubblingEventBlock onNaviMapViewTrackingModeChanged;
@property (nonatomic, copy) RCTBubblingEventBlock onLockMap;

@end
