/**
 * @param {angular.IScope} $scope Angular scope.
 * @param {angular.ITimeoutService} $timeout Angular timeout service.
 * @param {angular.IQService} $q Angular q service
 * @param {import('ngeo/routing/NominatimService').NominatimService} ngeoNominatimService service for
 *    Nominatim
 * @class
 * @hidden
 * @ngdoc controller
 * @ngname NgeoRoutingFeatureController
 */
export class Controller {
    /**
     * @param {angular.IScope} $scope
     * @param {angular.ITimeoutService} $timeout
     * @param {angular.IQService} $q
     * @param {import('ngeo/routing/NominatimService').NominatimService} ngeoNominatimService
     */
    constructor($scope: angular.IScope, $timeout: angular.ITimeoutService, $q: angular.IQService, ngeoNominatimService: import("ngeo/routing/NominatimService").NominatimService);
    /**
     * @type {angular.IScope}
     * @private
     */
    private scope_;
    /**
     * @type {angular.ITimeoutService}
     * @private
     */
    private timeout_;
    /**
     * @type {angular.IQService}
     * @private
     */
    private $q_;
    /**
     * @type {import('ngeo/routing/NominatimService').NominatimService}
     * @private
     */
    private ngeoNominatimService_;
    /**
     * @type {?import('ol/Map').default}
     * @private
     */
    private map;
    /**
     * @type {?olFeature<import('ol/geom/Geometry').default>}
     */
    feature: olFeature<import("ol/geom/Geometry").default> | null;
    /**
     * @type {string}
     */
    featureLabel: string;
    /**
     * @type {string}
     */
    fillColor: string;
    /**
     * @type {string}
     */
    strokeColor: string;
    /**
     * @type {?function(olFeature<import('ol/geom/Geometry').default>): void}
     */
    onChange: ((arg0: olFeature<import("ol/geom/Geometry").default>) => void) | null;
    /**
     * @type {import('ol/Collection').default<olFeature<import('ol/geom/Geometry').default>>}
     * @private
     */
    private vectorFeatures_;
    /**
     * @type {import('ol/source/Vector').default<import('ol/geom/Geometry').default>}
     * @private
     */
    private vectorSource_;
    /**
     * @type {import('ol/layer/Vector').default<import('ol/source/Vector').default<import('ol/geom/Geometry').default>>}
     * @private
     */
    private vectorLayer_;
    /**
     * Interaction for moving start and end.
     *
     * @type {import('ol/interaction/Modify').default}
     * @private
     */
    private modifyFeature_;
    /**
     * @type {?import('ol/interaction/Draw').default}
     * @private
     */
    private draw_;
    /**
     * @param {import('ngeo/routing/NominatimService').NominatimSearchResult} selected Selected result.
     */
    onSelect: (selected: import("ngeo/routing/NominatimService").NominatimSearchResult) => void;
    /**
     * @type {string}
     */
    errorMessage: string;
    $onInit(): void;
    /**
     * Cleanup, mostly relevant for vias.
     */
    $onDestroy(): void;
    /**
     */
    set(): void;
    /**
     * @param {import('ol/coordinate').Coordinate} coordinate LonLat coordinate.
     * @param {string} label Feature name/label.
     * @private
     */
    private setFeature_;
    onFeatureChange_(): void;
    /**
     * @param {import('ngeo/routing/NominatimService').NominatimSearchResult} selected Selected result.
     * @private
     */
    private onSelect_;
    /**
     * Snaps a feature to the street network using the getNearest
     * function of the routing service. Replaces the feature.
     *
     * @param {olFeature<import('ol/geom/Point').default>} feature Feature to snap
     * @private
     */
    private snapFeature_;
    /**
     * Converts feature point into LonLat coordinate.
     *
     * @param {olFeature<import('ol/geom/Point').default>} point Feature point to convert
     * @returns {?import('ol/coordinate').Coordinate} LonLat coordinate
     * @private
     */
    private getLonLatFromPoint_;
}
export namespace Controller {
    let $inject: string[];
}
export default myModule;
import olFeature from 'ol/Feature';
import angular from 'angular';
/**
 * @type {angular.IModule}
 * @hidden
 */
declare const myModule: angular.IModule;
