@openmbee/opensysml 0.9.1 → 0.10.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 (69) hide show
  1. package/README.md +355 -33
  2. package/dist/browser/index.d.ts +9 -0
  3. package/dist/browser/index.js +16 -0
  4. package/dist/browser/wasm-worker.d.ts +1 -0
  5. package/dist/browser/wasm-worker.js +2 -0
  6. package/dist/browser/wasm.d.ts +17 -0
  7. package/dist/browser/wasm.js +94 -0
  8. package/dist/core/arguments.d.ts +4 -0
  9. package/dist/core/arguments.js +19 -0
  10. package/dist/core/capabilities.d.ts +90 -9
  11. package/dist/core/capabilities.js +111 -10
  12. package/dist/core/connection.d.ts +203 -2
  13. package/dist/core/connection.js +810 -17
  14. package/dist/core/conversion.d.ts +153 -0
  15. package/dist/core/conversion.js +191 -0
  16. package/dist/core/document.d.ts +188 -0
  17. package/dist/core/document.js +457 -0
  18. package/dist/core/edit.d.ts +446 -0
  19. package/dist/core/edit.js +1994 -0
  20. package/dist/core/engines.d.ts +64 -0
  21. package/dist/core/engines.js +74 -0
  22. package/dist/core/errors.d.ts +164 -2
  23. package/dist/core/errors.js +209 -3
  24. package/dist/core/exploration.d.ts +71 -0
  25. package/dist/core/exploration.js +116 -0
  26. package/dist/core/graphs.d.ts +15 -0
  27. package/dist/core/graphs.js +3 -0
  28. package/dist/core/index.d.ts +30 -9
  29. package/dist/core/index.js +14 -5
  30. package/dist/core/model.d.ts +168 -8
  31. package/dist/core/model.js +258 -31
  32. package/dist/core/package.d.ts +2 -0
  33. package/dist/core/package.js +2 -0
  34. package/dist/core/query.d.ts +50 -0
  35. package/dist/core/query.js +197 -0
  36. package/dist/core/render-view.d.ts +97 -0
  37. package/dist/core/render-view.js +120 -0
  38. package/dist/core/sources.d.ts +34 -0
  39. package/dist/core/sources.js +134 -0
  40. package/dist/core/status.d.ts +9 -2
  41. package/dist/core/status.js +24 -8
  42. package/dist/core/typed.d.ts +71 -0
  43. package/dist/core/typed.js +245 -0
  44. package/dist/core/values.d.ts +127 -8
  45. package/dist/core/values.js +536 -30
  46. package/dist/core/verdict.d.ts +271 -0
  47. package/dist/core/verdict.js +567 -0
  48. package/dist/core/wasm.d.ts +114 -0
  49. package/dist/core/wasm.js +514 -0
  50. package/dist/generated/sysml_pb.d.ts +1080 -22
  51. package/dist/generated/sysml_pb.js +200 -100
  52. package/dist/node/binary.d.ts +2 -0
  53. package/dist/node/binary.js +8 -6
  54. package/dist/node/generate-cli.d.ts +2 -0
  55. package/dist/node/generate-cli.js +10 -0
  56. package/dist/node/generate.d.ts +99 -0
  57. package/dist/node/generate.js +757 -0
  58. package/dist/node/index.d.ts +29 -2
  59. package/dist/node/index.js +211 -10
  60. package/dist/node/service.d.ts +5 -3
  61. package/dist/node/service.js +32 -26
  62. package/dist/node/wasm-source.d.ts +18 -0
  63. package/dist/node/wasm-source.js +103 -0
  64. package/dist/node/wasm-worker.d.ts +1 -0
  65. package/dist/node/wasm-worker.js +10 -0
  66. package/dist/node/wasm.d.ts +17 -0
  67. package/dist/node/wasm.js +63 -0
  68. package/package.json +19 -7
  69. package/release-digests.json +105 -0
