import { MapDatasource, FeatureEventDetails, IMapLayer, PropertyDetails } from './../.';
import { LngLatBounds } from 'mapbox-gl';
import { CsMap } from './..';
import { PropertyType, FeatureTypes } from '@csnext/cs-data';
import mapboxgl from 'mapbox-gl';
import { GeojsonLayer } from './geojson-layer';
import { MessageBusHandle } from '@csnext/cs-core';
import { LayerStyle } from '../classes/layer-style';
export declare class GeojsonPlusLayer extends GeojsonLayer implements IMapLayer {
    colorSchemes: {
        BuGn: string[][];
        BuPu: string[][];
        GnBu: string[][];
        OrRd: string[][];
        PuBu: string[][];
        Greys: string[][];
        Blues: string[][];
        BrBg: string[][];
        PuOr: string[][];
        Spectral: string[][];
    };
    iconZoomLevel?: number;
    isEditable?: boolean;
    isLive?: boolean;
    type?: 'poi';
    bookmarks: mapboxgl.MapboxGeoJSONFeature[];
    featureTypes?: FeatureTypes;
    activeFeatureTypes?: string[];
    private clickEvent;
    private contextMenuEvent;
    private enterEvent;
    private leaveEvent;
    private moveEvent;
    private downEvent;
    private upEvent;
    private mapEventsRegistered;
    private symbolLayer?;
    private clusterLayer?;
    private popup;
    private hoveredStateId;
    private draggingFeature;
    private draggingStartXY;
    constructor(init?: Partial<IMapLayer>);
    addCircleSymbol(): void;
    addClusterLayer(): void;
    toggleBookmark(bookmark: mapboxgl.MapboxGeoJSONFeature): boolean;
    addBookmark(bookmark: mapboxgl.MapboxGeoJSONFeature): boolean;
    removeBookmark(bookmark: mapboxgl.MapboxGeoJSONFeature): boolean;
    addLayer(widget: CsMap): void;
    setFilter(filter: any[]): void;
    getBounds(): LngLatBounds | undefined;
    getInstance(init?: Partial<GeojsonPlusLayer>): GeojsonPlusLayer;
    initLayer(manager: MapDatasource): Promise<IMapLayer>;
    moveLayer(beforeId?: string): void;
    removeLayer(widget: CsMap): void;
    removeLegend(property: PropertyDetails | PropertyType | string, refreshLayer?: boolean): void;
    removeSubLayer(map: CsMap, layer?: GeojsonLayer, handle?: MessageBusHandle): MessageBusHandle | undefined;
    setStyle(style: LayerStyle): Promise<void>;
    setLegend(property: PropertyDetails | PropertyType | string, refreshLayer?: boolean): void;
    setOpacity(value: number): void;
    setPopupContent(popup: string | ((f: FeatureEventDetails) => {})): void;
    updateLayer(): Promise<void>;
    updateImages(): void;
    updateLegends(): void;
    protected registerLayerExtensions(): void;
    protected removeExtensions(): void;
    private isFunction;
    getComponent(): void;
    private createPopup;
    private registerMapEvents;
    private unregisterMapEvents;
    private onContextMenu;
    private onClick;
    private onEnter;
    private onLeave;
    private onMove;
    private onMouseDown;
    private onMouseUp;
}
