/**
 * @typedef {Object} ComparisonFilter
 * @property {string} property The type of operator for the comparison filter.
 * @property {string} operator The name of the property for the comparison filter.
 * @property {string} value The value for the comparison filter that must match the combinaison of
 * the operator and property.
 */
/**
 * Service that provides methods to get, insert, update and delete vector
 * features with the use of a GeoMapFish Protocol as back-end.
 *
 * The GeoJSON format is used when obtaining or sending features.
 *
 * @class
 * @param {angular.IHttpService} $http Angular http service.
 * @param {string} gmfLayersUrl URL to the GeoMapFish layers service.
 * @hidden
 */
export function EditingEditFeature($http: angular.IHttpService, gmfLayersUrl: string): void;
export class EditingEditFeature {
    /**
     * @typedef {Object} ComparisonFilter
     * @property {string} property The type of operator for the comparison filter.
     * @property {string} operator The name of the property for the comparison filter.
     * @property {string} value The value for the comparison filter that must match the combinaison of
     * the operator and property.
     */
    /**
     * Service that provides methods to get, insert, update and delete vector
     * features with the use of a GeoMapFish Protocol as back-end.
     *
     * The GeoJSON format is used when obtaining or sending features.
     *
     * @class
     * @param {angular.IHttpService} $http Angular http service.
     * @param {string} gmfLayersUrl URL to the GeoMapFish layers service.
     * @hidden
     */
    constructor($http: angular.IHttpService, gmfLayersUrl: string);
    /**
     * @type {angular.IHttpService}
     */
    http_: angular.IHttpService;
    /**
     * URL to the GeoMapFish layers service. Required in applications that use:
     * - the editfeature tools
     * - the objectediting tools
     *
     * @type {string}
     */
    baseUrl_: string;
    /**
     * Build a query to the MapFish protocol to fetch features from a list
     * of layer ids inside a specified extent.
     *
     * @param {number[]} layerIds List of layer ids to get the features from.
     * @param {import('ol/extent').Extent} extent The extent where to get the features from.
     * @returns {angular.IPromise<import('ol/Feature').default<import('ol/geom/Geometry').default>[]>} Promise.
     */
    getFeaturesInExtent(layerIds: number[], extent: import("ol/extent").Extent): angular.IPromise<import("ol/Feature").default<import("ol/geom/Geometry").default>[]>;
    /**
     * Build a query to the MapFish protocol to fetch features from a list
     * of layer ids and a list of comparison filters.
     *
     * This method is called in the ObjectEditing service, which is injected in
     * the permalink service, i.e. it's always called. Since we don't have to
     * define the url to the GMF Protocol (layers) a dummy promise returns an
     * empty array of features if the url is not defined.
     *
     * @param {string[]} layerIds List of layer ids to get the features from.
     * @param {ComparisonFilter[]} filters List of comparison filters
     * @returns {angular.IPromise<import('ol/Feature').default<import('ol/geom/Geometry').default>[]>} Promise.
     */
    getFeaturesWithComparisonFilters(layerIds: string[], filters: ComparisonFilter[]): angular.IPromise<import("ol/Feature").default<import("ol/geom/Geometry").default>[]>;
    /**
     * @param {number} layerId The layer id that contains the feature.
     * @param {import('ol/Feature').default<import('ol/geom/Geometry').default>[]} features List of features to insert.
     * @returns {angular.IHttpPromise<ArrayBuffer|Document|Node|string>} Promise.
     */
    insertFeatures(layerId: number, features: import("ol/Feature").default<import("ol/geom/Geometry").default>[]): angular.IHttpPromise<ArrayBuffer | Document | Node | string>;
    /**
     * @param {number} layerId The layer id that contains the feature.
     * @param {import('ol/Feature').default<import('ol/geom/Geometry').default>} feature The feature to update.
     * @returns {angular.IHttpPromise<ArrayBuffer|Document|Node|string>} Promise.
     */
    updateFeature(layerId: number, feature: import("ol/Feature").default<import("ol/geom/Geometry").default>): angular.IHttpPromise<ArrayBuffer | Document | Node | string>;
    /**
     * @param {number} layerId The layer id that contains the feature.
     * @param {import('ol/Feature').default<import('ol/geom/Geometry').default>} feature The feature to delete.
     * @returns {angular.IHttpPromise<ArrayBuffer|Document|Node|string>} Promise.
     */
    deleteFeature(layerId: number, feature: import("ol/Feature").default<import("ol/geom/Geometry").default>): angular.IHttpPromise<ArrayBuffer | Document | Node | string>;
}
export namespace EditingEditFeature {
    let $inject: string[];
}
export default myModule;
export type ComparisonFilter = {
    /**
     * The type of operator for the comparison filter.
     */
    property: string;
    /**
     * The name of the property for the comparison filter.
     */
    operator: string;
    /**
     * The value for the comparison filter that must match the combinaison of
     * the operator and property.
     */
    value: string;
};
import angular from 'angular';
/**
 * @type {angular.IModule}
 * @hidden
 */
declare const myModule: angular.IModule;
