import type { CircleLayerSpecification, StyleSpecification } from 'maplibre-gl';
import type { BBox } from 'geojson';
import type { Color } from '../types';
export declare type PoiMapData = Partial<{
    sources: StyleSpecification['sources'];
    layers: Layer[];
}>;
export interface PoiMapOptions {
    style?: string | PoiMapStyleOption;
    /**
     * Maximum boundaries of the map, outside of which the user cannot zoom/move
     * Also set the position of the map when rendering.
     */
    bbox?: BBox | undefined;
    aspectRatio?: number;
    interactive?: boolean;
}
export declare type PoiMapStyleOption = Partial<Pick<StyleSpecification, 'sources' | 'layers'>>;
export declare type LayerSpecification = CircleLayerSpecification;
/**
 * Base on Maplibre layers https://maplibre.org/maplibre-style-spec/layers/
 * Use only part of the configuration to build layers with consistent styles.
 */
export declare type Layer = {
    source: string;
    sourceLayer?: string;
    type: LayerSpecification['type'];
    color: Color;
    groupBy?: {
        key: string;
        colorMap: {
            [key: string]: Color;
        };
    };
};
export declare type GeoPoint = {
    lat: number;
    lon: number;
};
