import * as L from 'leaflet';
import 'leaflet-editable/src/Leaflet.Editable.js';
import 'leaflet.fullscreen/Control.FullScreen.js';
import { Term } from '@rdfjs/types';
import { Point, Polygon } from 'geojson';
import { Plugin, PluginOptions } from '../plugin';
import { Editor } from '../theme';
import { ShaclPropertyTemplate } from '../property-template';
export declare class LeafletPlugin extends Plugin {
    map: L.Map | undefined;
    currentEditor: Editor | undefined;
    createdGeometry: Geometry | undefined;
    displayedShape: L.Polygon | L.Marker | undefined;
    constructor(options: PluginOptions);
    initEditMode(form: HTMLElement): HTMLDialogElement;
    createEditor(template: ShaclPropertyTemplate, value?: Term): HTMLElement;
    createViewer(_: ShaclPropertyTemplate, value: Term): HTMLElement;
    drawAndZoomToGeometry(geometry: Geometry | undefined, map: L.Map): void;
    saveChanges(): void;
}
export type Geometry = Point | Polygon;
export declare const worldBounds: [number, number][];
export declare function wktToGeometry(wkt: string): Geometry | undefined;
export declare function geometryToWkt(geometry: Geometry): string;
