import { MapLibreLayer } from '@geoblocks/ol-maplibre-layer/lib';
import { EventsKey } from 'ol/events';
import Map from 'ol/Map';
import MaplibreLayerRenderer from '../renderers/MaplibreLayerRenderer';
import { MobilityLayerOptions } from './Layer';
import type { MapLibreLayerOptions, MapLibreOptions } from '@geoblocks/ol-maplibre-layer/lib/MapLibreLayer';
import type { QueryRenderedFeaturesOptions } from 'maplibre-gl';
export type MaplibreLayerOptions = {
    apiKey?: string;
    apiKeyName?: string;
    mapLibreOptions?: MapLibreOptions;
    queryRenderedFeaturesOptions?: QueryRenderedFeaturesOptions | undefined;
    style?: maplibregl.StyleSpecification | null | string;
    url?: string;
} & MobilityLayerOptions & Omit<MapLibreLayerOptions, 'mapLibreOptions'>;
/**
 * An OpenLayers layer able to display data from the [geOps Maps API](https://developer.geops.io/apis/maps).
 *
 * @example
 * import { MaplibreLayer } from 'mobility-toolbox-js/ol';
 *
 * const layer = new MaplibreLayer({
 *   apiKey: 'yourApiKey',
 *   // apiKeyName: 'key',
 *   // mapLibreOptions: {
 *   //   interactive: false,
 *   //   trackResize: false,
 *   //   attributionControl: false,
 *   // }
 *   // queryRenderedFeaturesOptions: {
 *   //   layers: ['waters_lakes'], // map.getFeaturesAtPixel will only return lakes.
 *   // },
 *   // style: 'travic_v2',
 *   // url: 'https://maps.geops.io',
 * });
 *
 * @classproperty {maplibregl.Map} mapLibreMap - The Maplibre map object. Readonly.
 * @classproperty {string} style - The [geOps Maps API](https://developer.geops.io/apis/maps) style.
 *
 *
 * @see <a href="/example/ol-maplibre-layer">OpenLayers Maplibre layer example</a>
 *
 * @extends {geoblocks/ol-maplibre-layer/MapLibreLayer}
 * @public
 */
declare class MaplibreLayer extends MapLibreLayer {
    olEventsKeys: EventsKey[];
    set apiKey(newValue: string);
    get apiKey(): string;
    set apiKeyName(newValue: string);
    get apiKeyName(): string;
    /**
     * @deprecated Use layer.mapLibreMap.
     */
    get maplibreMap(): maplibregl.Map | undefined;
    /**
     * @deprecated Use layer.mapLibreMap.
     */
    get mbMap(): maplibregl.Map | undefined;
    get style(): string;
    set style(newValue: string);
    get url(): string;
    set url(newValue: string);
    /**
     * Constructor.
     *
     * @param {Object} options
     * @param {string} options.apiKey Accesss key for [geOps APIs](https://developer.geops.io/).
     * @param {string} [options.apiKeyName="key"] The [geOps Maps API](https://developer.geops.io/apis/maps) key name.
     * @param {maplibregl.MapOptions} [options.mapLibreOptions={ interactive: false, trackResize: false, attributionControl: false }] MapLibre map options.
     * @param {string} [options.style="travic_v2"] The [geOps Maps API](https://developer.geops.io/apis/maps) style.
     * @param {string} [options.url="https://maps.geops.io"] The [geOps Maps API](https://developer.geops.io/apis/maps) url.
     */
    constructor(options: MaplibreLayerOptions);
    /**
     * Initialize the layer and listen to feature clicks.
     */
    attachToMap(): void;
    /**
     * Create a copy of the MaplibreLayer.
     *
     * @param {Object} newOptions Options to override. See constructor.
     * @return {MaplibreLayer} A MaplibreLayer layer
     * @public
     */
    clone(newOptions: MaplibreLayerOptions): MaplibreLayer;
    createRenderer(): MaplibreLayerRenderer;
    detachFromMap(): void;
    disposeInternal(): void;
    getStyle(): string | import("maplibre-gl").StyleSpecification;
    setMapInternal(map: Map): void;
    updateMaplibreMap(): void;
}
export default MaplibreLayer;
