@rise-maritime/keelson-js 0.6.0-alpha.281.dev.1 → 0.6.0-alpha.282.dev.2

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.
@@ -5,8 +5,8 @@
5
5
  // protoc v6.30.2
6
6
  // source: Route.proto
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.Schedule = exports.Schedules = exports.Leg = exports.Waypoint = exports.DefaultWaypoint = exports.Waypoints = exports.RouteInfo = exports.Route = exports.Extensions_Entry_AttributesEntry = exports.Extensions_Entry = exports.Extensions = exports.CircleGeometry = exports.RouteRef = exports.schedule_OriginToJSON = exports.schedule_OriginFromJSON = exports.Schedule_Origin = exports.actionPointRequiredActionToJSON = exports.actionPointRequiredActionFromJSON = exports.ActionPointRequiredAction = exports.envelopeBoundToJSON = exports.envelopeBoundFromJSON = exports.EnvelopeBound = exports.routeStatusToJSON = exports.routeStatusFromJSON = exports.RouteStatus = exports.routeTopologyToJSON = exports.routeTopologyFromJSON = exports.RouteTopology = exports.geometryTypeToJSON = exports.geometryTypeFromJSON = exports.GeometryType = exports.colregTrafficIntensityToJSON = exports.colregTrafficIntensityFromJSON = exports.ColregTrafficIntensity = exports.colregSituationToJSON = exports.colregSituationFromJSON = exports.ColregSituation = exports.hazardZoneTypeToJSON = exports.hazardZoneTypeFromJSON = exports.HazardZoneType = exports.routeChallengeTypeToJSON = exports.routeChallengeTypeFromJSON = exports.RouteChallengeType = exports.operationalContextToJSON = exports.operationalContextFromJSON = exports.OperationalContext = exports.autonomyLevelToJSON = exports.autonomyLevelFromJSON = exports.AutonomyLevel = exports.protobufPackage = void 0;
9
- exports.RouteStatusUpdate = exports.RouteSignature = exports.RouteSignatures = exports.RouteIssue = exports.RouteChallenge = exports.HazardZone = exports.ActionPoint = exports.ActionPoints = exports.ScheduleElement = void 0;
8
+ exports.Waypoint = exports.DefaultWaypoint = exports.Waypoints = exports.RouteInfo = exports.Route = exports.Extensions_Entry_AttributesEntry = exports.Extensions_Entry = exports.Extensions = exports.CircleGeometry = exports.RouteRef = exports.schedule_OriginToJSON = exports.schedule_OriginFromJSON = exports.Schedule_Origin = exports.actionPointRequiredActionToJSON = exports.actionPointRequiredActionFromJSON = exports.ActionPointRequiredAction = exports.envelopeBoundToJSON = exports.envelopeBoundFromJSON = exports.EnvelopeBound = exports.routeStatusToJSON = exports.routeStatusFromJSON = exports.RouteStatus = exports.routeTopologyToJSON = exports.routeTopologyFromJSON = exports.RouteTopology = exports.xtdCorridorModeToJSON = exports.xtdCorridorModeFromJSON = exports.XtdCorridorMode = exports.geometryTypeToJSON = exports.geometryTypeFromJSON = exports.GeometryType = exports.colregTrafficIntensityToJSON = exports.colregTrafficIntensityFromJSON = exports.ColregTrafficIntensity = exports.colregSituationToJSON = exports.colregSituationFromJSON = exports.ColregSituation = exports.hazardZoneTypeToJSON = exports.hazardZoneTypeFromJSON = exports.HazardZoneType = exports.routeChallengeTypeToJSON = exports.routeChallengeTypeFromJSON = exports.RouteChallengeType = exports.operationalContextToJSON = exports.operationalContextFromJSON = exports.OperationalContext = exports.autonomyLevelToJSON = exports.autonomyLevelFromJSON = exports.AutonomyLevel = exports.protobufPackage = void 0;
9
+ exports.RouteStatusUpdate = exports.RouteSignature = exports.RouteSignatures = exports.RouteIssue = exports.RouteChallenge = exports.HazardZone = exports.ActionPoint = exports.ActionPoints = exports.ScheduleElement = exports.Schedule = exports.Schedules = exports.XtdBoundaryPoint = exports.Leg = void 0;
10
10
  /* eslint-disable */
11
11
  const wire_1 = require("@bufbuild/protobuf/wire");
