import type { GeocodeFeature, GeocodeOptions, GeocodeResponse } from '@p-j/geocodejson-types'; import type { BANGeocodeRequestParams, BANGeocodeResponse, BANProperties } from './api-adresse.type'; export type GeocodeParams = ({ address: string; q?: string; } | { address?: string; q: string; }) & Omit & Omit; export declare const BANBaseUrl = "https://api-adresse.data.gouv.fr/search"; /** * Geocode an address using the French Base Adresse Nationale API * * __Common parameter to all geocoder__ * @param params.address The street address to geocode (avoiding business names, building names etc...) * * __Parameters specific to BAN API__ * @param params.q The query string to be geocoded: a placename/address. This is superseded by params.address. * @param params.limit The maximum number of results to be returned. * @param params.autocomplete Toggle the autocomplete behavior. * @param params.type The expected return type (one of: `housenumber`, `street`, `locality`, `municipality`) * @param params.lat Latitude in degree, together with `lon` they can skew results toward a specific location * @param params.lon Longitude in degree * @param params.citycode Restrain the search to a given city (uses INSEE city code) * @param params.postcode Restrain the search to a given postal code * @see https://adresse.data.gouv.fr/api-doc/adresse#search */ export declare function geocode(params: GeocodeParams): Promise; /** * Generate fetch argument to successfully geocode the address using the provided options * @param params.q The query string to be geocoded: a placename/address. * @param params.limit The maximum number of results to be returned. * @param params.autocomplete Toggle the autocomplete behavior. * @param params.type The expected return type (one of: `housenumber`, `street`, `locality`, `municipality`) * @param params.lat Latitude in degree, together with `lon` they can skew results toward a specific location * @param params.lon Longitude in degree * @param params.citycode Restrain the search to a given city (uses INSEE city code) * @param params.postcode Restrain the search to a given postal code * @see https://adresse.data.gouv.fr/api-doc/adresse#search */ export declare function getFetchArgs(params: BANGeocodeRequestParams): { url: string; options: { method: string; }; }; export declare function parse(response: BANGeocodeResponse): GeocodeResponse<{}, BANProperties>; /** * Convert BAN GeoJSON feature to a GeocodeJSON one */ export declare function parseResult(result: BANGeocodeResponse['features'][number]): GeocodeFeature<{}, BANProperties>;