/**
 * @typedef {Object} Item
 * @property {string} label
 * @property {string} label_no_html
 * @property {string} label_simple
 * @property {string} featureId
 * @property {number} x
 * @property {number} y
 * @property {string} geom_st_box2d
 * @property {olGeomPoint} geometry
 * @property {?number[]} bbox
 */
/**
 * @typedef {Object} Result
 * @property {Item} attrs
 */
/**
 * @typedef {Object} Results
 * @property {Result[]} results
 */
/**
 * @typedef {Object} LocationSearchOptions
 * @property {number} [limit=50] The maximum number of results to retrieve per request.
 * @property {string} [origins] A comma separated list of origins.
 * Possible origins are: zipcode,gg25,district,kantone,gazetteer,address,parcel
 * Per default all origins are used.
 * @property {import('ol/proj/Projection').default} [targetProjection] Target projection.
 * @property {Bloodhound.BloodhoundOptions<Results>} [options] Optional Bloodhound options. If `undefined`,
 * the default Bloodhound config will be used.
 * @property {Bloodhound.RemoteOptions<Results>} [remoteOptions] Optional Bloodhound remote options.
 * Only used if `remote` is not defined in `options`.
 * @property {function(string, JQueryAjaxSettings): JQueryAjaxSettings} [prepare] Optional function to
 * prepare the request.
 */
/**
 * @param {LocationSearchOptions} [opt_options] Options.
 * @returns {Bloodhound<olFeature<import('ol/geom/Geometry').default>[]>} The Bloodhound object.
 * @hidden
 */
export function createLocationSearchBloodhound(opt_options?: LocationSearchOptions): Bloodhound<olFeature<import("ol/geom/Geometry").default>[]>;
/**
 * Provides a function that creates a Bloodhound engine
 * for the GeoAdmin Location Search API, which creates `ol.Feature` objects
 * as suggestions.
 *
 * See: http://api3.geo.admin.ch/services/sdiservices.html#search
 *
 * Example:
 *
 *     let bloodhound = ngeoCreateLocationSearchBloodhound({
 *       targetProjection: ol.proj.get('EPSG:3857'),
 *       limit: 10
 *     });
 *     bloodhound.initialize();
 *
 * @typedef {function(LocationSearchOptions=):Bloodhound<olFeature<import('ol/geom/Geometry').default>[]>}
 * @ngdoc service
 * @ngname search.createLocationSearchBloodhound
 * @private
 */
export function createLocationSearchBloodhoundFunction(): void;
/**
 * Provides a function that creates a Bloodhound engine
 * for the GeoAdmin Location Search API, which creates `ol.Feature` objects
 * as suggestions.
 *
 * See: http://api3.geo.admin.ch/services/sdiservices.html#search
 *
 * Example:
 *
 *     let bloodhound = ngeoCreateLocationSearchBloodhound({
 *       targetProjection: ol.proj.get('EPSG:3857'),
 *       limit: 10
 *     });
 *     bloodhound.initialize();
 */
export type createLocationSearchBloodhoundFunction = (arg0: LocationSearchOptions | undefined) => Bloodhound<olFeature<import("ol/geom/Geometry").default>[]>;
export default myModule;
export type Item = {
    label: string;
    label_no_html: string;
    label_simple: string;
    featureId: string;
    x: number;
    y: number;
    geom_st_box2d: string;
    geometry: olGeomPoint;
    bbox: number[] | null;
};
export type Result = {
    attrs: Item;
};
export type Results = {
    results: Result[];
};
export type LocationSearchOptions = {
    /**
     * The maximum number of results to retrieve per request.
     */
    limit?: number;
    /**
     * A comma separated list of origins.
     * Possible origins are: zipcode,gg25,district,kantone,gazetteer,address,parcel
     * Per default all origins are used.
     */
    origins?: string;
    /**
     * Target projection.
     */
    targetProjection?: import("ol/proj/Projection").default;
    /**
     * Optional Bloodhound options. If `undefined`,
     * the default Bloodhound config will be used.
     */
    options?: Bloodhound.BloodhoundOptions<Results>;
    /**
     * Optional Bloodhound remote options.
     * Only used if `remote` is not defined in `options`.
     */
    remoteOptions?: Bloodhound.RemoteOptions<Results>;
    /**
     * Optional function to
     * prepare the request.
     */
    prepare?: (arg0: string, arg1: JQueryAjaxSettings) => JQueryAjaxSettings;
};
import olFeature from 'ol/Feature';
/**
 * @type {angular.IModule}
 * @hidden
 */
declare const myModule: angular.IModule;
import olGeomPoint from 'ol/geom/Point';
import angular from 'angular';
