@lix-js/sdk 0.16.1 → 0.17.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.
Files changed (71) hide show
  1. package/README.md +162 -44
  2. package/dist/binding-types.d.ts +15 -5
  3. package/dist/binding.browser.d.ts +2 -0
  4. package/dist/binding.browser.js +14 -4
  5. package/dist/binding.node-wasm.d.ts +1 -1
  6. package/dist/binding.node-wasm.js +5 -3
  7. package/dist/binding.node.d.ts +2 -0
  8. package/dist/binding.node.js +34 -8
  9. package/dist/bundled-plugins/plugin_csv.lixplugin +0 -0
  10. package/dist/bundled-plugins/plugin_markdown.lixplugin +0 -0
  11. package/dist/compatibility.d.ts +6 -0
  12. package/dist/compatibility.js +6 -0
  13. package/dist/component-host/dispatch.d.ts +12 -0
  14. package/dist/component-host/dispatch.js +364 -0
  15. package/dist/component-host/index.d.ts +15 -0
  16. package/dist/component-host/index.js +84 -0
  17. package/dist/component-host/instrument.d.ts +6 -0
  18. package/dist/component-host/instrument.js +260 -0
  19. package/dist/conversion-provider.d.ts +4 -0
  20. package/dist/conversion-provider.js +20 -0
  21. package/dist/hosted-lix.js +1 -1
  22. package/dist/http-transport.d.ts +25 -0
  23. package/dist/http-transport.js +162 -0
  24. package/dist/index.d.ts +2 -1
  25. package/dist/index.js +1 -0
  26. package/dist/lix.d.ts +14 -9
  27. package/dist/lix.js +44 -9
  28. package/dist/migration-binding.browser.d.ts +33 -0
  29. package/dist/migration-binding.browser.js +46 -0
  30. package/dist/migration-binding.node.d.ts +6 -0
  31. package/dist/migration-binding.node.js +5 -0
  32. package/dist/migration-wasm/lix_js_sdk.d.ts +271 -0
  33. package/dist/migration-wasm/lix_js_sdk.js +1852 -0
  34. package/dist/migration-wasm/lix_js_sdk_bg.wasm +4 -0
  35. package/dist/migration-wasm/lix_js_sdk_bg.wasm.d.ts +101 -0
  36. package/dist/migration.d.ts +23 -0
  37. package/dist/migration.js +55 -0
  38. package/dist/open-lix.js +29 -18
  39. package/dist/open-progress.d.ts +10 -0
  40. package/dist/open-progress.js +59 -0
  41. package/dist/remote/client.d.ts +2 -1
  42. package/dist/remote/client.js +11 -1
  43. package/dist/result.d.ts +4 -3
  44. package/dist/result.js +3 -4
  45. package/dist/storage-adapter.d.ts +7 -1
  46. package/dist/storage-ownership.d.ts +5 -0
  47. package/dist/storage-ownership.js +4 -0
  48. package/dist/types.d.ts +65 -31
  49. package/dist/wasm/lix_js_sdk.d.ts +45 -16
  50. package/dist/wasm/lix_js_sdk.js +214 -60
  51. package/dist/wasm/lix_js_sdk_bg.wasm +2 -2
  52. package/dist/wasm/lix_js_sdk_bg.wasm.d.ts +17 -9
  53. package/dist/worker/client.d.ts +12 -3
  54. package/dist/worker/client.js +95 -81
  55. package/dist/worker/durable-local-admission.d.ts +20 -0
  56. package/dist/worker/durable-local-admission.js +87 -0
  57. package/dist/worker/entry.shared.browser.d.ts +1 -0
  58. package/dist/worker/entry.shared.browser.js +211 -0
  59. package/dist/worker/factory.browser.d.ts +2 -0
  60. package/dist/worker/factory.browser.js +65 -1
  61. package/dist/worker/factory.node.d.ts +1 -0
  62. package/dist/worker/factory.node.js +3 -0
  63. package/dist/worker/host.d.ts +4 -2
  64. package/dist/worker/host.js +86 -32
  65. package/dist/worker/protocol.d.ts +25 -8
  66. package/dist/worker/protocol.js +25 -7
  67. package/dist/worker/shared-admission.d.ts +26 -0
  68. package/dist/worker/shared-admission.js +116 -0
  69. package/dist/worker/shared-engine.d.ts +34 -0
  70. package/dist/worker/shared-engine.js +194 -0
  71. package/package.json +21 -9
