import { PopupOptions, FitBoundsOptions, LngLatBoundsLike, PaddingOptions, RequireAtLeastOne, FlyToOptions, Marker, GeolocateOptions, NavigationOptions } from "maplibre-gl"; import React from "react"; interface Popup { html?: string; domContent?: Node; option?: PopupOptions; lngLat: [number, number]; zoom?: number; priority?: number; onClick?: (e: MouseEvent) => void; onMouseOver?: (e: MouseEvent) => void; onMouseout?: (e: MouseEvent) => void; } interface Point { id: string; lngLat: [number, number]; img?: string; num?: number; html?: string; data?: any; hidden?: boolean; priority?: number; required?: boolean; style?: { strokeColor?: string; strokeSize?: string; strokeShadow?: string; }; onClick?: (e: MouseEvent, marker: Marker) => void; onMouseOver?: (e: MouseEvent) => void; onMouseout?: (e: MouseEvent) => void; } interface Circle { id: string; radius: number; lngLat: [number, number]; point?: number; hidden?: boolean; priority?: number; } interface Rectangle { id: string; coordinates: [ [ number, number ], [ number, number ] ]; hidden?: boolean; priority?: number; } interface Line { coordinates: number[][]; color?: string; outlineColor?: string; opacity?: number; priority?: number; } interface MapOption { style: string; zoom: number; center: [number, number]; cursorIcon?: string; dragRotateDisable?: boolean; touchZoomRotateDisable?: boolean; logoDisable?: boolean; } interface MapControls { fullScreen?: boolean; geolocation?: { enabled: boolean; options: GeolocateOptions; }; navigation?: { enabled: boolean; options: NavigationOptions; }; } interface PointControl { icon?: React.ReactNode; msg?: string; button?: React.ReactNode; onClick?: () => void; onCancelClick?: () => void; } interface LineRenderingOption { dasharray?: [number, number]; disabledBorder?: boolean; } interface EaseTo { padding: number | RequireAtLeastOne; duration?: number; } interface Bound { coordinates: LngLatBoundsLike; option?: FitBoundsOptions; eventData?: any; } interface FlyTo { options: FlyToOptions; eventData?: any; } export { Popup, Point, Circle, Rectangle, Line, MapOption, MapControls, PointControl, LineRenderingOption, EaseTo, Bound, FlyTo };