/**
 * A service that collects all queryable layer nodes from all themes, stores
 * them and use them to make WMS GetFeatureInfo queries. Queries can be made
 * regardless of the associated layer visibility. The layer nodes are also
 * loaded only once.
 *
 * @param {angular.IHttpService} $http Angular $http service.
 * @param {angular.IQService} $q Angular $q service.
 * @param {import('gmf/theme/Themes').ThemesService} gmfThemes The gmf themes service.
 * @class
 * @hidden
 */
export function ObjectEditingQuery($http: angular.IHttpService, $q: angular.IQService, gmfThemes: import("gmf/theme/Themes").ThemesService): void;
export class ObjectEditingQuery {
    /**
     * A service that collects all queryable layer nodes from all themes, stores
     * them and use them to make WMS GetFeatureInfo queries. Queries can be made
     * regardless of the associated layer visibility. The layer nodes are also
     * loaded only once.
     *
     * @param {angular.IHttpService} $http Angular $http service.
     * @param {angular.IQService} $q Angular $q service.
     * @param {import('gmf/theme/Themes').ThemesService} gmfThemes The gmf themes service.
     * @class
     * @hidden
     */
    constructor($http: angular.IHttpService, $q: angular.IQService, gmfThemes: import("gmf/theme/Themes").ThemesService);
    /**
     * @type {angular.IHttpService}
     */
    http_: angular.IHttpService;
    /**
     * @type {angular.IQService}
     */
    q_: angular.IQService;
    /**
     * @type {import('gmf/theme/Themes').ThemesService}
     */
    gmfThemes_: import("gmf/theme/Themes").ThemesService;
    /**
     * @type {?angular.IDeferred<import('./toolsComponent').ObjectEditingQueryableLayerInfo[]>}
     */
    getQueryableLayerNodesDefered_: angular.IDeferred<import("./toolsComponent").ObjectEditingQueryableLayerInfo[]> | null;
    /**
     * @returns {angular.IPromise<import('./toolsComponent').ObjectEditingQueryableLayerInfo[]>} Promise.
     */
    getQueryableLayersInfo(): angular.IPromise<import("./toolsComponent").ObjectEditingQueryableLayerInfo[]>;
    /**
     * From a queryable layer (WMS layer node), use its associated OGC server
     * to issue a single WMS GetFeatureInfo request at a specific location on a
     * specific map to fetch a single feature. If no feature is found, a `null`
     * value is returned.
     *
     * @param {import('gmf/objectediting/toolsComponent').ObjectEditingQueryableLayerInfo} layerInfo
     *    Queryable layer information.
     * @param {import('ol/coordinate').Coordinate} coordinate Coordinate.
     * @param {import('ol/Map').default} map Map.
     * @returns {angular.IPromise<?import('ol/Feature').default<import('ol/geom/Geometry').default>>} Promise.
     */
    getFeatureInfo(layerInfo: import("gmf/objectediting/toolsComponent").ObjectEditingQueryableLayerInfo, coordinate: import("ol/coordinate").Coordinate, map: import("ol/Map").default): angular.IPromise<import("ol/Feature").default<import("ol/geom/Geometry").default> | null>;
}
export namespace ObjectEditingQuery {
    let $inject: string[];
}
export default myModule;
import angular from 'angular';
/**
 * @type {angular.IModule}
 * @hidden
 */
declare const myModule: angular.IModule;
