/**
 * @hidden
 */
export class QueryController {
    /**
     * @param {import('ngeo/query/MapQuerent').MapQuerent} ngeoMapQuerent
     *    The ngeo map querent service.
     * @param {import('ngeo/query/ModeSelector').QueryModeSelector} ngeoQueryModeSelector
     *    The ngeo query modeSelector service.
     * @param {angular.IScope} $scope Scope.
     * @param {import('ngeo/options').ngeoQueryOptions} ngeoQueryOptions The options.
     * @ngdoc controller
     * @ngname NgeoQueryController
     */
    constructor(ngeoMapQuerent: import("ngeo/query/MapQuerent").MapQuerent, ngeoQueryModeSelector: import("ngeo/query/ModeSelector").QueryModeSelector, $scope: angular.IScope, ngeoQueryOptions: import("ngeo/options").ngeoQueryOptions);
    /**
     * @type {boolean}
     */
    active: boolean;
    /**
     * @type {boolean}
     */
    autoclear: boolean;
    /**
     * @type {!import('ol/Map').default}
     */
    map: import("ol/Map").default;
    /**
     * @type {import('ngeo/query/MapQuerent').MapQuerent}
     * @private
     */
    private ngeoMapQuerent_;
    /**
     * @type {import('ngeo/query/ModeSelector').QueryModeSelector}
     * @private
     */
    private ngeoQueryModeSelector_;
    /**
     * @type {import('ngeo/options').ngeoQueryOptions}
     * @private
     */
    private ngeoQueryOptions_;
    /**
     * @type {angular.IScope}
     * @private
     */
    private scope_;
    /**
     * @type {olSourceVector<import('ol/geom/Polygon').default>}
     * @private
     */
    private vectorSource_;
    /**
     * @type {olLayerVector<olSourceVector<import('ol/geom/Polygon').default>>}
     * @private
     */
    private vectorLayer_;
    /**
     * @type {olInteractionDraw}
     * @private
     */
    private drawBoxInteraction_;
    /**
     * @type {olInteractionDraw}
     * @private
     */
    private drawPolygonInteraction_;
    /**
     * The event keys of the currently active "mode".
     *
     * @type {import('ol/events').EventsKey[]}
     * @private
     */
    private listenerKeys_;
    /**
     * @type {?string}
     * @private
     */
    private mode_;
    /**
     * Called on initialization of the controller.
     */
    $onInit(): void;
    /**
     * Called on destruction of the controller.
     */
    $onDestroy(): void;
    /**
     * Disable the current mode, then enable a new mode, i.e. add any
     * interaction of that mode to the map.
     *
     * @param {?string} mode Mode to enable
     * @private
     */
    private enableMode_;
    /**
     * Disable the current mode, i.e. remove any interaction of that
     * mode from the map.
     *
     * @private
     */
    private disableMode_;
    /**
     * The maximum number of features a query should return. Obtained
     * from the options.
     *
     * @returns {number|undefined}
     * @private
     */
    private getLimitOption_;
    /**
     * Called when active property changes
     *
     * @param {boolean} active Whether this component is active or not.
     * @private
     */
    private handleActiveChange_;
    /**
     * Called when a box is drawn on the map. Use it to issue a query.
     *
     * @param {import('lib/ol.interaction.Draw').DrawEvent} evt The draw interaction drawend event being fired.
     * @private
     */
    private handleDrawBoxInteractionDrawEnd_;
    /**
     * Called when a polygon is drawn on the map. Use it to issue a query.
     *
     * @param {import('lib/ol.interaction.Draw').DrawEvent} evt The draw interaction drawend event being fired.
     * @private
     */
    private handleDrawPolygonInteractionDrawEnd_;
    /**
     * Called when the map is clicked while this component is active and the mode is "click". Issue a request
     * to the query service using the coordinate that was clicked.
     *
     * @param {Event|import('ol/events/Event').default} evt The map browser event being fired.
     * @private
     */
    private handleMapClick_;
    /**
     * Called when the pointer is moved over the map while this component is active and the mode is "click".
     * Change the mouse pointer when hovering a non-transparent pixel on the map.
     *
     * @param {Event|import('ol/events/Event').default} evt The map browser event being fired.
     * @returns {boolean}
     */
    handleMapPointerMove_(evt: Event | import("ol/events/Event").default): boolean;
}
export namespace QueryController {
    let $inject: string[];
}
export default myModule;
import angular from 'angular';
/**
 * @type {angular.IModule}
 * @hidden
 */
declare const myModule: angular.IModule;
