aspnetzero-workflow-designer 0.0.0-stage → 1.0.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.
@@ -0,0 +1,1806 @@
1
+ export declare const assigneePickerEditor: WorkflowInputEditor;
2
+
3
+ export declare const ASSIGNMENT_TARGET_TYPE: {
4
+ readonly requesterManager: WorkflowAssignmentTargetType.RequesterManager;
5
+ readonly user: WorkflowAssignmentTargetType.User;
6
+ readonly role: WorkflowAssignmentTargetType.Role;
7
+ readonly organizationUnit: WorkflowAssignmentTargetType.OrganizationUnit;
8
+ readonly fallbackRole: WorkflowAssignmentTargetType.FallbackRole;
9
+ };
10
+
11
+ export declare function availablePalette(capabilities: WorkflowPaletteCapabilities): WorkflowNodePaletteItem[];
12
+
13
+ /**
14
+ * The action parameter binding predates the syntax vocabulary and stores which of three fields is set
15
+ * rather than a syntax name. These two functions are the only place that mapping lives.
16
+ */
17
+ export declare const BINDING_SOURCE_BY_SYNTAX: Record<string, string>;
18
+
19
+ export declare function bindingSourceForSyntax(syntax: string): string;
20
+
21
+ export declare function bindingSourceOf(binding: WorkflowActionInputBinding | undefined): WorkflowActionBindingSource;
22
+
23
+ export declare function buildAssignmentTarget(type: number, selectedId: string): WorkflowAssignmentTargetValue;
24
+
25
+ /**
26
+ * Authoring defaults a brand new node is seeded with. These mirror the `defaultValue`s the server
27
+ * declares on `WorkflowBuiltInActivityDescriptorProvider`, and the server's own
28
+ * `WorkflowActivityDefaultsContract_Tests` reads this file and fails when the two drift — it is the
29
+ * only place the two copies are compared, so a node type added on one side alone is caught there.
30
+ * The designer keeps a copy so it still authors correctly before the descriptor endpoint has
31
+ * answered, and so the demo works with no server at all.
32
+ */
33
+ export declare const BUILT_IN_INPUT_DEFAULTS: Partial<Record<number, Record<string, unknown>>>;
34
+
35
+ /**
36
+ * Full input sets for the node types whose property panel is already descriptor driven. Without these
37
+ * the panel would be empty until the descriptor endpoint answers. `WorkflowActivityDefaultsContract_Tests`
38
+ * keeps them in step with `WorkflowBuiltInActivityDescriptorProvider`.
39
+ */
40
+ export declare const BUILT_IN_INPUTS: Partial<Record<number, WorkflowInputDescriptor[]>>;
41
+
42
+ export declare function builtInActivityDescriptors(): WorkflowActivityDescriptor[];
43
+
44
+ export declare function builtInDescriptorFor(type: number): WorkflowActivityDescriptor;
45
+
46
+ export declare function builtInFormFieldDescriptors(): WorkflowFormFieldDescriptor[];
47
+
48
+ export declare const channelEditor: WorkflowInputEditor;
49
+
50
+ export declare const checkListEditor: WorkflowInputEditor;
51
+
52
+ export declare function cloneDefaultValue(value: unknown): unknown;
53
+
54
+ export declare function conditionOperatorsFor(valueType: WorkflowConditionValueType): WorkflowConditionOperator[];
55
+
56
+ export declare const connectionDropDownEditor: WorkflowInputEditor;
57
+
58
+ export declare function createEmptyForm(): WorkflowFormDocument;
59
+
60
+ export declare function createEmptyGraph(): WorkflowGraphDocument;
61
+
62
+ export declare function createLookupDropDownEditor(hint: string): WorkflowInputEditor;
63
+
64
+ export declare const DEFAULT_THEME: Required<WorkflowThemeTokens>;
65
+
66
+ export declare function defineWorkflowDesignerElements(): void;
67
+
68
+ export declare function describeAssignmentTarget(target: WorkflowAssignmentTargetValue, localize: (key: string, fallback?: string) => string, nameOf?: (providerName: string, id: string) => string | undefined): string;
69
+
70
+ export declare function descriptionKeyForNodeType(type: number): string;
71
+
72
+ /**
73
+ * The empty entry lets an author clear an optional choice, or shows that a required one has not been
74
+ * made yet. A select that must hold a value (required, or with a declared default) and already holds one
75
+ * of its options has nothing to clear, so offering a blank row there only invites an invalid value.
76
+ */
77
+ export declare function dropDownNeedsEmptyOption(context: WorkflowInputEditorContext): boolean;
78
+
79
+ export declare function edgeKindPresentation(kind: WorkflowEdgeKind | number | undefined): {
80
+ key: string;
81
+ fallback: string;
82
+ color: string;
83
+ };
84
+
85
+ /**
86
+ * The key a form field gets from its label: camelCase, ASCII letters and digits only, starting with a
87
+ * letter, and unique among `existingKeys` (compared ignoring case) by appending 2, 3, ... An empty or
88
+ * symbol-only label yields `field`.
89
+ */
90
+ export declare function fieldKeyFromLabel(label: string | undefined, existingKeys?: Iterable<string>): string;
91
+
92
+ export declare const fieldMappingTableEditor: WorkflowInputEditor;
93
+
94
+ export declare function findGraphOptionsResolver(providerName: string | undefined): GraphOptionsResolver | undefined;
95
+
96
+ export declare function findInputEditor(hint: string | undefined): WorkflowInputEditor | undefined;
97
+
98
+ /**
99
+ * Form fields come from the form document rather than the graph, so the designer element resolves
100
+ * this one itself; it is named here so both halves agree on the string the server sends.
101
+ */
102
+ export declare const FORM_FIELD_OPTIONS_PROVIDER = "workflow.formFields";
103
+
104
+ export declare function formFieldTypeNames(): {
105
+ type: WorkflowFormFieldType;
106
+ name: string;
107
+ }[];
108
+
109
+ export declare function fromLocalDateTimeInputValue(value: string): string | undefined;
110
+
111
+ export declare const GRAPH_OPTIONS_PROVIDERS: {
112
+ readonly parallelNodes: "workflow.graph.parallelNodes";
113
+ readonly joinNodes: "workflow.graph.joinNodes";
114
+ };
115
+
116
+ export declare type GraphOptionsResolver = (graph: WorkflowGraphDocument, currentNodeId: string) => WorkflowInputOption[];
117
+
118
+ export declare function inputCategoriesOf(inputs: WorkflowInputDescriptor[]): string[];
119
+
120
+ export declare function isEdgeKindAllowed(type: number, kind: WorkflowEdgeKind): boolean;
121
+
122
+ export declare function isGraphOptionsProvider(providerName: string | undefined): boolean;
123
+
124
+ export declare function isInputVisible(descriptor: WorkflowInputDescriptor, owner: unknown): boolean;
125
+
126
+ export declare function isListConditionOperator(value: WorkflowConditionOperator): boolean;
127
+
128
+ export declare function isMultiValuedConditionValueType(value: WorkflowConditionValueType): boolean;
129
+
130
+ export declare function isOrderConditionOperator(value: WorkflowConditionOperator): boolean;
131
+
132
+ /** The code without its `WorkflowValidation_` prefix, so the families above read naturally. */
133
+ export declare function issueCodeFamily(issue: WorkflowValidationIssue): string;
134
+
135
+ /**
136
+ * Resolves what an issue points at. A field wins over a step (an issue raised on both is about the
137
+ * field), a start-trigger issue goes to the trigger tab, and a transition issue selects the transition
138
+ * on the canvas. Ids that neither document knows yield `undefined`, so a stale issue focuses nothing.
139
+ */
140
+ export declare function issueFocusTargetOf(issue: WorkflowValidationIssue | undefined, graph: WorkflowGraphDocument | undefined, form: WorkflowFormDocument | undefined): WorkflowIssueFocusTarget | undefined;
141
+
142
+ /** The step input a validation issue is about, when its code identifies one. */
143
+ export declare function issueInputName(issue: WorkflowValidationIssue): string | undefined;
144
+
145
+ export declare function issuesFor(issues: WorkflowValidationIssue[] | undefined, predicate: (issue: WorkflowValidationIssue) => boolean): WorkflowValidationIssue[];
146
+
147
+ export declare function isTriggerIssue(issue: WorkflowValidationIssue): boolean;
148
+
149
+ export declare function isUnaryConditionOperator(value: WorkflowConditionOperator): boolean;
150
+
151
+ export declare function isUnknownDescriptor(descriptor: WorkflowActivityDescriptor | undefined): boolean;
152
+
153
+ export declare function knownInputEditorHints(): string[];
154
+
155
+ export declare const LOCALIZABLE_TEXT_TYPE_NAME = "WorkflowLocalizableText";
156
+
157
+ export declare function localizableText(value: string): WorkflowLocalizableText;
158
+
159
+ export declare function localizationKeyForFieldType(type: WorkflowFormFieldType): string;
160
+
161
+ export declare function localizationKeyForNodeType(type: number): string;
162
+
163
+ export declare function localize(dictionary: WorkflowLocalizationDictionary | undefined, key: string, fallback?: string): string;
164
+
165
+ export declare function needsSyntaxPicker(descriptor: WorkflowInputDescriptor): boolean;
166
+
167
+ export declare const NODE_CATEGORY_DEFINITIONS: WorkflowNodeCategoryDefinition[];
168
+
169
+ export declare const NODE_PALETTE: WorkflowNodePaletteItem[];
170
+
171
+ export declare function nodeTypeNames(): {
172
+ type: WorkflowNodeType;
173
+ name: string;
174
+ }[];
175
+
176
+ export declare function optionsProviderForTarget(type: number): string | undefined;
177
+
178
+ export declare function orderedInputs(inputs: WorkflowInputDescriptor[]): WorkflowInputDescriptor[];
179
+
180
+ export declare function outcomeOf(type: number, kind: WorkflowEdgeKind): WorkflowNodeOutcome | undefined;
181
+
182
+ export declare function outcomesFromPorts(ports: WorkflowPortDescriptor[] | undefined): WorkflowNodeOutcome[];
183
+
184
+ export declare function outcomesOf(type: number): WorkflowNodeOutcome[];
185
+
186
+ export declare function paletteItemFor(type: number): WorkflowNodePaletteItem;
187
+
188
+ export declare function paletteItemOf(descriptor: WorkflowActivityDescriptor): WorkflowNodePaletteItem;
189
+
190
+ export declare function presentationFor(descriptor: WorkflowActivityDescriptor | undefined): WorkflowActivityPresentation;
191
+
192
+ export declare function readInputValue(source: unknown, path: string): unknown;
193
+
194
+ export declare function registerActivityPresentation(type: number, presentation: WorkflowActivityPresentation): void;
195
+
196
+ export declare function registerGraphOptionsResolver(providerName: string, resolver: GraphOptionsResolver): void;
197
+
198
+ export declare function registerInputEditor(editor: WorkflowInputEditor): void;
199
+
200
+ export declare function renderSyntaxPicker(options: SyntaxPickerRenderOptions): string;
201
+
202
+ export declare function resolveInputEditor(descriptor: WorkflowInputDescriptor): WorkflowInputEditor;
203
+
204
+ export declare function resolveTheme(tokens: WorkflowThemeTokens | undefined): Required<WorkflowThemeTokens>;
205
+
206
+ export declare const RICH_INPUT_EDITORS: WorkflowInputEditor[];
207
+
208
+ export declare function schemaVersionMismatchOf(serverVersion: number | undefined, designerVersion: number): WorkflowSchemaVersionMismatch | undefined;
209
+
210
+ export declare function storedInputValue(input: WorkflowInputDescriptor, value: unknown, current: unknown): unknown;
211
+
212
+ export declare function syntaxForBindingSource(source: string): string;
213
+
214
+ export declare function syntaxOptionsOf(descriptor: WorkflowInputDescriptor): WorkflowSyntaxOption[];
215
+
216
+ export declare interface SyntaxPickerRenderOptions {
217
+ options: WorkflowSyntaxOption[];
218
+ selected: string;
219
+ disabled: boolean;
220
+ className: string;
221
+ localize: (key: string, fallback?: string) => string;
222
+ escape: (value: string) => string;
223
+ }
224
+
225
+ /** Only users are looked up by name as the author types; every other lookup is a short, complete list. */
226
+ export declare function targetHasSearch(type: number): boolean;
227
+
228
+ export declare function targetNeedsLookup(type: number): boolean;
229
+
230
+ export declare function textOf(value: WorkflowLocalizableText | undefined, fallback?: string): string;
231
+
232
+ export declare function themeToCssVariables(theme: Required<WorkflowThemeTokens>): string;
233
+
234
+ export declare function toLocalDateTimeInputValue(value: unknown): string;
235
+
236
+ export declare const UNKNOWN_PRESENTATION: WorkflowActivityPresentation;
237
+
238
+ export declare function unknownActivityDescriptor(type: number, observedPorts?: WorkflowPortDescriptor[]): WorkflowActivityDescriptor;
239
+
240
+ export declare function valueTypeOfFieldType(fieldType: WorkflowFormFieldType): WorkflowConditionValueType;
241
+
242
+ export declare function visibleInputs(inputs: WorkflowInputDescriptor[], owner: unknown): WorkflowInputDescriptor[];
243
+
244
+ /**
245
+ * Reads Elsa-style `UISpecifications`. The server serializes this dictionary with the keys exactly as
246
+ * they were registered (`VisibleWhen`, `Input`, `EqualsAnyOf`, ...) rather than camel-casing them, so
247
+ * they are matched case-insensitively here instead of assuming either casing.
248
+ */
249
+ export declare function visibleWhenRuleOf(descriptor: WorkflowInputDescriptor): WorkflowVisibleWhenRule | undefined;
250
+
251
+ /** Mirrors WorkflowChannel in the C# contract. */
252
+ export declare const WORKFLOW_CHANNEL: {
253
+ readonly inApp: 1;
254
+ readonly email: 2;
255
+ readonly teams: 3;
256
+ readonly slack: 4;
257
+ };
258
+
259
+ export declare const WORKFLOW_DESIGNER_EVENTS: {
260
+ readonly documentChange: "document-change";
261
+ readonly selectionChange: "selection-change";
262
+ readonly command: "command";
263
+ /** `focusValidationIssue` resolved an issue; the detail says which host tab shows it. */
264
+ readonly issueFocus: "issue-focus";
265
+ };
266
+
267
+ export declare const WORKFLOW_DESIGNER_TAG = "workflow-designer";
268
+
269
+ export declare const WORKFLOW_EXPRESSION_SYNTAX: {
270
+ readonly literal: "Literal";
271
+ readonly formField: "FormField";
272
+ readonly context: "Context";
273
+ readonly variable: "Variable";
274
+ readonly output: "Output";
275
+ readonly condition: "Condition";
276
+ readonly template: "Template";
277
+ readonly secret: "Secret";
278
+ };
279
+
280
+ export declare const WORKFLOW_FORM_BUILDER_TAG = "workflow-form-builder";
281
+
282
+ export declare const WORKFLOW_FORM_SCHEMA_VERSION = 1;
283
+
284
+ export declare const WORKFLOW_GRAPH_SCHEMA_VERSION = 3;
285
+
286
+ export declare const WORKFLOW_UI_HINTS: {
287
+ readonly singleLine: "singleline";
288
+ readonly multiLine: "multiline";
289
+ readonly checkbox: "checkbox";
290
+ readonly checkList: "checklist";
291
+ readonly radioList: "radiolist";
292
+ readonly dropDown: "dropdown";
293
+ readonly multiText: "multitext";
294
+ readonly dictionary: "dictionary";
295
+ readonly jsonEditor: "json-editor";
296
+ readonly dateTimePicker: "datetime-picker";
297
+ readonly variablePicker: "variable-picker";
298
+ readonly outputPicker: "output-picker";
299
+ readonly outcomePicker: "outcome-picker";
300
+ readonly dynamicOutcomes: "dynamic-outcomes";
301
+ readonly workflowDefinitionPicker: "workflow-definition-picker";
302
+ readonly expressionEditor: "expression-editor";
303
+ readonly secretPicker: "secret-picker";
304
+ readonly connectionDropDown: "connection-dropdown";
305
+ readonly httpStatusCodes: "http-status-codes";
306
+ readonly assigneePicker: "assignee-picker";
307
+ readonly rolePicker: "role-picker";
308
+ readonly organizationUnitPicker: "organization-unit-picker";
309
+ readonly formFieldPicker: "form-field-picker";
310
+ readonly conditionBuilder: "condition-builder";
311
+ readonly fieldMappingTable: "field-mapping-table";
312
+ readonly slaEditor: "sla-editor";
313
+ readonly channelEditor: "channel-editor";
314
+ readonly adaptiveCardEditor: "adaptive-card-editor";
315
+ readonly eventPayloadMappingTable: "event-payload-mapping-table";
316
+ readonly actionParameterTable: "action-parameter-table";
317
+ readonly conditionBranchTable: "condition-branch-table";
318
+ readonly parallelBranchTable: "parallel-branch-table";
319
+ readonly startTriggerEditor: "start-trigger-editor";
320
+ readonly notificationRecipients: "notification-recipients";
321
+ };
322
+
323
+ export declare const WORKFLOW_VARIABLE_SCOPE: {
324
+ readonly instance: 1;
325
+ readonly branch: 2;
326
+ };
327
+
328
+ export declare type WorkflowActionBindingSource = 'constant' | 'formField' | 'context';
329
+
330
+ export declare interface WorkflowActionDescriptor {
331
+ name?: string;
332
+ displayName?: string;
333
+ inputParameters?: WorkflowActionParameter[];
334
+ outputParameters?: WorkflowActionParameter[];
335
+ }
336
+
337
+ export declare interface WorkflowActionInputBinding {
338
+ inputName?: string;
339
+ formFieldId?: string;
340
+ contextKey?: string;
341
+ constantValue?: string;
342
+ }
343
+
344
+ export declare interface WorkflowActionNodeSettings {
345
+ kind?: number;
346
+ actionName?: string;
347
+ webhookName?: string;
348
+ connectionProfileName?: string;
349
+ relativePath?: string;
350
+ httpMethod?: string;
351
+ timeoutInSeconds?: number;
352
+ maxAttempts?: number;
353
+ continueOnFailure?: boolean;
354
+ inputBindings?: WorkflowActionInputBinding[];
355
+ }
356
+
357
+ export declare interface WorkflowActionParameter {
358
+ name?: string;
359
+ displayName?: string;
360
+ description?: string;
361
+ type: WorkflowActionParameterType;
362
+ isRequired?: boolean;
363
+ isSensitive?: boolean;
364
+ defaultValue?: string;
365
+ allowedValues?: WorkflowActionParameterOption[];
366
+ optionsProviderName?: string;
367
+ minValue?: number;
368
+ maxValue?: number;
369
+ maxLength?: number;
370
+ regexPattern?: string;
371
+ allowFormFieldBinding?: boolean;
372
+ allowInstanceBinding?: boolean;
373
+ group?: string;
374
+ displayOrder?: number;
375
+ }
376
+
377
+ export declare interface WorkflowActionParameterOption {
378
+ value?: string;
379
+ displayName?: string;
380
+ displayOrder?: number;
381
+ }
382
+
383
+ export declare enum WorkflowActionParameterType {
384
+ Text = 1,
385
+ Number = 2,
386
+ Boolean = 3,
387
+ Date = 4,
388
+ DateTime = 5,
389
+ UserId = 6,
390
+ Json = 7,
391
+ Secret = 8,
392
+ RoleId = 9,
393
+ OrganizationUnitId = 10,
394
+ ConnectionProfileId = 11,
395
+ Enum = 12
396
+ }
397
+
398
+ export declare interface WorkflowActivityDescriptor {
399
+ typeName: string;
400
+ namespace?: string;
401
+ name?: string;
402
+ version?: number;
403
+ category?: string;
404
+ displayName?: string;
405
+ description?: string;
406
+ inputs: WorkflowInputDescriptor[];
407
+ outputs?: WorkflowOutputDescriptor[];
408
+ ports: WorkflowPortDescriptor[];
409
+ kind?: number;
410
+ isBrowsable?: boolean;
411
+ isStart?: boolean;
412
+ isTerminal?: boolean;
413
+ isSingleton?: boolean;
414
+ isFanOut?: boolean;
415
+ isWaiting?: boolean;
416
+ runsInline?: boolean;
417
+ requiredPermission?: string;
418
+ requiredCapability?: string;
419
+ riskLevel?: number;
420
+ idempotencyPolicy?: number;
421
+ bpmnElementName?: string;
422
+ bpmnEventDefinition?: string;
423
+ legacyNodeType?: number;
424
+ customProperties?: Record<string, unknown>;
425
+ }
426
+
427
+ export declare interface WorkflowActivityPresentation {
428
+ category: WorkflowNodeCategory;
429
+ icon: string;
430
+ iconName?: string;
431
+ color: string;
432
+ }
433
+
434
+ export declare interface WorkflowApprovalNodeSettings {
435
+ targets?: WorkflowAssignmentTarget[];
436
+ fallbackTarget?: WorkflowAssignmentTarget;
437
+ approvalPolicy?: WorkflowApprovalPolicy;
438
+ rejectionPolicy?: WorkflowRejectionPolicy;
439
+ quorumCount?: number;
440
+ selfApprovalPolicy?: WorkflowSelfApprovalPolicy;
441
+ allowDelegation?: boolean;
442
+ allowRequestChanges?: boolean;
443
+ requireReasonOnApprove?: boolean;
444
+ requireReasonOnReject?: boolean;
445
+ requireReasonOnRequestChanges?: boolean;
446
+ readOnlyFieldIds?: string[];
447
+ hiddenFieldIds?: string[];
448
+ }
449
+
450
+ export declare enum WorkflowApprovalPolicy {
451
+ Anyone = 1,
452
+ Everyone = 2,
453
+ Quorum = 3
454
+ }
455
+
456
+ export declare interface WorkflowAssignmentTarget {
457
+ type: WorkflowAssignmentTargetType;
458
+ userId?: number;
459
+ roleId?: number;
460
+ organizationUnitId?: number;
461
+ includeChildOrganizationUnits?: boolean;
462
+ previousNodeId?: string;
463
+ }
464
+
465
+ export declare enum WorkflowAssignmentTargetType {
466
+ User = 1,
467
+ Role = 2,
468
+ OrganizationUnit = 3,
469
+ RequesterManager = 4,
470
+ RoleInRequesterOrganizationUnit = 5,
471
+ PreviousStepApprover = 6,
472
+ FallbackRole = 7
473
+ }
474
+
475
+ export declare interface WorkflowAssignmentTargetValue {
476
+ type: number;
477
+ userId?: number;
478
+ roleId?: number;
479
+ organizationUnitId?: number;
480
+ includeChildOrganizationUnits?: boolean;
481
+ }
482
+
483
+ export declare interface WorkflowAssistantContext {
484
+ graph: WorkflowGraphDocument;
485
+ form?: WorkflowFormDocument;
486
+ }
487
+
488
+ export declare enum WorkflowAuthoringOrigin {
489
+ Manual = 1,
490
+ Template = 2,
491
+ Bpmn = 3,
492
+ Ai = 4
493
+ }
494
+
495
+ export declare enum WorkflowChannel {
496
+ InApp = 1,
497
+ Email = 2,
498
+ Teams = 3,
499
+ Slack = 4
500
+ }
501
+
502
+ export declare interface WorkflowChannelSettings {
503
+ channels?: WorkflowChannel[];
504
+ connectionProfileName?: string;
505
+ allowDecisionFromChannel?: boolean;
506
+ }
507
+
508
+ export declare interface WorkflowConditionBranch {
509
+ id?: string;
510
+ name?: WorkflowLocalizableText;
511
+ order: number;
512
+ expression?: WorkflowConditionExpression;
513
+ }
514
+
515
+ export declare interface WorkflowConditionExpression {
516
+ kind: WorkflowConditionExpressionKind;
517
+ logicalOperator?: WorkflowConditionLogicalOperator;
518
+ children?: WorkflowConditionExpression[];
519
+ left?: WorkflowConditionOperand;
520
+ operator?: WorkflowConditionOperator;
521
+ right?: WorkflowConditionOperand;
522
+ }
523
+
524
+ export declare enum WorkflowConditionExpressionKind {
525
+ Group = 1,
526
+ Comparison = 2
527
+ }
528
+
529
+ export declare enum WorkflowConditionLogicalOperator {
530
+ And = 1,
531
+ Or = 2,
532
+ Not = 3
533
+ }
534
+
535
+ export declare interface WorkflowConditionNodeSettings {
536
+ branches?: WorkflowConditionBranch[];
537
+ }
538
+
539
+ export declare interface WorkflowConditionOperand {
540
+ type: WorkflowConditionOperandType;
541
+ valueType: WorkflowConditionValueType;
542
+ fieldId?: string;
543
+ contextKey?: string;
544
+ variableName?: string;
545
+ value?: string;
546
+ values?: string[];
547
+ }
548
+
549
+ export declare enum WorkflowConditionOperandType {
550
+ FormField = 1,
551
+ Constant = 2,
552
+ RequesterContext = 3,
553
+ TenantContext = 4,
554
+ SystemContext = 5,
555
+ /** A value a step wrote earlier in the run. */
556
+ Variable = 6
557
+ }
558
+
559
+ export declare enum WorkflowConditionOperator {
560
+ Equals = 1,
561
+ NotEquals = 2,
562
+ GreaterThan = 3,
563
+ GreaterOrEqual = 4,
564
+ LessThan = 5,
565
+ LessOrEqual = 6,
566
+ Contains = 7,
567
+ NotContains = 8,
568
+ In = 9,
569
+ NotIn = 10,
570
+ IsEmpty = 11,
571
+ IsNotEmpty = 12
572
+ }
573
+
574
+ export declare interface WorkflowConditionSuggestion {
575
+ succeeded: boolean;
576
+ expression?: WorkflowConditionExpression;
577
+ failureReason?: string;
578
+ }
579
+
580
+ export declare type WorkflowConditionSuggestionCallback = (ruleText: string, context: WorkflowAssistantContext) => Promise<WorkflowConditionSuggestion>;
581
+
582
+ export declare enum WorkflowConditionValueType {
583
+ String = 1,
584
+ Number = 2,
585
+ Boolean = 3,
586
+ Date = 4,
587
+ Time = 5,
588
+ DateTime = 6,
589
+ Money = 7,
590
+ Duration = 8,
591
+ StringList = 9,
592
+ NumberList = 10
593
+ }
594
+
595
+ export declare const workflowDefinitionPickerEditor: WorkflowInputEditor;
596
+
597
+ export declare interface WorkflowDesignerChangeDetail<TDocument> {
598
+ document: TDocument;
599
+ isDirty: boolean;
600
+ }
601
+
602
+ export declare interface WorkflowDesignerCommandDetail {
603
+ command: 'save' | 'validate' | 'simulate' | 'publish';
604
+ }
605
+
606
+ export declare class WorkflowDesignerElement extends WorkflowHostElement {
607
+ static get observedAttributes(): string[];
608
+ private _document;
609
+ private _form;
610
+ private _graph;
611
+ private _canvas;
612
+ private _selectedNodeId;
613
+ private _selectedNodeIds;
614
+ private _selectedEdgeId;
615
+ private _selectedBranchId;
616
+ private _isApplyingDocument;
617
+ private _past;
618
+ private _future;
619
+ private _fingerprint;
620
+ private _clipboard;
621
+ private _draggedType;
622
+ private readonly _paletteDrag;
623
+ private _paletteFilter;
624
+ private _inspectorTab;
625
+ private _outlineVisible;
626
+ private _executionStates;
627
+ private _secrets;
628
+ private _heatMap;
629
+ private _conditionSuggestionText;
630
+ private _assistantSummary?;
631
+ private _assistantSummaryBusy;
632
+ private _assistantSummaryError?;
633
+ private _conditionSuggestionBusy;
634
+ private _conditionSuggestionError?;
635
+ private _summaryCollapsed;
636
+ private _paletteCollapsed;
637
+ private _viewportPending;
638
+ private _pendingFit;
639
+ private _themeObserver;
640
+ private readonly _lookupNames;
641
+ private readonly _requestedNameLookups;
642
+ private _draggedActivity;
643
+ private readonly _serverOptions;
644
+ private readonly _serverOptionsPending;
645
+ private readonly _inflightLookups;
646
+ private _pendingFocus;
647
+ private _formBuilder;
648
+ /**
649
+ * The form builder editing this workflow's form, when the host has one. With it set,
650
+ * `focusValidationIssue` hands field issues straight to that element; without it the host does so
651
+ * itself from the `issue-focus` event.
652
+ */
653
+ get formBuilder(): WorkflowFormBuilderElement | undefined;
654
+ set formBuilder(value: WorkflowFormBuilderElement | undefined);
655
+ /**
656
+ * Shows what a validation issue is about. A step, transition or branch issue selects it on the
657
+ * canvas, opens the inspector tab holding the setting the issue names (for example Service level
658
+ * for an SLA issue) and pans the canvas until the step is visible. A field issue is handed to
659
+ * `formBuilder` when one is set, and a start-trigger issue is left to the host's trigger tab. In
660
+ * every case an `issue-focus` event tells the host which of its tabs (flow, form, trigger) to show.
661
+ * Returns `false` when neither document knows the ids the issue carries, so nothing was focused.
662
+ * Safe to call before the first render: the focus is applied as soon as the canvas exists.
663
+ */
664
+ focusValidationIssue(issue: WorkflowValidationIssue): boolean;
665
+ private applyIssueFocus;
666
+ /** The inspector tab that shows a step input, or General when the step has no tab for it. */
667
+ private inspectorTabForInput;
668
+ /**
669
+ * Pans the canvas until the step is inside the visible area. A canvas the host currently hides has
670
+ * no size, so the pan waits until it has one (the host is switching to the flow tab at this moment).
671
+ */
672
+ private revealNode;
673
+ get document(): WorkflowGraphDocument;
674
+ set document(value: WorkflowGraphDocument | undefined);
675
+ get executionStates(): WorkflowNodeExecutionState[];
676
+ /**
677
+ * The secrets this user may refer to, by name only. The host loads them; nothing here can ask for a
678
+ * value, which is what keeps a secret out of the designer altogether.
679
+ */
680
+ get secrets(): WorkflowSecretOption[];
681
+ set secrets(value: WorkflowSecretOption[] | undefined);
682
+ get heatMap(): WorkflowNodeHeat[];
683
+ set heatMap(value: WorkflowNodeHeat[] | undefined);
684
+ get isHeatMapView(): boolean;
685
+ get graphSchemaVersion(): number;
686
+ get activityDescriptors(): WorkflowActivityDescriptor[];
687
+ get availableActivityDescriptors(): WorkflowActivityDescriptor[];
688
+ descriptorForNode(node: WorkflowNodeDefinition): WorkflowActivityDescriptor;
689
+ descriptorFor(type: WorkflowNodeType): WorkflowActivityDescriptor;
690
+ private observedPortsOf;
691
+ private outcomesOf;
692
+ private paletteItemFor;
693
+ get schemaVersionMismatch(): WorkflowSchemaVersionMismatch | undefined;
694
+ private get slowestHeatSeconds();
695
+ private heatValueOf;
696
+ private heatStyleOf;
697
+ /** A node highlighted in a status colour: that colour as the border over a tint of it on the surface. */
698
+ private tintedState;
699
+ set executionStates(value: WorkflowNodeExecutionState[] | undefined);
700
+ get isExecutionView(): boolean;
701
+ get form(): WorkflowFormDocument | undefined;
702
+ set form(value: WorkflowFormDocument | undefined);
703
+ get selectedNodeId(): string | undefined;
704
+ get canUndo(): boolean;
705
+ get canRedo(): boolean;
706
+ connectedCallback(): void;
707
+ disconnectedCallback(): void;
708
+ protected applyTheme(): void;
709
+ private observeThemeChanges;
710
+ undo(): void;
711
+ redo(): void;
712
+ addNode(type: WorkflowNodeType, position?: {
713
+ x: number;
714
+ y: number;
715
+ }, activityTypeName?: string): void;
716
+ private defaultNodePosition;
717
+ private applyNodeDefaults;
718
+ private pairWithNewJoinNode;
719
+ removeSelectedNode(): void;
720
+ renameSelectedNode(name: string): void;
721
+ setSelectedEdgeKind(edgeId: string, kind: WorkflowEdgeKind): void;
722
+ addBranch(nodeId: string): void;
723
+ removeBranch(nodeId: string, branchId: string): void;
724
+ moveBranch(nodeId: string, branchId: string, offset: number): void;
725
+ protected render(): void;
726
+ private handleShortcut;
727
+ private createGraph;
728
+ private countsTowardStepLimit;
729
+ private countedSteps;
730
+ private selectEdge;
731
+ private onNodeMoved;
732
+ private onSelectionChanged;
733
+ private applySelectionStyles;
734
+ private bindCanvasDropTarget;
735
+ private toGraphPoint;
736
+ private canConnect;
737
+ private resolveOutcomeKind;
738
+ private buildEdge;
739
+ private portIdFor;
740
+ private parsePortId;
741
+ private syncGraphFromDocument;
742
+ private canvasColors;
743
+ private nodeMetadataOf;
744
+ private nodeBodyAttrs;
745
+ private edgeStrokeWidth;
746
+ private canvasEdgeLabelOf;
747
+ private edgeMetadataOf;
748
+ private scheduleInitialFit;
749
+ private fitContentIfNeeded;
750
+ private executionStyleOf;
751
+ isUnreviewed(nodeId: string): boolean;
752
+ getUnreviewedNodeIds(): string[];
753
+ markNodeReviewed(nodeId: string): void;
754
+ suggestConditionForSelectedBranch(ruleText: string): Promise<void>;
755
+ private assistantContext;
756
+ private applySuggestedExpression;
757
+ private edgeOpacityOf;
758
+ private wasEdgeTaken;
759
+ private nodeHeightOf;
760
+ private outcomeRowsOf;
761
+ private outcomePortsOf;
762
+ private parallelEdgesOf;
763
+ private parallelPortId;
764
+ private portIdForEdge;
765
+ private buildPortsFor;
766
+ private applyViewport;
767
+ private captureViewport;
768
+ zoomIn(): void;
769
+ zoomOut(): void;
770
+ zoomToFit(): void;
771
+ resetZoom(): void;
772
+ select(nodeId: string): void;
773
+ selectAll(): void;
774
+ clearSelection(): void;
775
+ deleteSelection(): void;
776
+ removeEdge(edgeId: string): void;
777
+ copySelection(): void;
778
+ pasteClipboard(): void;
779
+ autoLayout(): void;
780
+ private layoutDepths;
781
+ private edgeLabelText;
782
+ private branchOf;
783
+ private renderSchemaVersionWarning;
784
+ private toolButton;
785
+ private renderToolbar;
786
+ private renderZoomControls;
787
+ /**
788
+ * The palette's heading and search box are built once and then only updated in place: rebuilding the
789
+ * search box on every keystroke is what made the caret jump to the start and typed text come out
790
+ * reversed. Only the list of matching steps below it is re-rendered.
791
+ */
792
+ private renderPalette;
793
+ private renderPaletteItems;
794
+ private bindVariablesPanel;
795
+ private updateVariables;
796
+ private nodeIconMarkup;
797
+ private renderInspector;
798
+ private renderEdgeInspector;
799
+ private renderConnectionsSection;
800
+ private inspectorTabsFor;
801
+ private renderCategorySettings;
802
+ private renderCapabilityBlockedMessage;
803
+ private _localEditors;
804
+ /**
805
+ * Editors that need this element's own state — the selected action's parameter descriptors, the
806
+ * form document, the host lookups, the graph's edges — cannot live in the shared module registry,
807
+ * which is a singleton. Keys are either a UI hint or a single input name; the name form lets one
808
+ * field of one node type be taken over.
809
+ */
810
+ private localEditors;
811
+ private editorFor;
812
+ private createActionParameterEditor;
813
+ /**
814
+ * The "when it times out" drop down carries a line of guidance that depends on whether a
815
+ * "Timed out" edge is drawn, so it is built here rather than by the shared drop down editor.
816
+ */
817
+ private createEventTimeoutEditor;
818
+ /**
819
+ * The condition builder keeps the branch list and the graph's branch edges in step, and drives the
820
+ * selected-branch state and the AI suggestion box, so it stays inside the element.
821
+ */
822
+ private createConditionBuilderEditor;
823
+ /**
824
+ * The service level editor reads the tenant's business calendar settings and the escalation target
825
+ * lookups, so like the other graph aware editors it stays inside the element.
826
+ */
827
+ private createSlaEditor;
828
+ private createEventPayloadMappingEditor;
829
+ private selectedNode;
830
+ private payloadTargetFields;
831
+ private renderEventPayloadMappings;
832
+ private bindEventPayloadMappings;
833
+ /**
834
+ * Writes one descriptor input by its path, creating the nested settings object when the document
835
+ * does not have it yet. This is the same write the generic panel performs.
836
+ */
837
+ updateNodeInput(nodeId: string, inputName: string, value: unknown): void;
838
+ private renderDescriptorInput;
839
+ private inputEditorContext;
840
+ /**
841
+ * Every output the graph publishes, from the descriptors of the steps that produce them. A step that
842
+ * has not been given a type yet publishes nothing, which is why this is derived rather than stored.
843
+ */
844
+ private stepOutputOptions;
845
+ /**
846
+ * Resolves a descriptor's named options provider. A host that ships the single `optionsProvider`
847
+ * callback answers everything; the older per-kind callbacks stay supported so a host does not have
848
+ * to migrate in the same release.
849
+ */
850
+ private resolveOptionsAsync;
851
+ /**
852
+ * Every render re-binds the inspector's pickers and each of them asks the host for its options, so
853
+ * opening a few dropdowns in a row (or a re-render while a lookup is still out) used to send the same
854
+ * request several times and stack up as many error toasts when it failed. An identical request that
855
+ * is still in flight is shared instead of being sent again.
856
+ */
857
+ private shareInflight;
858
+ private requestOptions;
859
+ private legacyLookupFor;
860
+ /**
861
+ * An input the document never stored falls back to the value the descriptor declares. Older graphs
862
+ * left these undefined and the hand written panels read them as "on", so without this a migrated
863
+ * checkbox would silently flip to off.
864
+ */
865
+ private readInputWithDefault;
866
+ private isDescriptorCapabilityBlocked;
867
+ private isCapabilityBlocked;
868
+ private resolveInputOptions;
869
+ private siblingValuesOf;
870
+ private serverProviderOptions;
871
+ private formFieldOptions;
872
+ private bindDescriptorSettings;
873
+ private bindSettingsSection;
874
+ private renderActionParameterSection;
875
+ private renderActionParameter;
876
+ private renderActionParameterEditor;
877
+ private renderTypedInput;
878
+ private bindActionParameterSection;
879
+ private fillActionParameterOptions;
880
+ private updateActionBinding;
881
+ private findActionBinding;
882
+ private actionParametersOf;
883
+ private groupActionParameters;
884
+ /**
885
+ * The syntaxes this parameter may be bound with, expressed as an input descriptor so the shared
886
+ * syntax picker can render it. A parameter that forbids form field or instance binding simply
887
+ * publishes a shorter list, which is the same mechanism the server uses on real descriptors.
888
+ */
889
+ private syntaxDescriptorFor;
890
+ private describeParameterConstraints;
891
+ private updateEventWait;
892
+ private updateAction;
893
+ private renderConditionSection;
894
+ private renderConditionAssistant;
895
+ private renderBranchEditor;
896
+ private renderSlaSection;
897
+ /**
898
+ * "Escalate after" and "Escalate to" only mean something once escalation is switched on, so they are
899
+ * not rendered (and the escalation target lookup is not run) until it is.
900
+ */
901
+ private renderSlaEscalation;
902
+ private escalationTargetContext;
903
+ private bindConditionSection;
904
+ private bindSlaSection;
905
+ private conditionFields;
906
+ private describeTarget;
907
+ private namedTarget;
908
+ private lookupName;
909
+ private rememberLookupNames;
910
+ private loadLookupNames;
911
+ /**
912
+ * A lookup answer can arrive while the user is typing into the inspector, so the re-render it causes
913
+ * keeps that input focused with its caret where it was.
914
+ */
915
+ private renderAfterLookup;
916
+ private updateBranch;
917
+ private updateNode;
918
+ private commit;
919
+ private hasIssue;
920
+ private nextNodeId;
921
+ private nextEdgeId;
922
+ private nextBranchId;
923
+ private normalizeDocument;
924
+ private fingerprintOf;
925
+ private emitChange;
926
+ private emitSelection;
927
+ private escape;
928
+ private renderSummary;
929
+ private renderAssistantSummary;
930
+ get assistantSummary(): string | undefined;
931
+ get assistantSummaryError(): string | undefined;
932
+ summarizeWithAssistant(): Promise<void>;
933
+ private buildSummarySentences;
934
+ private describeNode;
935
+ private format;
936
+ private renderOutline;
937
+ private outlineOrderedNodes;
938
+ private outlineOutcomeRows;
939
+ private setOutlineTarget;
940
+ togglePalette(): void;
941
+ private applyPaletteVisibility;
942
+ toggleOutline(): void;
943
+ private applyOutlineVisibility;
944
+ }
945
+
946
+ export declare interface WorkflowEdgeDefinition {
947
+ id: string;
948
+ sourceNodeId: string;
949
+ targetNodeId: string;
950
+ kind: WorkflowEdgeKind;
951
+ /** Reserved outcome key of the port this edge leaves from, written from schema version 3 onward. */
952
+ outcomeKey?: string;
953
+ branchId?: string;
954
+ label?: WorkflowLocalizableText;
955
+ }
956
+
957
+ export declare enum WorkflowEdgeKind {
958
+ Default = 1,
959
+ Approved = 2,
960
+ Rejected = 3,
961
+ ChangesRequested = 4,
962
+ ConditionBranch = 5,
963
+ Otherwise = 6,
964
+ ParallelBranch = 7,
965
+ TimerElapsed = 8,
966
+ SubprocessCompleted = 9,
967
+ SubprocessRejected = 10,
968
+ EventReceived = 11,
969
+ EventTimeout = 12
970
+ }
971
+
972
+ export declare enum WorkflowEventCorrelationSource {
973
+ BusinessKey = 1,
974
+ ReferenceNumber = 2,
975
+ FormField = 3
976
+ }
977
+
978
+ export declare interface WorkflowEventPayloadMapping {
979
+ sourcePath?: string;
980
+ targetFieldKey?: string;
981
+ }
982
+
983
+ export declare enum WorkflowEventTimeoutBehavior {
984
+ ContinueTimeoutPath = 1,
985
+ NeedsAttention = 2,
986
+ Cancel = 3
987
+ }
988
+
989
+ export declare interface WorkflowEventWaitNodeSettings {
990
+ eventName?: string;
991
+ correlationSource?: WorkflowEventCorrelationSource;
992
+ correlationFieldKey?: string;
993
+ timeout?: WorkflowSlaSettings;
994
+ onTimeout?: WorkflowEventTimeoutBehavior;
995
+ payloadMappings?: WorkflowEventPayloadMapping[];
996
+ waitingMessage?: WorkflowLocalizableText;
997
+ }
998
+
999
+ export declare interface WorkflowFieldMapping {
1000
+ sourceFieldId?: string;
1001
+ targetFieldKey?: string;
1002
+ }
1003
+
1004
+ export declare interface WorkflowFieldMappingRow {
1005
+ sourceFieldId?: string;
1006
+ targetFieldKey?: string;
1007
+ }
1008
+
1009
+ export declare class WorkflowFormBuilderElement extends WorkflowHostElement {
1010
+ private _document;
1011
+ private _selectedFieldId;
1012
+ private _fingerprint;
1013
+ private _pointerDown;
1014
+ private _renderDeferred;
1015
+ /**
1016
+ * Fields added in this session whose key still follows their label. A key the user types by hand,
1017
+ * and every key that came in with the document, stays as it is.
1018
+ */
1019
+ private readonly _keyFollowsLabel;
1020
+ private _scrollToFieldId;
1021
+ private readonly onPointerDown;
1022
+ private readonly onPointerUp;
1023
+ constructor();
1024
+ connectedCallback(): void;
1025
+ disconnectedCallback(): void;
1026
+ /**
1027
+ * Pressing a button while an input of the form still has focus commits that input first (its change
1028
+ * event fires as focus leaves it), and that commit re-renders the form. Re-rendering between the
1029
+ * button's pointerdown and its click replaces the button, so the click never arrives: deleting a
1030
+ * section right after renaming it did nothing. While a pointer is down the re-render waits until
1031
+ * the click has been handled.
1032
+ */
1033
+ protected requestRender(): void;
1034
+ get fieldDescriptors(): WorkflowFormFieldDescriptor[];
1035
+ get availableFieldDescriptors(): WorkflowFormFieldDescriptor[];
1036
+ /**
1037
+ * A file can only be collected through a public form, so the field is offered only when the host says
1038
+ * this form is one (`publicFormEnabled: true`) and attachments are not switched off. Unlike the other
1039
+ * capabilities, a host that says nothing about public forms does not get the field.
1040
+ */
1041
+ get fileAttachmentsAvailable(): boolean;
1042
+ descriptorFor(type: WorkflowFormFieldType): WorkflowFormFieldDescriptor | undefined;
1043
+ get document(): WorkflowFormDocument;
1044
+ set document(value: WorkflowFormDocument | undefined);
1045
+ /** Whether a field's key is still being filled in from its label (see `_keyFollowsLabel`). */
1046
+ keyFollowsLabel(fieldId: string): boolean;
1047
+ /**
1048
+ * Shows the field a validation issue is about: selects it, scrolls its row into view and tells the
1049
+ * host (through `issue-focus`) that the form tab is the one to show. Returns `false` when the issue
1050
+ * does not name a field of this form. Safe to call before the element is connected: the selection
1051
+ * is applied by the first render.
1052
+ */
1053
+ focusValidationIssue(issue: WorkflowValidationIssue): boolean;
1054
+ get selectedFieldId(): string | undefined;
1055
+ addSection(): void;
1056
+ addField(type: WorkflowFormFieldType, parentFieldId?: string): void;
1057
+ removeField(fieldId: string): void;
1058
+ moveField(fieldId: string, delta: number): void;
1059
+ renameSection(sectionId: string, title: string): void;
1060
+ /**
1061
+ * Removes a section without losing what is in it: its fields move to the section above it (or the
1062
+ * one below when it was the first). Removing the last section leaves an unsectioned form, which is
1063
+ * where a form without sections starts, so its fields simply lose their section.
1064
+ */
1065
+ removeSection(sectionId: string): void;
1066
+ updateField(fieldId: string, changes: Partial<WorkflowFormFieldDefinition>): void;
1067
+ protected render(): void;
1068
+ private scrollToPendingField;
1069
+ private fieldIconMarkup;
1070
+ private fieldTypeLabel;
1071
+ private inputLabel;
1072
+ private renderLayout;
1073
+ private renderFieldTree;
1074
+ private renderFieldRow;
1075
+ /** Why a field already on the form will not work where the form is used, if it will not. */
1076
+ private fieldWarningOf;
1077
+ private renderStructureInputs;
1078
+ private renderFieldInspector;
1079
+ private resolveFieldInput;
1080
+ private fieldInputContext;
1081
+ /**
1082
+ * A choice field's options are edited row by row whatever hint the server sent for them: the generic
1083
+ * multi-line text box it describes them with is not a usable way to manage a list.
1084
+ */
1085
+ private editorFor;
1086
+ private renderInput;
1087
+ private readFieldInput;
1088
+ private applyFieldInput;
1089
+ private toOptions;
1090
+ /**
1091
+ * The key is what conditions and integrations refer to, so it is worth a word on where it comes from:
1092
+ * while it still follows the label the user can leave it alone, and once it is theirs it stays.
1093
+ */
1094
+ private keyHint;
1095
+ private nextFieldKey;
1096
+ /**
1097
+ * What an inspector edit changes on the field. A new field's key follows its label until the user
1098
+ * types a key of their own, after which the key is theirs.
1099
+ */
1100
+ private inspectorChanges;
1101
+ private bindEvents;
1102
+ private bindInspectorInputs;
1103
+ private normalizeDocument;
1104
+ private nextId;
1105
+ private emitChange;
1106
+ private escape;
1107
+ }
1108
+
1109
+ export declare enum WorkflowFormCalculationOperator {
1110
+ Sum = 1,
1111
+ Subtract = 2,
1112
+ Multiply = 3,
1113
+ Average = 4,
1114
+ Min = 5,
1115
+ Max = 6,
1116
+ Count = 7
1117
+ }
1118
+
1119
+ export declare interface WorkflowFormDocument {
1120
+ schemaVersion: number;
1121
+ title?: WorkflowLocalizableText;
1122
+ description?: WorkflowLocalizableText;
1123
+ sections: WorkflowFormSection[];
1124
+ fields: WorkflowFormFieldDefinition[];
1125
+ }
1126
+
1127
+ export declare interface WorkflowFormFieldCalculation {
1128
+ operator?: WorkflowFormCalculationOperator;
1129
+ sourceFieldIds?: string[];
1130
+ }
1131
+
1132
+ export declare interface WorkflowFormFieldDefinition {
1133
+ id: string;
1134
+ key?: string;
1135
+ type: WorkflowFormFieldType;
1136
+ label?: WorkflowLocalizableText;
1137
+ placeholder?: WorkflowLocalizableText;
1138
+ helpText?: WorkflowLocalizableText;
1139
+ sectionId?: string;
1140
+ order: number;
1141
+ columnSpan?: number;
1142
+ isReadOnly?: boolean;
1143
+ isSensitive?: boolean;
1144
+ defaultValue?: string;
1145
+ currencyCode?: string;
1146
+ validation?: WorkflowFormFieldValidation;
1147
+ options?: WorkflowFormFieldOption[];
1148
+ parentFieldId?: string;
1149
+ calculation?: WorkflowFormFieldCalculation;
1150
+ visibleWhen?: WorkflowConditionExpression;
1151
+ enabledWhen?: WorkflowConditionExpression;
1152
+ requiredWhen?: WorkflowConditionExpression;
1153
+ }
1154
+
1155
+ export declare interface WorkflowFormFieldDescriptor {
1156
+ type: number;
1157
+ typeKey: string;
1158
+ displayName?: string;
1159
+ description?: string;
1160
+ category?: string;
1161
+ icon?: string;
1162
+ order?: number;
1163
+ isBrowsable?: boolean;
1164
+ isContainer?: boolean;
1165
+ isReadOnlyContent?: boolean;
1166
+ requiredCapability?: string;
1167
+ inputs: WorkflowInputDescriptor[];
1168
+ }
1169
+
1170
+ export declare interface WorkflowFormFieldOption {
1171
+ value?: string;
1172
+ label?: WorkflowLocalizableText;
1173
+ order: number;
1174
+ isDisabled?: boolean;
1175
+ }
1176
+
1177
+ export declare enum WorkflowFormFieldType {
1178
+ ShortText = 1,
1179
+ LongText = 2,
1180
+ Number = 3,
1181
+ Money = 4,
1182
+ Date = 5,
1183
+ Time = 6,
1184
+ DateTime = 7,
1185
+ Boolean = 8,
1186
+ SingleSelect = 9,
1187
+ MultiSelect = 10,
1188
+ UserPicker = 11,
1189
+ RolePicker = 12,
1190
+ OrganizationUnitPicker = 13,
1191
+ FileAttachment = 14,
1192
+ StaticText = 15,
1193
+ Repeater = 16,
1194
+ Calculated = 17
1195
+ }
1196
+
1197
+ export declare interface WorkflowFormFieldValidation {
1198
+ isRequired?: boolean;
1199
+ minLength?: number;
1200
+ maxLength?: number;
1201
+ minValue?: number;
1202
+ maxValue?: number;
1203
+ decimalPlaces?: number;
1204
+ regexPattern?: string;
1205
+ }
1206
+
1207
+ export declare interface WorkflowFormSection {
1208
+ id: string;
1209
+ title?: WorkflowLocalizableText;
1210
+ description?: WorkflowLocalizableText;
1211
+ order: number;
1212
+ isCollapsible?: boolean;
1213
+ isInitiallyCollapsed?: boolean;
1214
+ }
1215
+
1216
+ export declare interface WorkflowFormSubmissionNodeSettings {
1217
+ visibleFieldIds?: string[];
1218
+ readOnlyFieldIds?: string[];
1219
+ allowAttachments?: boolean;
1220
+ allowWithdraw?: boolean;
1221
+ }
1222
+
1223
+ export declare interface WorkflowGraphDocument {
1224
+ schemaVersion: number;
1225
+ nodes: WorkflowNodeDefinition[];
1226
+ edges: WorkflowEdgeDefinition[];
1227
+ metadata?: WorkflowGraphMetadata;
1228
+ variables?: WorkflowVariableDefinition[];
1229
+ }
1230
+
1231
+ export declare interface WorkflowGraphMetadata {
1232
+ nodeLayouts?: WorkflowLegacyNodeLayout[];
1233
+ zoom?: number;
1234
+ canvasOffsetX?: number;
1235
+ canvasOffsetY?: number;
1236
+ }
1237
+
1238
+ export declare interface WorkflowHostCapabilities {
1239
+ formFieldDescriptors?: WorkflowFormFieldDescriptor[];
1240
+ activityDescriptors?: WorkflowActivityDescriptor[];
1241
+ graphSchemaVersion?: number;
1242
+ maxSteps?: number;
1243
+ maxFormFields?: number;
1244
+ advancedApprovalsEnabled?: boolean;
1245
+ externalActionsEnabled?: boolean;
1246
+ attachmentsEnabled?: boolean;
1247
+ /**
1248
+ * Whether the form being edited is (or can be) filled in through a public form. Files can only be
1249
+ * collected on a public form, so the form builder offers the file attachment field only when this is
1250
+ * `true` and `attachmentsEnabled` is not `false`, and warns on a file attachment field already on a
1251
+ * form when it is not. Unlike the other capabilities, leaving it out means "not available".
1252
+ */
1253
+ publicFormEnabled?: boolean;
1254
+ eventWaitEnabled?: boolean;
1255
+ slackEnabled?: boolean;
1256
+ teamsEnabled?: boolean;
1257
+ actions?: WorkflowActionDescriptor[];
1258
+ }
1259
+
1260
+ declare abstract class WorkflowHostElement extends HTMLElement {
1261
+ protected readonly root: ShadowRoot;
1262
+ private _localization;
1263
+ private _theme;
1264
+ private _permissions;
1265
+ private _capabilities;
1266
+ private _lookups;
1267
+ private _issues;
1268
+ private _connected;
1269
+ private _stylesAdopted;
1270
+ private _styleElement;
1271
+ private _dispatchingChange;
1272
+ private readonly _hostFingerprints;
1273
+ constructor();
1274
+ get localization(): WorkflowLocalizationDictionary | undefined;
1275
+ set localization(value: WorkflowLocalizationDictionary | undefined);
1276
+ get theme(): WorkflowThemeTokens | undefined;
1277
+ set theme(value: WorkflowThemeTokens | undefined);
1278
+ get permissions(): WorkflowHostPermissions;
1279
+ set permissions(value: WorkflowHostPermissions);
1280
+ get capabilities(): WorkflowHostCapabilities;
1281
+ set capabilities(value: WorkflowHostCapabilities);
1282
+ get lookups(): WorkflowHostLookups;
1283
+ set lookups(value: WorkflowHostLookups);
1284
+ get validationIssues(): WorkflowValidationIssue[];
1285
+ set validationIssues(value: WorkflowValidationIssue[]);
1286
+ get readOnly(): boolean;
1287
+ set readOnly(value: boolean);
1288
+ connectedCallback(): void;
1289
+ disconnectedCallback(): void;
1290
+ protected l(key: string, fallback?: string): string;
1291
+ protected emit<T>(name: string, detail: T): void;
1292
+ /**
1293
+ * Hosts re-assign every property whenever their own state changes (React effects, Angular change
1294
+ * detection), usually with an equal value. Re-rendering for those would rebuild the input the user is
1295
+ * typing in, so a property only counts as changed when its content differs from the last assignment.
1296
+ * The content is compared rather than the reference, so a host that mutates its object in place and
1297
+ * assigns it again is still seen.
1298
+ */
1299
+ protected hostValueChanged(name: string, value: unknown): boolean;
1300
+ protected requestRender(): void;
1301
+ /**
1302
+ * A render the host caused by assigning a property. It can arrive at any moment, including while the
1303
+ * user is typing into one of the inputs it rebuilds, so it keeps that input focused with its caret
1304
+ * and its not yet committed text where they were.
1305
+ */
1306
+ protected requestHostRender(): void;
1307
+ protected adoptStyles(css: string): void;
1308
+ protected applyTheme(): void;
1309
+ protected abstract render(): void;
1310
+ }
1311
+
1312
+ export declare interface WorkflowHostLookups {
1313
+ optionsProvider?: WorkflowOptionsProviderCallback;
1314
+ users?: WorkflowLookupCallback;
1315
+ roles?: WorkflowLookupCallback;
1316
+ organizationUnits?: WorkflowLookupCallback;
1317
+ registeredActions?: WorkflowLookupCallback;
1318
+ connectionProfiles?: WorkflowLookupCallback;
1319
+ workflowDefinitions?: WorkflowLookupCallback;
1320
+ eventDefinitions?: WorkflowLookupCallback;
1321
+ actionParameterOptions?: (handlerName: string, parameterName: string, filter: string) => Promise<WorkflowLookupItem[]>;
1322
+ suggestCondition?: WorkflowConditionSuggestionCallback;
1323
+ summarizeWorkflow?: WorkflowSummaryCallback;
1324
+ }
1325
+
1326
+ export declare interface WorkflowHostPermissions {
1327
+ canEdit?: boolean;
1328
+ canPublish?: boolean;
1329
+ canSimulate?: boolean;
1330
+ }
1331
+
1332
+ export declare interface WorkflowInputDescriptor {
1333
+ name: string;
1334
+ typeName?: string;
1335
+ displayName?: string;
1336
+ descriptionKey?: string;
1337
+ /** Designer-local: the built-in fallback catalog carries a key because the server is not there to resolve it. */
1338
+ displayNameKey?: string;
1339
+ description?: string;
1340
+ category?: string;
1341
+ order?: number;
1342
+ uiHint?: string;
1343
+ uiSpecifications?: Record<string, unknown>;
1344
+ defaultValue?: unknown;
1345
+ defaultSyntax?: string;
1346
+ supportedSyntaxes?: string[];
1347
+ allowedValues?: WorkflowInputOption[];
1348
+ optionsProviderName?: string;
1349
+ refreshOnChange?: string[];
1350
+ isRequired?: boolean;
1351
+ isReadOnly?: boolean;
1352
+ isBrowsable?: boolean;
1353
+ isWrapped?: boolean;
1354
+ isSynthetic?: boolean;
1355
+ isSensitive?: boolean;
1356
+ requiredCapability?: string;
1357
+ minValue?: number;
1358
+ maxValue?: number;
1359
+ maxLength?: number;
1360
+ regexPattern?: string;
1361
+ }
1362
+
1363
+ export declare interface WorkflowInputEditor {
1364
+ hint: string;
1365
+ render: (context: WorkflowInputEditorContext) => string;
1366
+ read: (element: HTMLElement) => unknown;
1367
+ changeEvent?: 'change' | 'input';
1368
+ /**
1369
+ * Composite editors own more than one control, so they wire their own events and hand the whole
1370
+ * value back through `commit`. When this is present the panel does not wire anything itself.
1371
+ */
1372
+ bind?: (container: HTMLElement, context: WorkflowInputEditorContext, commit: (value: unknown) => void) => void;
1373
+ }
1374
+
1375
+ export declare interface WorkflowInputEditorContext {
1376
+ descriptor: WorkflowInputDescriptor;
1377
+ value: unknown;
1378
+ disabled: boolean;
1379
+ elementId: string;
1380
+ localize: (key: string, fallback?: string) => string;
1381
+ escape: (value: string) => string;
1382
+ /** Present when the editor is hosted somewhere that can resolve options asynchronously. */
1383
+ lookup?: WorkflowInputOptionLookup;
1384
+ /**
1385
+ * The variables and step outputs the graph currently declares. They come from the document rather
1386
+ * than from a lookup because a variable exists the moment it is typed into the grid, long before
1387
+ * anything is saved.
1388
+ */
1389
+ variables?: WorkflowVariableOption[];
1390
+ outputs?: WorkflowOutputOption[];
1391
+ /**
1392
+ * The secrets this user may refer to, by name only. The host loads them; the designer never sees a
1393
+ * value and has no way to ask for one.
1394
+ */
1395
+ secrets?: WorkflowSecretOption[];
1396
+ nameOf?: (providerName: string, id: string) => string | undefined;
1397
+ }
1398
+
1399
+ export declare interface WorkflowInputOption {
1400
+ value: string;
1401
+ displayText: string;
1402
+ }
1403
+
1404
+ export declare interface WorkflowInputOptionLookup {
1405
+ (providerName: string, filter: string): Promise<{
1406
+ value: string;
1407
+ displayText: string;
1408
+ }[]>;
1409
+ }
1410
+
1411
+ /** Detail of the `issue-focus` event: the element focused (or is forwarding) an issue, and the host should show this tab. */
1412
+ export declare interface WorkflowIssueFocusDetail extends WorkflowIssueFocusTarget {
1413
+ issue: WorkflowValidationIssue;
1414
+ }
1415
+
1416
+ /** Which host tab holds what a validation issue is about. */
1417
+ export declare type WorkflowIssueFocusTab = 'flow' | 'form' | 'trigger';
1418
+
1419
+ /** What a validation issue points at, resolved against the documents the element holds. */
1420
+ export declare interface WorkflowIssueFocusTarget {
1421
+ tab: WorkflowIssueFocusTab;
1422
+ nodeId?: string;
1423
+ edgeId?: string;
1424
+ branchId?: string;
1425
+ fieldId?: string;
1426
+ /** The step input (dotted descriptor name) the issue is about, when its code says so. */
1427
+ inputName?: string;
1428
+ }
1429
+
1430
+ export declare enum WorkflowJoinMode {
1431
+ WaitAll = 1,
1432
+ WaitAny = 2,
1433
+ WaitCount = 3
1434
+ }
1435
+
1436
+ export declare interface WorkflowJoinNodeSettings {
1437
+ parallelNodeId?: string;
1438
+ mode?: WorkflowJoinMode;
1439
+ requiredBranchCount?: number;
1440
+ }
1441
+
1442
+ export declare interface WorkflowLegacyNodeLayout {
1443
+ nodeId?: string;
1444
+ x: number;
1445
+ y: number;
1446
+ width?: number;
1447
+ height?: number;
1448
+ }
1449
+
1450
+ export declare interface WorkflowLocalizableText {
1451
+ defaultValue?: string;
1452
+ translations?: Record<string, string>;
1453
+ }
1454
+
1455
+ export declare type WorkflowLocalizationDictionary = Record<string, string>;
1456
+
1457
+ export declare type WorkflowLookupCallback = (filter: string) => Promise<WorkflowLookupItem[]>;
1458
+
1459
+ export declare interface WorkflowLookupItem {
1460
+ id: string;
1461
+ displayName: string;
1462
+ }
1463
+
1464
+ export declare type WorkflowNodeCategory = 'flow' | 'human' | 'control' | 'integration' | 'terminal';
1465
+
1466
+ export declare interface WorkflowNodeCategoryDefinition {
1467
+ id: WorkflowNodeCategory;
1468
+ localizationKey: string;
1469
+ fallbackLabel: string;
1470
+ }
1471
+
1472
+ export declare interface WorkflowNodeDefinition {
1473
+ id: string;
1474
+ type: WorkflowNodeType;
1475
+ /** Reserved activity type key, written from schema version 3 onward. */
1476
+ activityType?: string;
1477
+ activityVersion?: number;
1478
+ inputs?: Record<string, unknown>;
1479
+ customProperties?: Record<string, unknown>;
1480
+ unknownActivity?: WorkflowUnknownActivitySettings;
1481
+ identityKey?: string;
1482
+ authoringOrigin?: WorkflowAuthoringOrigin;
1483
+ name?: WorkflowLocalizableText;
1484
+ description?: WorkflowLocalizableText;
1485
+ layout?: WorkflowNodeLayout;
1486
+ approval?: WorkflowApprovalNodeSettings;
1487
+ condition?: WorkflowConditionNodeSettings;
1488
+ notification?: WorkflowNotificationNodeSettings;
1489
+ action?: WorkflowActionNodeSettings;
1490
+ formSubmission?: WorkflowFormSubmissionNodeSettings;
1491
+ parallel?: WorkflowParallelNodeSettings;
1492
+ join?: WorkflowJoinNodeSettings;
1493
+ timer?: WorkflowTimerNodeSettings;
1494
+ subprocess?: WorkflowSubprocessNodeSettings;
1495
+ eventWait?: WorkflowEventWaitNodeSettings;
1496
+ sendSlackMessage?: WorkflowSendChatMessageNodeSettings;
1497
+ sendTeamsMessage?: WorkflowSendChatMessageNodeSettings;
1498
+ channels?: WorkflowChannelSettings;
1499
+ sla?: WorkflowSlaSettings;
1500
+ }
1501
+
1502
+ export declare interface WorkflowNodeExecutionState {
1503
+ nodeId?: string;
1504
+ status?: WorkflowNodeExecutionStatus;
1505
+ visitCount?: number;
1506
+ enteredTime?: string;
1507
+ completedTime?: string;
1508
+ decision?: number;
1509
+ workflowTaskId?: number;
1510
+ }
1511
+
1512
+ export declare enum WorkflowNodeExecutionStatus {
1513
+ NotVisited = 0,
1514
+ Active = 1,
1515
+ Completed = 2,
1516
+ Skipped = 3,
1517
+ Faulted = 4,
1518
+ Cancelled = 5
1519
+ }
1520
+
1521
+ export declare interface WorkflowNodeHeat {
1522
+ nodeId?: string;
1523
+ enteredCount?: number;
1524
+ averageDwellSeconds?: number;
1525
+ ninetiethPercentileDwellSeconds?: number;
1526
+ overdueCount?: number;
1527
+ noAssigneeCount?: number;
1528
+ reworkCount?: number;
1529
+ wasNeverEntered?: boolean;
1530
+ }
1531
+
1532
+ export declare interface WorkflowNodeLayout {
1533
+ x: number;
1534
+ y: number;
1535
+ width?: number;
1536
+ height?: number;
1537
+ }
1538
+
1539
+ export declare interface WorkflowNodeOutcome {
1540
+ kind: WorkflowEdgeKind;
1541
+ localizationKey: string;
1542
+ fallbackLabel: string;
1543
+ color: string;
1544
+ isDynamic?: boolean;
1545
+ isOptional?: boolean;
1546
+ }
1547
+
1548
+ export declare interface WorkflowNodePaletteItem {
1549
+ type: number;
1550
+ category: WorkflowNodeCategory;
1551
+ localizationKey: string;
1552
+ fallbackLabel: string;
1553
+ descriptionKey: string;
1554
+ fallbackDescription: string;
1555
+ icon: string;
1556
+ iconName?: string;
1557
+ color: string;
1558
+ isTerminal: boolean;
1559
+ isSingleton: boolean;
1560
+ isUnknown: boolean;
1561
+ outcomes: WorkflowNodeOutcome[];
1562
+ }
1563
+
1564
+ export declare enum WorkflowNodeType {
1565
+ Start = 1,
1566
+ FormSubmission = 2,
1567
+ Approval = 3,
1568
+ Condition = 4,
1569
+ Notification = 5,
1570
+ Action = 6,
1571
+ Approved = 7,
1572
+ Rejected = 8,
1573
+ Cancelled = 9,
1574
+ Parallel = 10,
1575
+ Join = 11,
1576
+ Timer = 12,
1577
+ Subprocess = 13,
1578
+ EventWait = 14,
1579
+ SendSlackMessage = 15,
1580
+ SendTeamsMessage = 16,
1581
+ RunAiAgent = 17
1582
+ }
1583
+
1584
+ export declare interface WorkflowNotificationNodeSettings {
1585
+ notificationName?: string;
1586
+ subject?: WorkflowLocalizableText;
1587
+ body?: WorkflowLocalizableText;
1588
+ sendInApp?: boolean;
1589
+ sendEmail?: boolean;
1590
+ recipients?: unknown[];
1591
+ }
1592
+
1593
+ /**
1594
+ * The single lookup the descriptor contract needs: the descriptor names a provider, the host resolves
1595
+ * it. Hosts that still ship the per-kind callbacks below keep working; this one wins when present.
1596
+ */
1597
+ export declare type WorkflowOptionsProviderCallback = (providerName: string, filter: string, context: WorkflowOptionsProviderContext) => Promise<WorkflowLookupItem[]>;
1598
+
1599
+ export declare interface WorkflowOptionsProviderContext {
1600
+ activityTypeName?: string;
1601
+ inputName?: string;
1602
+ nodeId?: string;
1603
+ siblingValues?: Record<string, unknown>;
1604
+ }
1605
+
1606
+ /** What a step publishes for later steps to read. Mirrors `WorkflowOutputDescriptorDto`. */
1607
+ export declare interface WorkflowOutputDescriptor {
1608
+ name: string;
1609
+ displayName?: string;
1610
+ description?: string;
1611
+ typeName?: string;
1612
+ isSensitive?: boolean;
1613
+ }
1614
+
1615
+ /** An output a step in the graph publishes, named by the step that produces it. */
1616
+ declare interface WorkflowOutputOption {
1617
+ nodeId: string;
1618
+ nodeName?: string;
1619
+ outputName: string;
1620
+ }
1621
+
1622
+ export declare interface WorkflowPaletteCapabilities {
1623
+ eventWaitEnabled?: boolean;
1624
+ externalActionsEnabled?: boolean;
1625
+ }
1626
+
1627
+ export declare interface WorkflowParallelNodeSettings {
1628
+ joinNodeId?: string;
1629
+ cancelRemainingBranchesOnRejection?: boolean;
1630
+ }
1631
+
1632
+ export declare interface WorkflowPortDescriptor {
1633
+ name: string;
1634
+ displayName?: string;
1635
+ type?: string;
1636
+ edgeKind?: number;
1637
+ isDynamic?: boolean;
1638
+ expansionSource?: string;
1639
+ }
1640
+
1641
+ export declare enum WorkflowRejectionPolicy {
1642
+ RejectImmediately = 1,
1643
+ WaitForEveryone = 2
1644
+ }
1645
+
1646
+ export declare interface WorkflowSchemaVersionMismatch {
1647
+ kind: WorkflowSchemaVersionMismatchKind;
1648
+ serverVersion: number;
1649
+ designerVersion: number;
1650
+ }
1651
+
1652
+ export declare type WorkflowSchemaVersionMismatchKind = 'designer-outdated' | 'server-outdated';
1653
+
1654
+ /**
1655
+ * A secret as the designer sees it. There is no value here and there never will be: the picker exists so
1656
+ * a graph can refer to a secret by name without anyone having to see what it holds.
1657
+ */
1658
+ declare interface WorkflowSecretOption {
1659
+ name: string;
1660
+ displayName?: string;
1661
+ typeName?: string;
1662
+ hasUsableValue?: boolean;
1663
+ }
1664
+
1665
+ export declare interface WorkflowSelectionDetail {
1666
+ nodeId?: string;
1667
+ fieldId?: string;
1668
+ }
1669
+
1670
+ export declare enum WorkflowSelfApprovalPolicy {
1671
+ TenantDefault = 0,
1672
+ Deny = 1,
1673
+ Allow = 2,
1674
+ SkipStep = 3
1675
+ }
1676
+
1677
+ export declare interface WorkflowSendChatMessageNodeSettings {
1678
+ connectionProfileName?: string;
1679
+ target?: string;
1680
+ title?: WorkflowLocalizableText;
1681
+ body?: WorkflowLocalizableText;
1682
+ severity?: number;
1683
+ includeDeepLink?: boolean;
1684
+ factFieldIds?: string[];
1685
+ adaptiveCardJson?: string;
1686
+ }
1687
+
1688
+ export declare interface WorkflowSlaSettings {
1689
+ dueInMinutes?: number;
1690
+ useBusinessCalendar?: boolean;
1691
+ dueSoonThresholdInMinutes?: number;
1692
+ reminderIntervalInMinutes?: number;
1693
+ maxReminderCount?: number;
1694
+ escalateOnOverdue?: boolean;
1695
+ escalateAfterMinutes?: number;
1696
+ escalationTarget?: WorkflowAssignmentTarget;
1697
+ }
1698
+
1699
+ export declare interface WorkflowSubprocessNodeSettings {
1700
+ workflowDefinitionId?: string;
1701
+ waitForCompletion?: boolean;
1702
+ outcomeMode?: WorkflowSubprocessOutcomeMode;
1703
+ cancelChildOnParentCancel?: boolean;
1704
+ inputMappings?: WorkflowFieldMapping[];
1705
+ outputMappings?: WorkflowFieldMapping[];
1706
+ }
1707
+
1708
+ export declare enum WorkflowSubprocessOutcomeMode {
1709
+ SingleOutcome = 1,
1710
+ ApprovalOutcome = 2
1711
+ }
1712
+
1713
+ export declare type WorkflowSummaryCallback = (context: WorkflowAssistantContext) => Promise<WorkflowSummarySuggestion>;
1714
+
1715
+ export declare interface WorkflowSummarySuggestion {
1716
+ succeeded: boolean;
1717
+ summary?: string;
1718
+ failureReason?: string;
1719
+ }
1720
+
1721
+ /**
1722
+ * How a value is produced. The server publishes the syntaxes it is willing to evaluate on each input's
1723
+ * `supportedSyntaxes`; anything not on that list simply never appears here. That is why the code
1724
+ * execution syntaxes (JavaScript, C#, ...) never show up in the designer: the server does not offer them.
1725
+ */
1726
+ export declare interface WorkflowSyntaxOption {
1727
+ syntax: string;
1728
+ labelKey: string;
1729
+ fallbackLabel: string;
1730
+ }
1731
+
1732
+ export declare interface WorkflowThemeTokens {
1733
+ fontFamily?: string;
1734
+ surfaceColor?: string;
1735
+ borderColor?: string;
1736
+ textColor?: string;
1737
+ mutedTextColor?: string;
1738
+ primaryColor?: string;
1739
+ dangerColor?: string;
1740
+ warningColor?: string;
1741
+ successColor?: string;
1742
+ }
1743
+
1744
+ export declare enum WorkflowTimerNodeMode {
1745
+ Duration = 1,
1746
+ FormFieldDate = 2,
1747
+ FixedDate = 3
1748
+ }
1749
+
1750
+ export declare interface WorkflowTimerNodeSettings {
1751
+ mode?: WorkflowTimerNodeMode;
1752
+ durationInMinutes?: number;
1753
+ fieldId?: string;
1754
+ offsetInMinutes?: number;
1755
+ fixedDate?: string;
1756
+ useBusinessCalendar?: boolean;
1757
+ }
1758
+
1759
+ export declare interface WorkflowUnknownActivitySettings {
1760
+ missingTypeName?: string;
1761
+ missingTypeVersion?: number;
1762
+ originalNodeJson?: string;
1763
+ }
1764
+
1765
+ export declare interface WorkflowValidationIssue {
1766
+ code?: string;
1767
+ message?: string;
1768
+ nodeId?: string;
1769
+ edgeId?: string;
1770
+ fieldId?: string;
1771
+ branchId?: string;
1772
+ }
1773
+
1774
+ export declare interface WorkflowVariableDefinition {
1775
+ id?: string;
1776
+ name: string;
1777
+ typeName?: string;
1778
+ isArray?: boolean;
1779
+ /** The starting value, kept as text and read back through `typeName` and `isArray`. */
1780
+ value?: string;
1781
+ scope?: number;
1782
+ isSensitive?: boolean;
1783
+ displayName?: WorkflowLocalizableText;
1784
+ }
1785
+
1786
+ /**
1787
+ * A variable the graph declares. The designer feeds these in from the document rather than from a server
1788
+ * lookup, because a variable exists as soon as it is typed into the grid and long before anything is
1789
+ * saved.
1790
+ */
1791
+ declare interface WorkflowVariableOption {
1792
+ name: string;
1793
+ typeName?: string;
1794
+ scope?: string;
1795
+ isSensitive?: boolean;
1796
+ }
1797
+
1798
+ export declare interface WorkflowVisibleWhenRule {
1799
+ input: string;
1800
+ equalsAnyOf: unknown[];
1801
+ isNotEmpty?: boolean;
1802
+ }
1803
+
1804
+ export declare function writeInputValue<T>(target: T, path: string, value: unknown): T;
1805
+
1806
+ export { }