/**
 * Get Nearest POI API Types
 *
 * /poi/nearest endpoint
 */
import { Coordinates, POIProperties, RoutingInfo } from './common';
/**
 * Distance-based POI result
 */
export interface NearestPOIResult extends POIProperties {
    /**
     * Geographic coordinates
     */
    coordinates: Coordinates;
    /**
     * Distance from query point in meters
     */
    distanceMeters: number;
    /**
     * Bearing from query point in degrees
     */
    bearingDegrees?: number;
    /**
     * Routing information for different transport modes
     * Only included if routing parameter is true
     */
    routing?: RoutingInfo;
}
/**
 * Get nearest POI query parameters
 */
export interface GetNearestPOIQueryParams {
    /**
     * Latitude coordinate
     */
    lat: number;
    /**
     * Longitude coordinate
     */
    lng: number;
    /**
     * Comma-separated list of POI category IDs (e.g., "RETAIL,FERRY,BUS")
     * If not provided or empty, returns POIs of all categories
     */
    types?: string;
    /**
     * Maximum number of results
     */
    limit?: number;
    /**
     * Search radius in meters
     */
    radius?: number;
    /**
     * Include routing information for car, bike, and foot
     */
    routing?: boolean;
}
/**
 * Query metadata for nearest POI
 */
export interface NearestPOIMetadata {
    /**
     * Query coordinates
     */
    queryPoint: Coordinates;
    /**
     * Search radius used
     */
    radiusMeters: number;
    /**
     * Total POIs found
     */
    totalFound: number;
    /**
     * Applied category filters
     */
    categoryFilters?: string[];
    /**
     * Query execution time in milliseconds
     */
    executionTimeMs?: number;
}
/**
 * Get nearest POI response
 */
export interface GetNearestPOIResponse {
    /**
     * Array of nearest POI results
     */
    results: NearestPOIResult[];
    /**
     * Query metadata
     */
    meta: NearestPOIMetadata;
}
