import { Component, ComponentChild } from 'preact';
import { MapAttribution } from '../attribution.js';
/**
 * Map loading in maplibre is weird, the on('load') event is different to 'loaded'
 * this function waits until the map.loaded() function is true before being run.
 */
export declare function onMapLoaded(map: maplibregl.Map, cb: () => void): void;
export declare class Basemaps extends Component<unknown, {
    isLayerSwitcherEnabled: boolean;
}> {
    map: maplibregl.Map;
    el: HTMLElement;
    mapAttr: MapAttribution;
    /** Ignore the location updates */
    ignoreNextLocationUpdate: boolean;
    controlGeo: maplibregl.GeolocateControl | null;
    updateLocation: () => void;
    updateBounds: (bounds: maplibregl.LngLatBoundsLike) => void;
    /**
     * Only show the geocontrol on GoogleTMS
     * As it does not work with the projection logic we are currently using
     */
    ensureGeoControl(): void;
    updateStyle: () => void;
    componentDidMount(): void;
    _events: (() => boolean)[];
    componentWillUnmount(): void;
    render(): ComponentChild;
    updateUrlTimer: unknown | null;
    onRender: () => void;
    /** Update the window.location with the current location information */
    setLocationUrl(): void;
}
//# sourceMappingURL=map.d.ts.map