import olMap from "ol/Map";
import Collection from 'ol/Collection';
import { ILayerManager, Coordinate2D, Dictionary } from '../../api/common';
import { LayerSetGroupBase } from '../../api/layer-set-group-base';
import { ISelectedFeaturePopupTemplateConfiguration } from '../../actions/defs';
import LayerBase from "ol/layer/Base";
import { WmsQueryAugmentation } from '../map-providers/base';
import type { OLFeature, OLLayer } from "../../api/ol-types";
export interface IQueryWmsFeaturesCallback {
    getLocale(): string | undefined;
    /**
     *
     * @param feat
     * @param l
     * @since 0.14
     */
    addClientSelectedFeature(feat: OLFeature, l: LayerBase): void;
    addFeatureToHighlight(feat: OLFeature | undefined, bAppend: boolean): void;
    getWmsRequestAugmentations(): Dictionary<WmsQueryAugmentation>;
}
/**
 * @since 0.14
 */
export declare type SelectionPopupContentRenderer = (feat: OLFeature, locale?: string, popupConfig?: ISelectedFeaturePopupTemplateConfiguration) => string;
/**
 * @since 0.14
 */
export interface ISelectionPopupContentOverrideProvider {
    getSelectionPopupRenderer(layerName: string): SelectionPopupContentRenderer | undefined;
}
export declare class SelectedFeaturesTooltip {
    private parent;
    private map;
    private featureTooltipElement;
    private featureTooltip;
    private enabled;
    private isMouseOverTooltip;
    private closerEl;
    constructor(map: olMap, parent: ISelectionPopupContentOverrideProvider);
    dispose(): void;
    get isMouseOver(): boolean;
    isEnabled(): boolean;
    setEnabled(enabled: boolean): void;
    hide(): void;
    queryWmsFeatures(currentLayerSet: LayerSetGroupBase | undefined, layerMgr: ILayerManager, coord: Coordinate2D, resolution: number, bAppendMode: boolean, callback: IQueryWmsFeaturesCallback): Promise<boolean>;
    private generateFeatureHtml;
    private setPopupCloseHandler;
    private closePopup;
    showSelectedVectorFeatures(features: Collection<OLFeature>, pixel: [number, number], featureToLayerMap: [OLFeature, OLLayer][], locale?: string): void;
}