12
12
  const Coordinate_1 = require("./Coordinate");
@@ -432,6 +432,65 @@ function geometryTypeToJSON(object) {
432
432
  }
433
433
  }
434
434
  exports.geometryTypeToJSON = geometryTypeToJSON;
435
+ /**
436
+ * How a leg's XTD corridor is shaped. UNSPECIFIED MUST be read as FIXED:
437
+ * every leg published before this field existed is a fixed-width corridor, and
438
+ * reading it any other way would change routes nobody edited.
439
+ */
440
+ var XtdCorridorMode;
441
+ (function (XtdCorridorMode) {
442
+ XtdCorridorMode[XtdCorridorMode["XTD_CORRIDOR_MODE_UNSPECIFIED"] = 0] = "XTD_CORRIDOR_MODE_UNSPECIFIED";
443
+ /**
444
+ * XTD_CORRIDOR_MODE_FIXED - Fixed width: parallel lines at xtd_port_m / xtd_starboard_m either side of
445
+ * track.
446
+ */
447
+ XtdCorridorMode[XtdCorridorMode["XTD_CORRIDOR_MODE_FIXED"] = 1] = "XTD_CORRIDOR_MODE_FIXED";
448
+ /**
449
+ * XTD_CORRIDOR_MODE_VARIABLE - Variable width: a boundary drawn by the planner (Leg.xtd_port_boundary /
450
+ * xtd_starboard_boundary), e.g. a corridor that narrows past a shoal.
451
+ * The metre fields (xtd_port_m / xtd_starboard_m and the monitoring pair)
452
+ * MUST NOT exceed the closest approach to track of that side's drawn
453
+ * boundary: they are the INSCRIBED fixed corridor. A monitor that does not
454
+ * evaluate the boundary then alarms early on a wide stretch and never late at
455
+ * the narrow one, which is the direction an XTD limit has to fail. Such a
456
+ * monitor SHOULD report the leg as monitored at reduced fidelity, which is
457
+ * why its alarm may come early.
458
+ */
459
+ XtdCorridorMode[XtdCorridorMode["XTD_CORRIDOR_MODE_VARIABLE"] = 2] = "XTD_CORRIDOR_MODE_VARIABLE";
460
+ XtdCorridorMode[XtdCorridorMode["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
461
+ })(XtdCorridorMode || (exports.XtdCorridorMode = XtdCorridorMode = {}));
462
+ function xtdCorridorModeFromJSON(object) {
463
+ switch (object) {
464
+ case 0:
465
+ case "XTD_CORRIDOR_MODE_UNSPECIFIED":
466
+ return XtdCorridorMode.XTD_CORRIDOR_MODE_UNSPECIFIED;
467
+ case 1:
468
+ case "XTD_CORRIDOR_MODE_FIXED":
469
+ return XtdCorridorMode.XTD_CORRIDOR_MODE_FIXED;
470
+ case 2:
471
+ case "XTD_CORRIDOR_MODE_VARIABLE":
472
+ return XtdCorridorMode.XTD_CORRIDOR_MODE_VARIABLE;
473
+ case -1:
474
+ case "UNRECOGNIZED":
475
+ default:
476
+ return XtdCorridorMode.UNRECOGNIZED;
477
+ }
478
+ }
479
+ exports.xtdCorridorModeFromJSON = xtdCorridorModeFromJSON;
480
+ function xtdCorridorModeToJSON(object) {
481
+ switch (object) {
482
+ case XtdCorridorMode.XTD_CORRIDOR_MODE_UNSPECIFIED:
483
+ return "XTD_CORRIDOR_MODE_UNSPECIFIED";
484
+ case XtdCorridorMode.XTD_CORRIDOR_MODE_FIXED:
485
+ return "XTD_CORRIDOR_MODE_FIXED";
486
+ case XtdCorridorMode.XTD_CORRIDOR_MODE_VARIABLE:
487
+ return "XTD_CORRIDOR_MODE_VARIABLE";
488
+ case XtdCorridorMode.UNRECOGNIZED:
489
+ default:
490
+ return "UNRECOGNIZED";
491
+ }
492
+ }
493
+ exports.xtdCorridorModeToJSON = xtdCorridorModeToJSON;
435
494
  /**
436
495
  * Whether a route's waypoint list closes back on itself. RTZ 1.2 has no such
437
496
  * concept, so producers either repeated the first waypoint (breaking id
@@ -2219,6 +2278,9 @@ function createBaseLeg() {
2219
2278
  xtdStarboardM: undefined,
2220
2279
  xtdMonitoringPortM: undefined,
2221
2280
  xtdMonitoringStarboardM: undefined,
2281
+ xtdCorridorMode: 0,
2282
+ xtdPortBoundary: [],
2283
+ xtdStarboardBoundary: [],
2222
2284
  safetyContourM: undefined,
2223
2285
  safetyDepthM: undefined,
2224
2286
  ukcStaticM: undefined,
@@ -2256,6 +2318,15 @@ exports.Leg = {
2256
2318
  if (message.xtdMonitoringStarboardM !== undefined) {
2257
2319
  writer.uint32(37).float(message.xtdMonitoringStarboardM);
2258
2320
  }
2321
+ if (message.xtdCorridorMode !== 0) {
2322
+ writer.uint32(40).int32(message.xtdCorridorMode);
2323
+ }
2324
+ for (const v of message.xtdPortBoundary) {
2325
+ exports.XtdBoundaryPoint.encode(v, writer.uint32(50).fork()).join();
2326
+ }
2327
+ for (const v of message.xtdStarboardBoundary) {
2328
+ exports.XtdBoundaryPoint.encode(v, writer.uint32(58).fork()).join();
2329
+ }
2259
2330
  if (message.safetyContourM !== undefined) {
2260
2331
  writer.uint32(85).float(message.safetyContourM);
2261
2332
  }
@@ -2356,6 +2427,27 @@ exports.Leg = {
2356
2427
  message.xtdMonitoringStarboardM = reader.float();
2357
2428
  continue;
2358
2429
  }
2430
+ case 5: {
2431
+ if (tag !== 40) {
2432
+ break;
2433
+ }
2434
+ message.xtdCorridorMode = reader.int32();
2435
+ continue;
2436
+ }
2437
+ case 6: {
2438
+ if (tag !== 50) {
2439
+ break;
2440
+ }
2441
+ message.xtdPortBoundary.push(exports.XtdBoundaryPoint.decode(reader, reader.uint32()));
2442
+ continue;
2443
+ }
2444
+ case 7: {
2445
+ if (tag !== 58) {
2446
+ break;
2447
+ }
2448
+ message.xtdStarboardBoundary.push(exports.XtdBoundaryPoint.decode(reader, reader.uint32()));
2449
+ continue;
2450
+ }
2359
2451
  case 10: {
2360
2452
  if (tag !== 85) {
2361
2453
  break;
@@ -2519,6 +2611,13 @@ exports.Leg = {
2519
2611
  xtdMonitoringStarboardM: isSet(object.xtdMonitoringStarboardM)
2520
2612
  ? globalThis.Number(object.xtdMonitoringStarboardM)
2521
2613
  : undefined,
2614
+ xtdCorridorMode: isSet(object.xtdCorridorMode) ? xtdCorridorModeFromJSON(object.xtdCorridorMode) : 0,
2615
+ xtdPortBoundary: globalThis.Array.isArray(object?.xtdPortBoundary)
2616
+ ? object.xtdPortBoundary.map((e) => exports.XtdBoundaryPoint.fromJSON(e))
2617
+ : [],
2618
+ xtdStarboardBoundary: globalThis.Array.isArray(object?.xtdStarboardBoundary)
2619
+ ? object.xtdStarboardBoundary.map((e) => exports.XtdBoundaryPoint.fromJSON(e))
2620
+ : [],
2522
2621
  safetyContourM: isSet(object.safetyContourM) ? globalThis.Number(object.safetyContourM) : undefined,
2523
2622
  safetyDepthM: isSet(object.safetyDepthM) ? globalThis.Number(object.safetyDepthM) : undefined,
2524
2623
  ukcStaticM: isSet(object.ukcStaticM) ? globalThis.Number(object.ukcStaticM) : undefined,
@@ -2558,6 +2657,15 @@ exports.Leg = {
2558
2657
  if (message.xtdMonitoringStarboardM !== undefined) {
2559
2658
  obj.xtdMonitoringStarboardM = message.xtdMonitoringStarboardM;
2560
2659
  }
2660
+ if (message.xtdCorridorMode !== 0) {
2661
+ obj.xtdCorridorMode = xtdCorridorModeToJSON(message.xtdCorridorMode);
2662
+ }
2663
+ if (message.xtdPortBoundary?.length) {
2664
+ obj.xtdPortBoundary = message.xtdPortBoundary.map((e) => exports.XtdBoundaryPoint.toJSON(e));
2665
+ }
2666
+ if (message.xtdStarboardBoundary?.length) {
2667
+ obj.xtdStarboardBoundary = message.xtdStarboardBoundary.map((e) => exports.XtdBoundaryPoint.toJSON(e));
2668
+ }
2561
2669
  if (message.safetyContourM !== undefined) {
2562
2670
  obj.safetyContourM = message.safetyContourM;
2563
2671
  }
@@ -2632,6 +2740,9 @@ exports.Leg = {
2632
2740
  message.xtdStarboardM = object.xtdStarboardM ?? undefined;
2633
2741
  message.xtdMonitoringPortM = object.xtdMonitoringPortM ?? undefined;
2634
2742
  message.xtdMonitoringStarboardM = object.xtdMonitoringStarboardM ?? undefined;
2743
+ message.xtdCorridorMode = object.xtdCorridorMode ?? 0;
2744
+ message.xtdPortBoundary = object.xtdPortBoundary?.map((e) => exports.XtdBoundaryPoint.fromPartial(e)) || [];
2745
+ message.xtdStarboardBoundary = object.xtdStarboardBoundary?.map((e) => exports.XtdBoundaryPoint.fromPartial(e)) || [];
2635
2746
  message.safetyContourM = object.safetyContourM ?? undefined;
2636
2747
  message.safetyDepthM = object.safetyDepthM ?? undefined;
2637
2748
  message.ukcStaticM = object.ukcStaticM ?? undefined;
@@ -2658,6 +2769,106 @@ exports.Leg = {
2658
2769
  return message;
2659
2770
  },
2660
2771
  };
2772
+ function createBaseXtdBoundaryPoint() {
2773
+ return { position: undefined, alongTrackFraction: undefined, offsetM: undefined, inTurn: false };
2774
+ }
2775
+ exports.XtdBoundaryPoint = {
2776
+ encode(message, writer = new wire_1.BinaryWriter()) {
2777
+ if (message.position !== undefined) {
2778
+ Coordinate_1.Coordinate.encode(message.position, writer.uint32(10).fork()).join();
2779
+ }
2780
+ if (message.alongTrackFraction !== undefined) {
2781
+ writer.uint32(17).double(message.alongTrackFraction);
2782
+ }
2783
+ if (message.offsetM !== undefined) {
2784
+ writer.uint32(29).float(message.offsetM);
2785
+ }
2786
+ if (message.inTurn !== false) {
2787
+ writer.uint32(32).bool(message.inTurn);
2788
+ }
2789
+ return writer;
2790
+ },
2791
+ decode(input, length) {
2792
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
2793
+ let end = length === undefined ? reader.len : reader.pos + length;
2794
+ const message = createBaseXtdBoundaryPoint();
2795
+ while (reader.pos < end) {
2796
+ const tag = reader.uint32();
2797
+ switch (tag >>> 3) {
2798
+ case 1: {
2799
+ if (tag !== 10) {
2800
+ break;
2801
+ }
2802
+ message.position = Coordinate_1.Coordinate.decode(reader, reader.uint32());
2803
+ continue;
2804
+ }
2805
+ case 2: {
2806
+ if (tag !== 17) {
2807
+ break;
2808
+ }
2809
+ message.alongTrackFraction = reader.double();
2810
+ continue;
2811
+ }
2812
+ case 3: {
2813
+ if (tag !== 29) {
2814
+ break;
2815
+ }
2816
+ message.offsetM = reader.float();
2817
+ continue;
2818
+ }
2819
+ case 4: {
2820
+ if (tag !== 32) {
2821
+ break;
2822
+ }
2823
+ message.inTurn = reader.bool();
2824
+ continue;
2825
+ }
2826
+ }
2827
+ if ((tag & 7) === 4 || tag === 0) {
2828
+ break;
2829
+ }
2830
+ reader.skip(tag & 7);
2831
+ }
2832
+ return message;
2833
+ },
2834
+ fromJSON(object) {
2835
+ return {
2836
+ position: isSet(object.position) ? Coordinate_1.Coordinate.fromJSON(object.position) : undefined,
2837
+ alongTrackFraction: isSet(object.alongTrackFraction) ? globalThis.Number(object.alongTrackFraction) : undefined,
2838
+ offsetM: isSet(object.offsetM) ? globalThis.Number(object.offsetM) : undefined,
2839
+ inTurn: isSet(object.inTurn) ? globalThis.Boolean(object.inTurn) : false,
2840
+ };
2841
+ },
2842
+ toJSON(message) {
2843
+ const obj = {};
2844
+ if (message.position !== undefined) {
2845
+ obj.position = Coordinate_1.Coordinate.toJSON(message.position);
2846
+ }
2847
+ if (message.alongTrackFraction !== undefined) {
2848
+ obj.alongTrackFraction = message.alongTrackFraction;
2849
+ }
2850
+ if (message.offsetM !== undefined) {
2851
+ obj.offsetM = message.offsetM;
2852
+ }
2853
+ if (message.inTurn !== false) {
2854
+ obj.inTurn = message.inTurn;
2855
+ }
2856
+ return obj;
2857
+ },
2858
+ create(base) {
2859
+ return exports.XtdBoundaryPoint.fromPartial(base ?? {});
2860
+ },
2861
+ fromPartial(object) {
2862
+ const message = createBaseXtdBoundaryPoint();
2863
+ message.position = (object.position !== undefined && object.position !== null)
2864
+ ? Coordinate_1.Coordinate.fromPartial(object.position)
2865
+ : undefined;
2866
+ message.alongTrackFraction = object.alongTrackFraction ?? undefined;
2867
+ message.offsetM = object.offsetM ?? undefined;
2868
+ message.inTurn = object.inTurn ?? false;
2869
+ return message;
2870
+ },
2871
+ };
2661
2872
  function createBaseSchedules() {
2662
2873
  return { schedule: [], extensions: undefined };
2663
2874
  }
@@ -0,0 +1,133 @@
1
+ import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
2
+ export declare const protobufPackage = "keelson";
3
+ export interface VesselType {
4
+ /** Timestamp at which the vessel type was last asserted or observed. */
5
+ timestamp: Date | undefined;
6
+ vesselType: VesselType_VesselType;
7
+ }
8
+ /** Vessel type based on the AIS standard (ITU-R M.1371-5 Table 53). */
9
+ export declare enum VesselType_VesselType {
10
+ NOT_AVAILABLE = 0,
11
+ RESERVED_1 = 1,
12
+ RESERVED_2 = 2,
13
+ RESERVED_3 = 3,
14
+ RESERVED_4 = 4,
15
+ RESERVED_5 = 5,
16
+ RESERVED_6 = 6,
17
+ RESERVED_7 = 7,
18
+ RESERVED_8 = 8,
19
+ RESERVED_9 = 9,
20
+ RESERVED_10 = 10,
21
+ RESERVED_11 = 11,
22
+ RESERVED_12 = 12,
23
+ RESERVED_13 = 13,
24
+ RESERVED_14 = 14,
25
+ RESERVED_15 = 15,
26
+ RESERVED_16 = 16,
27
+ RESERVED_17 = 17,
28
+ RESERVED_18 = 18,
29
+ RESERVED_19 = 19,
30
+ WIG_ALL = 20,
31
+ WIG_HAZARDOUS_A = 21,
32
+ WIG_HAZARDOUS_B = 22,
33
+ WIG_HAZARDOUS_C = 23,
34
+ WIG_HAZARDOUS_D = 24,
35
+ WIG_RESERVED_25 = 25,
36
+ WIG_RESERVED_26 = 26,
37
+ WIG_RESERVED_27 = 27,
38
+ WIG_RESERVED_28 = 28,
39
+ WIG_RESERVED_29 = 29,
40
+ FISHING = 30,
41
+ TOWING = 31,
42
+ TOWING_LARGE = 32,
43
+ DREDGING_UNDERWATER_OPS = 33,
44
+ DIVING_OPS = 34,
45
+ MILITARY_OPS = 35,
46
+ SAILING = 36,
47
+ PLEASURE_CRAFT = 37,
48
+ RESERVED_38 = 38,
49
+ RESERVED_39 = 39,
50
+ HSC_ALL = 40,
51
+ HSC_HAZARDOUS_A = 41,
52
+ HSC_HAZARDOUS_B = 42,
53
+ HSC_HAZARDOUS_C = 43,
54
+ HSC_HAZARDOUS_D = 44,
55
+ HSC_RESERVED_45 = 45,
56
+ HSC_RESERVED_46 = 46,
57
+ HSC_RESERVED_47 = 47,
58
+ HSC_RESERVED_48 = 48,
59
+ HSC_NO_INFO = 49,
60
+ PILOT = 50,
61
+ SEARCH_RESCUE = 51,
62
+ TUG = 52,
63
+ PORT_TENDER = 53,
64
+ ANTI_POLLUTION = 54,
65
+ LAW_ENFORCEMENT = 55,
66
+ SPARE_LOCAL_56 = 56,
67
+ SPARE_LOCAL_57 = 57,
68
+ MEDICAL_TRANSPORT = 58,
69
+ NONCOMBATANT = 59,
70
+ PASSENGER_ALL = 60,
71
+ PASSENGER_HAZARDOUS_A = 61,
72
+ PASSENGER_HAZARDOUS_B = 62,
73
+ PASSENGER_HAZARDOUS_C = 63,
74
+ PASSENGER_HAZARDOUS_D = 64,
75
+ PASSENGER_RESERVED_65 = 65,
76
+ PASSENGER_RESERVED_66 = 66,
77
+ PASSENGER_RESERVED_67 = 67,
78
+ PASSENGER_RESERVED_68 = 68,
79
+ PASSENGER_NO_INFO = 69,
80
+ CARGO_ALL = 70,
81
+ CARGO_HAZARDOUS_A = 71,
82
+ CARGO_HAZARDOUS_B = 72,
83
+ CARGO_HAZARDOUS_C = 73,
84
+ CARGO_HAZARDOUS_D = 74,
85
+ CARGO_RESERVED_75 = 75,
86
+ CARGO_RESERVED_76 = 76,
87
+ CARGO_RESERVED_77 = 77,
88
+ CARGO_RESERVED_78 = 78,
89
+ CARGO_NO_INFO = 79,
90
+ TANKER_ALL = 80,
91
+ TANKER_HAZARDOUS_A = 81,
92
+ TANKER_HAZARDOUS_B = 82,
93
+ TANKER_HAZARDOUS_C = 83,
94
+ TANKER_HAZARDOUS_D = 84,
95
+ TANKER_RESERVED_85 = 85,
96
+ TANKER_RESERVED_86 = 86,
97
+ TANKER_RESERVED_87 = 87,
98
+ TANKER_RESERVED_88 = 88,
99
+ TANKER_NO_INFO = 89,
100
+ OTHER_ALL = 90,
101
+ OTHER_HAZARDOUS_A = 91,
102
+ OTHER_HAZARDOUS_B = 92,
103
+ OTHER_HAZARDOUS_C = 93,
104
+ OTHER_HAZARDOUS_D = 94,
105
+ OTHER_RESERVED_95 = 95,
106
+ OTHER_RESERVED_96 = 96,
107
+ OTHER_RESERVED_97 = 97,
108
+ OTHER_RESERVED_98 = 98,
109
+ OTHER_NO_INFO = 99,
110
+ UNRECOGNIZED = -1
111
+ }
112
+ export declare function vesselType_VesselTypeFromJSON(object: any): VesselType_VesselType;
113
+ export declare function vesselType_VesselTypeToJSON(object: VesselType_VesselType): string;
114
+ export declare const VesselType: MessageFns<VesselType>;
115
+ type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
116
+ export 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 {} ? {
117
+ [K in keyof T]?: DeepPartial<T[K]>;
118
+ } : Partial<T>;
119
+ type KeysOfUnion<T> = T extends T ? keyof T : never;
120
+ export type Exact<P, I extends P> = P extends Builtin ? P : P & {
121
+ [K in keyof P]: Exact<P[K], I[K]>;
122
+ } & {
123
+ [K in Exclude<keyof I, KeysOfUnion<P>>]: never;
124
+ };
125
+ export interface MessageFns<T> {
126
+ encode(message: T, writer?: BinaryWriter): BinaryWriter;
127
+ decode(input: BinaryReader | Uint8Array, length?: number): T;
128
+ fromJSON(object: any): T;
129
+ toJSON(message: T): unknown;
130
+ create<I extends Exact<DeepPartial<T>, I>>(base?: I): T;
131
+ fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T;
132
+ }
133
+ export {};