import * as solid_js from 'solid-js'; import { Accessor, JSX } from 'solid-js'; import * as maplibre from 'maplibre-gl'; type MapEvents = Partial<{ [P in keyof maplibre.MapEventType as `on${P}`]: (e: Omit & { target: T; }) => void; }>; declare const MapContext: solid_js.Context | undefined>; declare const useMap: () => Accessor | undefined; declare const useMapEffect: (f: (map: maplibre.Map) => void) => void; type MapProps = { id?: string; style?: JSX.CSSProperties; class?: string; classList?: Record; cursor?: string; options?: Partial>; children?: JSX.Element; } & MapEvents; declare function Map$1(initial: MapProps): JSX.Element; interface MapsContextValue { maps: Accessor>; onMapMount: (map: maplibre.Map, id: string) => void; onMapUnmount: (id: string) => void; } declare const MapsContext: solid_js.Context; interface MapsProviderProps { children?: JSX.Element; } declare function MapsProvider(props: MapsProviderProps): JSX.Element; declare const useMaps: () => MapsContextValue | undefined; interface SourceProps { id?: string; source: maplibre.SourceSpecification; children?: JSX.Element; } declare const SourceIdContext: solid_js.Context; declare const useSource: () => string | undefined; declare function Source(props: SourceProps): JSX.Element; type LayerProps = { id?: string; layer: Omit; } & LayerEvents; type LayerEvents = Partial<{ [P in keyof maplibre.MapLayerEventType as `on${P}`]: (e: maplibre.MapLayerEventType[P]) => void; }>; declare function Layer(initial: LayerProps): solid_js.JSX.Element; type MarkerEvents = Pick, "ondrag" | "ondragstart" | "ondragend">; type MarkerProps = Partial & { position: maplibre.LngLatLike; } & MarkerEvents; declare function Marker(initial: MarkerProps): solid_js.JSX.Element; type PopUpProps = Partial & { position?: maplibre.LngLatLike; content?: string; }; declare function Popup(initial: PopUpProps): solid_js.JSX.Element; declare const createControl: (ctor: new (options: Options) => Control) => (props: { options?: Options; position?: maplibre.ControlPosition; }) => JSX.Element; declare const NavigationControl: (props: { options?: maplibre.NavigationControlOptions | undefined; position?: maplibre.ControlPosition; }) => JSX.Element; declare const ScaleControl: (props: { options?: maplibre.ScaleControlOptions | undefined; position?: maplibre.ControlPosition; }) => JSX.Element; export { Layer, type LayerProps, Map$1 as Map, MapContext, type MapProps, MapsContext, type MapsContextValue, MapsProvider, type MapsProviderProps, Marker, type MarkerProps, NavigationControl, type PopUpProps, Popup, ScaleControl, Source, SourceIdContext, type SourceProps, createControl, useMap, useMapEffect, useMaps, useSource };