/**
 * @hidden
 */
export class DataSource {
    /**
     * @type {import('ngeo/datasource/DataSource').DataSources}
     * @private
     */
    private collection_;
    /**
     * @type {?import('ol/Map').default}
     * @private
     */
    private map_;
    /**
     * @type {import('ol/events').EventsKey[]}
     * @private
     */
    private listenerKeys_;
    /**
     * Set a map to this service. Null can be given to unset the map.
     *
     * @param {?import('ol/Map').default} map Map.
     */
    set map(map: import("ol/Map").default);
    get collection(): olCollection<import("ngeo/datasource/DataSource").default>;
    /**
     * Bind a map to this service.
     *
     * @param {import('ol/Map').default} map Map.
     * @private
     */
    private bindMap_;
    /**
     * Unbind a map to this service.
     *
     * @param {import('ol/Map').default} map Map.
     * @private
     */
    private unbindMap_;
    /**
     * Called when the resolution of the map view changes. Synchronize the
     * datasources to current resolution of the view.
     *
     * @param {Event|import('ol/events/Event').default} evt Event.
     * @private
     */
    private handleViewResolutionChange_;
    /**
     * Synchronize all datasources in the ngeo collection with a given resolution.
     *
     * @param {number} resolution Resolution
     * @private
     */
    private syncDataSourcesToResolution_;
    /**
     * Synchronize a data source `inRange` property with a given resolution.
     *
     * @param {import('ngeo/datasource/DataSource').default} dataSource Data source
     * @param {number} resolution Resolution
     * @private
     */
    private syncDataSourceToResolution_;
    /**
     * Called when a new data source is added to the ngeo collection. If there's
     * map bound, update its `inRange` right away.
     *
     * @param {Event|import('ol/events/Event').default} event Event
     * @private
     */
    private handleDataSourcesAdd_;
}
export namespace DataSource {
    let $inject: any[];
}
export default myModule;
import olCollection from 'ol/Collection';
/**
 * @type {angular.IModule}
 * @hidden
 */
declare const myModule: angular.IModule;
import angular from 'angular';
