@rise-maritime/keelson-js 0.5.3 → 0.6.0-alpha.202.dev.1

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.
Files changed (121) hide show
  1. package/dist/index.d.ts +524 -1
  2. package/dist/index.js +114 -5
  3. package/dist/index.test.js +57 -0
  4. package/dist/interfaces/AlarmAck.d.ts +62 -0
  5. package/dist/interfaces/AlarmAck.js +218 -0
  6. package/dist/interfaces/Configurable.d.ts +24 -18
  7. package/dist/interfaces/Configurable.js +24 -22
  8. package/dist/interfaces/Coordinate.d.ts +38 -0
  9. package/dist/interfaces/Coordinate.js +82 -0
  10. package/dist/interfaces/ErrorResponse.d.ts +1 -1
  11. package/dist/interfaces/ErrorResponse.js +1 -1
  12. package/dist/interfaces/MavlinkCommand.d.ts +24 -18
  13. package/dist/interfaces/MavlinkCommand.js +24 -22
  14. package/dist/interfaces/Mission.d.ts +128 -0
  15. package/dist/interfaces/Mission.js +800 -0
  16. package/dist/interfaces/NetworkPingPong.d.ts +16 -16
  17. package/dist/interfaces/NetworkPingPong.js +16 -16
  18. package/dist/interfaces/ReplayControl.d.ts +72 -30
  19. package/dist/interfaces/ReplayControl.js +72 -58
  20. package/dist/interfaces/Route.d.ts +640 -0
  21. package/dist/interfaces/Route.js +4180 -0
  22. package/dist/interfaces/RoutePlanner.d.ts +152 -0
  23. package/dist/interfaces/RoutePlanner.js +268 -0
  24. package/dist/interfaces/ScenarioCheckpoint.d.ts +154 -0
  25. package/dist/interfaces/ScenarioCheckpoint.js +694 -0
  26. package/dist/interfaces/ScenarioControl.d.ts +144 -0
  27. package/dist/interfaces/ScenarioControl.js +552 -0
  28. package/dist/interfaces/Severity.d.ts +22 -0
  29. package/dist/interfaces/Severity.js +72 -0
  30. package/dist/interfaces/SimulationControl.d.ts +69 -0
  31. package/dist/interfaces/SimulationControl.js +153 -0
  32. package/dist/interfaces/Subscriber.d.ts +24 -18
  33. package/dist/interfaces/Subscriber.js +24 -22
  34. package/dist/interfaces/VehicleCommon.d.ts +1 -32
  35. package/dist/interfaces/VehicleCommon.js +2 -74
  36. package/dist/interfaces/VehicleControl.d.ts +34 -28
  37. package/dist/interfaces/VehicleControl.js +34 -22
  38. package/dist/interfaces/VehicleGeofence.d.ts +26 -19
  39. package/dist/interfaces/VehicleGeofence.js +40 -37
  40. package/dist/interfaces/VehicleLifecycle.d.ts +32 -20
  41. package/dist/interfaces/VehicleLifecycle.js +32 -28
  42. package/dist/interfaces/VehicleMission.d.ts +42 -97
  43. package/dist/interfaces/VehicleMission.js +41 -696
  44. package/dist/interfaces/VehicleNavigation.d.ts +30 -24
  45. package/dist/interfaces/VehicleNavigation.js +30 -22
  46. package/dist/interfaces/VehicleParam.d.ts +48 -24
  47. package/dist/interfaces/VehicleParam.js +48 -40
  48. package/dist/interfaces/VehicleSimulatorControl.d.ts +57 -0
  49. package/dist/interfaces/VehicleSimulatorControl.js +155 -0
  50. package/dist/interfaces/WHEPProxy.d.ts +16 -16
  51. package/dist/interfaces/WHEPProxy.js +16 -16
  52. package/dist/interfaces/foxglove/GeoJSON.d.ts +27 -0
  53. package/dist/interfaces/foxglove/GeoJSON.js +65 -0
  54. package/dist/interfaces/foxglove/LocationFix.d.ts +49 -0
  55. package/dist/interfaces/foxglove/LocationFix.js +246 -0
  56. package/dist/interfaces/google/protobuf/any.d.ts +144 -0
  57. package/dist/interfaces/google/protobuf/any.js +107 -0
  58. package/dist/interfaces/google/protobuf/duration.d.ts +99 -0
  59. package/dist/interfaces/google/protobuf/duration.js +92 -0
  60. package/dist/interfaces/serviceRegistry.d.ts +520 -0
  61. package/dist/interfaces/serviceRegistry.js +40 -0
  62. package/dist/interfaces.json +19 -0
  63. package/dist/payloads/Alarm.d.ts +7 -12
  64. package/dist/payloads/Alarm.js +4 -54
  65. package/dist/payloads/ChecklistEvent.d.ts +152 -0
  66. package/dist/payloads/ChecklistEvent.js +524 -0
  67. package/dist/payloads/ChecklistEvidence.d.ts +79 -0
  68. package/dist/payloads/ChecklistEvidence.js +287 -0
  69. package/dist/payloads/ChecklistPresence.d.ts +68 -0
  70. package/dist/payloads/ChecklistPresence.js +286 -0
  71. package/dist/payloads/ChecklistProcedure.d.ts +81 -0
  72. package/dist/payloads/ChecklistProcedure.js +364 -0
  73. package/dist/payloads/ChecklistState.d.ts +178 -0
  74. package/dist/payloads/ChecklistState.js +838 -0
  75. package/dist/payloads/CommandAuthority.d.ts +82 -0
  76. package/dist/payloads/CommandAuthority.js +364 -0
  77. package/dist/payloads/Coordinate.d.ts +39 -0
  78. package/dist/payloads/Coordinate.js +85 -0
  79. package/dist/payloads/EntityHealth.d.ts +9 -0
  80. package/dist/payloads/EntityHealth.js +14 -0
  81. package/dist/payloads/Mission.d.ts +137 -0
  82. package/dist/payloads/Mission.js +826 -0
  83. package/dist/payloads/OperationalAuthority.d.ts +172 -5
  84. package/dist/payloads/OperationalAuthority.js +525 -6
  85. package/dist/payloads/Route.d.ts +662 -0
  86. package/dist/payloads/Route.js +4289 -0
  87. package/dist/payloads/RouteChangeEvent.d.ts +42 -0
  88. package/dist/payloads/RouteChangeEvent.js +223 -0
  89. package/dist/payloads/RouteEditAuthority.d.ts +87 -0
  90. package/dist/payloads/RouteEditAuthority.js +380 -0
  91. package/dist/payloads/RouteExecution.d.ts +64 -0
  92. package/dist/payloads/RouteExecution.js +310 -0
  93. package/dist/payloads/ScenarioStatus.d.ts +160 -0
  94. package/dist/payloads/ScenarioStatus.js +654 -0
  95. package/dist/payloads/Severity.d.ts +13 -6
  96. package/dist/payloads/Severity.js +30 -18
  97. package/dist/payloads/SimulationStatus.d.ts +3 -4
  98. package/dist/payloads/SimulationStatus.js +12 -18
  99. package/dist/payloads/TestObjectStatus.d.ts +154 -0
  100. package/dist/payloads/TestObjectStatus.js +580 -0
  101. package/dist/payloads/VesselType.d.ts +2 -1
  102. package/dist/payloads/VesselType.js +1 -1
  103. package/dist/payloads/Voyage.d.ts +154 -0
  104. package/dist/payloads/Voyage.js +866 -0
  105. package/dist/payloads/WarrantRecord.d.ts +168 -0
  106. package/dist/payloads/WarrantRecord.js +781 -0
  107. package/dist/payloads/foxglove/CompressedPointCloud.d.ts +37 -0
  108. package/dist/payloads/foxglove/CompressedPointCloud.js +185 -0
  109. package/dist/payloads/google/protobuf/any.d.ts +145 -0
  110. package/dist/payloads/google/protobuf/any.js +110 -0
  111. package/dist/payloads/google/protobuf/empty.d.ts +34 -0
  112. package/dist/payloads/google/protobuf/empty.js +50 -0
  113. package/dist/payloads/index.foxglove.d.ts +1 -0
  114. package/dist/payloads/index.foxglove.js +1 -0
  115. package/dist/payloads/index.google.protobuf.d.ts +2 -0
  116. package/dist/payloads/index.google.protobuf.js +2 -0
  117. package/dist/payloads/index.keelson.d.ts +17 -1
  118. package/dist/payloads/index.keelson.js +17 -1
  119. package/dist/qos.json +95 -0
  120. package/dist/subjects.json +38 -1
  121. package/package.json +2 -1
