import Map from "ol/Map";
import Feature from "ol/Feature";
import Style from "ol/style/Style";
import { Overlay, Interaction } from "ol";
import { Extent } from "ol/extent";
import Control from "ol/control/Control";
import { SICLayer } from "./layer";
import { MapEventType } from "./map-event-type.enum";
interface MapaOptions {
    id?: string;
    hasHighlight?: boolean;
    hasSnap?: boolean;
}
export declare type MapEventHandlerPriority = "LOW" | "NORMAL" | "HIGH" | "SPECIAL";
export interface MapaEventHandler {
    key: string;
    priority: MapEventHandlerPriority;
    fn: (...args: any[]) => void;
}
export declare class SICMap {
    private map;
    private id;
    private highlightSource;
    private eventHandlers;
    private baseLayer;
    private layers;
    static initMap(map: Map, options?: MapaOptions): SICMap;
    private constructor();
    get Id(): string;
    setBaseLayer(layer: SICLayer): string;
    clearBaseLayer(): void;
    addLayer(layer: SICLayer): string;
    removeLayer(id: string): void;
    addOverlay(popupOverlay: Overlay): void;
    removeOverlay(popupOverlay: Overlay): void;
    addEventHandler(eventType: MapEventType, handler: (...args: any[]) => void, priority?: MapEventHandlerPriority): any;
    removeEventHandler(id: string): void;
    addInteraction(interaction: Interaction): void;
    removeInteraction(interaction: Interaction): void;
    addControl(control: Control): void;
    removeControl(control: Control): void;
    drawFeatures(features: Array<Feature>, style?: Style): void;
    clearFeatures(featureIdPrefix: string): void;
    getViewExtent(): any;
    getViewResolution(): any;
    moveTo(extent: Extent, animated?: boolean): void;
    getZoom(): number;
    setZoom(zoom: number, animated?: boolean): void;
    getCenter(): [number, number];
    setCenter(center: [number, number], animated?: boolean): void;
    detectSizeChange(): void;
}
export {};
