@moxi.gmbh/moxi-typescriptmodels 0.1.2801-test-server → 0.1.2811-9b4433b-test-server

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -481,6 +481,7 @@ export namespace com.moxi.api.authentication.common.RefreshTokenService {
481
481
  export interface RefreshTokenData {
482
482
  expiresAt?: string;
483
483
  hashedToken?: string;
484
+ impersonator?: string;
484
485
  userId?: string;
485
486
  }
486
487
 
@@ -522,6 +523,24 @@ export namespace com.moxi.api.authentication.onetimepassword {
522
523
 
523
524
  }
524
525
 
526
+ export namespace com.moxi.api.billing {
527
+
528
+ export interface BillingCodeGenerator {
529
+ }
530
+
531
+ }
532
+
533
+ export namespace com.moxi.api.billing.common {
534
+
535
+ /**
536
+ * 6-digit position number for medical transport billing
537
+ */
538
+ export interface BillingCode {
539
+ code?: string;
540
+ }
541
+
542
+ }
543
+
525
544
  export namespace com.moxi.api.common {
526
545
 
527
546
  export interface DateRange {
@@ -642,25 +661,6 @@ export namespace com.moxi.api.common.firebase {
642
661
 
643
662
  }
644
663
 
645
- export namespace com.moxi.api.common.freshdesk {
646
-
647
- export interface SendFreshdeskNewTicket {
648
- email?: string;
649
- message?: string;
650
- subject?: string;
651
- }
652
-
653
- }
654
-
655
- export namespace com.moxi.api.common.kchat {
656
-
657
- export interface SendKChat {
658
- channel?: com.moxi.api.common.kchat.KChatChannel;
659
- message?: string;
660
- }
661
-
662
- }
663
-
664
664
  export namespace com.moxi.api.common.mail {
665
665
 
666
666
  export interface Attachment {
@@ -809,9 +809,36 @@ export namespace com.moxi.api.geojson.common.GeoJson {
809
809
 
810
810
  export namespace com.moxi.api.grpc {
811
811
 
812
- export interface RegisterEinsatz {
813
- einsatzNumber?: string;
814
- rideId?: string;
812
+ export interface CeliosStreamPulse {
813
+ target?: string;
814
+ type?: com.moxi.api.grpc.common.GrpcStreamType;
815
+ }
816
+
817
+ }
818
+
819
+ export namespace com.moxi.api.grpc {
820
+
821
+ export interface StartCeliosStream {
822
+ target?: string;
823
+ type?: com.moxi.api.grpc.common.GrpcStreamType;
824
+ }
825
+
826
+ }
827
+
828
+ export namespace com.moxi.api.grpc {
829
+
830
+ export interface StopCeliosStream {
831
+ target?: string;
832
+ type?: com.moxi.api.grpc.common.GrpcStreamType;
833
+ }
834
+
835
+ }
836
+
837
+ export namespace com.moxi.api.grpc.common {
838
+
839
+ export interface GrpcStreamId {
840
+ target?: string;
841
+ type?: com.moxi.api.grpc.common.GrpcStreamType;
815
842
  }
816
843
 
817
844
  }
@@ -951,26 +978,46 @@ export namespace com.moxi.api.longpoll.common {
951
978
 
952
979
  }
953
980
 
954
- export namespace com.moxi.api.optimization {
981
+ export namespace com.moxi.api.optimizer {
955
982
 
956
- export interface CreateOptimizationPlan extends com.moxi.api.optimization.OptimizerMessage {
957
- accountOrTeam?: com.moxi.api.permissions.common.AccountOrTeamRef;
958
- timeRange?: com.moxi.api.common.InstantRange;
983
+ export interface CancelOptimization {
984
+ problemId?: string;
985
+ }
986
+
987
+ }
988
+
989
+ export namespace com.moxi.api.optimizer {
990
+
991
+ export interface CheckOptimizationSchedule {
992
+ failures?: number;
993
+ problemId?: string;
994
+ target?: string;
995
+ type?: com.moxi.api.grpc.common.GrpcStreamType;
996
+ }
997
+
998
+ }
999
+
1000
+ export namespace com.moxi.api.optimizer {
1001
+
1002
+ export interface GetOptimizationStatus {
1003
+ problemId?: string;
959
1004
  }
960
1005
 
961
1006
  }
962
1007
 
963
- export namespace com.moxi.api.optimization {
1008
+ export namespace com.moxi.api.optimizer {
964
1009
 
965
- export interface CreateSqueezeInPlan extends com.moxi.api.optimization.OptimizerMessage {
966
- accountOrTeam?: com.moxi.api.permissions.common.AccountOrTeamRef;
1010
+ export interface SubmitOptimizationRequest {
1011
+ optimizationRequest?: health.moxi.optimizer.common.api.OptimizationRequest;
967
1012
  }
968
1013
 
969
1014
  }
970
1015
 
971
- export namespace com.moxi.api.optimization {
1016
+ export namespace com.moxi.api.optimizer {
972
1017
 
973
- export interface OptimizerMessage {
1018
+ export interface TriggerCeliosOptimization {
1019
+ target?: string;
1020
+ type?: com.moxi.api.grpc.common.GrpcStreamType;
974
1021
  }
975
1022
 
976
1023
  }
@@ -1352,14 +1399,11 @@ export namespace com.moxi.api.refdata {
1352
1399
 
1353
1400
  export namespace com.moxi.api.refdata.common {
1354
1401
 
1355
- /**
1356
- * Address info of a google-validated address, including geolocation and district code
1357
- */
1358
1402
  export interface AddressInfo {
1359
1403
  addition?: string;
1360
1404
  city?: string;
1361
1405
  /**
1362
- * Derived from districtNutsCode
1406
+ * The NUTS country code, derived from districtNutsCode
1363
1407
  */
1364
1408
  country?: string;
1365
1409
  districtNutsCode?: string;
@@ -1368,12 +1412,12 @@ export namespace com.moxi.api.refdata.common {
1368
1412
  number?: string;
1369
1413
  placeName?: string;
1370
1414
  /**
1371
- * Derived from districtNutsCode
1415
+ * The NUTS level 1 code, derived from districtNutsCode
1372
1416
  */
1373
1417
  state?: string;
1374
1418
  street?: string;
1375
1419
  /**
1376
- * Derived from districtNutsCode
1420
+ * The NUTS level 2 code, derived from districtNutsCode
1377
1421
  */
1378
1422
  subState?: string;
1379
1423
  zipCode?: string;
@@ -1521,7 +1565,7 @@ export namespace com.moxi.api.ride {
1521
1565
 
1522
1566
  export namespace com.moxi.api.ride {
1523
1567
 
1524
- export interface CancelRide extends com.moxi.api.ride.RideBookerCommand {
1568
+ export interface CancelRide extends com.moxi.api.ride.RideCommand {
1525
1569
  reason?: string;
1526
1570
  }
1527
1571
 
@@ -1752,33 +1796,22 @@ export namespace com.moxi.api.ride {
1752
1796
  export namespace com.moxi.api.ride.common {
1753
1797
 
1754
1798
  /**
1755
- * Information for advanced medical transport, like intensive care rides or emergency ambulances
1756
- */
1757
- export interface AdvancedRideInfo extends com.moxi.api.rideseries.common.GenericRideInfo<com.moxi.api.ride.common.AdvancedRideInfo> {
1758
- medicalData?: com.moxi.api.ride.common.MedicalData;
1759
- }
1760
-
1761
- }
1762
-
1763
- export namespace com.moxi.api.ride.common {
1764
-
1765
- /**
1766
- * Filled if (and only if) vehicleType == ambulance
1799
+ * Mandatory if the vehicleType is ambulance, forbidden if taxi
1767
1800
  */
1768
1801
  export interface AmbulanceInfo {
1769
1802
  /**
1770
- * Derived from infectionDescription != blank
1803
+ * True if infectionDescription is given
1771
1804
  */
1772
1805
  hasInfection?: boolean;
1773
1806
  infectionDescription?: string;
1774
1807
  monitoringDescription?: string;
1775
1808
  oxygenLiterPerHour?: number;
1776
1809
  /**
1777
- * Derived from monitoringDescription != blank
1810
+ * True if monitoringDescription is given
1778
1811
  */
1779
1812
  requiresMonitoring?: boolean;
1780
1813
  /**
1781
- * Derived from oxygenLiterPerHour != null
1814
+ * True if oxygenLiterPerHour is given
1782
1815
  */
1783
1816
  requiresOxygen?: boolean;
1784
1817
  requiresSuctionAspirator?: boolean;
@@ -1818,76 +1851,6 @@ export namespace com.moxi.api.ride.common {
1818
1851
 
1819
1852
  }
1820
1853
 
1821
- export namespace com.moxi.api.ride.common {
1822
-
1823
- /**
1824
- * Ride information specific for intensive care rides.
1825
- */
1826
- export interface IntensiveCareRideInfo extends com.moxi.api.ride.common.RideInfo {
1827
- medicalData?: com.moxi.api.ride.common.MedicalData;
1828
- patientMedicalCondition?: string;
1829
- vehicleType: "intensiveCareAmbulance";
1830
- }
1831
-
1832
- }
1833
-
1834
- export namespace com.moxi.api.ride.common {
1835
-
1836
- export interface MedicalData {
1837
- activeSubstances?: com.moxi.api.ride.common.MonitoredValue;
1838
- administrativeJourney?: string;
1839
- alarmNumber?: number;
1840
- analogueSedated?: boolean;
1841
- catecholamines?: boolean;
1842
- cpapAsb?: boolean;
1843
- dkvBipap?: boolean;
1844
- ecmo?: boolean;
1845
- fio2AboveZeroPointFive?: boolean;
1846
- highFlowOxygenTherapy?: boolean;
1847
- iabp?: boolean;
1848
- ibpMonitoring?: boolean;
1849
- incubator?: boolean;
1850
- infection?: com.moxi.api.ride.common.MonitoredValue;
1851
- infusomats?: com.moxi.api.ride.common.MonitoredValue;
1852
- intubated?: boolean;
1853
- ippvCppv?: boolean;
1854
- niv?: boolean;
1855
- oriented?: boolean;
1856
- otherMonitoring?: com.moxi.api.ride.common.MonitoredValue;
1857
- otherVentilation?: com.moxi.api.ride.common.MonitoredValue;
1858
- oxygen?: com.moxi.api.ride.common.MonitoredValue;
1859
- pacemaker?: boolean;
1860
- patientWeightAbove100Kg?: boolean;
1861
- peep?: boolean;
1862
- perfusor?: com.moxi.api.ride.common.MonitoredValue;
1863
- powerSupply?: boolean;
1864
- remark?: string;
1865
- resources?: string;
1866
- simvAsb?: boolean;
1867
- sleepy?: boolean;
1868
- spontaneous?: boolean;
1869
- stable?: boolean;
1870
- standardMonitoring?: boolean;
1871
- thoraxDrainage?: boolean;
1872
- tracheostomized?: boolean;
1873
- unconscious?: boolean;
1874
- unstable?: boolean;
1875
- vacuumMattress?: boolean;
1876
- veinCatheter?: boolean;
1877
- ventilated?: boolean;
1878
- }
1879
-
1880
- }
1881
-
1882
- export namespace com.moxi.api.ride.common {
1883
-
1884
- export interface MonitoredValue {
1885
- enabled?: boolean;
1886
- value?: string;
1887
- }
1888
-
1889
- }
1890
-
1891
1854
  export namespace com.moxi.api.ride.common {
1892
1855
 
1893
1856
  export interface Person {
@@ -1907,7 +1870,7 @@ export namespace com.moxi.api.ride.common {
1907
1870
  export namespace com.moxi.api.ride.common {
1908
1871
 
1909
1872
  /**
1910
- * Filled if (and only if) patient exceeds 130 kg
1873
+ * Mandatory if weight exceeds 130 kg, otherwise forbidden
1911
1874
  */
1912
1875
  export interface PersonDimensions {
1913
1876
  heightInCm?: number;
@@ -1941,18 +1904,18 @@ export namespace com.moxi.api.ride.common {
1941
1904
 
1942
1905
  export interface Ride extends com.moxi.api.rideseries.combined.common.RideOrSeries, com.moxi.api.rideseries.combined.common.RideOrMinimizedSeries {
1943
1906
  /**
1944
- * Derived from driver != null
1907
+ * 'accepted' is true if a driver has accepted the ride.
1945
1908
  */
1946
1909
  accepted?: boolean;
1947
1910
  acceptedTime?: string;
1948
1911
  actualEndTime?: string;
1949
1912
  actualStartTime?: string;
1950
1913
  /**
1951
- * Derived from driveStatus != null
1914
+ * 'arrived' is true if the driver has reported driveStatus is 'arrived_at_origin'.
1952
1915
  */
1953
1916
  arrived?: boolean;
1954
1917
  /**
1955
- * Derived from bookedTime != null
1918
+ * 'booked' is false if the ride has only been saved.
1956
1919
  */
1957
1920
  booked?: boolean;
1958
1921
  booker?: com.moxi.api.permissions.common.AccountOrTeamRef;
@@ -1960,15 +1923,15 @@ export namespace com.moxi.api.ride.common {
1960
1923
  cancelReason?: string;
1961
1924
  cancelled?: boolean;
1962
1925
  /**
1963
- * Derived from driveStatus == completed
1926
+ * 'completed' is true if the driver has reported driveStatus is 'completed'.
1964
1927
  */
1965
1928
  completed?: boolean;
1966
1929
  /**
1967
- * Desired Time of Arrival at the Destination/Drop-off location. Derived from info.appointment and info.plannedDuration
1930
+ * The booker determines the desiredEndTime via 'info.appointment' and 'info.plannedDuration'. It means the desired time of arrival at the 'to' or 'drop-off' location.
1968
1931
  */
1969
1932
  desiredEndTime?: string;
1970
1933
  /**
1971
- * Desired Time of Arrival at the Origin/Pick-up location. Derived from info.appointment and info.plannedDuration
1934
+ * The booker determines the desiredStartTime via 'info.appointment' and 'info.plannedDuration'. It means the desired time of arrival at the 'from' or 'pick-up' location.
1972
1935
  */
1973
1936
  desiredStartTime?: string;
1974
1937
  driveStatus?: com.moxi.api.ride.common.DriveStatus;
@@ -1976,20 +1939,20 @@ export namespace com.moxi.api.ride.common {
1976
1939
  driverSyncStatus?: com.moxi.api.ride.common.SyncStatus;
1977
1940
  endTimeDelay?: number;
1978
1941
  /**
1979
- * Expected Time of Arrival at the Destination/Drop-off location.
1942
+ * The driver determines the expectedEndTime when indicating delays. It means the expected time of arrival at the 'to' or 'drop-off' location.
1980
1943
  */
1981
1944
  expectedEndTime?: string;
1982
1945
  /**
1983
- * Expected Time of Arrival at the Origin/Pick-up location.
1946
+ * The driver determines the expectedEndTime when indicating delays. It means the expected time of arrival at the 'from' or 'pick-up' location.
1984
1947
  */
1985
1948
  expectedStartTime?: string;
1986
1949
  info?: com.moxi.api.ride.common.RideInfoUnion;
1987
1950
  /**
1988
- * Derived from plannedStartTime != null
1951
+ * 'planned' is true if the driver has reported a planned time for the ride.
1989
1952
  */
1990
1953
  planned?: boolean;
1991
1954
  /**
1992
- * Planned Time of Arrival at the Destination/Drop-off location, reported by the driver.
1955
+ * The driver determines the plannedEndTime. It means the planned time of arrival at the 'to' or 'drop-off' location.
1993
1956
  */
1994
1957
  plannedEndTime?: string;
1995
1958
  plannedStartTime?: string;
@@ -1997,7 +1960,7 @@ export namespace com.moxi.api.ride.common {
1997
1960
  seriesInfo?: com.moxi.api.ride.common.SeriesInfo;
1998
1961
  startTimeDelay?: number;
1999
1962
  /**
2000
- * Derived from driveStatus != null
1963
+ * 'started' is true if the driver has reported a driveStatus.
2001
1964
  */
2002
1965
  started?: boolean;
2003
1966
  }
@@ -2006,13 +1969,19 @@ export namespace com.moxi.api.ride.common {
2006
1969
 
2007
1970
  export namespace com.moxi.api.ride.common {
2008
1971
 
2009
- /**
2010
- * All durations in seconds
2011
- */
2012
1972
  export interface RideDuration {
2013
1973
  driving?: number;
1974
+ /**
1975
+ * Seconds of slack for dropping off the patient, currently hardcoded to 15 minutes
1976
+ */
2014
1977
  droppingOff?: number;
1978
+ /**
1979
+ * Seconds of slack for picking up the patient, currently hardcoded to 15 minutes
1980
+ */
2015
1981
  pickingUp?: number;
1982
+ /**
1983
+ * Seconds of driving time plus the pick-up and drop-off slack times
1984
+ */
2016
1985
  total?: number;
2017
1986
  }
2018
1987
 
@@ -2075,13 +2044,15 @@ export namespace com.moxi.api.ride.common {
2075
2044
 
2076
2045
  export namespace com.moxi.api.ride.common {
2077
2046
 
2078
- /**
2079
- * Base class for different types of RideInfo
2080
- */
2081
2047
  export interface RideInfo extends com.moxi.api.rideseries.common.GenericRideInfo<com.moxi.api.ride.common.RideInfoUnion> {
2082
2048
  appointment?: com.moxi.api.ride.common.Appointment;
2049
+ /**
2050
+ * Returns custom billing code if provided, otherwise auto-generates from ride details
2051
+ */
2052
+ billingCode?: com.moxi.api.billing.common.BillingCode;
2053
+ customBillingCode?: com.moxi.api.billing.common.BillingCode;
2083
2054
  purpose?: com.moxi.api.ride.common.RidePurpose;
2084
- vehicleType: "intensiveCareAmbulance" | "taxi";
2055
+ vehicleType: "taxi" | "intensiveCareAmbulance";
2085
2056
  }
2086
2057
 
2087
2058
  }
@@ -2109,7 +2080,7 @@ export namespace com.moxi.api.ride.common {
2109
2080
  export namespace com.moxi.api.ride.common {
2110
2081
 
2111
2082
  /**
2112
- * Information about a ride that is part of series.
2083
+ * If the ride is part of a series, seriesInfo will contain context about the position of the ride within the series.
2113
2084
  */
2114
2085
  export interface SeriesInfo {
2115
2086
  desyncedFromSeries?: boolean;
@@ -2121,6 +2092,252 @@ export namespace com.moxi.api.ride.common {
2121
2092
 
2122
2093
  }
2123
2094
 
2095
+ export namespace com.moxi.api.ride.intensivecare {
2096
+
2097
+ export interface Breathing {
2098
+ breathingDelivery?: com.moxi.api.ride.intensivecare.BreathingDeliveryUnion;
2099
+ spontaneous?: boolean;
2100
+ }
2101
+
2102
+ }
2103
+
2104
+ export namespace com.moxi.api.ride.intensivecare {
2105
+
2106
+ export interface BreathingDelivery {
2107
+ oxygenLiterPerMin?: number;
2108
+ type: "intubated" | "mask" | "tracheotomized";
2109
+ }
2110
+
2111
+ }
2112
+
2113
+ export namespace com.moxi.api.ride.intensivecare {
2114
+
2115
+ export interface Circulation {
2116
+ catecholamines?: string[];
2117
+ type?: com.moxi.api.ride.intensivecare.CirculationType;
2118
+ }
2119
+
2120
+ }
2121
+
2122
+ export namespace com.moxi.api.ride.intensivecare {
2123
+
2124
+ export interface Consciousness {
2125
+ gcs?: number;
2126
+ type?: com.moxi.api.ride.intensivecare.ConsciousnessType;
2127
+ }
2128
+
2129
+ }
2130
+
2131
+ export namespace com.moxi.api.ride.intensivecare {
2132
+
2133
+ export interface Equipment {
2134
+ cprDevice?: boolean;
2135
+ ecmo?: boolean;
2136
+ /**
2137
+ * Derived from infusionTherapy != blank
2138
+ */
2139
+ hasInfusionTherapy?: boolean;
2140
+ /**
2141
+ * Derived from perfusorDescription != blank
2142
+ */
2143
+ hasPerfusor?: boolean;
2144
+ /**
2145
+ * Derived from secondPerfusorDescription != blank
2146
+ */
2147
+ hasSecondPerfusor?: boolean;
2148
+ /**
2149
+ * Derived from thoraxDrainageLeft != null or thoraxDrainageRight != null
2150
+ */
2151
+ hasThoraxDrainage?: boolean;
2152
+ iabp?: boolean;
2153
+ infusionTherapy?: string;
2154
+ pacemaker?: boolean;
2155
+ perfusorDescription?: string;
2156
+ powerSupply?: boolean;
2157
+ secondPerfusorDescription?: string;
2158
+ thoraxDrainageLeft?: number;
2159
+ thoraxDrainageRight?: number;
2160
+ vacuumMattress?: boolean;
2161
+ }
2162
+
2163
+ }
2164
+
2165
+ export namespace com.moxi.api.ride.intensivecare {
2166
+
2167
+ export interface Infection {
2168
+ esbl?: boolean;
2169
+ furtherActions?: string;
2170
+ /**
2171
+ * Derived from furtherActions != blank
2172
+ */
2173
+ hasFurtherActions?: boolean;
2174
+ /**
2175
+ * Derived from infectionDescription != blank
2176
+ */
2177
+ hasInfection?: boolean;
2178
+ /**
2179
+ * Derived from otherGerms != blank
2180
+ */
2181
+ hasOtherGerms?: boolean;
2182
+ infectionDescription?: string;
2183
+ isolationNecessary?: boolean;
2184
+ mrgn?: boolean;
2185
+ mrsa?: boolean;
2186
+ otherGerms?: string;
2187
+ reverseIsolation?: boolean;
2188
+ vre_cre?: boolean;
2189
+ }
2190
+
2191
+ }
2192
+
2193
+ export namespace com.moxi.api.ride.intensivecare {
2194
+
2195
+ export interface IntensiveCareInfo {
2196
+ ageCategory?: com.moxi.api.ride.intensivecare.AgeCategory;
2197
+ babyPod?: boolean;
2198
+ babyWeighs3to8kg?: boolean;
2199
+ breathing?: com.moxi.api.ride.intensivecare.Breathing;
2200
+ circulation?: com.moxi.api.ride.intensivecare.Circulation;
2201
+ consciousness?: com.moxi.api.ride.intensivecare.Consciousness;
2202
+ diagnosis?: string;
2203
+ equipment?: com.moxi.api.ride.intensivecare.Equipment;
2204
+ infection?: com.moxi.api.ride.intensivecare.Infection;
2205
+ monitoring?: com.moxi.api.ride.intensivecare.Monitoring;
2206
+ otherRemarks?: string;
2207
+ overweightCategory?: com.moxi.api.ride.intensivecare.OverweightCategory;
2208
+ ventilation?: com.moxi.api.ride.intensivecare.Ventilation;
2209
+ }
2210
+
2211
+ }
2212
+
2213
+ export namespace com.moxi.api.ride.intensivecare {
2214
+
2215
+ /**
2216
+ * Ride information specific for intensive care rides.
2217
+ */
2218
+ export interface IntensiveCareRideInfo extends com.moxi.api.ride.common.RideInfo {
2219
+ costCenter?: string;
2220
+ /**
2221
+ * Derived from costCenter != blank
2222
+ */
2223
+ hasInternalBilling?: boolean;
2224
+ intensiveCareInfo?: com.moxi.api.ride.intensivecare.IntensiveCareInfo;
2225
+ requestingDoctorName?: string;
2226
+ requestingDoctorPhoneNr?: com.moxi.api.common.PhoneNumber;
2227
+ requestingStationName?: string;
2228
+ requestingStationPhoneNr?: com.moxi.api.common.PhoneNumber;
2229
+ respondingDoctorName?: string;
2230
+ respondingDoctorPhoneNr?: com.moxi.api.common.PhoneNumber;
2231
+ respondingStationName?: string;
2232
+ respondingStationPhoneNr?: com.moxi.api.common.PhoneNumber;
2233
+ urgency?: com.moxi.api.ride.intensivecare.Urgency;
2234
+ vehicleType: "intensiveCareAmbulance";
2235
+ }
2236
+
2237
+ }
2238
+
2239
+ export namespace com.moxi.api.ride.intensivecare {
2240
+
2241
+ /**
2242
+ * Intubated means a tube in the nose or mouth
2243
+ */
2244
+ export interface Intubated extends com.moxi.api.ride.intensivecare.BreathingDelivery {
2245
+ fixationInCm?: number;
2246
+ oralOrNasal?: com.moxi.api.ride.intensivecare.OralOrNasal;
2247
+ tubeDiameterInMm?: number;
2248
+ type: "intubated";
2249
+ }
2250
+
2251
+ }
2252
+
2253
+ export namespace com.moxi.api.ride.intensivecare {
2254
+
2255
+ export interface Mask extends com.moxi.api.ride.intensivecare.BreathingDelivery {
2256
+ highflowLiterPerMin?: number;
2257
+ niv?: com.moxi.api.ride.intensivecare.NIV;
2258
+ type: "mask";
2259
+ }
2260
+
2261
+ }
2262
+
2263
+ export namespace com.moxi.api.ride.intensivecare {
2264
+
2265
+ export interface Monitoring {
2266
+ ap?: boolean;
2267
+ arteryCatheterDescription?: string;
2268
+ capnometry?: boolean;
2269
+ cvlDescription?: string;
2270
+ cvp?: boolean;
2271
+ eeg?: boolean;
2272
+ /**
2273
+ * Derived from arteryCatheterDescription != blank
2274
+ */
2275
+ hasArteryCatheter?: boolean;
2276
+ /**
2277
+ * Derived from cvlDescription != blank
2278
+ */
2279
+ hasCvl?: boolean;
2280
+ /**
2281
+ * Derived from otherMonitoring != blank
2282
+ */
2283
+ hasOtherMonitoring?: boolean;
2284
+ /**
2285
+ * Derived from numberOfVenusLines != null
2286
+ */
2287
+ hasVenusLines?: boolean;
2288
+ icp?: boolean;
2289
+ numberOfVenusLines?: number;
2290
+ otherMonitoring?: string;
2291
+ pap?: boolean;
2292
+ standardMonitoring?: boolean;
2293
+ venusLinesDescription?: string;
2294
+ }
2295
+
2296
+ }
2297
+
2298
+ export namespace com.moxi.api.ride.intensivecare {
2299
+
2300
+ /**
2301
+ * NIV stands for Non Invasive Ventilation.
2302
+ */
2303
+ export interface NIV {
2304
+ fiO2?: number;
2305
+ peep?: number;
2306
+ }
2307
+
2308
+ }
2309
+
2310
+ export namespace com.moxi.api.ride.intensivecare {
2311
+
2312
+ /**
2313
+ * Tracheotomized means a tube through the skin.
2314
+ */
2315
+ export interface Tracheotomized extends com.moxi.api.ride.intensivecare.BreathingDelivery {
2316
+ fixationInCm?: number;
2317
+ tubeDiameterInMm?: number;
2318
+ type: "tracheotomized";
2319
+ }
2320
+
2321
+ }
2322
+
2323
+ export namespace com.moxi.api.ride.intensivecare {
2324
+
2325
+ export interface Ventilation {
2326
+ asb?: number;
2327
+ bf?: number;
2328
+ expiration?: number;
2329
+ fiO2?: number;
2330
+ inspiration?: number;
2331
+ mv?: number;
2332
+ other?: string;
2333
+ peep?: number;
2334
+ pmax?: number;
2335
+ td?: number;
2336
+ type?: com.moxi.api.ride.intensivecare.VentilationType;
2337
+ }
2338
+
2339
+ }
2340
+
2124
2341
  export namespace com.moxi.api.rideseries {
2125
2342
 
2126
2343
  export interface AcceptRideSeries extends com.moxi.api.rideseries.SeriesDriverCommand {
@@ -2408,10 +2625,6 @@ export namespace com.moxi.api.rideseries.combined.common {
2408
2625
 
2409
2626
  export namespace com.moxi.api.rideseries.common {
2410
2627
 
2411
- /**
2412
- * Common information shared across all rides in a series. Similar to RideInfo but without appointment-specific details that vary per ride.
2413
-
2414
- */
2415
2628
  export interface GenericRideInfo<T> {
2416
2629
  ambulanceInfo?: com.moxi.api.ride.common.AmbulanceInfo;
2417
2630
  attendantsPresent?: number;
@@ -2437,7 +2650,7 @@ export namespace com.moxi.api.rideseries.common {
2437
2650
  export namespace com.moxi.api.rideseries.common {
2438
2651
 
2439
2652
  /**
2440
- * RideSeries is a grouped ride series. A singular object, that is later split into individual rides, once a driver has accepted the series as a group.
2653
+ * A series of rides.
2441
2654
  */
2442
2655
  export interface MinimizedRideSeries extends com.moxi.api.rideseries.common.RideSeries, com.moxi.api.rideseries.combined.common.RideOrMinimizedSeries {
2443
2656
  info?: com.moxi.api.rideseries.common.SeriesRideInfo;
@@ -2448,17 +2661,20 @@ export namespace com.moxi.api.rideseries.common {
2448
2661
  export namespace com.moxi.api.rideseries.common {
2449
2662
 
2450
2663
  /**
2451
- * RideSeries is a grouped ride series. A singular object, that is later split into individual rides, once a driver has accepted the series as a group.
2664
+ * A series of rides.
2452
2665
  */
2453
2666
  export interface RideSeries extends com.moxi.api.rideseries.combined.common.RideOrSeries {
2454
2667
  /**
2455
- * Derived from driver != null
2668
+ * 'accepted' is true if a driver has accepted the series.
2456
2669
  */
2457
2670
  accepted?: boolean;
2458
2671
  acceptedTime?: string;
2672
+ /**
2673
+ * The number of rides in the series that are not cancelled.
2674
+ */
2459
2675
  activeRideCount?: number;
2460
2676
  /**
2461
- * Derived from bookedTime != null
2677
+ * 'booked' is false if the series has only been saved.
2462
2678
  */
2463
2679
  booked?: boolean;
2464
2680
  booker?: com.moxi.api.permissions.common.AccountOrTeamRef;
@@ -2468,7 +2684,13 @@ export namespace com.moxi.api.rideseries.common {
2468
2684
  rideSeriesId?: string;
2469
2685
  rides?: com.moxi.api.ride.common.Ride[];
2470
2686
  ridesSummaries?: com.moxi.api.rideseries.common.RideSummary[];
2687
+ /**
2688
+ * searchEndTime is the time from which series can be found in our system. It's the searchEndTime of the last ride in the series.
2689
+ */
2471
2690
  searchEndTime?: string;
2691
+ /**
2692
+ * searchStartTime is the time from which series can be found in our system. It's the searchStartTime of the first ride in the series.
2693
+ */
2472
2694
  searchStartTime?: string;
2473
2695
  }
2474
2696
 
@@ -2485,7 +2707,7 @@ export namespace com.moxi.api.rideseries.common {
2485
2707
  export namespace com.moxi.api.rideseries.common {
2486
2708
 
2487
2709
  /**
2488
- * Individual ride timing within a series. Once a ride series is split, you cannot add rides, only remove
2710
+ * Individual ride timing within a series. Once a ride series is accepted, you cannot add rides, only remove
2489
2711
  */
2490
2712
  export interface RideSummary {
2491
2713
  appointmentTime?: string;
@@ -2497,9 +2719,6 @@ export namespace com.moxi.api.rideseries.common {
2497
2719
 
2498
2720
  export namespace com.moxi.api.rideseries.common {
2499
2721
 
2500
- /**
2501
- * Information about the ride, from the creator of the ride
2502
- */
2503
2722
  export interface SeriesRideInfo extends com.moxi.api.rideseries.common.GenericRideInfo<com.moxi.api.rideseries.common.SeriesRideInfo> {
2504
2723
  purpose?: com.moxi.api.rideseries.common.SeriesPurpose;
2505
2724
  }
@@ -2508,9 +2727,6 @@ export namespace com.moxi.api.rideseries.common {
2508
2727
 
2509
2728
  export namespace com.moxi.api.rideseries.common.SeriesRideInfo {
2510
2729
 
2511
- /**
2512
- * Information about the ride, from the creator of the ride
2513
- */
2514
2730
  export interface AnonymizedSeriesRideInfo extends com.moxi.api.rideseries.common.SeriesRideInfo {
2515
2731
  }
2516
2732
 
@@ -2956,12 +3172,20 @@ export namespace com.moxi.api.web.common {
2956
3172
 
2957
3173
  export namespace com.moxi.api.web.common {
2958
3174
 
2959
- export interface WebsocketFilter {
3175
+ export interface WebsocketFilter extends com.moxi.api.web.common.WebsocketMessage {
2960
3176
  screen: "ride_details" | "fleet_overview" | "hospital_overview" | "marketplace" | "operations_overview";
2961
3177
  }
2962
3178
 
2963
3179
  }
2964
3180
 
3181
+ export namespace com.moxi.api.web.common {
3182
+
3183
+ export interface WebsocketMessage {
3184
+ screen: "ride_details" | "fleet_overview" | "hospital_overview" | "marketplace" | "operations_overview" | "ping";
3185
+ }
3186
+
3187
+ }
3188
+
2965
3189
  export namespace com.moxi.api.web.common {
2966
3190
 
2967
3191
  export interface WebsocketMultipleUpdates extends com.moxi.api.web.common.WebsocketUpdate {
@@ -2972,6 +3196,14 @@ export namespace com.moxi.api.web.common {
2972
3196
 
2973
3197
  }
2974
3198
 
3199
+ export namespace com.moxi.api.web.common {
3200
+
3201
+ export interface WebsocketPing extends com.moxi.api.web.common.WebsocketMessage {
3202
+ screen: "ping";
3203
+ }
3204
+
3205
+ }
3206
+
2975
3207
  export namespace com.moxi.api.web.common {
2976
3208
 
2977
3209
  export interface WebsocketSingleUpdate extends com.moxi.api.web.common.WebsocketUpdate {
@@ -2990,6 +3222,212 @@ export namespace com.moxi.api.web.common {
2990
3222
 
2991
3223
  }
2992
3224
 
3225
+ export namespace health.moxi.optimizer.common.api {
3226
+
3227
+ /**
3228
+ * Request to optimize fleet schedule
3229
+ */
3230
+ export interface OptimizationRequest {
3231
+ operationalRules?: health.moxi.optimizer.common.domain.OperationalRules;
3232
+ optimizationMode?: health.moxi.optimizer.common.planning.OptimizationMode;
3233
+ parameters?: health.moxi.optimizer.common.planning.OptimizationParameters;
3234
+ problemId?: string;
3235
+ schedule?: health.moxi.optimizer.common.domain.Schedule;
3236
+ useManualWeights?: boolean;
3237
+ weights?: health.moxi.optimizer.common.planning.ConstraintWeights;
3238
+ }
3239
+
3240
+ }
3241
+
3242
+ export namespace health.moxi.optimizer.common.domain {
3243
+
3244
+ /**
3245
+ * Base activity type containing common properties
3246
+ */
3247
+ export interface Activity {
3248
+ desiredStartTime?: string;
3249
+ distanceInMeters?: number;
3250
+ duration?: number;
3251
+ endLocation?: health.moxi.optimizer.common.domain.GeoLocation;
3252
+ id?: string;
3253
+ plannedStartTime?: string;
3254
+ routePinned?: boolean;
3255
+ startLocation?: health.moxi.optimizer.common.domain.GeoLocation;
3256
+ startTimePinned?: boolean;
3257
+ type: "ride" | "break" | "maintenance" | "connectingRide";
3258
+ vehicleType?: health.moxi.optimizer.common.domain.VehicleType;
3259
+ }
3260
+
3261
+ }
3262
+
3263
+ export namespace health.moxi.optimizer.common.domain {
3264
+
3265
+ /**
3266
+ * Driver break period
3267
+ */
3268
+ export interface Break extends health.moxi.optimizer.common.domain.Activity {
3269
+ type: "break";
3270
+ }
3271
+
3272
+ }
3273
+
3274
+ export namespace health.moxi.optimizer.common.domain {
3275
+
3276
+ /**
3277
+ * Dead-head travel between activities
3278
+ */
3279
+ export interface ConnectingRide extends health.moxi.optimizer.common.domain.Activity {
3280
+ idleTimeSeconds?: number;
3281
+ type: "connectingRide";
3282
+ }
3283
+
3284
+ }
3285
+
3286
+ export namespace health.moxi.optimizer.common.domain {
3287
+
3288
+ export interface GeoLocation {
3289
+ /**
3290
+ * Latitude coordinate in decimal degrees
3291
+ */
3292
+ latitude?: number;
3293
+ /**
3294
+ * Longitude coordinate in decimal degrees
3295
+ */
3296
+ longitude?: number;
3297
+ }
3298
+
3299
+ }
3300
+
3301
+ export namespace health.moxi.optimizer.common.domain {
3302
+
3303
+ /**
3304
+ * Scheduled vehicle maintenance activity
3305
+ */
3306
+ export interface Maintenance extends health.moxi.optimizer.common.domain.Activity {
3307
+ type: "maintenance";
3308
+ }
3309
+
3310
+ }
3311
+
3312
+ export namespace health.moxi.optimizer.common.domain {
3313
+
3314
+ /**
3315
+ * Operational rules and constraints
3316
+ */
3317
+ export interface OperationalRules {
3318
+ maxOvertime?: number;
3319
+ maxStartTimeDeviation?: number;
3320
+ minBreakStart?: number;
3321
+ }
3322
+
3323
+ }
3324
+
3325
+ export namespace health.moxi.optimizer.common.domain {
3326
+
3327
+ /**
3328
+ * Ride activity
3329
+ */
3330
+ export interface Ride extends health.moxi.optimizer.common.domain.Activity {
3331
+ infectious?: boolean;
3332
+ overweight?: boolean;
3333
+ type: "ride";
3334
+ }
3335
+
3336
+ }
3337
+
3338
+ export namespace health.moxi.optimizer.common.domain {
3339
+
3340
+ /**
3341
+ * Vehicle route with scheduled activities
3342
+ */
3343
+ export interface Route {
3344
+ activities?: health.moxi.optimizer.common.domain.ActivityUnion[];
3345
+ garage?: health.moxi.optimizer.common.domain.GeoLocation;
3346
+ id?: string;
3347
+ metrics?: health.moxi.optimizer.common.domain.RouteMetrics;
3348
+ overtimeSeconds?: number;
3349
+ shiftEnd?: string;
3350
+ shiftStart?: string;
3351
+ vehicleType?: health.moxi.optimizer.common.domain.VehicleType;
3352
+ }
3353
+
3354
+ }
3355
+
3356
+ export namespace health.moxi.optimizer.common.domain {
3357
+
3358
+ export interface RouteMetrics {
3359
+ averageRideStartTimeDeviation?: number;
3360
+ deadheadDistanceMeters?: number;
3361
+ totalDeadheadTime?: number;
3362
+ totalDistanceMeters?: number;
3363
+ totalIdleTime?: number;
3364
+ totalRideTime?: number;
3365
+ }
3366
+
3367
+ }
3368
+
3369
+ export namespace health.moxi.optimizer.common.domain {
3370
+
3371
+ /**
3372
+ * Schedule containing routes and activities
3373
+ */
3374
+ export interface Schedule {
3375
+ metrics?: health.moxi.optimizer.common.domain.ScheduleMetrics;
3376
+ routes?: health.moxi.optimizer.common.domain.Route[];
3377
+ status?: health.moxi.optimizer.common.domain.OptimizationStatus;
3378
+ unplannedActivities?: health.moxi.optimizer.common.domain.ActivityUnion[];
3379
+ }
3380
+
3381
+ }
3382
+
3383
+ export namespace health.moxi.optimizer.common.domain {
3384
+
3385
+ export interface ScheduleMetrics {
3386
+ ambulanceCount?: number;
3387
+ fleetUtilization?: number;
3388
+ medianRidesPerRoute?: number;
3389
+ overall?: health.moxi.optimizer.common.domain.RouteMetrics;
3390
+ plannedRides?: number;
3391
+ taxiCount?: number;
3392
+ totalOvertimeSeconds?: number;
3393
+ unplannedRides?: number;
3394
+ }
3395
+
3396
+ }
3397
+
3398
+ export namespace health.moxi.optimizer.common.planning {
3399
+
3400
+ /**
3401
+ * Constraint weights for different optimization objectives
3402
+ */
3403
+ export interface ConstraintWeights {
3404
+ balanceWorkload?: number;
3405
+ breakPositioning?: number;
3406
+ deadheadTimePenalty?: number;
3407
+ encourageRideAssignments?: number;
3408
+ idleTimePenalty?: number;
3409
+ minimizeTravelTime?: number;
3410
+ startTimeDeviation?: number;
3411
+ }
3412
+
3413
+ }
3414
+
3415
+ export namespace health.moxi.optimizer.common.planning {
3416
+
3417
+ /**
3418
+ * Solver parameters for tuning the optimization
3419
+ */
3420
+ export interface OptimizationParameters {
3421
+ acceptedCountLimit?: number;
3422
+ constructionStrategy?: health.moxi.optimizer.common.planning.ConstructionStrategy;
3423
+ maxUnimprovedSeconds?: number;
3424
+ searchStrategy?: health.moxi.optimizer.common.planning.SearchStrategy;
3425
+ startingTemperature?: number;
3426
+ tabuRatio?: number;
3427
+ }
3428
+
3429
+ }
3430
+
2993
3431
  export namespace com.moxi.api.authentication.common {
2994
3432
 
2995
3433
  export type AuthenticationResult = "SUCCESS" | "NOT_CONFIRMED" | "ONE_TIME_PASSWORD_NEEDED";
@@ -3008,12 +3446,6 @@ export namespace com.moxi.api.common {
3008
3446
 
3009
3447
  }
3010
3448
 
3011
- export namespace com.moxi.api.common.kchat {
3012
-
3013
- export type KChatChannel = "ride_notifications" | "urgent_issues" | "account_tasks" | "customer_issues";
3014
-
3015
- }
3016
-
3017
3449
  export namespace com.moxi.api.common.slack {
3018
3450
 
3019
3451
  export type SlackChannel = "admin_monitoring" | "admin_respond_immediately" | "admin_respond_within_hour" | "admin_reported_issues";
@@ -3026,6 +3458,12 @@ export namespace com.moxi.api.geojson.common.GeoJson {
3026
3458
 
3027
3459
  }
3028
3460
 
3461
+ export namespace com.moxi.api.grpc.common {
3462
+
3463
+ export type GrpcStreamType = "get_einsatz_events" | "optimizer_planning";
3464
+
3465
+ }
3466
+
3029
3467
  export namespace com.moxi.api.integrations.common {
3030
3468
 
3031
3469
  export type IntegrationType = "dispolive" | "celios";
@@ -3064,7 +3502,7 @@ export namespace com.moxi.api.permissions.subscription.common {
3064
3502
 
3065
3503
  export namespace com.moxi.api.permissions.subscription.common {
3066
3504
 
3067
- export type Service = "pro_medical" | "pro_fleet" | "pro_operator" | "celios_integration" | "dispolive_integration" | "moxi_operations";
3505
+ export type Service = "pro_medical" | "pro_fleet" | "pro_operator" | "celios_integration" | "dispolive_integration" | "moxi_operations" | "intensive_care";
3068
3506
 
3069
3507
  }
3070
3508
 
@@ -3100,7 +3538,7 @@ export namespace com.moxi.api.ride.common {
3100
3538
 
3101
3539
  export namespace com.moxi.api.ride.common {
3102
3540
 
3103
- export type RideInfoUnion = com.moxi.api.ride.common.RegularRideInfo | com.moxi.api.ride.common.IntensiveCareRideInfo;
3541
+ export type RideInfoUnion = com.moxi.api.ride.common.RegularRideInfo | com.moxi.api.ride.intensivecare.IntensiveCareRideInfo;
3104
3542
 
3105
3543
  }
3106
3544
 
@@ -3122,6 +3560,60 @@ export namespace com.moxi.api.ride.common {
3122
3560
 
3123
3561
  }
3124
3562
 
3563
+ export namespace com.moxi.api.ride.intensivecare {
3564
+
3565
+ export type AgeCategory = "adult" | "child" | "toddler" | "baby";
3566
+
3567
+ }
3568
+
3569
+ export namespace com.moxi.api.ride.intensivecare {
3570
+
3571
+ export type BreathingDeliveryType = "mask" | "intubated" | "tracheotomized";
3572
+
3573
+ }
3574
+
3575
+ export namespace com.moxi.api.ride.intensivecare {
3576
+
3577
+ export type BreathingDeliveryUnion = com.moxi.api.ride.intensivecare.Mask | com.moxi.api.ride.intensivecare.Intubated | com.moxi.api.ride.intensivecare.Tracheotomized;
3578
+
3579
+ }
3580
+
3581
+ export namespace com.moxi.api.ride.intensivecare {
3582
+
3583
+ export type CirculationType = "stable" | "stable_with_catecholamines" | "unstable_with_catecholamines";
3584
+
3585
+ }
3586
+
3587
+ export namespace com.moxi.api.ride.intensivecare {
3588
+
3589
+ export type ConsciousnessType = "oriented" | "sleepy" | "unconscious" | "analgo_sedated";
3590
+
3591
+ }
3592
+
3593
+ export namespace com.moxi.api.ride.intensivecare {
3594
+
3595
+ export type OralOrNasal = "oral" | "nasal";
3596
+
3597
+ }
3598
+
3599
+ export namespace com.moxi.api.ride.intensivecare {
3600
+
3601
+ export type OverweightCategory = "under_100" | "under_120" | "under_130" | "under_150" | "over_150";
3602
+
3603
+ }
3604
+
3605
+ export namespace com.moxi.api.ride.intensivecare {
3606
+
3607
+ export type Urgency = "immediate" | "urgent" | "plannable";
3608
+
3609
+ }
3610
+
3611
+ export namespace com.moxi.api.ride.intensivecare {
3612
+
3613
+ export type VentilationType = "pc_cmv" | "vc_cmv" | "bipap_duopap" | "ippv_cppv" | "simv" | "cpap";
3614
+
3615
+ }
3616
+
3125
3617
  export namespace com.moxi.api.rideseries.common {
3126
3618
 
3127
3619
  export type SeriesPurpose = "consultation";
@@ -3130,13 +3622,13 @@ export namespace com.moxi.api.rideseries.common {
3130
3622
 
3131
3623
  export namespace com.moxi.api.web.common {
3132
3624
 
3133
- export type Screen = "marketplace" | "operations_overview" | "hospital_overview" | "fleet_overview" | "ride_details";
3625
+ export type Screen = "ping" | "marketplace" | "operations_overview" | "hospital_overview" | "fleet_overview" | "ride_details";
3134
3626
 
3135
3627
  }
3136
3628
 
3137
3629
  export namespace com.moxi.api.web.common {
3138
3630
 
3139
- export type WebsocketFilterUnion = com.moxi.api.web.common.MarketplaceOverviewFilter | com.moxi.api.web.common.HospitalOverviewFilter | com.moxi.api.web.common.FleetOverviewFilter | com.moxi.api.web.common.OperationsOverviewFilter | com.moxi.api.web.common.DetailsFilter;
3631
+ export type WebsocketMessageUnion = com.moxi.api.web.common.MarketplaceOverviewFilter | com.moxi.api.web.common.HospitalOverviewFilter | com.moxi.api.web.common.FleetOverviewFilter | com.moxi.api.web.common.OperationsOverviewFilter | com.moxi.api.web.common.DetailsFilter | com.moxi.api.web.common.WebsocketPing;
3140
3632
 
3141
3633
  }
3142
3634
 
@@ -3151,3 +3643,45 @@ export namespace com.moxi.api.web.common {
3151
3643
  export type WebsocketUpdateUnion = com.moxi.api.web.common.WebsocketSingleUpdate | com.moxi.api.web.common.WebsocketMultipleUpdates;
3152
3644
 
3153
3645
  }
3646
+
3647
+ export namespace health.moxi.optimizer.common.domain {
3648
+
3649
+ export type ActivityType = "ride" | "break" | "maintenance" | "connectingRide";
3650
+
3651
+ }
3652
+
3653
+ export namespace health.moxi.optimizer.common.domain {
3654
+
3655
+ export type ActivityUnion = health.moxi.optimizer.common.domain.Ride | health.moxi.optimizer.common.domain.Break | health.moxi.optimizer.common.domain.Maintenance | health.moxi.optimizer.common.domain.ConnectingRide;
3656
+
3657
+ }
3658
+
3659
+ export namespace health.moxi.optimizer.common.domain {
3660
+
3661
+ export type OptimizationStatus = "queued" | "in_progress" | "completed" | "failed" | "cancelled";
3662
+
3663
+ }
3664
+
3665
+ export namespace health.moxi.optimizer.common.domain {
3666
+
3667
+ export type VehicleType = "taxi" | "ambulance";
3668
+
3669
+ }
3670
+
3671
+ export namespace health.moxi.optimizer.common.planning {
3672
+
3673
+ export type ConstructionStrategy = "first_fit" | "cheapest_insertion";
3674
+
3675
+ }
3676
+
3677
+ export namespace health.moxi.optimizer.common.planning {
3678
+
3679
+ export type OptimizationMode = "full_optimization" | "magic_squeeze_in";
3680
+
3681
+ }
3682
+
3683
+ export namespace health.moxi.optimizer.common.planning {
3684
+
3685
+ export type SearchStrategy = "vnd" | "tabu_search" | "simulated_annealing";
3686
+
3687
+ }