// ignore_for_file: non_constant_identifier_names, camel_case_types, missing_return, unused_import, unused_local_variable, dead_code, unnecessary_cast
//////////////////////////////////////////////////////////
// GENERATED BY FLUTTIFY. DO NOT EDIT IT.
//////////////////////////////////////////////////////////

import 'dart:typed_data';

import 'package:amap_map_fluttify/src/ios/ios.export.g.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/services.dart';

import 'package:foundation_fluttify/foundation_fluttify.dart';
import 'package:core_location_fluttify/core_location_fluttify.dart';
import 'package:amap_core_fluttify/amap_core_fluttify.dart';
import 'package:amap_search_fluttify/amap_search_fluttify.dart';
import 'package:amap_location_fluttify/amap_location_fluttify.dart';

extension Overlay on MAMapView {
  //region getters
  Future<List<dynamic>?> get_overlays() async {
    final __result__ = await kAmapMapFluttifyChannel.invokeMethod("MAMapView::get_overlays", {'__this__': this});
    return (__result__ as List?)?.cast<dynamic>();
  }
  
  //endregion

  //region setters
  
  //endregion

  //region methods
  
  Future<List<dynamic>?> overlaysInLevel(MAOverlayLevel? level) async {
    // print log
    if (fluttifyLogEnabled) {
      debugPrint('fluttify-dart: MAMapView@$refId::overlaysInLevel([])');
    }
  
    // invoke native method
    final __result__ = await kAmapMapFluttifyChannel.invokeMethod('MAMapView::overlaysInLevel', {"level": level?.toValue(), "__this__": this});
  
  
    // handle native call
  
  
    return (__result__ as List?)?.cast<dynamic>();
  }
  
  
  Future<void> addOverlay(MAOverlay? overlay) async {
    // print log
    if (fluttifyLogEnabled) {
      debugPrint('fluttify-dart: MAMapView@$refId::addOverlay([])');
    }
  
    // invoke native method
    final __result__ = await kAmapMapFluttifyChannel.invokeMethod('MAMapView::addOverlay', {"overlay": overlay, "__this__": this});
  
  
    // handle native call
  
  
    return __result__;
  }
  
  
  Future<void> addOverlays(List<dynamic>? overlays) async {
    // print log
    if (fluttifyLogEnabled) {
      debugPrint('fluttify-dart: MAMapView@$refId::addOverlays([])');
    }
  
    // invoke native method
    final __result__ = await kAmapMapFluttifyChannel.invokeMethod('MAMapView::addOverlays', {"overlays": overlays, "__this__": this});
  
  
    // handle native call
  
  
    return __result__;
  }
  
  
  Future<void> addOverlay_level(MAOverlay? overlay, MAOverlayLevel? level) async {
    // print log
    if (fluttifyLogEnabled) {
      debugPrint('fluttify-dart: MAMapView@$refId::addOverlay([])');
    }
  
    // invoke native method
    final __result__ = await kAmapMapFluttifyChannel.invokeMethod('MAMapView::addOverlay_level', {"overlay": overlay, "level": level?.toValue(), "__this__": this});
  
  
    // handle native call
  
  
    return __result__;
  }
  
  
  Future<void> addOverlays_level(List<dynamic>? overlays, MAOverlayLevel? level) async {
    // print log
    if (fluttifyLogEnabled) {
      debugPrint('fluttify-dart: MAMapView@$refId::addOverlays([])');
    }
  
    // invoke native method
    final __result__ = await kAmapMapFluttifyChannel.invokeMethod('MAMapView::addOverlays_level', {"overlays": overlays, "level": level?.toValue(), "__this__": this});
  
  
    // handle native call
  
  
    return __result__;
  }
  
  
  Future<void> removeOverlay(MAOverlay? overlay) async {
    // print log
    if (fluttifyLogEnabled) {
      debugPrint('fluttify-dart: MAMapView@$refId::removeOverlay([])');
    }
  
    // invoke native method
    final __result__ = await kAmapMapFluttifyChannel.invokeMethod('MAMapView::removeOverlay', {"overlay": overlay, "__this__": this});
  
  
    // handle native call
  
  
    return __result__;
  }
  
  
  Future<void> removeOverlays(List<dynamic>? overlays) async {
    // print log
    if (fluttifyLogEnabled) {
      debugPrint('fluttify-dart: MAMapView@$refId::removeOverlays([])');
    }
  
    // invoke native method
    final __result__ = await kAmapMapFluttifyChannel.invokeMethod('MAMapView::removeOverlays', {"overlays": overlays, "__this__": this});
  
  
    // handle native call
  
  
    return __result__;
  }
  
  
  Future<void> insertOverlay_atIndex_level(MAOverlay? overlay, int? index, MAOverlayLevel? level) async {
    // print log
    if (fluttifyLogEnabled) {
      debugPrint('fluttify-dart: MAMapView@$refId::insertOverlay([\'index\':$index])');
    }
  
    // invoke native method
    final __result__ = await kAmapMapFluttifyChannel.invokeMethod('MAMapView::insertOverlay_atIndex_level', {"overlay": overlay, "index": index, "level": level?.toValue(), "__this__": this});
  
  
    // handle native call
  
  
    return __result__;
  }
  
  
  Future<void> insertOverlay_aboveOverlay(MAOverlay? overlay, MAOverlay? sibling) async {
    // print log
    if (fluttifyLogEnabled) {
      debugPrint('fluttify-dart: MAMapView@$refId::insertOverlay([])');
    }
  
    // invoke native method
    final __result__ = await kAmapMapFluttifyChannel.invokeMethod('MAMapView::insertOverlay_aboveOverlay', {"overlay": overlay, "sibling": sibling, "__this__": this});
  
  
    // handle native call
  
  
    return __result__;
  }
  
  
  Future<void> insertOverlay_belowOverlay(MAOverlay? overlay, MAOverlay? sibling) async {
    // print log
    if (fluttifyLogEnabled) {
      debugPrint('fluttify-dart: MAMapView@$refId::insertOverlay([])');
    }
  
    // invoke native method
    final __result__ = await kAmapMapFluttifyChannel.invokeMethod('MAMapView::insertOverlay_belowOverlay', {"overlay": overlay, "sibling": sibling, "__this__": this});
  
  
    // handle native call
  
  
    return __result__;
  }
  
  
  Future<void> insertOverlay_atIndex(MAOverlay? overlay, int? index) async {
    // print log
    if (fluttifyLogEnabled) {
      debugPrint('fluttify-dart: MAMapView@$refId::insertOverlay([\'index\':$index])');
    }
  
    // invoke native method
    final __result__ = await kAmapMapFluttifyChannel.invokeMethod('MAMapView::insertOverlay_atIndex', {"overlay": overlay, "index": index, "__this__": this});
  
  
    // handle native call
  
  
    return __result__;
  }
  
  
  Future<void> exchangeOverlayAtIndex_withOverlayAtIndex(int? index1, int? index2) async {
    // print log
    if (fluttifyLogEnabled) {
      debugPrint('fluttify-dart: MAMapView@$refId::exchangeOverlayAtIndex([\'index1\':$index1, \'index2\':$index2])');
    }
  
    // invoke native method
    final __result__ = await kAmapMapFluttifyChannel.invokeMethod('MAMapView::exchangeOverlayAtIndex_withOverlayAtIndex', {"index1": index1, "index2": index2, "__this__": this});
  
  
    // handle native call
  
  
    return __result__;
  }
  
  
  Future<void> exchangeOverlayAtIndex_withOverlayAtIndex_atLevel(int? index1, int? index2, MAOverlayLevel? level) async {
    // print log
    if (fluttifyLogEnabled) {
      debugPrint('fluttify-dart: MAMapView@$refId::exchangeOverlayAtIndex([\'index1\':$index1, \'index2\':$index2])');
    }
  
    // invoke native method
    final __result__ = await kAmapMapFluttifyChannel.invokeMethod('MAMapView::exchangeOverlayAtIndex_withOverlayAtIndex_atLevel', {"index1": index1, "index2": index2, "level": level?.toValue(), "__this__": this});
  
  
    // handle native call
  
  
    return __result__;
  }
  
  
  Future<void> exchangeOverlay_withOverlay(MAOverlay? overlay1, MAOverlay? overlay2) async {
    // print log
    if (fluttifyLogEnabled) {
      debugPrint('fluttify-dart: MAMapView@$refId::exchangeOverlay([])');
    }
  
    // invoke native method
    final __result__ = await kAmapMapFluttifyChannel.invokeMethod('MAMapView::exchangeOverlay_withOverlay', {"overlay1": overlay1, "overlay2": overlay2, "__this__": this});
  
  
    // handle native call
  
  
    return __result__;
  }
  
  
  Future<MAOverlayRenderer?> rendererForOverlay(MAOverlay? overlay) async {
    // print log
    if (fluttifyLogEnabled) {
      debugPrint('fluttify-dart: MAMapView@$refId::rendererForOverlay([])');
    }
  
    // invoke native method
    final __result__ = await kAmapMapFluttifyChannel.invokeMethod('MAMapView::rendererForOverlay', {"overlay": overlay, "__this__": this});
  
  
    // handle native call
  
  
    return AmapMapFluttifyIOSAs<MAOverlayRenderer>(__result__);
  }
  
  
  Future<void> showOverlays_animated(List<dynamic>? overlays, bool? animated) async {
    // print log
    if (fluttifyLogEnabled) {
      debugPrint('fluttify-dart: MAMapView@$refId::showOverlays([\'animated\':$animated])');
    }
  
    // invoke native method
    final __result__ = await kAmapMapFluttifyChannel.invokeMethod('MAMapView::showOverlays_animated', {"overlays": overlays, "animated": animated, "__this__": this});
  
  
    // handle native call
  
  
    return __result__;
  }
  
  
  Future<void> showOverlays_edgePadding_animated(List<dynamic>? overlays, UIEdgeInsets? insets, bool? animated) async {
    // print log
    if (fluttifyLogEnabled) {
      debugPrint('fluttify-dart: MAMapView@$refId::showOverlays([\'animated\':$animated])');
    }
  
    // invoke native method
    final __result__ = await kAmapMapFluttifyChannel.invokeMethod('MAMapView::showOverlays_edgePadding_animated', {"overlays": overlays, "insets": insets, "animated": animated, "__this__": this});
  
  
    // handle native call
  
  
    return __result__;
  }
  
  
  Future<List<dynamic>?> getHittedPolylinesWith_traverseAll(CLLocationCoordinate2D? tappedCoord, bool? traverseAll) async {
    // print log
    if (fluttifyLogEnabled) {
      debugPrint('fluttify-dart: MAMapView@$refId::getHittedPolylinesWith([\'traverseAll\':$traverseAll])');
    }
  
    // invoke native method
    final __result__ = await kAmapMapFluttifyChannel.invokeMethod('MAMapView::getHittedPolylinesWith_traverseAll', {"tappedCoord": tappedCoord, "traverseAll": traverseAll, "__this__": this});
  
  
    // handle native call
  
  
    return (__result__ as List?)?.cast<dynamic>();
  }
  
  //endregion
}