/**
 * Results of the query source.
 *
 * @typedef {Object} QueryResult
 * @property {import('ngeo/statemanager/WfsPermalink').QueryResultSource[]} sources Results for
 *    each query source.
 * @property {number} total The number of results for all sources.
 * @property {boolean} pending If at least one source is pending.
 */
/**
 * @hidden
 */
export class MapQuerent {
    /**
     * The ngeo Map Querent is the service bound to a map that issues
     * queries using the Querent service. The result is stored inside this
     * service.
     *
     * @param {import('ngeo/datasource/DataSources').DataSource} ngeoDataSources Ngeo data sources service.
     * @param {import('gmf/datasource/Helper').DatasourceHelper} gmfDataSourcesHelper GMF data
     *     sources helper service.
     * @param {import('ngeo/misc/FeatureHelper').FeatureHelper} ngeoFeatureHelper Ngeo feature
     *     helper service.
     * @param {import('ngeo/query/Querent').Querent} ngeoQuerent The ngeo querent service.
     * @param {QueryResult} ngeoQueryResult The ngeo query result service.
     * @param {import('ngeo/options').ngeoQueryOptions} ngeoQueryOptions The options.
     * @ngdoc service
     * @ngname ngeoQuerent
     */
    constructor(ngeoDataSources: import("ngeo/datasource/DataSources").DataSource, gmfDataSourcesHelper: import("gmf/datasource/Helper").DatasourceHelper, ngeoFeatureHelper: import("ngeo/misc/FeatureHelper").FeatureHelper, ngeoQuerent: import("ngeo/query/Querent").Querent, ngeoQueryResult: QueryResult, ngeoQueryOptions: import("ngeo/options").ngeoQueryOptions);
    /**
     * @type {import('ngeo/datasource/DataSource').DataSources}
     * @private
     */
    private dataSources_;
    /**
     * @type {import('ngeo/misc/FeatureHelper').FeatureHelper}
     * @private
     */
    private featureHelper_;
    /**
     * @type {import('ngeo/datasource/Helper').DatasourceHelper}
     * @private
     */
    private gmfDataSourcesHelper_;
    /**
     * @type {import('ngeo/query/Querent').Querent}
     * @private
     */
    private ngeoQuerent_;
    /**
     * @type {QueryResult}
     * @private
     */
    private result_;
    /**
     * @type {number}
     * @private
     */
    private limit_;
    /**
     * @type {number}
     * @private
     */
    private queryCountFirst_;
    /**
     * @type {number}
     * @private
     */
    private tolerance_;
    /**
     * @type {boolean}
     * @private
     */
    private bboxAsGETParam_;
    /**
     * A hash of data source names classified by ids.
     *
     * @type {Object<number, string>}
     * @private
     */
    private dataSourceNames_;
    /**
     * Flag turned on after clearing to make sure that we clear only once.
     *
     * @type {boolean}
     * @private
     */
    private cleared_;
    /**
     * @param {import('ngeo/query/Querent').IssueGetFeaturesOptions} options Options.
     * @returns {angular.IPromise<void|import('ngeo/query/Querent').QuerentResult>} Promise.
     */
    issue(options: import("ngeo/query/Querent").IssueGetFeaturesOptions): angular.IPromise<void | import("ngeo/query/Querent").QuerentResult>;
    /**
     * Clear result, i.e. clear all 'result source' from their features and other
     * information.
     *
     * @param {boolean} keep Whether to keep the existing features and sources
     */
    clear(keep?: boolean): void;
    /**
     * Called after a request to the querent service. Update the result.
     *
     * @param {string} action Query action
     * @param {import('ngeo/query/Querent').QuerentResult} response Response
     * @private
     */
    private handleResult_;
}
export namespace MapQuerent {
    let $inject: string[];
}
export default myModule;
/**
 * Results of the query source.
 */
export type QueryResult = {
    /**
     * Results for
     * each query source.
     */
    sources: import("ngeo/statemanager/WfsPermalink").QueryResultSource[];
    /**
     * The number of results for all sources.
     */
    total: number;
    /**
     * If at least one source is pending.
     */
    pending: boolean;
};
import angular from 'angular';
/**
 * @type {angular.IModule}
 * @hidden
 */
declare const myModule: angular.IModule;
