/**
 * @param {angular.IScope} $scope Angular scope.
 * @param {angular.ITimeoutService} $timeout Angular timeout service.
 * @param {angular.gettext.gettextCatalog} gettextCatalog Gettext catalog.
 * @param {import('gmf/editing/Snapping').EditingSnappingService} gmfSnapping The gmf snapping service.
 * @param {import('ngeo/misc/FeatureHelper').FeatureHelper} ngeoFeatureHelper Ngeo feature helper service.
 * @param {import('ol/Collection').default<Feature<import('ol/geom/Geometry').default>>} ngeoFeatures Collection
 *    of features.
 * @param {import('ngeo/misc/ToolActivateMgr').ToolActivateMgr} ngeoToolActivateMgr Ngeo ToolActivate
 *    manager service.
 * @class
 * @hidden
 * @ngdoc controller
 * @ngname GmfDrawfeatureController
 */
export function Controller($scope: angular.IScope, $timeout: angular.ITimeoutService, gettextCatalog: angular.gettext.gettextCatalog, gmfSnapping: import("gmf/editing/Snapping").EditingSnappingService, ngeoFeatureHelper: import("ngeo/misc/FeatureHelper").FeatureHelper, ngeoFeatures: import("ol/Collection").default<Feature<import("ol/geom/Geometry").default>>, ngeoToolActivateMgr: import("ngeo/misc/ToolActivateMgr").ToolActivateMgr): void;
export class Controller {
    /**
     * @param {angular.IScope} $scope Angular scope.
     * @param {angular.ITimeoutService} $timeout Angular timeout service.
     * @param {angular.gettext.gettextCatalog} gettextCatalog Gettext catalog.
     * @param {import('gmf/editing/Snapping').EditingSnappingService} gmfSnapping The gmf snapping service.
     * @param {import('ngeo/misc/FeatureHelper').FeatureHelper} ngeoFeatureHelper Ngeo feature helper service.
     * @param {import('ol/Collection').default<Feature<import('ol/geom/Geometry').default>>} ngeoFeatures Collection
     *    of features.
     * @param {import('ngeo/misc/ToolActivateMgr').ToolActivateMgr} ngeoToolActivateMgr Ngeo ToolActivate
     *    manager service.
     * @class
     * @hidden
     * @ngdoc controller
     * @ngname GmfDrawfeatureController
     */
    constructor($scope: angular.IScope, $timeout: angular.ITimeoutService, gettextCatalog: angular.gettext.gettextCatalog, gmfSnapping: import("gmf/editing/Snapping").EditingSnappingService, ngeoFeatureHelper: import("ngeo/misc/FeatureHelper").FeatureHelper, ngeoFeatures: import("ol/Collection").default<Feature<import("ol/geom/Geometry").default>>, ngeoToolActivateMgr: import("ngeo/misc/ToolActivateMgr").ToolActivateMgr);
    /**
     * @type {?import('ol/Map').default}
     */
    map: import("ol/Map").default | null;
    /**
     * @type {boolean}
     */
    active: boolean;
    /**
     * @type {boolean}
     */
    drawActive: boolean;
    /**
     * @type {import('ngeo/misc/ToolActivate').default}
     */
    drawToolActivate: import("ngeo/misc/ToolActivate").default;
    /**
     * @type {string}
     */
    ngeoDrawFeatureUid: string;
    /**
     * @type {boolean}
     */
    mapSelectActive: boolean;
    /**
     * @type {number?}
     */
    longPressTimeout_: number | null;
    /**
     * @type {import('ngeo/misc/ToolActivate').default}
     */
    mapSelectToolActivate: import("ngeo/misc/ToolActivate").default;
    /**
     * @type {angular.IScope}
     */
    scope_: angular.IScope;
    /**
     * @type {angular.ITimeoutService}
     */
    timeout_: angular.ITimeoutService;
    /**
     * @type {import('gmf/editing/Snapping').EditingSnappingService}
     */
    gmfSnapping_: import("gmf/editing/Snapping").EditingSnappingService;
    /**
     * @type {import('ngeo/misc/FeatureHelper').FeatureHelper}
     */
    featureHelper_: import("ngeo/misc/FeatureHelper").FeatureHelper;
    /**
     * @type {import('ol/Collection').default<Feature<import('ol/geom/Geometry').default>>}
     */
    features: import("ol/Collection").default<Feature<import("ol/geom/Geometry").default>>;
    /**
     * @type {import('ngeo/misc/ToolActivateMgr').ToolActivateMgr}
     */
    ngeoToolActivateMgr_: import("ngeo/misc/ToolActivateMgr").ToolActivateMgr;
    /**
     * @type {?Feature<import('ol/geom/Geometry').default>}
     */
    selectedFeature: Feature<import("ol/geom/Geometry").default> | null;
    /**
     * @type {import('ol/Collection').default<Feature<import('ol/geom/Geometry').default>>}
     */
    selectedFeatures: import("ol/Collection").default<Feature<import("ol/geom/Geometry").default>>;
    /**
     * @type {import('ol/Collection').default<import('ol/interaction/Interaction').default>}
     */
    interactions_: import("ol/Collection").default<import("ol/interaction/Interaction").default>;
    /**
     * @type {import('ngeo/interaction/Modify').default}
     */
    modify_: import("ngeo/interaction/Modify").default;
    /**
     * @type {?import('ngeo/Menu').default}
     */
    menu_: import("ngeo/Menu").default | null;
    /**
     * @type {?import('ol/events').EventsKey}
     */
    menuListenerKey_: import("ol/events").EventsKey | null;
    /**
     * @type {import('ngeo/misc/ToolActivate').default}
     */
    modifyToolActivate: import("ngeo/misc/ToolActivate").default;
    /**
     * @type {import('ngeo/interaction/Translate').default}
     */
    translate_: import("ngeo/interaction/Translate").default;
    /**
     * @type {import('ngeo/interaction/Rotate').default}
     */
    rotate_: import("ngeo/interaction/Rotate").default;
    /**
     * @type {import('ngeo/misc/ToolActivate').default}
     */
    rotateToolActivate: import("ngeo/misc/ToolActivate").default;
    /**
     * @type {import('ngeo/misc/ToolActivate').default}
     */
    translateToolActivate: import("ngeo/misc/ToolActivate").default;
    /**
     * @type {import('ol/events').EventsKey[]}
     */
    listenerKeys_: import("ol/events").EventsKey[];
    /**
     * @type {import('ol/events').EventsKey[]}
     */
    mainListenerKeys_: import("ol/events").EventsKey[];
    /**
     * @type {import('ol/events').EventsKey[]}
     */
    mapListenerKeys_: import("ol/events").EventsKey[];
    /**
     * Flag used to determine whether the selection of a feature was made
     * from the selection of an item from the list or not (the map, contextual
     * menu, etc.)
     *
     * @type {boolean}
     */
    listSelectionInProgress_: boolean;
    /**
     * @type {string}
     */
    nameProperty: string;
    gettextCatalog_: angular.gettext.gettextCatalog;
    /**
     * @type {?import('ol/interaction/Draw').default}
     */
    drawPoint: import("ol/interaction/Draw").default | null;
    /**
     * @type {?import('ngeo/interaction/MeasureLength').default}
     */
    measureLength: import("ngeo/interaction/MeasureLength").default | null;
    /**
     * @type {?import('ngeo/interaction/MeasureArea').default}
     */
    measureArea: import("ngeo/interaction/MeasureArea").default | null;
    /**
     * @type {?import('ngeo/interaction/MeasureAzimut').default}
     */
    measureAzimut: import("ngeo/interaction/MeasureAzimut").default | null;
    /**
     * @type {?import('ol/interaction/Draw').default}
     */
    drawRectangle: import("ol/interaction/Draw").default | null;
    /**
     * @type {?import('ol/interaction/Draw').default}
     */
    drawText: import("ol/interaction/Draw").default | null;
    /**
     * Called upon initialization of the controller.
     */
    $onInit(): void;
    /**
     * Called upon destruction of the controller.
     */
    $onDestroy(): void;
    /**
     * Close menu, if it exists.
     *
     * @hidden
     */
    closeMenu_(): void;
    /**
     * Initialize interactions by setting them inactive and decorating them
     */
    initializeInteractions_(): void;
    /**
     * Register interactions by adding them to the map
     */
    registerInteractions_(): void;
    /**
     * Register interactions by removing them to the map
     */
    unregisterInteractions_(): void;
    /**
     * Called when the active property of the this directive changes. Manage
     * the activation/deactivation accordingly (event management, etc.)
     *
     * @param {boolean} active Whether the directive is active or not.
     */
    handleActiveChange_(active: boolean): void;
    /**
     * Method called when a selection occurs from the list, i.e. when an item in
     * the list of features is clicked. Called from the template, so no need to
     * update Angular's scope.
     *
     * @param {Feature<import('ol/geom/Geometry').default>} feature Feature to select.
     */
    selectFeatureFromList(feature: Feature<import("ol/geom/Geometry").default>): void;
    /**
     * @returns {Feature<import('ol/geom/Geometry').default>[]} Array.
     */
    getFeaturesArray(): Feature<import("ol/geom/Geometry").default>[];
    /**
     */
    clearFeatures(): void;
    /**
     * @param {Feature<import('ol/geom/Geometry').default>} feature The feature to remove from the selection.
     */
    removeFeature(feature: Feature<import("ol/geom/Geometry").default>): void;
    /**
     * @param {Event|import('ol/events/Event').default} evt Event.
     */
    handleFeaturesAdd_(evt: Event | import("ol/events/Event").default): void;
    /**
     * @param {Event|import('ol/events/Event').default} evt Event.
     */
    handleFeaturesRemove_(evt: Event | import("ol/events/Event").default): void;
    /**
     * Called when the mapSelectActive property changes.
     *
     * @param {boolean} active Whether the map select is active or not.
     */
    handleMapSelectActiveChange_(active: boolean): void;
    /**
     * @param {Event|import('ol/events/Event').default} evt Event.
     */
    handleMapClick_(evt: Event | import("ol/events/Event").default): void;
    /**
     * @param {Event|import('ol/events/Event').default} evt Event.
     */
    handleMapTouchStart_(evt: Event | import("ol/events/Event").default): void;
    /**
     * @param {Event|import('ol/events/Event').default} evt Event.
     */
    handleMapTouchEnd_(evt: Event | import("ol/events/Event").default): void;
    /**
     * @param {Event|import('ol/events/Event').default} evt Event.
     */
    handleMapContextMenu_(evt: Event | import("ol/events/Event").default): void;
    /**
     * @param {?number[]} vertexInfo Vertex information, in case a
     *     vertex was clicked using the right button.
     * @param {Event|import('ol/events/Event').default} evt Event.
     */
    handleMenuActionClick_(vertexInfo: number[] | null, evt: Event | import("ol/events/Event").default): void;
    /**
     * @param {Event|import('ol/events/Event').default} evt Event.
     */
    handleTranslateEnd_(evt: Event | import("ol/events/Event").default): void;
    /**
     * @param {Event|import('ol/events/Event').default} evt Event.
     */
    handleRotateEnd_(evt: Event | import("ol/events/Event").default): void;
    /**
     * @param {Event|import('ol/events/Event').default} evt Event.
     */
    handleMapInteractionsAdd_(evt: Event | import("ol/events/Event").default): void;
}
export namespace Controller {
    let $inject: string[];
}
export default myModule;
import angular from 'angular';
import Feature from 'ol/Feature';
/**
 * @type {angular.IModule}
 * @hidden
 */
declare const myModule: angular.IModule;
