@@ -6,7 +6,16 @@ import {
6
6
StringBool ,
7
7
UnitsOfDistance ,
8
8
} from './base' ;
9
- import { CostingModels , CostingOptions } from './costing' ;
9
+ import {
10
+ BicycleCostingOptions ,
11
+ CostingModels ,
12
+ CostingOptions ,
13
+ MotorScooterCostingOptions ,
14
+ MotorcycleCostingOptions ,
15
+ MotorizedVehicleCostingOptions ,
16
+ PedestrianCostingOptions ,
17
+ TruckCostingOptions ,
18
+ } from './costing' ;
10
19
import { SupportedLanguageAlias , SupportedLanguageTags } from './languages' ;
11
20
import { LatLng , RequestLocation } from './locations' ;
12
21
import { TraceAttributesFilter , TraceOptions } from './tracing' ;
@@ -79,14 +88,71 @@ export interface BaseRouteRequest {
79
88
prioritize_bidirectional ?: StringBool ;
80
89
}
81
90
82
- export interface TurnByTurnRouteRequest extends BaseRouteRequest {
83
- costing : CostingModels ;
91
+ export interface BicycleRouteRequest extends BaseRouteRequest {
92
+ costing : 'bicycle' ;
93
+ costing_options ?: { bicycle : BicycleCostingOptions } ;
94
+ }
95
+
96
+ export interface PedestrianRouteRequest extends BaseRouteRequest {
97
+ costing : 'pedestrian' ;
98
+ costing_options ?: { pedestrian : PedestrianCostingOptions } ;
99
+ }
100
+
101
+ export interface AutoRouteRequest extends BaseRouteRequest {
102
+ costing : 'auto' ;
103
+ costing_options ?: { auto : MotorizedVehicleCostingOptions } ;
104
+ }
105
+
106
+ export interface BusRouteRequest extends BaseRouteRequest {
107
+ costing : 'bus' ;
108
+ costing_options ?: { bus : MotorizedVehicleCostingOptions } ;
109
+ }
110
+
111
+ export interface TaxiRouteRequest extends BaseRouteRequest {
112
+ costing : 'taxi' ;
113
+ costing_options ?: { taxi : MotorizedVehicleCostingOptions } ;
114
+ }
115
+
116
+ export interface TruckRouteRequest extends BaseRouteRequest {
117
+ costing : 'truck' ;
118
+ costing_options ?: { truck : TruckCostingOptions } ;
84
119
}
85
120
86
- export interface OptimizedRouteRequest extends BaseRouteRequest {
87
- costing : Extract < CostingModels , 'auto' | 'bicycle' | 'pedestrian' > ;
121
+ export interface MotorCycleRouteRequest extends BaseRouteRequest {
122
+ costing : 'motorcycle' ;
123
+ costing_options ?: { motorcycle : MotorcycleCostingOptions } ;
88
124
}
89
125
126
+ export interface MotorScooterRouteRequest extends BaseRouteRequest {
127
+ costing : 'motor_scooter' ;
128
+ costing_options ?: { motor_scooter : MotorScooterCostingOptions } ;
129
+ }
130
+
131
+ export interface MultiModalRouteRequest extends BaseRouteRequest {
132
+ costing : 'multimodal' ;
133
+ }
134
+
135
+ export interface BikeShareRouteRequest extends BaseRouteRequest {
136
+ costing : 'bikeshare' ;
137
+ }
138
+
139
+ export type TurnByTurnRouteRequest =
140
+ | BicycleRouteRequest
141
+ | PedestrianRouteRequest
142
+ | AutoRouteRequest
143
+ | BusRouteRequest
144
+ | TaxiRouteRequest
145
+ | TruckRouteRequest
146
+ | MotorCycleRouteRequest
147
+ | MotorScooterRouteRequest
148
+ | BikeShareRouteRequest
149
+ | MultiModalRouteRequest ;
150
+
151
+ export type OptimizedRouteRequest =
152
+ | AutoRouteRequest
153
+ | BicycleRouteRequest
154
+ | PedestrianRouteRequest ;
155
+
90
156
export interface IsochroneBaseContour {
91
157
color ?: string ;
92
158
}
@@ -99,11 +165,12 @@ export interface IsochroneDistanceContour extends IsochroneBaseContour {
99
165
distance ?: number ;
100
166
}
101
167
102
- export interface IsochroneBaseRequest extends BaseRouteRequest {
103
- costing : Extract <
104
- CostingModels ,
105
- 'auto' | 'bicycle' | 'pedestrian' | 'multimodal'
106
- > ;
168
+ export type IsochroneBaseRequest = (
169
+ | AutoRouteRequest
170
+ | BicycleRouteRequest
171
+ | PedestrianRouteRequest
172
+ | MultiModalRouteRequest
173
+ ) & {
107
174
date_time ?: DateTime ;
108
175
id ?: string ;
109
176
/*
@@ -129,7 +196,7 @@ export interface IsochroneBaseRequest extends BaseRouteRequest {
129
196
* The Default value is false
130
197
*/
131
198
show_locations ?: boolean ;
132
- }
199
+ } ;
133
200
134
201
export type IsochroneTimeRequest = IsochroneBaseRequest & {
135
202
contours : IsochroneTimeContour [ ] ;
0 commit comments