///
import { GeoRoutesClient, CalculateRoutesResponse } from "@aws-sdk/client-geo-routes";
import { MigrationPlacesService } from "../places";
export declare class MigrationDirectionsService {
_client: GeoRoutesClient;
_placesService: MigrationPlacesService;
route(options: google.maps.DirectionsRequest, callback?: (a: google.maps.DirectionsResult | null, b: google.maps.DirectionsStatus) => void): Promise;
/**
* Helper function to execute route calculation and handle responses
*
* This function encapsulates the common logic for calculating routes:
*
* 1. Creates and sends a CalculateRoutesCommand
* 2. Converts Amazon Location response to Google Maps format
* 3. Handles callbacks and promise resolution
*
* @param resolve - The resolve function from the outer Promise in "route"
* @param reject - The reject function from the outer Promise in "route"
* @param input - The input parameters for the CalculateRoutesCommand
* @param options - The original "route" request options
* @param originResponse - The resolved origin location
* @param destinationResponse - The resolved destination location
* @param unitSystem - The unit system to use for this "route"
* @param callback - Optional callback function to be called with the result
* @param waypointResponses - Optional array of resolved waypoint locations
* @param waypointOrder - Optional array containing the order of waypoints after optimization
*/
private _executeRouteCalculation;
_convertAmazonResponseToGoogleResponse(response: CalculateRoutesResponse, options: google.maps.DirectionsRequest, originResponse: any, destinationResponse: any, unitSystem: any, waypointResponses?: any, waypointOrder?: number[]): google.maps.DirectionsResult;
/**
* Gets a summary string of the route based on major road or route names.
*
* Behavior:
*
* - Returns empty string if no road labels exist or no valid road names are found
* - Returns a single road name if only one valid road name exists
* - Returns a single road name if first and last valid road names are identical
* - Returns "Road A and Road B" format when first and last valid road names are different
*
* Examples:
*
* - [null, "Second", "Third"] -> "Second and Third"
* - ["First", null, "Third"] -> "First and Third"
* - [null, "Same", "Same"] -> "Same"
* - ["Only"] -> "Only"
* - [null, undefined, "Valid"] -> "Valid"
* - [null, undefined] -> ""
*
* @param route The route containing MajorRoadLabels
* @returns Formatted summary string of the route
*/
private _getSummary;
_constructGeocodedWaypointsFromResponses(originResponse: any, destinationResponse: any, waypointResponses?: any): google.maps.DirectionsGeocodedWaypoint[];
_constructGeocodedWaypoint(locationResponse: any): Record<"place_id", unknown> | Record<"types", unknown>;
_getPath(coordinates: number[][]): google.maps.LatLng[];
_getPolyline(coordinates: number[][]): string;
}