import { RequestOptions, RestClient } from '@iwpnd/rip-ts';
import { ExtendedStatusResponse, IsochroneDistanceRequest, IsochroneResponse, IsochroneTimeRequest, Leg, MapMatchingPolylineRequest, MapMatchingShapeRequest, MapMatchingTraceRouteResponse, OptimizedRouteRequest, StatusResponse, Trip, TripResponse, TurnByTurnRouteRequest } from './types';
export declare class Valhalla extends RestClient {
    constructor(url?: string, options?: RequestOptions);
    /**
     *
     * Get a turn by turn route
     *
     * @public
     * @remarks
     * Returns a turn by turn route based on
     * the input {@link TurnByTurnRouteRequest}
     *
     * @param query - {@link TurnByTurnRouteRequest}
     *
     * @returns {@link Trip}
     */
    route<T extends Leg = Leg>(query: TurnByTurnRouteRequest): Promise<Trip<T>>;
    /**
     *
     * Get an optimized route
     *
     * @public
     * @remarks
     * Get an optimized route, a route between two or more locations,
     * based on the input {@link OptimizedRouteRequest}.
     *
     * @param query - {@link OptimizedRouteRequest}
     *
     * @returns {@link TripResponse}
     */
    optimizedRoute<T extends Leg>(query: OptimizedRouteRequest): Promise<TripResponse<T>>;
    /**
     *
     * Get one or more Isochrone(s) around an input location.
     *
     * @public
     * @remarks
     * Get one or more Isochrones based on the input {@link IsochroneRouteRequest}.
     *
     * @param query - {@link IsochroneRouteRequest}
     *
     * @returns {@link IsochroneResponse}
     */
    isochrone(query: IsochroneTimeRequest | IsochroneDistanceRequest): Promise<IsochroneResponse>;
    /**
     *
     * Mapmatch an input route to the road network
     *
     * @public
     * @remarks
     * Match an input route to the road network,
     * based on the input {@link MapMatchingShapeRequest} | {@MapMatchingPolylineRequest}.
     *
     * @param query - {@link MapMatchingShapeRequest} | {@link MapMatchingPolylineRequest}
     *
     * @returns {@link MapMatchingTraceRouteResponse}
     */
    traceRoute<T extends Leg>(query: MapMatchingShapeRequest | MapMatchingPolylineRequest): Promise<MapMatchingTraceRouteResponse<T>>;
    /**
     *
     * Get the valhalla server status
     *
     * @public
     * @remarks
     * Get the valhalla service status,
     * If service_limits.status.allow_verbose is set to true, will also
     * return addtional information if verbose is set to true.
     *
     * @param verbose (boolean): default false
     *
     * @returns {@link StatusResponse} | {@link ExtendedStatusResponse}
     */
    status(verbose?: boolean): Promise<StatusResponse | ExtendedStatusResponse>;
}
//# sourceMappingURL=valhalla.d.ts.map