@@ -0,0 +1,380 @@
1
+ "use strict";
2
+ // Code generated by protoc-gen-ts_proto. DO NOT EDIT.
3
+ // versions:
4
+ // protoc-gen-ts_proto v2.6.1
5
+ // protoc v6.30.2
6
+ // source: RouteEditAuthority.proto
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.RouteEditRequest = exports.RouteEditAuthority = void 0;
9
+ /* eslint-disable */
10
+ const wire_1 = require("@bufbuild/protobuf/wire");
11
+ const timestamp_1 = require("./google/protobuf/timestamp");
12
+ const typeRegistry_1 = require("./typeRegistry");
13
+ function createBaseRouteEditAuthority() {
14
+ return {
15
+ $type: "keelson.RouteEditAuthority",
16
+ routeId: "",
17
+ controllerId: "",
18
+ controllerSite: "",
19
+ token: "",
20
+ grantedAt: undefined,
21
+ expiresAt: undefined,
22
+ lastHeartbeat: undefined,
23
+ leaseTtlSeconds: 0,
24
+ heartbeatIntervalSeconds: 0,
25
+ released: false,
26
+ };
27
+ }
28
+ exports.RouteEditAuthority = {
29
+ $type: "keelson.RouteEditAuthority",
30
+ encode(message, writer = new wire_1.BinaryWriter()) {
31
+ if (message.routeId !== "") {
32
+ writer.uint32(10).string(message.routeId);
33
+ }
34
+ if (message.controllerId !== "") {
35
+ writer.uint32(18).string(message.controllerId);
36
+ }
37
+ if (message.controllerSite !== "") {
38
+ writer.uint32(26).string(message.controllerSite);
39
+ }
40
+ if (message.token !== "") {
41
+ writer.uint32(34).string(message.token);
42
+ }
43
+ if (message.grantedAt !== undefined) {
44
+ timestamp_1.Timestamp.encode(toTimestamp(message.grantedAt), writer.uint32(82).fork()).join();
45
+ }
46
+ if (message.expiresAt !== undefined) {
47
+ timestamp_1.Timestamp.encode(toTimestamp(message.expiresAt), writer.uint32(90).fork()).join();
48
+ }
49
+ if (message.lastHeartbeat !== undefined) {
50
+ timestamp_1.Timestamp.encode(toTimestamp(message.lastHeartbeat), writer.uint32(98).fork()).join();
51
+ }
52
+ if (message.leaseTtlSeconds !== 0) {
53
+ writer.uint32(104).uint32(message.leaseTtlSeconds);
54
+ }
55
+ if (message.heartbeatIntervalSeconds !== 0) {
56
+ writer.uint32(112).uint32(message.heartbeatIntervalSeconds);
57
+ }
58
+ if (message.released !== false) {
59
+ writer.uint32(160).bool(message.released);
60
+ }
61
+ return writer;
62
+ },
63
+ decode(input, length) {
64
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
65
+ let end = length === undefined ? reader.len : reader.pos + length;
66
+ const message = createBaseRouteEditAuthority();
67
+ while (reader.pos < end) {
68
+ const tag = reader.uint32();
69
+ switch (tag >>> 3) {
70
+ case 1: {
71
+ if (tag !== 10) {
72
+ break;
73
+ }
74
+ message.routeId = reader.string();
75
+ continue;
76
+ }
77
+ case 2: {
78
+ if (tag !== 18) {
79
+ break;
80
+ }
81
+ message.controllerId = reader.string();
82
+ continue;
83
+ }
84
+ case 3: {
85
+ if (tag !== 26) {
86
+ break;
87
+ }
88
+ message.controllerSite = reader.string();
89
+ continue;
90
+ }
91
+ case 4: {
92
+ if (tag !== 34) {
93
+ break;
94
+ }
95
+ message.token = reader.string();
96
+ continue;
97
+ }
98
+ case 10: {
99
+ if (tag !== 82) {
100
+ break;
101
+ }
102
+ message.grantedAt = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));
103
+ continue;
104
+ }
105
+ case 11: {
106
+ if (tag !== 90) {
107
+ break;
108
+ }
109
+ message.expiresAt = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));
110
+ continue;
111
+ }
112
+ case 12: {
113
+ if (tag !== 98) {
114
+ break;
115
+ }
116
+ message.lastHeartbeat = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));
117
+ continue;
118
+ }
119
+ case 13: {
120
+ if (tag !== 104) {
121
+ break;
122
+ }
123
+ message.leaseTtlSeconds = reader.uint32();
124
+ continue;
125
+ }
126
+ case 14: {
127
+ if (tag !== 112) {
128
+ break;
129
+ }
130
+ message.heartbeatIntervalSeconds = reader.uint32();
131
+ continue;
132
+ }
133
+ case 20: {
134
+ if (tag !== 160) {
135
+ break;
136
+ }
137
+ message.released = reader.bool();
138
+ continue;
139
+ }
140
+ }
141
+ if ((tag & 7) === 4 || tag === 0) {
142
+ break;
143
+ }
144
+ reader.skip(tag & 7);
145
+ }
146
+ return message;
147
+ },
148
+ fromJSON(object) {
149
+ return {
150
+ $type: exports.RouteEditAuthority.$type,
151
+ routeId: isSet(object.routeId) ? globalThis.String(object.routeId) : "",
152
+ controllerId: isSet(object.controllerId) ? globalThis.String(object.controllerId) : "",
153
+ controllerSite: isSet(object.controllerSite) ? globalThis.String(object.controllerSite) : "",
154
+ token: isSet(object.token) ? globalThis.String(object.token) : "",
155
+ grantedAt: isSet(object.grantedAt) ? fromJsonTimestamp(object.grantedAt) : undefined,
156
+ expiresAt: isSet(object.expiresAt) ? fromJsonTimestamp(object.expiresAt) : undefined,
157
+ lastHeartbeat: isSet(object.lastHeartbeat) ? fromJsonTimestamp(object.lastHeartbeat) : undefined,
158
+ leaseTtlSeconds: isSet(object.leaseTtlSeconds) ? globalThis.Number(object.leaseTtlSeconds) : 0,
159
+ heartbeatIntervalSeconds: isSet(object.heartbeatIntervalSeconds)
160
+ ? globalThis.Number(object.heartbeatIntervalSeconds)
161
+ : 0,
162
+ released: isSet(object.released) ? globalThis.Boolean(object.released) : false,
163
+ };
164
+ },
165
+ toJSON(message) {
166
+ const obj = {};
167
+ if (message.routeId !== "") {
168
+ obj.routeId = message.routeId;
169
+ }
170
+ if (message.controllerId !== "") {
171
+ obj.controllerId = message.controllerId;
172
+ }
173
+ if (message.controllerSite !== "") {
174
+ obj.controllerSite = message.controllerSite;
175
+ }
176
+ if (message.token !== "") {
177
+ obj.token = message.token;
178
+ }
179
+ if (message.grantedAt !== undefined) {
180
+ obj.grantedAt = message.grantedAt.toISOString();
181
+ }
182
+ if (message.expiresAt !== undefined) {
183
+ obj.expiresAt = message.expiresAt.toISOString();
184
+ }
185
+ if (message.lastHeartbeat !== undefined) {
186
+ obj.lastHeartbeat = message.lastHeartbeat.toISOString();
187
+ }
188
+ if (message.leaseTtlSeconds !== 0) {
189
+ obj.leaseTtlSeconds = Math.round(message.leaseTtlSeconds);
190
+ }
191
+ if (message.heartbeatIntervalSeconds !== 0) {
192
+ obj.heartbeatIntervalSeconds = Math.round(message.heartbeatIntervalSeconds);
193
+ }
194
+ if (message.released !== false) {
195
+ obj.released = message.released;
196
+ }
197
+ return obj;
198
+ },
199
+ create(base) {
200
+ return exports.RouteEditAuthority.fromPartial(base ?? {});
201
+ },
202
+ fromPartial(object) {
203
+ const message = createBaseRouteEditAuthority();
204
+ message.routeId = object.routeId ?? "";
205
+ message.controllerId = object.controllerId ?? "";
206
+ message.controllerSite = object.controllerSite ?? "";
207
+ message.token = object.token ?? "";
208
+ message.grantedAt = object.grantedAt ?? undefined;
209
+ message.expiresAt = object.expiresAt ?? undefined;
210
+ message.lastHeartbeat = object.lastHeartbeat ?? undefined;
211
+ message.leaseTtlSeconds = object.leaseTtlSeconds ?? 0;
212
+ message.heartbeatIntervalSeconds = object.heartbeatIntervalSeconds ?? 0;
213
+ message.released = object.released ?? false;
214
+ return message;
215
+ },
216
+ };
217
+ typeRegistry_1.messageTypeRegistry.set(exports.RouteEditAuthority.$type, exports.RouteEditAuthority);
218
+ function createBaseRouteEditRequest() {
219
+ return {
220
+ $type: "keelson.RouteEditRequest",
221
+ routeId: "",
222
+ requesterId: "",
223
+ requesterSite: "",
224
+ requestedAt: undefined,
225
+ reason: "",
226
+ force: false,
227
+ };
228
+ }
229
+ exports.RouteEditRequest = {
230
+ $type: "keelson.RouteEditRequest",
231
+ encode(message, writer = new wire_1.BinaryWriter()) {
232
+ if (message.routeId !== "") {
233
+ writer.uint32(10).string(message.routeId);
234
+ }
235
+ if (message.requesterId !== "") {
236
+ writer.uint32(18).string(message.requesterId);
237
+ }
238
+ if (message.requesterSite !== "") {
239
+ writer.uint32(26).string(message.requesterSite);
240
+ }
241
+ if (message.requestedAt !== undefined) {
242
+ timestamp_1.Timestamp.encode(toTimestamp(message.requestedAt), writer.uint32(34).fork()).join();
243
+ }
244
+ if (message.reason !== "") {
245
+ writer.uint32(42).string(message.reason);
246
+ }
247
+ if (message.force !== false) {
248
+ writer.uint32(48).bool(message.force);
249
+ }
250
+ return writer;
251
+ },
252
+ decode(input, length) {
253
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
254
+ let end = length === undefined ? reader.len : reader.pos + length;
255
+ const message = createBaseRouteEditRequest();
256
+ while (reader.pos < end) {
257
+ const tag = reader.uint32();
258
+ switch (tag >>> 3) {
259
+ case 1: {
260
+ if (tag !== 10) {
261
+ break;
262
+ }
263
+ message.routeId = reader.string();
264
+ continue;
265
+ }
266
+ case 2: {
267
+ if (tag !== 18) {
268
+ break;
269
+ }
270
+ message.requesterId = reader.string();
271
+ continue;
272
+ }
273
+ case 3: {
274
+ if (tag !== 26) {
275
+ break;
276
+ }
277
+ message.requesterSite = reader.string();
278
+ continue;
279
+ }
280
+ case 4: {
281
+ if (tag !== 34) {
282
+ break;
283
+ }
284
+ message.requestedAt = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));
285
+ continue;
286
+ }
287
+ case 5: {
288
+ if (tag !== 42) {
289
+ break;
290
+ }
291
+ message.reason = reader.string();
292
+ continue;
293
+ }
294
+ case 6: {
295
+ if (tag !== 48) {
296
+ break;
297
+ }
298
+ message.force = reader.bool();
299
+ continue;
300
+ }
301
+ }
302
+ if ((tag & 7) === 4 || tag === 0) {
303
+ break;
304
+ }
305
+ reader.skip(tag & 7);
306
+ }
307
+ return message;
308
+ },
309
+ fromJSON(object) {
310
+ return {
311
+ $type: exports.RouteEditRequest.$type,
312
+ routeId: isSet(object.routeId) ? globalThis.String(object.routeId) : "",
313
+ requesterId: isSet(object.requesterId) ? globalThis.String(object.requesterId) : "",
314
+ requesterSite: isSet(object.requesterSite) ? globalThis.String(object.requesterSite) : "",
315
+ requestedAt: isSet(object.requestedAt) ? fromJsonTimestamp(object.requestedAt) : undefined,
316
+ reason: isSet(object.reason) ? globalThis.String(object.reason) : "",
317
+ force: isSet(object.force) ? globalThis.Boolean(object.force) : false,
318
+ };
319
+ },
320
+ toJSON(message) {
321
+ const obj = {};
322
+ if (message.routeId !== "") {
323
+ obj.routeId = message.routeId;
324
+ }
325
+ if (message.requesterId !== "") {
326
+ obj.requesterId = message.requesterId;
327
+ }
328
+ if (message.requesterSite !== "") {
329
+ obj.requesterSite = message.requesterSite;
330
+ }
331
+ if (message.requestedAt !== undefined) {
332
+ obj.requestedAt = message.requestedAt.toISOString();
333
+ }
334
+ if (message.reason !== "") {
335
+ obj.reason = message.reason;
336
+ }
337
+ if (message.force !== false) {
338
+ obj.force = message.force;
339
+ }
340
+ return obj;
341
+ },
342
+ create(base) {
343
+ return exports.RouteEditRequest.fromPartial(base ?? {});
344
+ },
345
+ fromPartial(object) {
346
+ const message = createBaseRouteEditRequest();
347
+ message.routeId = object.routeId ?? "";
348
+ message.requesterId = object.requesterId ?? "";
349
+ message.requesterSite = object.requesterSite ?? "";
350
+ message.requestedAt = object.requestedAt ?? undefined;
351
+ message.reason = object.reason ?? "";
352
+ message.force = object.force ?? false;
353
+ return message;
354
+ },
355
+ };
356
+ typeRegistry_1.messageTypeRegistry.set(exports.RouteEditRequest.$type, exports.RouteEditRequest);
357
+ function toTimestamp(date) {
358
+ const seconds = Math.trunc(date.getTime() / 1000);
359
+ const nanos = (date.getTime() % 1000) * 1000000;
360
+ return { $type: "google.protobuf.Timestamp", seconds, nanos };
361
+ }
362
+ function fromTimestamp(t) {
363
+ let millis = (t.seconds || 0) * 1000;
364
+ millis += (t.nanos || 0) / 1000000;
365
+ return new globalThis.Date(millis);
366
+ }
367
+ function fromJsonTimestamp(o) {
368
+ if (o instanceof globalThis.Date) {
369
+ return o;
370
+ }
371
+ else if (typeof o === "string") {
372
+ return new globalThis.Date(o);
373
+ }
374
+ else {
375
+ return fromTimestamp(timestamp_1.Timestamp.fromJSON(o));
376
+ }
377
+ }
378
+ function isSet(value) {
379
+ return value !== null && value !== undefined;
380
+ }
@@ -0,0 +1,64 @@
1
+ import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
2
+ import { RouteRef } from "./Route";
3
+ export interface RouteExecution {
4
+ $type: "keelson.RouteExecution";
5
+ /** Sample timestamp. */
6
+ timestamp: Date | undefined;
7
+ /** Voyage this sample belongs to. */
8
+ voyageId: string;
9
+ routeRef: RouteRef | undefined;
10
+ currentLegFromWaypointId?: string | undefined;
11
+ /**
12
+ * Stable id of the next waypoint to be reached. Unset before departure and
13
+ * after final arrival.
14
+ */
15
+ nextWaypointId?: string | undefined;
16
+ /** Great-circle distance to the next waypoint (metres). */
17
+ distanceToNextWaypointM: number;
18
+ /** Cross-track distance, signed: +stbd / -port of the planned track (metres). */
19
+ xtdM: number;
20
+ /** True bearing to the next waypoint (degrees). */
21
+ bearingToNextDeg: number;
22
+ /** -- ETAs ------------------------------------------------------------------- */
23
+ etaNextWaypoint: Date | undefined;
24
+ etaArrival: Date | undefined;
25
+ /**
26
+ * -- Deviation state --------------------------------------------------------
27
+ * True when |xtd_m| exceeds the leg's XTD limit; used by UI to flip colour
28
+ * and trigger alarms.
29
+ */
30
+ deviationActive: boolean;
31
+ /**
32
+ * Threshold used to determine deviation_active (metres). Sourced from the
33
+ * current Leg's xtd_port_m / xtd_stbd_m or a configured fallback.
34
+ */
35
+ deviationThresholdM: number;
36
+ /**
37
+ * -- Kinematics (echo of own-ship state for convenience) --------------------
38
+ * Knots to match the bus convention (subjects.yaml: speed_over_ground_knots)
39
+ * and the speed units used everywhere else on Route/Leg/ScheduleElement.
40
+ */
41
+ speedOverGroundKnots: number;
42
+ courseOverGroundDeg: number;
43
+ }
44
+ export declare const RouteExecution: MessageFns<RouteExecution, "keelson.RouteExecution">;
45
+ type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
46
+ type DeepPartial<T> = T extends Builtin ? T : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
47
+ [K in Exclude<keyof T, "$type">]?: DeepPartial<T[K]>;
48
+ } : Partial<T>;
49
+ type KeysOfUnion<T> = T extends T ? keyof T : never;
50
+ type Exact<P, I extends P> = P extends Builtin ? P : P & {
51
+ [K in keyof P]: Exact<P[K], I[K]>;
52
+ } & {
53
+ [K in Exclude<keyof I, KeysOfUnion<P> | "$type">]: never;
54
+ };
55
+ interface MessageFns<T, V extends string> {
56
+ readonly $type: V;
57
+ encode(message: T, writer?: BinaryWriter): BinaryWriter;
58
+ decode(input: BinaryReader | Uint8Array, length?: number): T;
59
+ fromJSON(object: any): T;
60
+ toJSON(message: T): unknown;
61
+ create<I extends Exact<DeepPartial<T>, I>>(base?: I): T;
62
+ fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T;
63
+ }
64
+ export {};