/**
 * @param {angular.IScope} $scope Scope.
 * @param {import('ngeo/misc/ToolActivateMgr').ToolActivateMgr} ngeoToolActivateMgr Ngeo ToolActivate
 *    manager service.
 * @param {import('gmf/options').gmfObjectEditingToolsOptions} gmfObjectEditingToolsOptions The options.
 * @class
 * @hidden
 * @ngdoc controller
 * @ngname GmfObjecteditingtoolsController
 */
export function Controller($scope: angular.IScope, ngeoToolActivateMgr: import("ngeo/misc/ToolActivateMgr").ToolActivateMgr, gmfObjectEditingToolsOptions: import("gmf/options").gmfObjectEditingToolsOptions): void;
export class Controller {
    /**
     * @param {angular.IScope} $scope Scope.
     * @param {import('ngeo/misc/ToolActivateMgr').ToolActivateMgr} ngeoToolActivateMgr Ngeo ToolActivate
     *    manager service.
     * @param {import('gmf/options').gmfObjectEditingToolsOptions} gmfObjectEditingToolsOptions The options.
     * @class
     * @hidden
     * @ngdoc controller
     * @ngname GmfObjecteditingtoolsController
     */
    constructor($scope: angular.IScope, ngeoToolActivateMgr: import("ngeo/misc/ToolActivateMgr").ToolActivateMgr, gmfObjectEditingToolsOptions: import("gmf/options").gmfObjectEditingToolsOptions);
    /**
     * @type {boolean}
     */
    active: boolean;
    /**
     * @type {boolean}
     */
    copyFromActive: boolean;
    /**
     * @type {boolean}
     */
    deleteFromActive: boolean;
    /**
     * @type {?import('ol/Feature').default<import('ol/geom/Geometry').default>}
     */
    feature: import("ol/Feature").default<import("ol/geom/Geometry").default> | null;
    /**
     * @type {?string}
     */
    geomType: string | null;
    /**
     * @type {?import('ol/Map').default}
     */
    map: import("ol/Map").default | null;
    /**
     * @type {?ObjectEditingQueryableLayerInfo}
     */
    queryableLayerInfo: ObjectEditingQueryableLayerInfo | null;
    /**
     * @type {?string}
     */
    process: string | null;
    /**
     * @type {boolean}
     */
    requiresLayer: boolean;
    /**
     * @type {?import('ol/Collection').default<import('ol/Feature').default<import('ol/geom/Geometry').default>>}
     */
    sketchFeatures: import("ol/Collection").default<import("ol/Feature").default<import("ol/geom/Geometry").default>> | null;
    /**
     * @type {angular.IScope}
     */
    scope_: angular.IScope;
    /**
     * @type {import('ngeo/misc/ToolActivateMgr').ToolActivateMgr}
     */
    ngeoToolActivateMgr_: import("ngeo/misc/ToolActivateMgr").ToolActivateMgr;
    /**
     * @type {string}
     */
    geomTypePolygon: string;
    /**
     * @type {string[]}
     */
    toolActiveNames_: string[];
    /**
     * @type {boolean}
     */
    drawActive: boolean;
    /**
     * @type {boolean}
     */
    eraseActive: boolean;
    /**
     * @type {boolean}
     */
    drawTriangleActive: boolean;
    /**
     * @type {number}
     */
    triangleAngle: number;
    /**
     * @type {number}
     */
    triangleRadius: number;
    /**
     * Init the controller
     */
    $onInit(): void;
    /**
     * Register a tool using its `active` property name and what behavior it should
     * have when it is active and a sketch feature is added
     *
     * This method:
     *  - registers a watcher on the tool active property to manage this directive
     *    main active property, i.e the directive is considered active when one
     *    of the tools is active,  otherwise it's not active.
     *
     *  - creates a `ngeo.misc.ToolActivate` object and registers it in a group so
     *    that only one tool can be active at a time
     *
     * @param {string} toolActiveName The name of the active property for the tool.
     * @param {string} process The behavior the tool should use when active
     *     and when sketch features are added.
     * @param {boolean} [opt_requiresLayer] Whether the tool requires the queryable
     *     layer or not. Defaults to `false`.
     */
    registerTool_(toolActiveName: string, process: string, opt_requiresLayer?: boolean): void;
    /**
     * Called when any of the tool 'active' property changes.
     *
     * @param {string} process The behavior the tool should use when active.
     * @param {boolean} requiresLayer Whether the tool requires the queryable
     *     layer or not.
     * @param {boolean|undefined} newVal New value.
     */
    handleToolActiveChange_(process: string, requiresLayer: boolean, newVal: boolean | undefined): void;
    handleDestroy_(): void;
}
export namespace Controller {
    let $inject: string[];
}
/**
 * *
 */
export type ObjecteditingProcessType = string;
export namespace ObjecteditingProcessType {
    let ADD: string;
    let DELETE: string;
}
export default myModule;
export type ObjectEditingQueryableLayerInfo = {
    ogcServer: import("gmf/themes").GmfOgcServer;
    layerNode: import("gmf/themes").GmfLayerWMS;
};
import angular from 'angular';
/**
 * @type {angular.IModule}
 * @hidden
 */
declare const myModule: angular.IModule;
