export interface AmbitaMapInstance {
    authenticate(token: string): void;
    showMarkerClusterLayer(geojson: unknown, layerId: string, options?: Record<string, unknown>): void;
    showIcon(geojson: unknown, options?: Record<string, unknown>): void;
    on(event: string, callback: (event?: unknown) => void): AmbitaMapInstance;
    once(event: string, callback: (event?: unknown) => void): AmbitaMapInstance;
    remove(): void;
    removeLayer?(layer: unknown): void;
    getCenter(): {
        lat: number;
        lng: number;
    };
    getZoom(): number;
    setView(center: [number, number], zoom?: number): void;
    flyTo(center: [number, number], zoom?: number, options?: Record<string, unknown>): void;
}
export interface MapOptions {
    restApi?: string;
    center?: [number, number];
    zoom?: number;
    fullscreenControl?: boolean;
    noScroll?: boolean;
    zoomControl?: boolean;
    static?: boolean;
    showPropertyLayer?: boolean;
    selectionToolsOptions?: {
        show: boolean;
        polygonOptions?: {
            showArea?: boolean;
            shapeOptions?: Record<string, unknown>;
        };
    };
    poweredByControl?: boolean;
    layerControl?: boolean;
    maxRetries?: number;
}
export interface AmbitaLeafletGlobal {
    ambita: {
        map(element: string | HTMLElement, token: string | null, options: MapOptions): AmbitaMapInstance;
    };
    circle?: (center: [number, number], options: Record<string, unknown>) => {
        addTo(target: unknown): unknown;
    };
}
declare global {
    interface Window {
        L?: AmbitaLeafletGlobal;
    }
}
