#ifndef DgisMapView_h
#define DgisMapView_h

#import <React/RCTViewComponentView.h>
#import <UIKit/UIKit.h>

@class DGisMapViewBridge;

NS_ASSUME_NONNULL_BEGIN

@interface DgisMapView : RCTViewComponentView

/// Per-map Swift bridge (camera, markers, callbacks). Nil until map is created.
@property (nonatomic, readonly, nullable) DGisMapViewBridge *mapBridge;
/// The underlying DGis map UIView. Nil until map is created.
@property (nonatomic, readonly, nullable) UIView *mapView;

// Map properties
@property (nonatomic, assign) double centerLatitude;
@property (nonatomic, assign) double centerLongitude;
@property (nonatomic, assign) double centerZoom;

// Map control methods
- (void)setCenter:(double)latitude longitude:(double)longitude zoom:(double)zoom animated:(BOOL)animated;
- (void)fitAllMarkersWithDuration:(double)duration;
- (void)setZoom:(double)zoom duration:(double)duration;
- (void)zoomIn;
- (void)zoomOut;

// Child management
- (void)addMarkerView:(UIView *)markerView;
- (void)removeMarkerViewAtIndex:(NSInteger)index;

@end

NS_ASSUME_NONNULL_END

#endif /* DgisMapView_h */
