import { type DiscoverPlacesResponse, type GeocodingResponse, type ReverseGeocodingResponse, type POICategoriesResponse, type Circle } from "@tomtom-org/maps-sdk/services"; import type { Polygon, Position } from "geojson"; import { type Places, type Routes } from "@tomtom-org/maps-sdk/core"; import type * as SearchSchema from "../../schemas/search/searchSchema"; export type FuzzySearchOptions = Pick; export type PoiSearchOptions = Pick; export type GeocodeOptions = Pick; export type ReverseGeocodeOptions = Pick; export type NearbySearchOptions = Pick; /** The paged searches' fields: language, geopolitical view and the page to continue. */ type PlacesFieldKey = "language" | "view" | "cursor"; /** Optional result fields fuzzy, POI and nearby search can add (tool parameters of the same name). */ type SearchExtraFieldKey = "mapcodes" | "extendedPostalCodesFor" | "openingHours" | "timeZone" | "relatedPois"; /** POI filters every places search but geocoding takes; the API applies them to the whole result set. */ declare const POI_FILTER_KEYS: readonly ["poiCategories", "brandSet", "connectorSet", "fuelSet", "minPowerKW", "maxPowerKW"]; type PoiFilterKey = (typeof POI_FILTER_KEYS)[number]; /** * Performs a fuzzy search for places, addresses, and POIs with advanced options */ export declare function fuzzySearch(query: string, options?: FuzzySearchOptions): Promise; /** * Search specifically for Points of Interest (POIs) */ export declare function poiSearch(query: string, options?: PoiSearchOptions): Promise; /** * Geocodes an address to coordinates */ export declare function geocodeAddress(query: string, options?: GeocodeOptions): Promise; /** * Reverse geocodes coordinates to an address. * @param position [longitude, latitude] (GeoJSON convention) */ export declare function reverseGeocode(position: Position, options?: ReverseGeocodeOptions): Promise; /** * Searches for points of interest (POIs) near a location. * @param position [longitude, latitude] (GeoJSON convention) */ export declare function searchNearby(position: Position, options?: NearbySearchOptions): Promise; /** * Retrieves POI categories, optionally filtered by keywords */ export declare function fetchPOICategories(filters?: string[]): Promise; export type AreaSearchOptions = Pick; /** The area to search: a circle, or a polygon drawn from the polygon or bounding box inputs. */ export type SearchArea = { kind: "circle"; circle: Circle; } | { kind: "polygon" | "boundingBox"; polygon: Polygon; }; /** * The search area from the tool inputs: center and radius, a polygon or a bounding * box. Throws when more than one is given. The handler draws the same area on the map. */ export declare function toSearchArea(params: Pick): SearchArea | undefined; /** * Search for POIs within a geometric area: a circle (center + radius), a * polygon, or a bounding box. Uses SDK's discoverPlaces() with that geometry. */ export declare function searchInArea(params: AreaSearchOptions): Promise; export type EVSearchOptions = Pick; /** * Search for EV charging stations using TomTom Maps SDK. * * Uses SDK's discoverPlaces() filtered to charging locations. */ export declare function searchEVStations(params: EVSearchOptions): Promise; export interface SearchAlongRouteResult { route: Routes; pois: DiscoverPlacesResponse; summary: { routeLengthMeters: number | undefined; routeTravelTimeSeconds: number | undefined; poiCount: number; corridorWidthMeters: number; }; } export type SearchAlongRouteOptions = Pick; /** * Search for POIs along a route corridor. * * Two-step process using SDK: * 1. calculateRoute() to get the route LineString geometry * 2. discoverPlaces() with the route geometry as a search corridor */ export declare function searchAlongRoute(params: SearchAlongRouteOptions): Promise; export {}; //# sourceMappingURL=searchService.d.ts.map