package/dist/types.d.ts CHANGED
@@ -1,8 +1,14 @@
1
1
  export type RemoteLixFetch = (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
2
2
  /** A Lix protocol endpoint. Host URL for creation; repository URL for opening/deletion. */
3
3
  export type LixServerOptions = {
4
+ /** Defaults to remote SQL execution. Partial replicas require storage. */
5
+ mode?: "remote" | "partial_replica";
4
6
  url: string | URL;
5
7
  headers?: HeadersInit | (() => HeadersInit | Promise<HeadersInit>);
8
+ /** Network/telemetry adapter. Preserve the supplied credential headers;
9
+ * delegate actual I/O to `networkFetch` to preserve typed network failures.
10
+ * Injecting an account through hidden cookies or replacement credentials is unsupported.
11
+ */
6
12
  fetch?: RemoteLixFetch;
7
13
  };
8
14
  export type HostedLix = {
@@ -54,11 +60,14 @@ export type LixTelemetryOptions = {
54
60
  /** Read immediately before each serialized engine operation. */
55
61
  parentContext?(): LixTelemetryParentContext | undefined;
56
62
  };
57
- /** Stable phases emitted while a local repository is opened. */
63
+ /** Stable phases emitted while a repository is opened. */
58
64
  export type LixOpenPhase = "inspecting" | "migrating" | "validating" | "opening" | "complete";
59
65
  /** One observational repository-open progress snapshot. */
60
66
  export type LixOpenProgress = {
61
67
  phase: LixOpenPhase;
68
+ /** Present for an upgrade owned by the remote authority. */
69
+ scope?: "authority";
70
+ /** May be unknown while waiting for a remote authority upgrade. */
62
71
  fromFormat?: number;
63
72
  toFormat: number;
64
73
  completed?: number;
@@ -130,23 +139,35 @@ export type ReplicaRecoveryReceipt = {
130
139
  restoredRows: number;
131
140
  unresolved: string[];
132
141
  };
142
+ /** Local persistence policy. Buffered acknowledgement can lose saves on a crash. */
143
+ export type Durability = "durable" | "buffered";
133
144
  export type LixOpenProgressOptions = {
134
- /** Observes local inspection, automatic migration, and opening. */
145
+ /** Observes local or authority inspection, automatic migration, and opening. */
135
146
  onProgress?(progress: LixOpenProgress): void;
136
147
  };
137
- /** No options: memory. Storage: local. Server: remote. Storage + server: sync. */
148
+ export type RemoteLixServerOptions = Omit<LixServerOptions, "mode"> & {
149
+ mode?: "remote";
150
+ };
151
+ export type PartialReplicaLixServerOptions = Omit<LixServerOptions, "mode"> & {
152
+ mode: "partial_replica";
153
+ };
154
+ /** Server defaults to remote. Partial replicas explicitly opt in and require storage. */
138
155
  export type OpenLixOptions = ({
139
156
  storage?: import("./storage-adapter.js").LixStorage;
157
+ /** Defaults to durable; applies to all local sessions and transactions. */
158
+ durability?: Durability;
140
159
  server?: never;
141
160
  telemetry?: LixTelemetryOptions;
142
- } & LixOpenProgressOptions) | {
161
+ } & LixOpenProgressOptions) | ({
143
162
  storage?: never;
144
- server: LixServerOptions;
163
+ /** Remote persistence is configured by the authority. */
164
+ durability?: never;
165
+ server: RemoteLixServerOptions;
145
166
  telemetry?: never;
146
- onProgress?: never;
147
- } | ({
167
+ } & LixOpenProgressOptions) | ({
148
168
  storage: import("./storage-adapter.js").LixStorage;
149
- server: LixServerOptions;
169
+ durability?: Durability;
170
+ server: PartialReplicaLixServerOptions;
150
171
  telemetry?: LixTelemetryOptions;
151
172
  } & LixOpenProgressOptions);
152
173
  /** Selects the initial context for an additional independent session. */
@@ -190,6 +211,12 @@ export type JsonValue = null | boolean | number | string | readonly JsonValue[]
190
211
  export type SqlParam = JsonValue | Uint8Array | import("./value.js").Value;
191
212
  export type ExecuteOptions = {
192
213
  originKey?: string;
214
+ /**
215
+ * Caps whole automatic-transaction replays after conflict or snapshot expiry.
216
+ * Zero fails on the first failed attempt. Omit to retain default recovery budgets.
217
+ * Does not control explicit transactions, read recovery, or transport retries.
218
+ */
219
+ maxAutoCommitRetries?: number;
193
220
  /** Returns positional arrays instead of plain objects. Defaults to "object". */
194
221
  rowMode?: "object" | "array";
195
222
  /**
@@ -206,6 +233,12 @@ export type LixBatchStatement = {
206
233
  };
207
234
  export type LixBatchOptions = {
208
235
  originKey?: string;
236
+ /**
237
+ * Caps whole automatic-transaction replays after conflict or snapshot expiry.
238
+ * Zero fails on the first failed attempt. Omit to retain default recovery budgets.
239
+ * Does not control explicit transactions, read recovery, or transport retries.
240
+ */
241
+ maxAutoCommitRetries?: number;
209
242
  /** Returns positional arrays instead of plain objects. Defaults to "object". */
210
243
  rowMode?: "object" | "array";
211
244
  /** See {@link ExecuteOptions.idempotencyKey}. */
@@ -231,7 +264,7 @@ export type CommitSpan = {
231
264
  before: string;
232
265
  after: string;
233
266
  };
234
- export type ExecuteResult<TRow extends object = ResultObjectRow> = {
267
+ export type StatementResult<TRow extends object = ResultObjectRow> = {
235
268
  statementIndex?: number;
236
269
  label?: string;
237
270
  columns: ResultColumn[];
@@ -242,19 +275,19 @@ export type ExecuteResult<TRow extends object = ResultObjectRow> = {
242
275
  message: string;
243
276
  hint?: string;
244
277
  }>;
245
- /**
246
- * Present on every auto-committed write statement, including `RETURNING`
247
- * writes, and on every statement of a written batch (all carry the
248
- * batch's one span, read statements included). Absent for read
249
- * statements outside a written batch, read-only batches, statements
250
- * inside an explicit transaction (whose commit is the write), and the
251
- * first commit on a branch that had no head yet.
252
- */
253
- commit?: CommitSpan;
254
278
  };
255
- export type ExecuteBatchResult<TRow extends object = ResultObjectRow> = ExecuteResult<TRow> & {
279
+ export type ExecuteResult<TRow extends object = ResultObjectRow> = StatementResult<TRow> & CommitReceipt;
280
+ export type CommitReceipt = {
281
+ /** Exact durable transition for a committed write; null for reads. */
282
+ commit: CommitSpan | null;
283
+ };
284
+ export type ExecuteBatchStatementResult<TRow extends object = ResultObjectRow> = StatementResult<TRow> & {
256
285
  statementIndex: number;
257
286
  };
287
+ export type ExecuteBatchResult<TRow extends object = ResultObjectRow> = {
288
+ results: readonly ExecuteBatchStatementResult<TRow>[];
289
+ commit: CommitSpan | null;
290
+ };
258
291
  export type ObserveEvent = {
259
292
  sequence: number;
260
293
  mutationSequence: number;
@@ -315,7 +348,6 @@ export type MergeBranchPreview = {
315
348
  targetHeadCommitId: string;
316
349
  sourceHeadCommitId: string;
317
350
  changeStats: MergeChangeStats;
318
- conflicts: MergeConflict[];
319
351
  };
320
352
  export type MergeChangeStats = {
321
353
  total: number;
@@ -323,15 +355,17 @@ export type MergeChangeStats = {
323
355
  modified: number;
324
356
  removed: number;
325
357
  };
326
- export type MergeConflict = {
327
- kind: "sameRowChanged";
328
- rowRef: string;
329
- fileId: string | null;
330
- target: MergeConflictSide;
331
- source: MergeConflictSide;
332
- };
333
- export type MergeConflictSide = {
334
- kind: "added" | "modified" | "removed";
335
- beforeChangeId: string | null;
336
- afterChangeId: string | null;
358
+ /** Local partial-replica worker health. Running does not guarantee remote freshness. */
359
+ export type SyncHealth = {
360
+ state: "inactive" | "running" | "stalled" | "failed" | "stopped";
361
+ appliedCursor: number | null;
362
+ observedCursor: number | null;
363
+ failures: Partial<Record<"descriptor" | "publication" | "upload" | "lease", {
364
+ code: string;
365
+ message: string;
366
+ }>>;
367
+ terminalError: {
368
+ code: string;
369
+ message: string;
370
+ } | null;
337
371
  };
@@ -1,6 +1,13 @@
1
1
  /* tslint:disable */
2
2
  /* eslint-disable */
3
3
 
4
+ export class BrowserComponentHost {
5
+ private constructor();
6
+ free(): void;
7
+ [Symbol.dispose](): void;
8
+ call(method: string, _arguments: string): string;
9
+ }
10
+
4
11
  export class WasmLix {
5
12
  private constructor();
6
13
  free(): void;
@@ -19,14 +26,16 @@ export class WasmLix {
19
26
  mergeBranch(options: any): Promise<any>;
20
27
  mergeBranchPreview(options: any): Promise<any>;
21
28
  observe(sql: string, params: any): Promise<WasmObserveEvents>;
22
- openAnotherSession(options: any): Promise<WasmLix>;
29
+ openAnotherSession(options: any, telemetry_dispatch?: Function | null): Promise<WasmLix>;
23
30
  openReport(): any;
24
31
  recoverReplica(id: string): Promise<any>;
32
+ recoverReplicaWithServer(id: string, server: any): Promise<any>;
25
33
  redo(): Promise<any>;
26
34
  replicaRecoverySources(): Promise<any>;
27
35
  setTelemetryParent(parent?: any | null): void;
28
36
  switchBranch(options: any): Promise<any>;
29
37
  syncDiskToLix(): Promise<void>;
38
+ syncHealth(): Promise<any>;
30
39
  undo(): Promise<any>;
31
40
  }
32
41
 
@@ -34,7 +43,7 @@ export class WasmLixTransaction {
34
43
  private constructor();
35
44
  free(): void;
36
45
  [Symbol.dispose](): void;
37
- commit(): Promise<void>;
46
+ commit(): Promise<any>;
38
47
  execute(sql: string, params: any, options?: any | null): Promise<any>;
39
48
  rollback(): Promise<void>;
40
49
  }
@@ -67,11 +76,13 @@ export class WasmRemoteLix {
67
76
  observe(sql: string, params: any): Promise<WasmRemoteObserveEvents>;
68
77
  openAnotherSession(options: any): Promise<WasmRemoteLix>;
69
78
  recoverReplica(_id: string): Promise<any>;
79
+ recoverReplicaWithServer(_id: string, _server: any): Promise<any>;
70
80
  redo(): Promise<any>;
71
81
  replicaRecoverySources(): Promise<any>;
72
82
  setTelemetryParent(_parent?: any | null): void;
73
83
  switchBranch(options: any): Promise<any>;
74
84
  syncDiskToLix(): Promise<void>;
85
+ syncHealth(): Promise<any>;
75
86
  undo(): Promise<any>;
76
87
  }
77
88
 
@@ -79,7 +90,7 @@ export class WasmRemoteLixTransaction {
79
90
  private constructor();
80
91
  free(): void;
81
92
  [Symbol.dispose](): void;
82
- commit(): Promise<void>;
93
+ commit(): Promise<any>;
83
94
  execute(sql: string, params: any, options?: any | null): Promise<any>;
84
95
  rollback(): Promise<void>;
85
96
  }
@@ -115,20 +126,31 @@ export function createHosted(server: any): Promise<any>;
115
126
 
116
127
  export function deleteHosted(server: any): Promise<void>;
117
128
 
118
- export function openJsStorage(provider: any, telemetry_dispatch?: Function | null, telemetry_parent?: any | null, server?: any | null, open_progress_dispatch?: Function | null): Promise<WasmLix>;
129
+ /**
130
+ * Read-only routing metadata; available in the current-format runtime.
131
+ */
132
+ export function inspectJsStorageRepository(provider: any): Promise<any>;
133
+
134
+ export function openJsStorage(provider: any, telemetry_dispatch: Function | null | undefined, telemetry_parent: any | null | undefined, server: any | null | undefined, open_progress_dispatch: Function | null | undefined, component_dispatch: Function, durability?: string | null): Promise<WasmLix>;
119
135
 
120
- export function openJsStorageFromSnapshot(provider: any, telemetry_dispatch?: Function | null, telemetry_parent?: any | null, open_progress_dispatch?: Function | null): WasmSnapshotRestore;
136
+ export function openJsStorageFromSnapshot(provider: any, telemetry_dispatch: Function | null | undefined, telemetry_parent: any | null | undefined, open_progress_dispatch: Function | null | undefined, component_dispatch: Function, durability?: string | null): WasmSnapshotRestore;
121
137
 
122
- export function openMemory(telemetry_dispatch?: Function | null, telemetry_parent?: any | null, server?: any | null, open_progress_dispatch?: Function | null): Promise<WasmLix>;
138
+ export function openMemory(telemetry_dispatch: Function | null | undefined, telemetry_parent: any | null | undefined, server: any | null | undefined, open_progress_dispatch: Function | null | undefined, component_dispatch: Function, durability?: string | null): Promise<WasmLix>;
123
139
 
124
- export function openMemoryFromSnapshot(telemetry_dispatch?: Function | null, telemetry_parent?: any | null, open_progress_dispatch?: Function | null): WasmSnapshotRestore;
140
+ export function openMemoryFromSnapshot(telemetry_dispatch: Function | null | undefined, telemetry_parent: any | null | undefined, open_progress_dispatch: Function | null | undefined, component_dispatch: Function, durability?: string | null): WasmSnapshotRestore;
125
141
 
126
142
  export function openRemote(url: string, fetch: Function, headers: any, initial_active_branch_id?: string | null): Promise<WasmRemoteLix>;
127
143
 
144
+ /**
145
+ * Parse the engine SQL dialect for hosts that authorize public SQL.
146
+ */
147
+ export function parseSqlScript(sql: string, provided_param_count: number): any;
148
+
128
149
  export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;
129
150
 
130
151
  export interface InitOutput {
131
152
  readonly memory: WebAssembly.Memory;
153
+ readonly __wbg_browsercomponenthost_free: (a: number, b: number) => void;
132
154
  readonly __wbg_wasmlix_free: (a: number, b: number) => void;
133
155
  readonly __wbg_wasmlixtransaction_free: (a: number, b: number) => void;
134
156
  readonly __wbg_wasmobserveevents_free: (a: number, b: number) => void;
@@ -137,13 +159,16 @@ export interface InitOutput {
137
159
  readonly __wbg_wasmremoteobserveevents_free: (a: number, b: number) => void;
138
160
  readonly __wbg_wasmsnapshotexport_free: (a: number, b: number) => void;
139
161
  readonly __wbg_wasmsnapshotrestore_free: (a: number, b: number) => void;
162
+ readonly browsercomponenthost_call: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
140
163
  readonly createHosted: (a: number) => number;
141
164
  readonly deleteHosted: (a: number) => number;
142
- readonly openJsStorage: (a: number, b: number, c: number, d: number, e: number) => number;
143
- readonly openJsStorageFromSnapshot: (a: number, b: number, c: number, d: number) => number;
144
- readonly openMemory: (a: number, b: number, c: number, d: number) => number;
145
- readonly openMemoryFromSnapshot: (a: number, b: number, c: number) => number;
165
+ readonly inspectJsStorageRepository: (a: number) => number;
166
+ readonly openJsStorage: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => number;
167
+ readonly openJsStorageFromSnapshot: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => number;
168
+ readonly openMemory: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => number;
169
+ readonly openMemoryFromSnapshot: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
146
170
  readonly openRemote: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
171
+ readonly parseSqlScript: (a: number, b: number, c: number, d: number) => void;
147
172
  readonly wasmlix_activeAccountId: (a: number) => number;
148
173
  readonly wasmlix_activeBranchId: (a: number) => number;
149
174
  readonly wasmlix_beginTransaction: (a: number) => number;
@@ -158,14 +183,16 @@ export interface InitOutput {
158
183
  readonly wasmlix_mergeBranch: (a: number, b: number) => number;
159
184
  readonly wasmlix_mergeBranchPreview: (a: number, b: number) => number;
160
185
  readonly wasmlix_observe: (a: number, b: number, c: number, d: number) => number;
161
- readonly wasmlix_openAnotherSession: (a: number, b: number) => number;
186
+ readonly wasmlix_openAnotherSession: (a: number, b: number, c: number) => number;
162
187
  readonly wasmlix_openReport: (a: number, b: number) => void;
163
188
  readonly wasmlix_recoverReplica: (a: number, b: number, c: number) => number;
189
+ readonly wasmlix_recoverReplicaWithServer: (a: number, b: number, c: number, d: number) => number;
164
190
  readonly wasmlix_redo: (a: number) => number;
165
191
  readonly wasmlix_replicaRecoverySources: (a: number) => number;
166
192
  readonly wasmlix_setTelemetryParent: (a: number, b: number, c: number) => void;
167
193
  readonly wasmlix_switchBranch: (a: number, b: number) => number;
168
194
  readonly wasmlix_syncDiskToLix: (a: number) => number;
195
+ readonly wasmlix_syncHealth: (a: number) => number;
169
196
  readonly wasmlix_undo: (a: number) => number;
170
197
  readonly wasmlixtransaction_commit: (a: number) => number;
171
198
  readonly wasmlixtransaction_execute: (a: number, b: number, c: number, d: number, e: number) => number;
@@ -188,11 +215,13 @@ export interface InitOutput {
188
215
  readonly wasmremotelix_observe: (a: number, b: number, c: number, d: number) => number;
189
216
  readonly wasmremotelix_openAnotherSession: (a: number, b: number) => number;
190
217
  readonly wasmremotelix_recoverReplica: (a: number, b: number, c: number) => number;
218
+ readonly wasmremotelix_recoverReplicaWithServer: (a: number, b: number, c: number, d: number) => number;
191
219
  readonly wasmremotelix_redo: (a: number) => number;
192
220
  readonly wasmremotelix_replicaRecoverySources: (a: number) => number;
193
221
  readonly wasmremotelix_setTelemetryParent: (a: number, b: number) => void;
194
222
  readonly wasmremotelix_switchBranch: (a: number, b: number) => number;
195
223
  readonly wasmremotelix_syncDiskToLix: (a: number) => number;
224
+ readonly wasmremotelix_syncHealth: (a: number) => number;
196
225
  readonly wasmremotelix_undo: (a: number) => number;
197
226
  readonly wasmremotelixtransaction_commit: (a: number) => number;
198
227
  readonly wasmremotelixtransaction_execute: (a: number, b: number, c: number, d: number, e: number) => number;
@@ -206,10 +235,10 @@ export interface InitOutput {
206
235
  readonly wasmsnapshotrestore_finish: (a: number) => number;
207
236
  readonly wasmsnapshotrestore_isComplete: (a: number) => number;
208
237
  readonly wasmsnapshotrestore_write: (a: number, b: number, c: number) => number;
209
- readonly __wasm_bindgen_func_elem_95812: (a: number, b: number, c: number, d: number) => void;
210
- readonly __wasm_bindgen_func_elem_95814: (a: number, b: number, c: number, d: number) => void;
211
- readonly __wasm_bindgen_func_elem_17860: (a: number, b: number, c: number) => number;
212
- readonly __wasm_bindgen_func_elem_17859: (a: number, b: number) => void;
238
+ readonly __wasm_bindgen_func_elem_99617: (a: number, b: number, c: number, d: number) => void;
239
+ readonly __wasm_bindgen_func_elem_99619: (a: number, b: number, c: number, d: number) => void;
240
+ readonly __wasm_bindgen_func_elem_20812: (a: number, b: number, c: number) => number;
241
+ readonly __wasm_bindgen_func_elem_20811: (a: number, b: number) => void;
213
242
  readonly __wbindgen_export: (a: number, b: number) => number;
214
243
  readonly __wbindgen_export2: (a: number, b: number, c: number, d: number) => number;
215
244
  readonly __wbindgen_export3: (a: number) => void;