import { EventEmitter } from '../../stencil-public-runtime'; import type { Flavour } from '../../types/flavour'; import type { CssMode } from '../../types/cssmode'; import { type MapProviderDetail } from '../../utils/events'; export declare class VMap { el: HTMLElement; /** * Zu verwendender Karten-Provider. * Unterstützte Werte: "ol" | "leaflet" | "cesium" | "deck". * @default "ol" * @example * */ flavour: Flavour; /** * Mittelpunkt der Karte im **WGS84**-Koordinatensystem. * Erwartet [lon, lat] (Längengrad, Breitengrad). * @default [0, 0] * @example * */ center: string; /** * Anfangs-Zoomstufe. Skala abhängig vom Provider (typisch 0–20). * @default 3 */ zoom: number; /** Falls true, injiziert v-map automatisch die Import-Map. */ useDefaultImportMap: boolean; /** * Aktiviert ein „CSS-Only“-Rendering (z. B. für einfache Tests/Layouts). * Bei `true` werden keine Provider initialisiert. * @default false */ cssMode: CssMode; /** * Wird ausgelöst, sobald der Karten-Provider initialisiert wurde und Layers entgegennimmt. * `detail` enthält `{ provider, flavour }`. * @event mapProviderReady */ mapProviderReady: EventEmitter; private mapProvider; private mapState; private mapContainer; private unsubscribeResize; private unsubscribePointerMove; private unsubscribeViewChange; private _isSettingView; private _lastProgrammaticZoom; private _lastProgrammaticCenter; onFlavourChanged(newValue: string, oldValue: string): Promise; /** * When the `zoom` prop changes from outside (e.g. a slider in the * consuming app), update the underlying provider's view *without* * resetting the user's current center. We query the live center * from the provider via getView() because the user may have panned * the map since init - the original `this.center` prop is the seed * value, not the current state. */ onZoomChanged(newValue: number, oldValue: number): Promise; /** * Same idea for `center`: keep the user's current zoom intact when * the parent updates only the center. */ onCenterChanged(newValue: string, oldValue: string): Promise; private parseCenter; private reset; private createMap; componentWillLoad(): Promise; componentWillRender(): Promise; componentDidRender(): Promise; disconnectedCallback(): void; /** * Gibt zurück, ob der Karten-Provider initialisiert wurde und verwendet werden kann. * @returns Promise mit `true`, sobald der Provider bereit ist, sonst `false`. */ isMapProviderReady(): Promise; /** * Setzt Kartenzentrum und Zoom (optional animiert). * @param center [lon, lat] in WGS84 * @param zoom Zoomstufe * @param options Zusätzliche Optionen (z. B. { animate: true, duration: 300 }) * @example * await mapEl.setView([7.1, 50.7], 10, { animate: true, duration: 400 }); */ setView(coordinates: [number, number], zoom: number): Promise; private ensureContainer; render(): any; }