
export interface MapOptions {
  center: LatLng;
  zoom: number;
  styleUrl: string;
  tileUrl: string;
}
export interface GeoPoint {
  x: number;
  y: number;
}
export interface Zone {
  id: string;
  name?: string;
  color?: string;
  opacity?: number;
  polygon: GeoPoint[];
  shippingFee?: number;
  deliverySchedule?: string;
}

export type LatLng = [number, number];
export declare function getLngLat(latLng: LatLng): [number, number];
export interface IMapAdapter {
  init(container: HTMLElement, options: MapOptions): void;
  setCenter(latLng: LatLng): void;
  setZoom(zoom: number): void;
  addMarker(latLng: LatLng, options?: { id?: string; color?: string }): void;
  removeMarker(id?: string): void;
  destroy(): void;
  addZone(zone: Zone[]): void;
  updateZone(zone: Zone[]): void;
  openZonePopup(zone: Zone) : void
  closePopup(): void;
  on(
    type: string,
    event: (e: any) => void,
  ): void;
  
}
