import type { ReactElement } from "react"

import type { HotelPin } from "@/types/components/hotelReservation/selectHotel/map"
import type { Coordinates } from "@/types/components/maps/coordinates"
import type { MarkerInfo } from "@/types/components/maps/marker"
import type { PointOfInterest } from "@/types/hotel"

export interface InteractiveMapProps {
  coordinates: Coordinates
  activePoi?: PointOfInterest["name"] | null
  hotelPins?: HotelPin[]
  pointsOfInterest?: PointOfInterest[]
  markerInfo?: MarkerInfo
  mapId: string
  closeButton: ReactElement<any>
  fitBounds?: boolean
  onTilesLoaded?: () => void
  onActivePoiChange?: (poi: PointOfInterest["name"] | null) => void
}
