weave-typescript 0.22.0 → 0.24.0

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.
@@ -96,6 +96,8 @@ export interface ChatEphemeralAttachment {
96
96
  }
97
97
  /** Streaming frame. Exactly one of the oneof values is set per frame. */
98
98
  export interface ChatStreamFrame {
99
+ /** Opaque stable event id for replay/resume. Replayed frames keep the same id. */
100
+ eventId: string;
99
101
  messageStarted?: ChatStreamFrame_MessageStarted | undefined;
100
102
  messageDelta?: ChatStreamFrame_MessageDelta | undefined;
101
103
  toolCallProposed?: ChatStreamFrame_ToolCallProposed | undefined;
@@ -1165,6 +1165,7 @@ exports.ChatEphemeralAttachment = {
1165
1165
  };
1166
1166
  function createBaseChatStreamFrame() {
1167
1167
  return {
1168
+ eventId: "",
1168
1169
  messageStarted: undefined,
1169
1170
  messageDelta: undefined,
1170
1171
  toolCallProposed: undefined,
@@ -1179,6 +1180,9 @@ function createBaseChatStreamFrame() {
1179
1180
  }
1180
1181
  exports.ChatStreamFrame = {
1181
1182
  encode(message, writer = new wire_1.BinaryWriter()) {
1183
+ if (message.eventId !== "") {
1184
+ writer.uint32(90).string(message.eventId);
1185
+ }
1182
1186
  if (message.messageStarted !== undefined) {
1183
1187
  exports.ChatStreamFrame_MessageStarted.encode(message.messageStarted, writer.uint32(10).fork()).join();
1184
1188
  }
@@ -1218,6 +1222,13 @@ exports.ChatStreamFrame = {
1218
1222
  while (reader.pos < end) {
1219
1223
  const tag = reader.uint32();
1220
1224
  switch (tag >>> 3) {
1225
+ case 11: {
1226
+ if (tag !== 90) {
1227
+ break;
1228
+ }
1229
+ message.eventId = reader.string();
1230
+ continue;
1231
+ }
1221
1232
  case 1: {
1222
1233
  if (tag !== 10) {
1223
1234
  break;
@@ -1298,6 +1309,11 @@ exports.ChatStreamFrame = {
1298
1309
  },
1299
1310
  fromJSON(object) {
1300
1311
  return {
1312
+ eventId: isSet(object.eventId)
1313
+ ? globalThis.String(object.eventId)
1314
+ : isSet(object.event_id)
1315
+ ? globalThis.String(object.event_id)
1316
+ : "",
1301
1317
  messageStarted: isSet(object.messageStarted)
1302
1318
  ? exports.ChatStreamFrame_MessageStarted.fromJSON(object.messageStarted)
1303
1319
  : isSet(object.message_started)
@@ -1352,6 +1368,9 @@ exports.ChatStreamFrame = {
1352
1368
  },
1353
1369
  toJSON(message) {
1354
1370
  const obj = {};
1371
+ if (message.eventId !== "") {
1372
+ obj.eventId = message.eventId;
1373
+ }
1355
1374
  if (message.messageStarted !== undefined) {
1356
1375
  obj.messageStarted = exports.ChatStreamFrame_MessageStarted.toJSON(message.messageStarted);
1357
1376
  }
@@ -1388,7 +1407,9 @@ exports.ChatStreamFrame = {
1388
1407
  return exports.ChatStreamFrame.fromPartial(base !== null && base !== void 0 ? base : {});
1389
1408
  },
1390
1409
  fromPartial(object) {
1410
+ var _a;
1391
1411
  const message = createBaseChatStreamFrame();
1412
+ message.eventId = (_a = object.eventId) !== null && _a !== void 0 ? _a : "";
1392
1413
  message.messageStarted = (object.messageStarted !== undefined && object.messageStarted !== null)
1393
1414
  ? exports.ChatStreamFrame_MessageStarted.fromPartial(object.messageStarted)
1394
1415
  : undefined;
@@ -60,6 +60,7 @@ export interface PostMessageResponse {
60
60
  }
61
61
  export interface AttachStreamRequest {
62
62
  sessionId: string;
63
+ /** Opaque ChatStreamFrame.event_id from the last fully received frame. */
63
64
  lastSeenEventId: string;
64
65
  }
65
66
  export interface AttachStreamResponse {
@@ -0,0 +1,38 @@
1
+ import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
2
+ export declare const protobufPackage = "weaveapi.organization.v1";
3
+ /**
4
+ * Organization is the top-level tenant in Weave. The slug is the URL-facing
5
+ * identifier; id is the stable FK target.
6
+ */
7
+ export interface Organization {
8
+ id: string;
9
+ slug: string;
10
+ name: string;
11
+ description: string;
12
+ primaryColor: string;
13
+ hasLogo: boolean;
14
+ timezone: string;
15
+ location: string;
16
+ createdAt: Date | undefined;
17
+ updatedAt: Date | undefined;
18
+ }
19
+ export declare const Organization: MessageFns<Organization>;
20
+ type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
21
+ 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 {} ? {
22
+ [K in keyof T]?: DeepPartial<T[K]>;
23
+ } : Partial<T>;
24
+ type KeysOfUnion<T> = T extends T ? keyof T : never;
25
+ export type Exact<P, I extends P> = P extends Builtin ? P : P & {
26
+ [K in keyof P]: Exact<P[K], I[K]>;
27
+ } & {
28
+ [K in Exclude<keyof I, KeysOfUnion<P>>]: never;
29
+ };
30
+ export interface MessageFns<T> {
31
+ encode(message: T, writer?: BinaryWriter): BinaryWriter;
32
+ decode(input: BinaryReader | Uint8Array, length?: number): T;
33
+ fromJSON(object: any): T;
34
+ toJSON(message: T): unknown;
35
+ create<I extends Exact<DeepPartial<T>, I>>(base?: I): T;
36
+ fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T;
37
+ }
38
+ export {};
@@ -0,0 +1,252 @@
1
+ "use strict";
2
+ // Code generated by protoc-gen-ts_proto. DO NOT EDIT.
3
+ // versions:
4
+ // protoc-gen-ts_proto v2.11.6
5
+ // protoc unknown
6
+ // source: weaveapi/organization/v1/organization.proto
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.Organization = exports.protobufPackage = void 0;
9
+ /* eslint-disable */
10
+ const wire_1 = require("@bufbuild/protobuf/wire");
11
+ const timestamp_pb_1 = require("../../../google/protobuf/timestamp.pb");
12
+ exports.protobufPackage = "weaveapi.organization.v1";
13
+ function createBaseOrganization() {
14
+ return {
15
+ id: "",
16
+ slug: "",
17
+ name: "",
18
+ description: "",
19
+ primaryColor: "",
20
+ hasLogo: false,
21
+ timezone: "",
22
+ location: "",
23
+ createdAt: undefined,
24
+ updatedAt: undefined,
25
+ };
26
+ }
27
+ exports.Organization = {
28
+ encode(message, writer = new wire_1.BinaryWriter()) {
29
+ if (message.id !== "") {
30
+ writer.uint32(10).string(message.id);
31
+ }
32
+ if (message.slug !== "") {
33
+ writer.uint32(18).string(message.slug);
34
+ }
35
+ if (message.name !== "") {
36
+ writer.uint32(26).string(message.name);
37
+ }
38
+ if (message.description !== "") {
39
+ writer.uint32(34).string(message.description);
40
+ }
41
+ if (message.primaryColor !== "") {
42
+ writer.uint32(42).string(message.primaryColor);
43
+ }
44
+ if (message.hasLogo !== false) {
45
+ writer.uint32(48).bool(message.hasLogo);
46
+ }
47
+ if (message.timezone !== "") {
48
+ writer.uint32(58).string(message.timezone);
49
+ }
50
+ if (message.location !== "") {
51
+ writer.uint32(66).string(message.location);
52
+ }
53
+ if (message.createdAt !== undefined) {
54
+ timestamp_pb_1.Timestamp.encode(toTimestamp(message.createdAt), writer.uint32(74).fork()).join();
55
+ }
56
+ if (message.updatedAt !== undefined) {
57
+ timestamp_pb_1.Timestamp.encode(toTimestamp(message.updatedAt), writer.uint32(82).fork()).join();
58
+ }
59
+ return writer;
60
+ },
61
+ decode(input, length) {
62
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
63
+ const end = length === undefined ? reader.len : reader.pos + length;
64
+ const message = createBaseOrganization();
65
+ while (reader.pos < end) {
66
+ const tag = reader.uint32();
67
+ switch (tag >>> 3) {
68
+ case 1: {
69
+ if (tag !== 10) {
70
+ break;
71
+ }
72
+ message.id = reader.string();
73
+ continue;
74
+ }
75
+ case 2: {
76
+ if (tag !== 18) {
77
+ break;
78
+ }
79
+ message.slug = reader.string();
80
+ continue;
81
+ }
82
+ case 3: {
83
+ if (tag !== 26) {
84
+ break;
85
+ }
86
+ message.name = reader.string();
87
+ continue;
88
+ }
89
+ case 4: {
90
+ if (tag !== 34) {
91
+ break;
92
+ }
93
+ message.description = reader.string();
94
+ continue;
95
+ }
96
+ case 5: {
97
+ if (tag !== 42) {
98
+ break;
99
+ }
100
+ message.primaryColor = reader.string();
101
+ continue;
102
+ }
103
+ case 6: {
104
+ if (tag !== 48) {
105
+ break;
106
+ }
107
+ message.hasLogo = reader.bool();
108
+ continue;
109
+ }
110
+ case 7: {
111
+ if (tag !== 58) {
112
+ break;
113
+ }
114
+ message.timezone = reader.string();
115
+ continue;
116
+ }
117
+ case 8: {
118
+ if (tag !== 66) {
119
+ break;
120
+ }
121
+ message.location = reader.string();
122
+ continue;
123
+ }
124
+ case 9: {
125
+ if (tag !== 74) {
126
+ break;
127
+ }
128
+ message.createdAt = fromTimestamp(timestamp_pb_1.Timestamp.decode(reader, reader.uint32()));
129
+ continue;
130
+ }
131
+ case 10: {
132
+ if (tag !== 82) {
133
+ break;
134
+ }
135
+ message.updatedAt = fromTimestamp(timestamp_pb_1.Timestamp.decode(reader, reader.uint32()));
136
+ continue;
137
+ }
138
+ }
139
+ if ((tag & 7) === 4 || tag === 0) {
140
+ break;
141
+ }
142
+ reader.skip(tag & 7);
143
+ }
144
+ return message;
145
+ },
146
+ fromJSON(object) {
147
+ return {
148
+ id: isSet(object.id) ? globalThis.String(object.id) : "",
149
+ slug: isSet(object.slug) ? globalThis.String(object.slug) : "",
150
+ name: isSet(object.name) ? globalThis.String(object.name) : "",
151
+ description: isSet(object.description) ? globalThis.String(object.description) : "",
152
+ primaryColor: isSet(object.primaryColor)
153
+ ? globalThis.String(object.primaryColor)
154
+ : isSet(object.primary_color)
155
+ ? globalThis.String(object.primary_color)
156
+ : "",
157
+ hasLogo: isSet(object.hasLogo)
158
+ ? globalThis.Boolean(object.hasLogo)
159
+ : isSet(object.has_logo)
160
+ ? globalThis.Boolean(object.has_logo)
161
+ : false,
162
+ timezone: isSet(object.timezone) ? globalThis.String(object.timezone) : "",
163
+ location: isSet(object.location) ? globalThis.String(object.location) : "",
164
+ createdAt: isSet(object.createdAt)
165
+ ? fromJsonTimestamp(object.createdAt)
166
+ : isSet(object.created_at)
167
+ ? fromJsonTimestamp(object.created_at)
168
+ : undefined,
169
+ updatedAt: isSet(object.updatedAt)
170
+ ? fromJsonTimestamp(object.updatedAt)
171
+ : isSet(object.updated_at)
172
+ ? fromJsonTimestamp(object.updated_at)
173
+ : undefined,
174
+ };
175
+ },
176
+ toJSON(message) {
177
+ const obj = {};
178
+ if (message.id !== "") {
179
+ obj.id = message.id;
180
+ }
181
+ if (message.slug !== "") {
182
+ obj.slug = message.slug;
183
+ }
184
+ if (message.name !== "") {
185
+ obj.name = message.name;
186
+ }
187
+ if (message.description !== "") {
188
+ obj.description = message.description;
189
+ }
190
+ if (message.primaryColor !== "") {
191
+ obj.primaryColor = message.primaryColor;
192
+ }
193
+ if (message.hasLogo !== false) {
194
+ obj.hasLogo = message.hasLogo;
195
+ }
196
+ if (message.timezone !== "") {
197
+ obj.timezone = message.timezone;
198
+ }
199
+ if (message.location !== "") {
200
+ obj.location = message.location;
201
+ }
202
+ if (message.createdAt !== undefined) {
203
+ obj.createdAt = message.createdAt.toISOString();
204
+ }
205
+ if (message.updatedAt !== undefined) {
206
+ obj.updatedAt = message.updatedAt.toISOString();
207
+ }
208
+ return obj;
209
+ },
210
+ create(base) {
211
+ return exports.Organization.fromPartial(base !== null && base !== void 0 ? base : {});
212
+ },
213
+ fromPartial(object) {
214
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
215
+ const message = createBaseOrganization();
216
+ message.id = (_a = object.id) !== null && _a !== void 0 ? _a : "";
217
+ message.slug = (_b = object.slug) !== null && _b !== void 0 ? _b : "";
218
+ message.name = (_c = object.name) !== null && _c !== void 0 ? _c : "";
219
+ message.description = (_d = object.description) !== null && _d !== void 0 ? _d : "";
220
+ message.primaryColor = (_e = object.primaryColor) !== null && _e !== void 0 ? _e : "";
221
+ message.hasLogo = (_f = object.hasLogo) !== null && _f !== void 0 ? _f : false;
222
+ message.timezone = (_g = object.timezone) !== null && _g !== void 0 ? _g : "";
223
+ message.location = (_h = object.location) !== null && _h !== void 0 ? _h : "";
224
+ message.createdAt = (_j = object.createdAt) !== null && _j !== void 0 ? _j : undefined;
225
+ message.updatedAt = (_k = object.updatedAt) !== null && _k !== void 0 ? _k : undefined;
226
+ return message;
227
+ },
228
+ };
229
+ function toTimestamp(date) {
230
+ const seconds = Math.trunc(date.getTime() / 1000);
231
+ const nanos = (date.getTime() % 1000) * 1000000;
232
+ return { seconds, nanos };
233
+ }
234
+ function fromTimestamp(t) {
235
+ let millis = (t.seconds || 0) * 1000;
236
+ millis += (t.nanos || 0) / 1000000;
237
+ return new globalThis.Date(millis);
238
+ }
239
+ function fromJsonTimestamp(o) {
240
+ if (o instanceof globalThis.Date) {
241
+ return o;
242
+ }
243
+ else if (typeof o === "string") {
244
+ return new globalThis.Date(o);
245
+ }
246
+ else {
247
+ return fromTimestamp(timestamp_pb_1.Timestamp.fromJSON(o));
248
+ }
249
+ }
250
+ function isSet(value) {
251
+ return value !== null && value !== undefined;
252
+ }
@@ -0,0 +1,202 @@
1
+ import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
2
+ import { Organization } from "./organization.pb";
3
+ export declare const protobufPackage = "weaveapi.organization.v1";
4
+ export interface ListOrganizationsRequest {
5
+ }
6
+ export interface ListOrganizationsResponse {
7
+ organizations: Organization[];
8
+ }
9
+ export interface CreateOrganizationRequest {
10
+ /** If slug is empty, the server generates one from name. */
11
+ slug: string;
12
+ name: string;
13
+ description: string;
14
+ /** Hex RGB like "#22d3ee". Empty string means "use default". */
15
+ primaryColor: string;
16
+ /** IANA timezone. Empty string means "use default" (UTC). */
17
+ timezone: string;
18
+ location: string;
19
+ }
20
+ export interface CreateOrganizationResponse {
21
+ organization: Organization | undefined;
22
+ }
23
+ export interface GetOrganizationBySlugRequest {
24
+ slug: string;
25
+ }
26
+ export interface GetOrganizationBySlugResponse {
27
+ organization: Organization | undefined;
28
+ }
29
+ export interface GetOrganizationByIdRequest {
30
+ id: string;
31
+ }
32
+ export interface GetOrganizationByIdResponse {
33
+ organization: Organization | undefined;
34
+ }
35
+ /**
36
+ * UpdateOrganizationRequest uses the "present optional" convention used
37
+ * elsewhere in weaveapi: an empty string leaves the field unchanged.
38
+ * To explicitly clear a field, send a single space then rely on server-side
39
+ * trimming rejecting it. For a boolean-style "clear", use the dedicated
40
+ * logo REST endpoint (there is no nullable string field to clear in this
41
+ * request).
42
+ */
43
+ export interface UpdateOrganizationRequest {
44
+ /** the current slug (path param) */
45
+ slug: string;
46
+ /** optional; empty means unchanged */
47
+ newSlug: string;
48
+ /** optional; empty means unchanged */
49
+ name: string;
50
+ /** optional; empty means unchanged */
51
+ description: string;
52
+ /** optional; empty means unchanged */
53
+ primaryColor: string;
54
+ /** optional; empty means unchanged */
55
+ timezone: string;
56
+ /** optional; empty means unchanged */
57
+ location: string;
58
+ }
59
+ export interface UpdateOrganizationResponse {
60
+ organization: Organization | undefined;
61
+ }
62
+ export interface DeleteOrganizationRequest {
63
+ slug: string;
64
+ }
65
+ export interface DeleteOrganizationResponse {
66
+ deleted: boolean;
67
+ }
68
+ export declare const ListOrganizationsRequest: MessageFns<ListOrganizationsRequest>;
69
+ export declare const ListOrganizationsResponse: MessageFns<ListOrganizationsResponse>;
70
+ export declare const CreateOrganizationRequest: MessageFns<CreateOrganizationRequest>;
71
+ export declare const CreateOrganizationResponse: MessageFns<CreateOrganizationResponse>;
72
+ export declare const GetOrganizationBySlugRequest: MessageFns<GetOrganizationBySlugRequest>;
73
+ export declare const GetOrganizationBySlugResponse: MessageFns<GetOrganizationBySlugResponse>;
74
+ export declare const GetOrganizationByIdRequest: MessageFns<GetOrganizationByIdRequest>;
75
+ export declare const GetOrganizationByIdResponse: MessageFns<GetOrganizationByIdResponse>;
76
+ export declare const UpdateOrganizationRequest: MessageFns<UpdateOrganizationRequest>;
77
+ export declare const UpdateOrganizationResponse: MessageFns<UpdateOrganizationResponse>;
78
+ export declare const DeleteOrganizationRequest: MessageFns<DeleteOrganizationRequest>;
79
+ export declare const DeleteOrganizationResponse: MessageFns<DeleteOrganizationResponse>;
80
+ export interface OrganizationService {
81
+ ListOrganizations(request: ListOrganizationsRequest): Promise<ListOrganizationsResponse>;
82
+ CreateOrganization(request: CreateOrganizationRequest): Promise<CreateOrganizationResponse>;
83
+ GetOrganizationBySlug(request: GetOrganizationBySlugRequest): Promise<GetOrganizationBySlugResponse>;
84
+ GetOrganizationById(request: GetOrganizationByIdRequest): Promise<GetOrganizationByIdResponse>;
85
+ UpdateOrganization(request: UpdateOrganizationRequest): Promise<UpdateOrganizationResponse>;
86
+ DeleteOrganization(request: DeleteOrganizationRequest): Promise<DeleteOrganizationResponse>;
87
+ }
88
+ export declare const OrganizationServiceServiceName = "weaveapi.organization.v1.OrganizationService";
89
+ export declare class OrganizationServiceClientImpl implements OrganizationService {
90
+ private readonly rpc;
91
+ private readonly service;
92
+ constructor(rpc: Rpc, opts?: {
93
+ service?: string;
94
+ });
95
+ ListOrganizations(request: ListOrganizationsRequest): Promise<ListOrganizationsResponse>;
96
+ CreateOrganization(request: CreateOrganizationRequest): Promise<CreateOrganizationResponse>;
97
+ GetOrganizationBySlug(request: GetOrganizationBySlugRequest): Promise<GetOrganizationBySlugResponse>;
98
+ GetOrganizationById(request: GetOrganizationByIdRequest): Promise<GetOrganizationByIdResponse>;
99
+ UpdateOrganization(request: UpdateOrganizationRequest): Promise<UpdateOrganizationResponse>;
100
+ DeleteOrganization(request: DeleteOrganizationRequest): Promise<DeleteOrganizationResponse>;
101
+ }
102
+ export type OrganizationServiceDefinition = typeof OrganizationServiceDefinition;
103
+ export declare const OrganizationServiceDefinition: {
104
+ readonly name: "OrganizationService";
105
+ readonly fullName: "weaveapi.organization.v1.OrganizationService";
106
+ readonly methods: {
107
+ readonly listOrganizations: {
108
+ readonly name: "ListOrganizations";
109
+ readonly requestType: typeof ListOrganizationsRequest;
110
+ readonly requestStream: false;
111
+ readonly responseType: typeof ListOrganizationsResponse;
112
+ readonly responseStream: false;
113
+ readonly options: {
114
+ readonly _unknownFields: {
115
+ readonly 578365826: readonly [Uint8Array];
116
+ };
117
+ };
118
+ };
119
+ readonly createOrganization: {
120
+ readonly name: "CreateOrganization";
121
+ readonly requestType: typeof CreateOrganizationRequest;
122
+ readonly requestStream: false;
123
+ readonly responseType: typeof CreateOrganizationResponse;
124
+ readonly responseStream: false;
125
+ readonly options: {
126
+ readonly _unknownFields: {
127
+ readonly 578365826: readonly [Uint8Array];
128
+ };
129
+ };
130
+ };
131
+ readonly getOrganizationBySlug: {
132
+ readonly name: "GetOrganizationBySlug";
133
+ readonly requestType: typeof GetOrganizationBySlugRequest;
134
+ readonly requestStream: false;
135
+ readonly responseType: typeof GetOrganizationBySlugResponse;
136
+ readonly responseStream: false;
137
+ readonly options: {
138
+ readonly _unknownFields: {
139
+ readonly 578365826: readonly [Uint8Array];
140
+ };
141
+ };
142
+ };
143
+ readonly getOrganizationById: {
144
+ readonly name: "GetOrganizationById";
145
+ readonly requestType: typeof GetOrganizationByIdRequest;
146
+ readonly requestStream: false;
147
+ readonly responseType: typeof GetOrganizationByIdResponse;
148
+ readonly responseStream: false;
149
+ readonly options: {
150
+ readonly _unknownFields: {
151
+ readonly 578365826: readonly [Uint8Array];
152
+ };
153
+ };
154
+ };
155
+ readonly updateOrganization: {
156
+ readonly name: "UpdateOrganization";
157
+ readonly requestType: typeof UpdateOrganizationRequest;
158
+ readonly requestStream: false;
159
+ readonly responseType: typeof UpdateOrganizationResponse;
160
+ readonly responseStream: false;
161
+ readonly options: {
162
+ readonly _unknownFields: {
163
+ readonly 578365826: readonly [Uint8Array];
164
+ };
165
+ };
166
+ };
167
+ readonly deleteOrganization: {
168
+ readonly name: "DeleteOrganization";
169
+ readonly requestType: typeof DeleteOrganizationRequest;
170
+ readonly requestStream: false;
171
+ readonly responseType: typeof DeleteOrganizationResponse;
172
+ readonly responseStream: false;
173
+ readonly options: {
174
+ readonly _unknownFields: {
175
+ readonly 578365826: readonly [Uint8Array];
176
+ };
177
+ };
178
+ };
179
+ };
180
+ };
181
+ interface Rpc {
182
+ request(service: string, method: string, data: Uint8Array): Promise<Uint8Array>;
183
+ }
184
+ type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
185
+ 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 {} ? {
186
+ [K in keyof T]?: DeepPartial<T[K]>;
187
+ } : Partial<T>;
188
+ type KeysOfUnion<T> = T extends T ? keyof T : never;
189
+ export type Exact<P, I extends P> = P extends Builtin ? P : P & {
190
+ [K in keyof P]: Exact<P[K], I[K]>;
191
+ } & {
192
+ [K in Exclude<keyof I, KeysOfUnion<P>>]: never;
193
+ };
194
+ export interface MessageFns<T> {
195
+ encode(message: T, writer?: BinaryWriter): BinaryWriter;
196
+ decode(input: BinaryReader | Uint8Array, length?: number): T;
197
+ fromJSON(object: any): T;
198
+ toJSON(message: T): unknown;
199
+ create<I extends Exact<DeepPartial<T>, I>>(base?: I): T;
200
+ fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T;
201
+ }
202
+ export {};