@@ -0,0 +1,446 @@
1
+ import { type ApplyEditsResponse, type EditOperation } from "../generated/sysml_pb.js";
2
+ import { type ServerInfo } from "./capabilities.js";
3
+ import { Conversion } from "./conversion.js";
4
+ import { EditError, Referrer, type ModelDiagnostic } from "./errors.js";
5
+ import type { ModelSymbol } from "./model.js";
6
+ /** One element an operation targets: a symbol id (FQN) or a ModelSymbol. */
7
+ export type EditTarget = string | ModelSymbol;
8
+ /** A low-level edit operation tuple, as {@link Connection.applyEdits} accepts. */
9
+ export type EditOperationData = readonly unknown[];
10
+ /** One byte range an operation replaced in the source it saw. */
11
+ export declare class AppliedEdit {
12
+ /** Position of the operation in the editor. */
13
+ readonly operationIndex: number;
14
+ /** Element edited, by the id it was named with. */
15
+ readonly target: string;
16
+ /** Byte offset where the replacement starts. */
17
+ readonly offset: number;
18
+ /** Number of bytes replaced; zero when text was only inserted. */
19
+ readonly length: number;
20
+ /** The bytes that were there. */
21
+ readonly oldText: string;
22
+ /** What replaced them. */
23
+ readonly newText: string;
24
+ /** The document the bytes belong to, named as the parse named it. */
25
+ readonly document: string;
26
+ constructor(init: {
27
+ operationIndex: number;
28
+ target: string;
29
+ offset: number;
30
+ length: number;
31
+ oldText: string;
32
+ newText: string;
33
+ document: string;
34
+ });
35
+ toString(): string;
36
+ }
37
+ /** The edited notation of one document of the model. */
38
+ export declare class EditedDocument {
39
+ /** The document's name as the parse named it. */
40
+ readonly name: string;
41
+ /** The edited notation, byte-identical to the source outside the edited spans. */
42
+ readonly content: string;
43
+ constructor(init: {
44
+ name: string;
45
+ content: string;
46
+ });
47
+ toString(): string;
48
+ }
49
+ /** The edited notation, as a {@link Conversion}. */
50
+ export declare class EditResult extends Conversion {
51
+ /** What each operation changed, grouped by document, in source order within one. */
52
+ readonly applied: readonly AppliedEdit[];
53
+ /** The edited notation of every document the edits rewrote, edited document first. */
54
+ readonly documents: readonly EditedDocument[];
55
+ constructor(init: {
56
+ content: string;
57
+ fromFormat: string;
58
+ toFormat: string;
59
+ diagnostics: readonly ModelDiagnostic[];
60
+ experimental: boolean;
61
+ experimentalNotice: string;
62
+ applied: readonly AppliedEdit[];
63
+ documents: readonly EditedDocument[];
64
+ });
65
+ }
66
+ /** Name a refusal kind, including one this client's enum has no name for. */
67
+ export declare function failureName(failure: number): string;
68
+ /** Build the error a refusal kind names. */
69
+ export declare function errorForFailure(failure: string, message: string, options?: {
70
+ diagnostics?: readonly ModelDiagnostic[];
71
+ referringElements?: readonly string[];
72
+ referrers?: readonly Referrer[];
73
+ }): EditError;
74
+ /** The referrers of an `ApplyEditsResponse`, each with the document declaring it. */
75
+ export declare function referrersOf(response: ApplyEditsResponse): Referrer[];
76
+ /** Read an `ApplyEditsResponse` as an {@link EditResult}. */
77
+ export declare function editResultOf(response: ApplyEditsResponse, appliedSource?: string): EditResult;
78
+ /** The refusal an `ApplyEditsResponse` carries, as a typed error, or undefined. */
79
+ export declare function editErrorOf(response: ApplyEditsResponse): EditError | undefined;
80
+ /** Chainable action-body items for nested `if` and loop statements. */
81
+ export declare class Body {
82
+ #private;
83
+ /** The body items collected so far. */
84
+ get operations(): readonly unknown[][];
85
+ /** Emit `first <ref>;`. */
86
+ addFirst(ref: string): this;
87
+ /** Emit `then [m] <ref>;` or `then [m] <kind> <action> : <type>;`. */
88
+ addThen(ref?: string, action?: string, options?: {
89
+ type?: string;
90
+ kind?: string;
91
+ multiplicity?: string;
92
+ }): this;
93
+ /** Emit `<kind> <name> : <type>;`. */
94
+ addAction(name?: string, options?: {
95
+ type?: string;
96
+ kind?: string;
97
+ }): this;
98
+ /** Emit `accept <payload> [: <type>] [via <via>];` or `then [m] accept ...;`. */
99
+ addAccept(payload: string, options?: {
100
+ type?: string;
101
+ via?: string;
102
+ then?: boolean;
103
+ multiplicity?: string;
104
+ }): this;
105
+ /** Emit `send <payload> [via <via>] [to <to>];` or `then [m] send ...;`. */
106
+ addSend(payload: string, options?: {
107
+ to?: string;
108
+ via?: string;
109
+ then?: boolean;
110
+ multiplicity?: string;
111
+ }): this;
112
+ /** Emit `assign <target> := <value>;` or `then [m] assign ...;`. */
113
+ addAssign(target: string, value: string, options?: {
114
+ then?: boolean;
115
+ multiplicity?: string;
116
+ }): this;
117
+ /** Emit `if <condition> { <body> } [else { <elseBody> }]` or `then [m] if ...`. */
118
+ addIf(condition: string, body: Body, elseBody?: Body, options?: {
119
+ then?: boolean;
120
+ multiplicity?: string;
121
+ }): this;
122
+ /** Emit `while <condition> { <body> } [until <until>];` or `then [m] while ...`. */
123
+ addWhile(condition: string, body: Body, options?: {
124
+ until?: string;
125
+ then?: boolean;
126
+ multiplicity?: string;
127
+ }): this;
128
+ /** Emit `loop { <body> } [until <until>];` or `then [m] loop ...`. */
129
+ addLoop(body: Body, options?: {
130
+ until?: string;
131
+ then?: boolean;
132
+ multiplicity?: string;
133
+ }): this;
134
+ /** Emit `for <variable> [: <type>] in <collection> { <body> }` or `then [m] for ...`. */
135
+ addFor(variable: string, collection: string, body: Body, options?: {
136
+ type?: string;
137
+ then?: boolean;
138
+ multiplicity?: string;
139
+ }): this;
140
+ /** Emit `terminate [<occurrence>];` or `then [m] terminate ...;`. */
141
+ addTerminate(occurrence?: string, options?: {
142
+ then?: boolean;
143
+ multiplicity?: string;
144
+ }): this;
145
+ /** Emit `if <guard> then <ref>;`. */
146
+ addGuardedThen(guard: string, ref: string): this;
147
+ /** Emit `else <ref>;`. */
148
+ addElse(ref: string): this;
149
+ }
150
+ /** One name, or several. */
151
+ type Names = string | readonly string[];
152
+ interface MemberOptions {
153
+ type?: string | undefined;
154
+ multiplicity?: string | undefined;
155
+ value?: string | undefined;
156
+ specializes?: Names | undefined;
157
+ abstract?: boolean | undefined;
158
+ redefines?: Names | undefined;
159
+ default?: boolean | undefined;
160
+ direction?: string | undefined;
161
+ metadata?: string | readonly string[] | undefined;
162
+ expression?: string | undefined;
163
+ doc?: string | undefined;
164
+ }
165
+ /** Operations to perform on a loaded model, and the call that performs them. */
166
+ export declare class Editor {
167
+ #private;
168
+ constructor(modelHash: string, apply: (modelHash: string, operations: readonly EditOperationData[]) => Promise<EditResult>);
169
+ /** The operations collected so far, in the order they were added. */
170
+ get operations(): readonly EditOperationData[];
171
+ /** Whether this editor has been applied. */
172
+ get applied(): boolean;
173
+ /** How many operations are collected. */
174
+ get length(): number;
175
+ /** Set the value expression of one of the model's features. */
176
+ setValue(target: EditTarget, value: string): this;
177
+ /** Rename one of the model's declarations. */
178
+ rename(target: EditTarget, newName: string): this;
179
+ /** Add one declaration, using strings for all SysML/KerML notation. */
180
+ addMember(owner: EditTarget, kind: string, name: string, options?: MemberOptions): this;
181
+ /** Add an `objective` member, unnamed when `name` is omitted. */
182
+ addObjective(owner: EditTarget, options?: {
183
+ name?: string;
184
+ type?: string;
185
+ }): this;
186
+ /** Add `verify <requirement>;` to a verification case or its objective. */
187
+ addVerify(owner: EditTarget, requirement: string): this;
188
+ /** Add a `metadata` usage or `@` shorthand with optional values. */
189
+ addMetadata(owner: EditTarget, metadataType: string, options?: {
190
+ values?: Readonly<Record<string, string>> | readonly (readonly [string, string])[];
191
+ name?: string;
192
+ about?: string | readonly string[];
193
+ shorthand?: boolean;
194
+ }): this;
195
+ /** Add a metadata prefix to an existing declaration. */
196
+ addMetadataPrefix(target: EditTarget, metadataType: string): this;
197
+ /** Add `doc /* body *\/` as the first body member of a declaration. */
198
+ addDocumentation(target: EditTarget, body: string, options?: {
199
+ name?: string;
200
+ locale?: string;
201
+ replace?: boolean;
202
+ }): this;
203
+ /** Add `comment [name] [about a, b] [locale "..."] /* body *\/` to a body. */
204
+ addComment(owner: EditTarget, body: string, options?: {
205
+ name?: string;
206
+ about?: readonly EditTarget[];
207
+ locale?: string;
208
+ }): this;
209
+ /** Write the line note `// text` on its own line above a declaration. */
210
+ addNote(target: EditTarget, text: string): this;
211
+ /** Add a `satisfy` usage to a body that admits behavior usages. */
212
+ addSatisfy(owner: EditTarget, requirement: string, options?: {
213
+ by?: string;
214
+ asserted?: boolean;
215
+ negated?: boolean;
216
+ }): this;
217
+ /** Add a `require` or `assume` constraint to a requirement-like body. */
218
+ addRequirementConstraint(owner: EditTarget, kind: string, expression: string, name?: string): this;
219
+ /** Add a transition with optional trigger, guard and effect clauses. */
220
+ addTransition(owner: EditTarget, source: string, target: string, options?: {
221
+ name?: string;
222
+ trigger?: string;
223
+ guard?: string;
224
+ effect?: string;
225
+ }): this;
226
+ /** Add an entry transition to target in a state body. */
227
+ addEntryTransition(owner: EditTarget, target: string): this;
228
+ /** Emit `first <ref>;`. */
229
+ addFirst(owner: EditTarget, ref: string, options?: {
230
+ after?: string;
231
+ }): this;
232
+ /** Emit `then [m] <ref>;` or `then [m] <kind> <name> : <type>;`. */
233
+ addThen(owner: EditTarget, options?: {
234
+ ref?: string;
235
+ action?: string;
236
+ type?: string;
237
+ after?: string;
238
+ kind?: string;
239
+ multiplicity?: string;
240
+ }): this;
241
+ /** Emit `then [m] accept <payload> [: <type>] [via <via>];`. */
242
+ addAccept(owner: EditTarget, payload: string, options?: {
243
+ type?: string;
244
+ via?: string;
245
+ then?: boolean;
246
+ multiplicity?: string;
247
+ after?: string;
248
+ }): this;
249
+ /** Emit `then [m] send <payload> [via <via>] [to <to>];`. */
250
+ addSend(owner: EditTarget, payload: string, options?: {
251
+ to?: string;
252
+ via?: string;
253
+ then?: boolean;
254
+ multiplicity?: string;
255
+ after?: string;
256
+ }): this;
257
+ /** Emit `then [m] assign <target> := <value>;`. */
258
+ addAssign(owner: EditTarget, target: string, value: string, options?: {
259
+ then?: boolean;
260
+ multiplicity?: string;
261
+ after?: string;
262
+ }): this;
263
+ /** Emit `then [m] if <condition> { <body> } [else { <elseBody> }]`. */
264
+ addIf(owner: EditTarget, condition: string, body: Body, elseBody?: Body, options?: {
265
+ then?: boolean;
266
+ multiplicity?: string;
267
+ after?: string;
268
+ }): this;
269
+ /** Emit `then [m] while <condition> { <body> } [until <until>];`. */
270
+ addWhile(owner: EditTarget, condition: string, body: Body, options?: {
271
+ until?: string;
272
+ then?: boolean;
273
+ multiplicity?: string;
274
+ after?: string;
275
+ }): this;
276
+ /** Emit `then [m] loop { <body> } [until <until>];`. */
277
+ addLoop(owner: EditTarget, body: Body, options?: {
278
+ until?: string;
279
+ then?: boolean;
280
+ multiplicity?: string;
281
+ after?: string;
282
+ }): this;
283
+ /** Emit `then [m] for <variable> [: <type>] in <collection> { <body> }`. */
284
+ addFor(owner: EditTarget, variable: string, collection: string, body: Body, options?: {
285
+ type?: string;
286
+ then?: boolean;
287
+ multiplicity?: string;
288
+ after?: string;
289
+ }): this;
290
+ /** Emit `then [m] terminate [<occurrence>];`. */
291
+ addTerminate(owner: EditTarget, occurrence?: string, options?: {
292
+ then?: boolean;
293
+ multiplicity?: string;
294
+ after?: string;
295
+ }): this;
296
+ /** Emit `if <guard> then <ref>;`. */
297
+ addGuardedThen(owner: EditTarget, guard: string, ref: string, options?: {
298
+ after?: string;
299
+ }): this;
300
+ /** Emit `else <ref>;`. */
301
+ addElse(owner: EditTarget, ref: string, options?: {
302
+ after?: string;
303
+ }): this;
304
+ /** Add an import declaration to a namespace body or the document root. */
305
+ addImport(owner: EditTarget, target: string, options?: {
306
+ visibility?: string;
307
+ recursive?: boolean;
308
+ all?: boolean;
309
+ filter?: string | readonly string[];
310
+ }): this;
311
+ /** Add a `require constraint` to a requirement-like body. */
312
+ addRequireConstraint(owner: EditTarget, expression: string, name?: string): this;
313
+ /** Add an `assume constraint` to a requirement-like body. */
314
+ addAssumeConstraint(owner: EditTarget, expression: string, name?: string): this;
315
+ /** Add a connection-like usage between two feature references. */
316
+ addConnection(owner: EditTarget, kind: string, from: string, to: string, options?: {
317
+ name?: string;
318
+ type?: string;
319
+ }): this;
320
+ /** Add an `allocation ... allocate from to` usage. */
321
+ addAllocation(owner: EditTarget, from: string, to: string, options?: {
322
+ name?: string;
323
+ type?: string;
324
+ }): this;
325
+ /** Add a `flow ... from from to` usage. */
326
+ addFlow(owner: EditTarget, from: string, to: string, options?: {
327
+ name?: string;
328
+ type?: string;
329
+ }): this;
330
+ /** Add a `succession ... first from then to` usage. */
331
+ addSuccession(owner: EditTarget, from: string, to: string, options?: {
332
+ name?: string;
333
+ type?: string;
334
+ }): this;
335
+ /** Delete a declaration, optionally removing declarations that refer to it. */
336
+ delete(target: EditTarget, options?: {
337
+ cascade?: boolean;
338
+ }): this;
339
+ /** Move a declaration into another namespace of the same document. */
340
+ move(target: EditTarget, owner: EditTarget): this;
341
+ /** Have the service perform these operations and return the edited model. */
342
+ apply(): Promise<EditResult>;
343
+ toString(): string;
344
+ addPackage(owner: EditTarget, name: string, options?: MemberOptions): this;
345
+ addPartDef(owner: EditTarget, name: string, options?: MemberOptions): this;
346
+ addPart(owner: EditTarget, name: string, options?: MemberOptions): this;
347
+ addAttributeDef(owner: EditTarget, name: string, options?: MemberOptions): this;
348
+ addAttribute(owner: EditTarget, name: string, options?: MemberOptions): this;
349
+ addItemDef(owner: EditTarget, name: string, options?: MemberOptions): this;
350
+ addItem(owner: EditTarget, name: string, options?: MemberOptions): this;
351
+ addPortDef(owner: EditTarget, name: string, options?: MemberOptions): this;
352
+ addPort(owner: EditTarget, name: string, options?: MemberOptions): this;
353
+ addClass(owner: EditTarget, name: string, options?: MemberOptions): this;
354
+ addStruct(owner: EditTarget, name: string, options?: MemberOptions): this;
355
+ addDatatype(owner: EditTarget, name: string, options?: MemberOptions): this;
356
+ addClassifier(owner: EditTarget, name: string, options?: MemberOptions): this;
357
+ addFeature(owner: EditTarget, name: string, options?: MemberOptions): this;
358
+ addAssoc(owner: EditTarget, name: string, options?: MemberOptions): this;
359
+ addBehavior(owner: EditTarget, name: string, options?: MemberOptions): this;
360
+ addFunction(owner: EditTarget, name: string, options?: MemberOptions): this;
361
+ addPredicate(owner: EditTarget, name: string, options?: MemberOptions): this;
362
+ addInteraction(owner: EditTarget, name: string, options?: MemberOptions): this;
363
+ addMetaclass(owner: EditTarget, name: string, options?: MemberOptions): this;
364
+ /** Add a `calc def` with input parameters and an optional result. */
365
+ addCalcDef(owner: EditTarget, name: string, options?: MemberOptions & {
366
+ inputs?: readonly (readonly [string, string])[];
367
+ returnType?: string;
368
+ returnExpression?: string;
369
+ }): this;
370
+ /** Add a `calc` with input parameters and an optional result. */
371
+ addCalc(owner: EditTarget, name: string, options?: MemberOptions & {
372
+ inputs?: readonly (readonly [string, string])[];
373
+ returnType?: string;
374
+ returnExpression?: string;
375
+ }): this;
376
+ /** Add a directional parameter usage. */
377
+ addParameter(owner: EditTarget, direction: string, name: string, options?: MemberOptions & {
378
+ kind?: string;
379
+ }): this;
380
+ /** Add a return parameter member. */
381
+ addReturn(owner: EditTarget, options?: MemberOptions & {
382
+ name?: string;
383
+ }): this;
384
+ /** Add an `action def` with input and output parameters. */
385
+ addActionDef(owner: EditTarget, name: string, options?: MemberOptions & {
386
+ inputs?: readonly (readonly [string, string])[];
387
+ outputs?: readonly (readonly [string, string])[];
388
+ }): this;
389
+ /** Add an `action` with input and output parameters. */
390
+ addAction(owner: EditTarget, name: string, options?: MemberOptions & {
391
+ inputs?: readonly (readonly [string, string])[];
392
+ outputs?: readonly (readonly [string, string])[];
393
+ }): this;
394
+ /** Add a `perform action name : Type` usage. */
395
+ addPerformAction(owner: EditTarget, name: string, options?: MemberOptions): this;
396
+ /** Add a `perform <action>;` usage named by its referenced action. */
397
+ addPerform(owner: EditTarget, action: string, options?: {
398
+ doc?: string;
399
+ }): this;
400
+ /** Add an `exhibit state` usage. */
401
+ addExhibitState(owner: EditTarget, name: string, options?: {
402
+ type?: string;
403
+ }): this;
404
+ /** Add an `exhibit <state>;` usage named by its referenced state. */
405
+ addExhibit(owner: EditTarget, state: string): this;
406
+ /** Add an `entry`, `do` or `exit` action to a state body. */
407
+ addStateAction(owner: EditTarget, kind: string, name: string, options?: {
408
+ type?: string;
409
+ }): this;
410
+ addStateDef(owner: EditTarget, name: string, options?: MemberOptions): this;
411
+ addState(owner: EditTarget, name: string, options?: MemberOptions): this;
412
+ /** Add a `constraint def`; `expression` writes `{ … }`, `value` writes `= …`. */
413
+ addConstraintDef(owner: EditTarget, name: string, options?: MemberOptions): this;
414
+ /** Add a `constraint`; `expression` writes `{ … }`, `value` writes `= …`. */
415
+ addConstraint(owner: EditTarget, name: string, options?: MemberOptions): this;
416
+ /** Add an asserted constraint usage, optionally negated. */
417
+ addAssertConstraint(owner: EditTarget, options?: {
418
+ name?: string;
419
+ type?: string;
420
+ expression?: string;
421
+ negated?: boolean;
422
+ }): this;
423
+ /** Add an anonymous `assert` usage; the assertion is not named by ref. */
424
+ addAssert(owner: EditTarget, ref: string, options?: {
425
+ negated?: boolean;
426
+ }): this;
427
+ addRequirementDef(owner: EditTarget, name: string, options?: MemberOptions): this;
428
+ addRequirement(owner: EditTarget, name: string, options?: MemberOptions): this;
429
+ }
430
+ /** Translates edit tuples into an `ApplyEditsRequest`'s operations, gating capabilities. */
431
+ export declare class EditRequestBuilder {
432
+ #private;
433
+ constructor(info: ServerInfo);
434
+ /** The operations the tuples describe, and the capabilities they need. A
435
+ * wire `EditOperation` passes through as written — how a caller sends an
436
+ * operation the tuple form cannot write — gated on the fields it carries. */
437
+ build(operations: readonly (EditOperationData | EditOperation)[]): {
438
+ operations: EditOperation[];
439
+ capabilities: string[];
440
+ };
441
+ add(operationData: EditOperationData | EditOperation): EditOperation;
442
+ /** Gate an operation already in wire form on the fields it carries. */
443
+ wire(operation: EditOperation): EditOperation;
444
+ finish(): string[];
445
+ }
446
+ export {};