/**
 * Provides a service for interacting with the URL in the
 * browser address bar.
 *
 * WARNING: because of a bug in Angular this service is not compatible with
 * the $location service. This further means that service is not compatible
 * with the $anchorScroll and $route services, and with the ng-include and
 * ng-view directives (which are based on the $anchorScroll and $route
 * services). See <https://github.com/angular/angular.js/issues/1417>.
 *
 * See our live example: [../examples/permalink.html](../examples/permalink.html)
 *
 * @param {Location} location Location.
 * @param {History} history History.
 * @class
 * @ngdoc service
 * @ngname ngeoLocation
 * @hidden
 */
export function StatemanagerLocation(location: Location, history: History): void;
export class StatemanagerLocation {
    /**
     * Provides a service for interacting with the URL in the
     * browser address bar.
     *
     * WARNING: because of a bug in Angular this service is not compatible with
     * the $location service. This further means that service is not compatible
     * with the $anchorScroll and $route services, and with the ng-include and
     * ng-view directives (which are based on the $anchorScroll and $route
     * services). See <https://github.com/angular/angular.js/issues/1417>.
     *
     * See our live example: [../examples/permalink.html](../examples/permalink.html)
     *
     * @param {Location} location Location.
     * @param {History} history History.
     * @class
     * @ngdoc service
     * @ngname ngeoLocation
     * @hidden
     */
    constructor(location: Location, history: History);
    /**
     * @type {History}
     */
    history_: History;
    /**
     * @type {string|undefined}
     */
    schema_: string | undefined;
    /**
     * @type {string|undefined}
     */
    domain_: string | undefined;
    /**
     * @type {number|undefined}
     */
    port_: number | undefined;
    /**
     * @type {string|undefined}
     */
    path_: string | undefined;
    /**
     * @type {Object<string, string>}
     */
    queryData_: {
        [x: string]: string;
    };
    /**
     * @type {Object<string, string>}
     */
    fragment_: {
        [x: string]: string;
    };
    /**
     * Get the location's current path.
     *
     * @returns {string|undefined} The path.
     */
    getPath(): string | undefined;
    /**
     * Get the location's URI as a string
     *
     * @returns {string} The URI.
     */
    getUriString(): string;
    /**
     * Check if a param exists in the location's URI.
     *
     * @param {string} key Param key.
     * @returns {boolean} True if the param exists.
     */
    hasParam(key: string): boolean;
    /**
     * Check if a param exists in the fragment of the location's URI.
     *
     * @param {string} key Param key.
     * @returns {boolean} True if the param exists.
     */
    hasFragmentParam(key: string): boolean;
    /**
     * Get a param in the location's URI.
     *
     * @param {string} key Param key.
     * @returns {string|undefined} Param value.
     */
    getParam(key: string): string | undefined;
    /**
     * Get a param from the fragment of the location's URI.
     *
     * @param {string} key Param key.
     * @returns {string|undefined} Param value.
     */
    getFragmentParam(key: string): string | undefined;
    /**
     * Get a param in the location's URI as integer. If the entry does not exist,
     * or if the value can not be parsed as integer, `undefined` is returned.
     *
     * @param {string} key Param key.
     * @returns {number|undefined} Param value.
     */
    getParamAsInt(key: string): number | undefined;
    /**
     * Get a param in the location's URI as a floating point number.
     * If the entry does not exist, or if the value can not be parsed,
     * `undefined` is returned.
     *
     * @param {string} key Param key.
     * @returns {number|undefined} Param value.
     */
    getParamAsFloat(key: string): number | undefined;
    /**
     * Get a param from the fragment of the location's URI as integer. If the entry
     * does not exist, or if the value can not be parsed as integer, `undefined` is returned.
     *
     * @param {string} key Param key.
     * @returns {number|undefined} Param value.
     */
    getFragmentParamAsInt(key: string): number | undefined;
    /**
     * Get an array with all existing param's keys in the location's URI.
     *
     * @returns {string[]} Param keys.
     */
    getParamKeys(): string[];
    /**
     * Get an array with all existing param's keys from the fragment of the location's URI.
     *
     * @returns {string[]} Param keys.
     */
    getFragmentParamKeys(): string[];
    /**
     * Get an array with all existing param's keys in the location's URI that start
     * with the given prefix.
     *
     * @param {string} prefix Key prefix.
     * @returns {string[]} Param keys.
     */
    getParamKeysWithPrefix(prefix: string): string[];
    /**
     * Get an array with all existing param's keys from the fragment of the location's URI
     * that start with the given prefix.
     *
     * @param {string} prefix Key prefix.
     * @returns {string[]} Param keys.
     */
    getFragmentParamKeysWithPrefix(prefix: string): string[];
    /**
     * Set or create a param in the location's URI.
     *
     * @param {Object<string, string>} params Parameters.
     */
    updateParams(params: {
        [x: string]: string;
    }): void;
    /**
     * Set or create a param in the fragment of the location's URI.
     *
     * @param {Object<string, string>} params Parameters.
     */
    updateFragmentParams(params: {
        [x: string]: string;
    }): void;
    /**
     * Delete a param in the location's URI.
     *
     * @param {string} key Param key.
     */
    deleteParam(key: string): void;
    /**
     * Delete a param int the fragment of the location's URI.
     *
     * @param {string} key Param key.
     */
    deleteFragmentParam(key: string): void;
    /**
     * Refresh the the location's URI.
     */
    refresh(): void;
    /**
     * Set a new path for this location.
     *
     * @param {string} path Path.
     */
    setPath(path: string): void;
}
/**
 * The factory creating the ngeo Location service.
 *
 * @param {angular.IScope} $rootScope The root scope.
 * @param {angular.IWindowService} $window Angular window service.
 * @returns {StatemanagerLocation} The ngeo location service.
 * @hidden
 */
export function LocationFactory($rootScope: angular.IScope, $window: angular.IWindowService): StatemanagerLocation;
export namespace LocationFactory {
    let $inject: string[];
}
export default myModule;
import angular from 'angular';
/**
 * @type {angular.IModule}
 * @hidden
 * FIXME add utils dependencies.
 */
declare const myModule: angular.IModule;
