import { Store, UIEventSource } from "../Logic/UIEventSource" import { BBox } from "../Logic/BBox" import { RasterLayerPolygon } from "./RasterLayers" import { B } from "vitest/dist/types-aac763a5" export interface KeyNavigationEvent { date: Date key: "north" | "east" | "south" | "west" | "in" | "out" | "islocked" | "locked" | "unlocked" } export interface MapProperties { readonly location: UIEventSource<{ lon: number; lat: number }> readonly zoom: UIEventSource readonly minzoom: UIEventSource readonly maxzoom: UIEventSource readonly bounds: UIEventSource readonly rasterLayer: UIEventSource readonly maxbounds: UIEventSource readonly allowMoving: UIEventSource readonly allowRotating: UIEventSource readonly rotation: UIEventSource readonly lastClickLocation: Store<{ lon: number; lat: number }> readonly allowZooming: UIEventSource /** * Triggered when the user navigated by using the keyboard. * The callback might return 'true' if it wants to be unregistered * @param f */ onKeyNavigationEvent(f: (event: KeyNavigationEvent) => void | boolean): () => void } export interface ExportableMap { /** * Export the current map as PNG. * @param markerScale: if given, the markers will be 'markerScale' bigger. This is to use in combination with a supersized canvas to have more pixels and achieve print quality */ exportAsPng(markerScale?: number): Promise }