import { FeatureOverlayMgr as NgeoMapFeatureOverlayMgrFeatureOverlayMgr } from 'ngeo/map/FeatureOverlayMgr';
import { EventsKey as OlEventsEventsKey } from 'ol/events';
import OlFeature from 'ol/Feature';
import OlGeomGeometry from 'ol/geom/Geometry';
import OlCollection from 'ol/Collection';
import OlStyleStyle from 'ol/style/Style';
import { StyleFunction as OlStyleStyleStyleFunction } from 'ol/style/Style';
import OlEventsEvent from 'ol/events/Event';
/**
 * Provides a featureOverlay used by the FeatureOverlayManager.
 *
 * Example of initialization:
 * const featureOverlay = new FeatureOverlay(manager, index);
 * @param {NgeoMapFeatureOverlayMgrFeatureOverlayMgr} manager The feature overlay manager.
 * @param {number} index This feature overlay's index.
 */
export declare class FeatureOverlay {
    manager_: NgeoMapFeatureOverlayMgrFeatureOverlayMgr;
    index_: number;
    listenerKeys_: OlEventsEventsKey[];
    constructor(manager: NgeoMapFeatureOverlayMgrFeatureOverlayMgr, index: number);
    /**
     * Add a feature to the feature overlay.
     * @param {OlFeature<OlGeomGeometry>} feature The feature to add.
     */
    addFeature(feature: OlFeature<OlGeomGeometry>): void;
    /**
     * Remove a feature from the feature overlay.
     * @param {OlFeature<OlGeomGeometry>} feature The feature to remove.
     */
    removeFeature(feature: OlFeature<OlGeomGeometry>): void;
    /**
     * Check if featureOverlay has no features.
     * @returns {boolean} True if there is no features. False otherwise.
     */
    isEmpty(): boolean;
    /**
     * Remove all the features from the feature overlay.
     */
    clear(): void;
    /**
     * Configure this feature overlay with a feature collection. Features added
     * to the collection are also added to the overlay. Same for removal. If you
     * configure the feature overlay with a feature collection you will use the
     * collection to add and remove features instead of using the overlay's
     * `addFeature`, `removeFeature` and `clear` functions.
     * @param {OlCollection<OlFeature<OlGeomGeometry>>} features Feature collection.
     */
    setFeatures(features: OlCollection<OlFeature<OlGeomGeometry>>): void;
    /**
     * Set a style for the feature overlay.
     * @param {OlStyleStyle | OlStyleStyle[] | OlStyleStyleStyleFunction} style Style.
     */
    setStyle(style: OlStyleStyle | OlStyleStyle[] | OlStyleStyleStyleFunction): void;
    /**
     * @param {Event|OlEventsEvent} evt Feature collection event.
     */
    handleFeatureAdd_(evt: Event | OlEventsEvent): void;
    /**
     * @param {Event|OlEventsEvent} evt Feature collection event.
     */
    handleFeatureRemove_(evt: Event | OlEventsEvent): void;
}
export default FeatureOverlay;
