import type { InjectionKey, Ref, ShallowRef, ComponentInternalInstance, Raw, } from "vue"; import type { Map, Marker, MapEventType, SourceSpecification, } from "maplibre-gl"; import type { SourceLayerRegistry } from "@/lib/lib/sourceLayer.registry"; export const map = Symbol("map"), mapSymbol = map as InjectionKey>, isLoadedSymbol = Symbol("isLoaded") as InjectionKey>, isInitialized = Symbol("isInitialized"), isInitializedSymbol = isInitialized as InjectionKey>, componentIdSymbol = Symbol("componentId") as InjectionKey, sourceIdSymbol = Symbol("sourceId") as InjectionKey, sourceLayerRegistry = Symbol( "sourceLayerRegistry", ) as InjectionKey, markerSymbol = Symbol("marker") as InjectionKey< ShallowRef >; export interface MglEvent { type: string; component: Raw; map: Map; event: MapEventType[T]; } export type SourceOptionProps = SourceSpecification & { sourceId: string };