@stripe/extensibility-jsonschema-tools 1.0.1 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,9 +1,10 @@
1
- import { ExtendedJSONSchema7 } from '@formspec/build/browser';
2
- import { getSchemaExtension } from '@formspec/build/browser';
3
- import { jsonSchema7Schema } from '@formspec/build/browser';
4
- import { setSchemaExtension } from '@formspec/build/browser';
1
+ import { ExtendedJSONSchema7 } from '@stripe/formspec-build/browser';
2
+ import { FormSpecConfig } from '@stripe/formspec-config';
3
+ import { getSchemaExtension } from '@stripe/formspec-build/browser';
4
+ import { jsonSchema7Schema } from '@stripe/formspec-build/browser';
5
+ import { setSchemaExtension } from '@stripe/formspec-build/browser';
5
6
  import * as ts from 'typescript';
6
- import { uiSchemaSchema } from '@formspec/build/browser';
7
+ import { uiSchemaSchema } from '@stripe/formspec-build/browser';
7
8
 
8
9
  /**
9
10
  * Controls whether a type-level annotation can flow from a base declaration to
@@ -21,14 +22,6 @@ declare type AnnotationInheritancePolicy$1 = "local-wins" | "never";
21
22
  */
22
23
  declare type AnnotationInheritancePolicy = "local-wins" | "never";
23
24
 
24
- /**
25
- * Controls whether a type-level annotation can flow from a base declaration to
26
- * a derived declaration during semantic analysis.
27
- *
28
- * @public
29
- */
30
- declare type AnnotationInheritancePolicy_2 = "local-wins" | "never";
31
-
32
25
  /**
33
26
  * Registration for mapping a built-in TSDoc tag onto a custom constraint when
34
27
  * it is used on a particular custom type.
@@ -59,21 +52,6 @@ declare interface BuiltinConstraintBroadeningRegistration_2 {
59
52
  readonly parseValue: (raw: string) => ExtensionPayloadValue$1;
60
53
  }
61
54
 
62
- /**
63
- * Registration for mapping a built-in TSDoc tag onto a custom constraint when
64
- * it is used on a particular custom type.
65
- *
66
- * @public
67
- */
68
- declare interface BuiltinConstraintBroadeningRegistration_3 {
69
- /** The built-in tag being broadened, without the `@` prefix. */
70
- readonly tagName: BuiltinConstraintName_2;
71
- /** The custom constraint to emit for this built-in tag. */
72
- readonly constraintName: string;
73
- /** Parser from raw TSDoc text to extension payload. */
74
- readonly parseValue: (raw: string) => ExtensionPayloadValue_2;
75
- }
76
-
77
55
  /**
78
56
  * Type of a built-in constraint name.
79
57
  *
@@ -88,13 +66,6 @@ declare type BuiltinConstraintName$1 = "const" | "enumOptions" | "exclusiveMaxim
88
66
  */
89
67
  export declare type BuiltinConstraintName = "const" | "enumOptions" | "exclusiveMaximum" | "exclusiveMinimum" | "maximum" | "maxItems" | "maxLength" | "minimum" | "minItems" | "minLength" | "multipleOf" | "pattern" | "uniqueItems";
90
68
 
91
- /**
92
- * Type of a built-in constraint name.
93
- *
94
- * @public
95
- */
96
- declare type BuiltinConstraintName_2 = "const" | "enumOptions" | "exclusiveMaximum" | "exclusiveMinimum" | "maximum" | "maxItems" | "maxLength" | "minimum" | "minItems" | "minLength" | "multipleOf" | "pattern" | "uniqueItems";
97
-
98
69
  /**
99
70
  * A Categorization element (tab-based layout).
100
71
  *
@@ -177,24 +148,6 @@ export declare interface ConstraintSemanticRole {
177
148
  readonly inclusive: boolean;
178
149
  }
179
150
 
180
- /**
181
- * Semantic metadata for ordered custom constraints that should participate in
182
- * the generic contradiction/broadening logic.
183
- *
184
- * @public
185
- */
186
- declare interface ConstraintSemanticRole_2 {
187
- /**
188
- * Logical family identifier shared by related constraints, for example
189
- * `"decimal-bound"` or `"date-bound"`.
190
- */
191
- readonly family: string;
192
- /** Whether this constraint acts as a lower or upper bound. */
193
- readonly bound: "exact" | "lower" | "upper";
194
- /** Whether equality is allowed when comparing against the bound. */
195
- readonly inclusive: boolean;
196
- }
197
-
198
151
  /**
199
152
  * Declarative authoring-side registration for a custom TSDoc constraint tag.
200
153
  *
@@ -235,26 +188,6 @@ declare interface ConstraintTagRegistration_2 {
235
188
  readonly isApplicableToType?: (type: ExtensionApplicableType$1) => boolean;
236
189
  }
237
190
 
238
- /**
239
- * Declarative authoring-side registration for a custom TSDoc constraint tag.
240
- *
241
- * @public
242
- */
243
- declare interface ConstraintTagRegistration_3 {
244
- /** Tag name without the `@` prefix, e.g. `"maxSigFig"`. */
245
- readonly tagName: string;
246
- /** The custom constraint that this tag should produce. */
247
- readonly constraintName: string;
248
- /** Parser from raw TSDoc text to JSON-serializable payload. */
249
- readonly parseValue: (raw: string) => ExtensionPayloadValue_2;
250
- /**
251
- * Optional precise applicability predicate for the field type being parsed.
252
- * When omitted, the target custom constraint registration controls type
253
- * applicability during validation.
254
- */
255
- readonly isApplicableToType?: (type: ExtensionApplicableType_2) => boolean;
256
- }
257
-
258
191
  /**
259
192
  * A Control element that binds to a JSON Schema property.
260
193
  *
@@ -275,27 +208,6 @@ export declare interface ControlElement {
275
208
  readonly [k: string]: unknown;
276
209
  }
277
210
 
278
- /**
279
- * Control options constraints - control which JSON Forms Control.options are allowed.
280
- * These are renderer-specific options that may not be universally supported.
281
- *
282
- * @public
283
- */
284
- declare interface ControlOptionConstraints {
285
- /** format - renderer format hint (e.g., "radio", "textarea") */
286
- format?: Severity;
287
- /** readonly - read-only mode */
288
- readonly?: Severity;
289
- /** multi - multi-select for enums */
290
- multi?: Severity;
291
- /** showUnfocusedDescription - show description when unfocused */
292
- showUnfocusedDescription?: Severity;
293
- /** hideRequiredAsterisk - hide required indicator */
294
- hideRequiredAsterisk?: Severity;
295
- /** Custom control options (extensible dictionary) */
296
- custom?: Record<string, Severity>;
297
- }
298
-
299
211
  /**
300
212
  * Registration for a custom annotation that may produce JSON Schema keywords.
301
213
  *
@@ -358,37 +270,6 @@ declare interface CustomAnnotationRegistration_2 {
358
270
  readonly toJsonSchema?: (value: ExtensionPayloadValue$1, vendorPrefix: string) => Record<string, unknown>;
359
271
  }
360
272
 
361
- /**
362
- * Registration for a custom annotation that may produce JSON Schema keywords.
363
- *
364
- * Custom annotations are referenced by FormSpec's internal custom-annotation nodes.
365
- * They describe or present a field but do not affect which values are valid.
366
- *
367
- * @public
368
- */
369
- declare interface CustomAnnotationRegistration_3 {
370
- /** The annotation name, unique within the extension. */
371
- readonly annotationName: string;
372
- /**
373
- * Optional type-level inheritance behavior for semantic consumers.
374
- *
375
- * `"local-wins"` means a derived declaration inherits this annotation from
376
- * its base declaration only when the derived declaration does not provide the
377
- * same extension annotation identity locally. Omitted registrations behave as
378
- * `"never"`.
379
- */
380
- readonly inheritFromBase?: AnnotationInheritancePolicy_2;
381
- /**
382
- * Optional editor documentation for the annotation's TSDoc authoring tag.
383
- */
384
- readonly tagDocumentation?: CustomAnnotationTagDocumentation_2;
385
- /**
386
- * Optionally converts the annotation value into JSON Schema keywords.
387
- * If omitted, the annotation has no JSON Schema representation (UI-only).
388
- */
389
- readonly toJsonSchema?: (value: ExtensionPayloadValue_2, vendorPrefix: string) => Record<string, unknown>;
390
- }
391
-
392
273
  /**
393
274
  * Documentation text for an extension annotation's TSDoc authoring tag.
394
275
  *
@@ -439,31 +320,6 @@ declare interface CustomAnnotationTagDocumentation {
439
320
  readonly hoverMarkdown?: string;
440
321
  }
441
322
 
442
- /**
443
- * Documentation text for an extension annotation's TSDoc authoring tag.
444
- *
445
- * These strings are consumed by editor integrations for completion details and
446
- * hover text. They do not affect annotation parsing, inheritance, or schema
447
- * emission.
448
- *
449
- * @public
450
- */
451
- declare interface CustomAnnotationTagDocumentation_2 {
452
- /** Completion detail shown beside the annotation tag. */
453
- readonly completionDetail?: string;
454
- /**
455
- * Label for the payload portion of the annotation tag signature.
456
- *
457
- * The payload remains the full authored text after the tag name, so this can
458
- * describe single-argument or multi-argument annotation syntaxes.
459
- */
460
- readonly payloadLabel?: string;
461
- /** Short hover summary shown for the annotation tag. */
462
- readonly hoverSummary?: string;
463
- /** Full markdown hover body for the annotation tag. */
464
- readonly hoverMarkdown?: string;
465
- }
466
-
467
323
  /**
468
324
  * Registration for a custom constraint that maps to JSON Schema keywords.
469
325
  *
@@ -580,64 +436,6 @@ declare interface CustomConstraintRegistration_2 {
580
436
  readonly emitsVocabularyKeywords?: boolean;
581
437
  }
582
438
 
583
- /**
584
- * Registration for a custom constraint that maps to JSON Schema keywords.
585
- *
586
- * Custom constraints are referenced by FormSpec's internal custom-constraint nodes.
587
- *
588
- * @public
589
- */
590
- declare interface CustomConstraintRegistration_3 {
591
- /** The constraint name, unique within the extension. */
592
- readonly constraintName: string;
593
- /**
594
- * How this constraint composes with other constraints of the same kind.
595
- * - "intersect": combine with logical AND (both must hold)
596
- * - "override": last writer wins
597
- */
598
- readonly compositionRule: "intersect" | "override";
599
- /**
600
- * TypeNode kinds this constraint is applicable to, or `null` for any type.
601
- * Used by the validator to emit TYPE_MISMATCH diagnostics.
602
- */
603
- readonly applicableTypes: null | readonly ExtensionApplicableType_2["kind"][];
604
- /**
605
- * Optional precise type predicate used when kind-level applicability is too
606
- * broad (for example, constraints that apply to integer-like primitives but
607
- * not strings).
608
- */
609
- readonly isApplicableToType?: (type: ExtensionApplicableType_2) => boolean;
610
- /**
611
- * Optional comparator for payloads belonging to the same custom constraint.
612
- * Return values follow the `Array.prototype.sort()` contract.
613
- */
614
- readonly comparePayloads?: (left: ExtensionPayloadValue_2, right: ExtensionPayloadValue_2) => number;
615
- /**
616
- * Optional semantic family metadata for generic contradiction/broadening
617
- * handling across ordered constraints.
618
- */
619
- readonly semanticRole?: ConstraintSemanticRole_2;
620
- /**
621
- * Converts the custom constraint's payload into JSON Schema keywords.
622
- *
623
- * @param payload - The opaque JSON payload stored on the custom constraint node.
624
- * @param vendorPrefix - The vendor prefix for extension keywords.
625
- * @returns A JSON Schema fragment with the constraint keywords.
626
- */
627
- readonly toJsonSchema: (payload: ExtensionPayloadValue_2, vendorPrefix: string) => Record<string, unknown>;
628
- /**
629
- * When true, `toJsonSchema` may emit vocabulary keywords that do not carry
630
- * the vendor prefix. By default, all keys returned from `toJsonSchema` must
631
- * start with `${vendorPrefix}-`; setting this flag relaxes that check so
632
- * the constraint can produce standard or custom vocabulary keywords such as
633
- * `decimalMinimum`.
634
- *
635
- * Use this for constraints that define their own JSON Schema vocabulary
636
- * rather than namespacing under the vendor prefix.
637
- */
638
- readonly emitsVocabularyKeywords?: boolean;
639
- }
640
-
641
439
  /**
642
440
  * Registration for a custom type that maps to a JSON Schema representation.
643
441
  *
@@ -752,63 +550,6 @@ declare interface CustomTypeRegistration_2 {
752
550
  readonly builtinConstraintBroadenings?: readonly BuiltinConstraintBroadeningRegistration_2[];
753
551
  }
754
552
 
755
- /**
756
- * Registration for a custom type that maps to a JSON Schema representation.
757
- *
758
- * Custom types are referenced by FormSpec's internal custom-type IR nodes and
759
- * resolved to JSON Schema via `toJsonSchema` during generation.
760
- *
761
- * @public
762
- */
763
- declare interface CustomTypeRegistration_3 {
764
- /** The type name, unique within the extension. */
765
- readonly typeName: string;
766
- /**
767
- * Optional TypeScript surface names that should resolve to this custom type
768
- * during TSDoc/class analysis. Defaults to `typeName` when omitted.
769
- * @deprecated Prefer `brand` for structural detection or type parameters
770
- * on `defineCustomType<T>()` for symbol-based detection. String name
771
- * matching will be removed in a future major version.
772
- */
773
- readonly tsTypeNames?: readonly string[];
774
- /**
775
- * Optional brand identifier for structural type detection.
776
- *
777
- * When provided, the type resolver checks `type.getProperties()` for a
778
- * computed property whose name matches this identifier. This is more
779
- * reliable than `tsTypeNames` for aliased branded types because it does not
780
- * depend on the local type name.
781
- *
782
- * Brand detection is attempted after name-based resolution (`tsTypeNames`)
783
- * as a structural fallback. If both match, name-based resolution wins.
784
- *
785
- * The value should match the identifier text of a `unique symbol` declaration
786
- * used as a computed property key on the branded type. For example, if the
787
- * type is `string & { readonly [__decimalBrand]: true }`, the brand is
788
- * `"__decimalBrand"`.
789
- *
790
- * Brand identifiers are stored as plain strings in the extension registry, so
791
- * they must be unique across the extensions loaded into the same build.
792
- *
793
- * Note: `"__integerBrand"` is reserved for the builtin Integer type.
794
- */
795
- readonly brand?: string;
796
- /**
797
- * Converts the custom type's payload into a JSON Schema fragment.
798
- *
799
- * @param payload - The opaque JSON payload stored on the custom type node.
800
- * @param vendorPrefix - The vendor prefix for extension keywords (e.g., "x-stripe").
801
- * @returns A JSON Schema fragment representing this type.
802
- */
803
- readonly toJsonSchema: (payload: ExtensionPayloadValue_2, vendorPrefix: string) => Record<string, unknown>;
804
- /* Excluded from this release type: serializeDefault */
805
- /**
806
- * Optional broadening of built-in constraint tags so they can apply to this
807
- * custom type without modifying the core built-in constraint tables.
808
- */
809
- readonly builtinConstraintBroadenings?: readonly BuiltinConstraintBroadeningRegistration_3[];
810
- }
811
-
812
553
  /**
813
554
  * Per-declaration metadata policy input.
814
555
  *
@@ -821,18 +562,6 @@ declare interface DeclarationMetadataPolicyInput$1 {
821
562
  readonly displayName?: MetadataValuePolicyInput$1 | undefined;
822
563
  }
823
564
 
824
- /**
825
- * Per-declaration metadata policy input.
826
- *
827
- * @public
828
- */
829
- declare interface DeclarationMetadataPolicyInput$2 {
830
- /** Policy for JSON-facing serialized names. */
831
- readonly apiName?: MetadataValuePolicyInput$2 | undefined;
832
- /** Policy for human-facing labels and titles. */
833
- readonly displayName?: MetadataValuePolicyInput$2 | undefined;
834
- }
835
-
836
565
  /**
837
566
  * Per-declaration metadata policy input.
838
567
  *
@@ -860,24 +589,6 @@ export declare interface DiscriminatorResolutionOptions {
860
589
  readonly apiNamePrefix?: string | undefined;
861
590
  }
862
591
 
863
- /**
864
- * Complete DSL policy for a FormSpec project.
865
- *
866
- * @public
867
- */
868
- declare interface DSLPolicy {
869
- /** Field type constraints */
870
- fieldTypes?: FieldTypeConstraints;
871
- /** Layout and structure constraints */
872
- layout?: LayoutConstraints;
873
- /** UI schema feature constraints */
874
- uiSchema?: UISchemaConstraints;
875
- /** Field configuration option constraints */
876
- fieldOptions?: FieldOptionConstraints;
877
- /** Control options constraints */
878
- controlOptions?: ControlOptionConstraints;
879
- }
880
-
881
592
  /**
882
593
  * Enum-member display names remain unset unless authored explicitly.
883
594
  *
@@ -888,16 +599,6 @@ declare interface EnumMemberDisplayNameDisabledPolicyInput$1 {
888
599
  readonly mode: "disabled";
889
600
  }
890
601
 
891
- /**
892
- * Enum-member display names remain unset unless authored explicitly.
893
- *
894
- * @public
895
- */
896
- declare interface EnumMemberDisplayNameDisabledPolicyInput$2 {
897
- /** Leaves missing enum-member display names unresolved. */
898
- readonly mode: "disabled";
899
- }
900
-
901
602
  /**
902
603
  * Enum-member display names remain unset unless authored explicitly.
903
604
  *
@@ -920,18 +621,6 @@ declare interface EnumMemberDisplayNameInferIfMissingPolicyInput$1 {
920
621
  readonly infer: EnumMemberMetadataInferenceFn$1;
921
622
  }
922
623
 
923
- /**
924
- * Missing enum-member display names may be inferred.
925
- *
926
- * @public
927
- */
928
- declare interface EnumMemberDisplayNameInferIfMissingPolicyInput$2 {
929
- /** Infers an enum-member display name when it is not authored explicitly. */
930
- readonly mode: "infer-if-missing";
931
- /** Callback used to infer the missing display name. */
932
- readonly infer: EnumMemberMetadataInferenceFn$2;
933
- }
934
-
935
624
  /**
936
625
  * Missing enum-member display names may be inferred.
937
626
  *
@@ -951,13 +640,6 @@ declare interface EnumMemberDisplayNameInferIfMissingPolicyInput {
951
640
  */
952
641
  declare type EnumMemberDisplayNamePolicyInput$1 = EnumMemberDisplayNameDisabledPolicyInput$1 | EnumMemberDisplayNameInferIfMissingPolicyInput$1 | EnumMemberDisplayNameRequireExplicitPolicyInput$1;
953
642
 
954
- /**
955
- * Enum-member display-name policy input.
956
- *
957
- * @public
958
- */
959
- declare type EnumMemberDisplayNamePolicyInput$2 = EnumMemberDisplayNameDisabledPolicyInput$2 | EnumMemberDisplayNameInferIfMissingPolicyInput$2 | EnumMemberDisplayNameRequireExplicitPolicyInput$2;
960
-
961
643
  /**
962
644
  * Enum-member display-name policy input.
963
645
  *
@@ -975,16 +657,6 @@ declare interface EnumMemberDisplayNameRequireExplicitPolicyInput$1 {
975
657
  readonly mode: "require-explicit";
976
658
  }
977
659
 
978
- /**
979
- * Enum members must declare display names explicitly.
980
- *
981
- * @public
982
- */
983
- declare interface EnumMemberDisplayNameRequireExplicitPolicyInput$2 {
984
- /** Fails when an enum member has no authored display name. */
985
- readonly mode: "require-explicit";
986
- }
987
-
988
660
  /**
989
661
  * Enum members must declare display names explicitly.
990
662
  *
@@ -1005,26 +677,6 @@ declare interface EnumMemberDisplayNameRequireExplicitPolicyInput {
1005
677
  * @public
1006
678
  */
1007
679
  declare interface EnumMemberMetadataInferenceContext$1 {
1008
- /** Authoring surface the enum originated from. */
1009
- readonly surface: MetadataAuthoringSurface_2;
1010
- /** Logical member identifier used for policy inference. */
1011
- readonly logicalName: string;
1012
- /** Underlying enum value before stringification. */
1013
- readonly memberValue: number | string;
1014
- /** Optional build-only context supplied by the resolver. */
1015
- readonly buildContext?: unknown;
1016
- }
1017
-
1018
- /**
1019
- * Build-facing context passed to enum-member metadata inference callbacks.
1020
- *
1021
- * Enum members are resolved separately from declaration-level metadata so they
1022
- * do not participate in the shared declaration-kind model used by TSDoc and
1023
- * extension metadata slots.
1024
- *
1025
- * @public
1026
- */
1027
- declare interface EnumMemberMetadataInferenceContext$2 {
1028
680
  /** Authoring surface the enum originated from. */
1029
681
  readonly surface: MetadataAuthoringSurface$2;
1030
682
  /** Logical member identifier used for policy inference. */
@@ -1062,13 +714,6 @@ declare interface EnumMemberMetadataInferenceContext {
1062
714
  */
1063
715
  declare type EnumMemberMetadataInferenceFn$1 = (context: EnumMemberMetadataInferenceContext$1) => string;
1064
716
 
1065
- /**
1066
- * Callback used to infer enum-member display names.
1067
- *
1068
- * @public
1069
- */
1070
- declare type EnumMemberMetadataInferenceFn$2 = (context: EnumMemberMetadataInferenceContext$2) => string;
1071
-
1072
717
  /**
1073
718
  * Callback used to infer enum-member display names.
1074
719
  *
@@ -1086,16 +731,6 @@ declare interface EnumMemberMetadataPolicyInput$1 {
1086
731
  readonly displayName?: EnumMemberDisplayNamePolicyInput$1 | undefined;
1087
732
  }
1088
733
 
1089
- /**
1090
- * User-facing enum-member metadata policy input.
1091
- *
1092
- * @public
1093
- */
1094
- declare interface EnumMemberMetadataPolicyInput$2 {
1095
- /** Policy for human-facing enum-member labels. */
1096
- readonly displayName?: EnumMemberDisplayNamePolicyInput$2 | undefined;
1097
- }
1098
-
1099
734
  /**
1100
735
  * User-facing enum-member metadata policy input.
1101
736
  *
@@ -1142,23 +777,6 @@ export declare type ExtensionApplicableType = {
1142
777
  readonly primitiveKind: "bigint" | "boolean" | "integer" | "null" | "number" | "string";
1143
778
  } | { readonly kind: Exclude<ExtensionTypeKind, "custom" | "primitive"> };
1144
779
 
1145
- /**
1146
- * A curated type shape exposed to extension applicability hooks.
1147
- *
1148
- * This intentionally exposes only the fields needed to determine tag/type
1149
- * applicability without committing the entire canonical IR as public API.
1150
- *
1151
- * @public
1152
- */
1153
- declare type ExtensionApplicableType_2 = {
1154
- readonly kind: "custom";
1155
- readonly payload: ExtensionPayloadValue_2;
1156
- readonly typeId: string;
1157
- } | {
1158
- readonly kind: "primitive";
1159
- readonly primitiveKind: "bigint" | "boolean" | "integer" | "null" | "number" | "string";
1160
- } | { readonly kind: Exclude<ExtensionTypeKind_2, "custom" | "primitive"> };
1161
-
1162
780
  /**
1163
781
  * A complete extension definition bundling types, constraints, annotations,
1164
782
  * and vocabulary keywords.
@@ -1237,45 +855,6 @@ declare interface ExtensionDefinition_2 {
1237
855
  readonly vocabularyKeywords?: readonly VocabularyKeywordRegistration$1[];
1238
856
  }
1239
857
 
1240
- /**
1241
- * A complete extension definition bundling types, constraints, annotations,
1242
- * and vocabulary keywords.
1243
- *
1244
- * @example
1245
- * ```typescript
1246
- * const monetaryExtension = defineExtension({
1247
- * extensionId: "x-stripe/monetary",
1248
- * types: [
1249
- * defineCustomType({
1250
- * typeName: "Decimal",
1251
- * toJsonSchema: (_payload, prefix) => ({
1252
- * type: "string",
1253
- * [`${prefix}-decimal`]: true,
1254
- * }),
1255
- * }),
1256
- * ],
1257
- * });
1258
- * ```
1259
- *
1260
- * @public
1261
- */
1262
- declare interface ExtensionDefinition_3 {
1263
- /** Globally unique extension identifier, e.g., "x-stripe/monetary". */
1264
- readonly extensionId: string;
1265
- /** Custom type registrations provided by this extension. */
1266
- readonly types?: readonly CustomTypeRegistration_3[];
1267
- /** Custom constraint registrations provided by this extension. */
1268
- readonly constraints?: readonly CustomConstraintRegistration_3[];
1269
- /** Authoring-side TSDoc tag registrations provided by this extension. */
1270
- readonly constraintTags?: readonly ConstraintTagRegistration_3[];
1271
- /** Metadata-slot registrations shared by build- and lint-time analysis. */
1272
- readonly metadataSlots?: readonly MetadataSlotRegistration_2[];
1273
- /** Custom annotation registrations provided by this extension. */
1274
- readonly annotations?: readonly CustomAnnotationRegistration_3[];
1275
- /** Vocabulary keyword registrations provided by this extension. */
1276
- readonly vocabularyKeywords?: readonly VocabularyKeywordRegistration_2[];
1277
- }
1278
-
1279
858
  /**
1280
859
  * A JSON-serializable payload value used by extension registration hooks.
1281
860
  *
@@ -1290,13 +869,6 @@ declare type ExtensionPayloadValue$1 = { readonly [key: string]: ExtensionPayloa
1290
869
  */
1291
870
  export declare type ExtensionPayloadValue = { readonly [key: string]: ExtensionPayloadValue } | boolean | null | number | readonly ExtensionPayloadValue[] | string;
1292
871
 
1293
- /**
1294
- * A JSON-serializable payload value used by extension registration hooks.
1295
- *
1296
- * @public
1297
- */
1298
- declare type ExtensionPayloadValue_2 = { readonly [key: string]: ExtensionPayloadValue_2 } | boolean | null | number | readonly ExtensionPayloadValue_2[] | string;
1299
-
1300
872
  /**
1301
873
  * A registry of extensions that provides lookup by fully-qualified ID.
1302
874
  *
@@ -1393,13 +965,6 @@ declare type ExtensionTypeKind$1 = "array" | "custom" | "dynamic" | "enum" | "ob
1393
965
  */
1394
966
  export declare type ExtensionTypeKind = "array" | "custom" | "dynamic" | "enum" | "object" | "primitive" | "record" | "reference" | "union";
1395
967
 
1396
- /**
1397
- * Top-level type kinds that extension applicability hooks may inspect.
1398
- *
1399
- * @public
1400
- */
1401
- declare type ExtensionTypeKind_2 = "array" | "custom" | "dynamic" | "enum" | "object" | "primitive" | "record" | "reference" | "union";
1402
-
1403
968
  /**
1404
969
  * The result of a successful extension type lookup.
1405
970
  *
@@ -1410,147 +975,21 @@ declare type ExtensionTypeKind_2 = "array" | "custom" | "dynamic" | "enum" | "ob
1410
975
  * @public
1411
976
  */
1412
977
  export declare interface ExtensionTypeLookupResult {
1413
- /** The fully-qualified extension ID (e.g., "x-stripe/monetary"). */
1414
- readonly extensionId: string;
1415
- /** The custom type registration matched by this lookup. */
1416
- readonly registration: CustomTypeRegistration_2;
1417
- }
1418
-
1419
- /* Excluded from this release type: _extractConfigSchemas */
1420
-
1421
- /* Excluded from this release type: _ExtractConfigSchemasOptions */
1422
-
1423
- /* Excluded from this release type: _ExtractConfigSchemasResult */
1424
-
1425
- /**
1426
- * Field configuration option constraints - control which field options are allowed.
1427
- *
1428
- * @public
1429
- */
1430
- declare interface FieldOptionConstraints {
1431
- /** label - field label text */
1432
- label?: Severity;
1433
- /** placeholder - input placeholder text */
1434
- placeholder?: Severity;
1435
- /** required - whether field is required */
1436
- required?: Severity;
1437
- /** minValue - minimum value for numbers */
1438
- minValue?: Severity;
1439
- /** maxValue - maximum value for numbers */
1440
- maxValue?: Severity;
1441
- /** minItems - minimum array length */
1442
- minItems?: Severity;
1443
- /** maxItems - maximum array length */
1444
- maxItems?: Severity;
1445
- }
1446
-
1447
- /**
1448
- * Field type constraints - control which field types are allowed.
1449
- * Fine-grained control over each DSL field builder.
1450
- *
1451
- * @public
1452
- */
1453
- declare interface FieldTypeConstraints {
1454
- /** field.text() - basic text input */
1455
- text?: Severity;
1456
- /** field.number() - numeric input */
1457
- number?: Severity;
1458
- /** field.boolean() - checkbox/toggle */
1459
- boolean?: Severity;
1460
- /** field.enum() with literal options */
1461
- staticEnum?: Severity;
1462
- /** field.dynamicEnum() - runtime-fetched options */
1463
- dynamicEnum?: Severity;
1464
- /** field.dynamicSchema() - runtime-fetched schema */
1465
- dynamicSchema?: Severity;
1466
- /** field.array() / field.arrayWithConfig() */
1467
- array?: Severity;
1468
- /** field.object() / field.objectWithConfig() */
1469
- object?: Severity;
1470
- }
1471
-
1472
- /* Excluded from this release type: _fixupDecimalPathConstraints */
1473
-
1474
- /**
1475
- * Top-level FormSpec configuration structure.
1476
- *
1477
- * @public
1478
- */
1479
- export declare interface FormSpecConfig {
1480
- /**
1481
- * Extension definitions providing custom types, constraints,
1482
- * annotations, and vocabulary keywords.
1483
- */
1484
- readonly extensions?: readonly ExtensionDefinition_3[];
1485
- /**
1486
- * DSL-policy surface configuration controlling which field types,
1487
- * layouts, UI features, and field/control options are allowed.
1488
- */
1489
- readonly constraints?: DSLPolicy;
1490
- /**
1491
- * Metadata inference and naming policy. Controls how apiName,
1492
- * displayName, and plural forms are derived when not authored.
1493
- */
1494
- readonly metadata?: MetadataPolicyInput_2;
1495
- /**
1496
- * Vendor prefix for extension-emitted JSON Schema keywords.
1497
- * Must start with "x-".
1498
- * @defaultValue "x-formspec"
1499
- */
1500
- readonly vendorPrefix?: string;
1501
- /**
1502
- * JSON Schema representation for static enums.
1503
- * - "enum": compact `enum` output, plus a display-name extension when labels exist
1504
- * - "oneOf": per-member `const` output, with `title` only for distinct labels
1505
- * - "smart-size": uses `enum` unless a distinct display label would be lost
1506
- * @defaultValue "enum"
1507
- */
1508
- readonly enumSerialization?: "enum" | "oneOf" | "smart-size";
1509
- /**
1510
- * JSON Schema serialization settings for vocabulary and dialect emission.
1511
- * PR-1 stores and resolves this block; PR-2 consumes it.
1512
- */
1513
- readonly serialization?: FormSpecSerializationConfig;
1514
- /**
1515
- * Per-package configuration overrides for monorepos.
1516
- * Keys are glob patterns matched against file paths relative to
1517
- * the config file's directory. Values merge with root settings.
1518
- */
1519
- readonly packages?: Readonly<Record<string, FormSpecPackageOverride>>;
1520
- }
1521
-
1522
- /**
1523
- * Per-package overrides that merge with the root config.
1524
- * Only settings that genuinely vary per package are overridable.
1525
- *
1526
- * @public
1527
- */
1528
- declare interface FormSpecPackageOverride {
1529
- /** Override DSL policy for this package. */
1530
- readonly constraints?: DSLPolicy;
1531
- /** Override enum serialization for this package. */
1532
- readonly enumSerialization?: "enum" | "oneOf" | "smart-size";
1533
- /** Override metadata policy for this package. */
1534
- readonly metadata?: MetadataPolicyInput_2;
1535
- }
1536
-
1537
- /**
1538
- * Forward-looking JSON Schema serialization settings.
1539
- *
1540
- * These values are currently carried through configuration for future
1541
- * vocabulary and dialect emission.
1542
- *
1543
- * @public
1544
- */
1545
- declare interface FormSpecSerializationConfig {
1546
- /** Base URL used to construct default FormSpec vocabulary URLs. */
1547
- readonly vocabularyBaseUrl?: string;
1548
- /** Per-vocabulary URL overrides keyed by vocabulary identifier. */
1549
- readonly vocabularyUrls?: Readonly<Record<string, string>>;
1550
- /** Explicit FormSpec dialect URL override. */
1551
- readonly dialectUrl?: string;
978
+ /** The fully-qualified extension ID (e.g., "x-stripe/monetary"). */
979
+ readonly extensionId: string;
980
+ /** The custom type registration matched by this lookup. */
981
+ readonly registration: CustomTypeRegistration_2;
1552
982
  }
1553
983
 
984
+ /* Excluded from this release type: _extractConfigSchemas */
985
+
986
+ /* Excluded from this release type: _ExtractConfigSchemasOptions */
987
+
988
+ /* Excluded from this release type: _ExtractConfigSchemasResult */
989
+
990
+ /* Excluded from this release type: _fixupDecimalPathConstraints */
991
+ export { FormSpecConfig }
992
+
1554
993
  /**
1555
994
  * Options for generating schemas from a decorated class.
1556
995
  *
@@ -1749,38 +1188,6 @@ export declare interface LabelElement {
1749
1188
  readonly [k: string]: unknown;
1750
1189
  }
1751
1190
 
1752
- /**
1753
- * Layout and structure constraints - control grouping, conditionals, nesting.
1754
- *
1755
- * @public
1756
- */
1757
- declare interface LayoutConstraints {
1758
- /** group() - visual grouping of fields */
1759
- group?: Severity;
1760
- /** when() - conditional field visibility */
1761
- conditionals?: Severity;
1762
- /** Maximum nesting depth for objects/arrays (0 = flat only) */
1763
- maxNestingDepth?: number;
1764
- }
1765
-
1766
- /**
1767
- * JSON Forms layout type constraints.
1768
- *
1769
- * @public
1770
- */
1771
- declare interface LayoutTypeConstraints {
1772
- /** VerticalLayout - stack elements vertically */
1773
- VerticalLayout?: Severity;
1774
- /** HorizontalLayout - arrange elements horizontally */
1775
- HorizontalLayout?: Severity;
1776
- /** Group - visual grouping with label */
1777
- Group?: Severity;
1778
- /** Categorization - tabbed/wizard interface */
1779
- Categorization?: Severity;
1780
- /** Category - individual tab/step in Categorization */
1781
- Category?: Severity;
1782
- }
1783
-
1784
1191
  /**
1785
1192
  * Authoring surfaces that can contribute metadata.
1786
1193
  *
@@ -1802,13 +1209,6 @@ declare type MetadataAuthoringSurface$2 = "chain-dsl" | "tsdoc";
1802
1209
  */
1803
1210
  export declare type MetadataAuthoringSurface = "chain-dsl" | "tsdoc";
1804
1211
 
1805
- /**
1806
- * Authoring surfaces that can contribute metadata.
1807
- *
1808
- * @public
1809
- */
1810
- declare type MetadataAuthoringSurface_2 = "chain-dsl" | "tsdoc";
1811
-
1812
1212
  /**
1813
1213
  * Declaration categories that metadata policy can target.
1814
1214
  *
@@ -1830,13 +1230,6 @@ declare type MetadataDeclarationKind$2 = "field" | "method" | "type";
1830
1230
  */
1831
1231
  export declare type MetadataDeclarationKind = "field" | "method" | "type";
1832
1232
 
1833
- /**
1834
- * Declaration categories that metadata policy can target.
1835
- *
1836
- * @public
1837
- */
1838
- declare type MetadataDeclarationKind_2 = "field" | "method" | "type";
1839
-
1840
1233
  /**
1841
1234
  * Build-facing context passed to metadata inference callbacks.
1842
1235
  *
@@ -1894,38 +1287,12 @@ export declare interface MetadataInferenceContext {
1894
1287
  readonly buildContext?: unknown;
1895
1288
  }
1896
1289
 
1897
- /**
1898
- * Build-facing context passed to metadata inference callbacks.
1899
- *
1900
- * `buildContext` is intentionally opaque so browser/runtime packages do not
1901
- * need to depend on TypeScript compiler types.
1902
- *
1903
- * @public
1904
- */
1905
- declare interface MetadataInferenceContext_2 {
1906
- /** Authoring surface the metadata is being resolved for. */
1907
- readonly surface: MetadataAuthoringSurface_2;
1908
- /** Declaration kind currently being resolved. */
1909
- readonly declarationKind: MetadataDeclarationKind_2;
1910
- /** Logical identifier before any metadata policy is applied. */
1911
- readonly logicalName: string;
1912
- /** Optional build-only context supplied by the resolver. */
1913
- readonly buildContext?: unknown;
1914
- }
1915
-
1916
- /**
1917
- * Callback used to infer a scalar metadata value.
1918
- *
1919
- * @public
1920
- */
1921
- declare type MetadataInferenceFn$1 = (context: MetadataInferenceContext_2) => string;
1922
-
1923
1290
  /**
1924
1291
  * Callback used to infer a scalar metadata value.
1925
1292
  *
1926
1293
  * @public
1927
1294
  */
1928
- declare type MetadataInferenceFn$2 = (context: MetadataInferenceContext$2) => string;
1295
+ declare type MetadataInferenceFn$1 = (context: MetadataInferenceContext$2) => string;
1929
1296
 
1930
1297
  /**
1931
1298
  * Callback used to infer a scalar metadata value.
@@ -1939,17 +1306,7 @@ export declare type MetadataInferenceFn = (context: MetadataInferenceContext) =>
1939
1306
  *
1940
1307
  * @public
1941
1308
  */
1942
- declare interface MetadataPluralizationContext$1 extends MetadataInferenceContext_2 {
1943
- /** Singular value that pluralization should derive from. */
1944
- readonly singular: string;
1945
- }
1946
-
1947
- /**
1948
- * Context passed to pluralization callbacks.
1949
- *
1950
- * @public
1951
- */
1952
- declare interface MetadataPluralizationContext$2 extends MetadataInferenceContext$2 {
1309
+ declare interface MetadataPluralizationContext$1 extends MetadataInferenceContext$2 {
1953
1310
  /** Singular value that pluralization should derive from. */
1954
1311
  readonly singular: string;
1955
1312
  }
@@ -1974,16 +1331,6 @@ declare interface MetadataPluralizationDisabledPolicyInput$1 {
1974
1331
  readonly mode?: "disabled" | undefined;
1975
1332
  }
1976
1333
 
1977
- /**
1978
- * Pluralization disabled.
1979
- *
1980
- * @public
1981
- */
1982
- declare interface MetadataPluralizationDisabledPolicyInput$2 {
1983
- /** Disables automatic plural-value generation. */
1984
- readonly mode?: "disabled" | undefined;
1985
- }
1986
-
1987
1334
  /**
1988
1335
  * Pluralization disabled.
1989
1336
  *
@@ -2001,13 +1348,6 @@ export declare interface MetadataPluralizationDisabledPolicyInput {
2001
1348
  */
2002
1349
  declare type MetadataPluralizationFn$1 = (context: MetadataPluralizationContext$1) => string;
2003
1350
 
2004
- /**
2005
- * Callback used to derive plural metadata from a singular value.
2006
- *
2007
- * @public
2008
- */
2009
- declare type MetadataPluralizationFn$2 = (context: MetadataPluralizationContext$2) => string;
2010
-
2011
1351
  /**
2012
1352
  * Callback used to derive plural metadata from a singular value.
2013
1353
  *
@@ -2027,18 +1367,6 @@ declare interface MetadataPluralizationInferIfMissingPolicyInput$1 {
2027
1367
  readonly inflect: MetadataPluralizationFn$1;
2028
1368
  }
2029
1369
 
2030
- /**
2031
- * Pluralization may be inferred when absent.
2032
- *
2033
- * @public
2034
- */
2035
- declare interface MetadataPluralizationInferIfMissingPolicyInput$2 {
2036
- /** Infers plural values whenever no explicit plural is present. */
2037
- readonly mode: "infer-if-missing";
2038
- /** Callback that derives a plural form from the resolved singular value. */
2039
- readonly inflect: MetadataPluralizationFn$2;
2040
- }
2041
-
2042
1370
  /**
2043
1371
  * Pluralization may be inferred when absent.
2044
1372
  *
@@ -2058,13 +1386,6 @@ export declare interface MetadataPluralizationInferIfMissingPolicyInput {
2058
1386
  */
2059
1387
  declare type MetadataPluralizationPolicyInput$1 = MetadataPluralizationDisabledPolicyInput$1 | MetadataPluralizationInferIfMissingPolicyInput$1 | MetadataPluralizationRequireExplicitPolicyInput$1;
2060
1388
 
2061
- /**
2062
- * Pluralization policy input.
2063
- *
2064
- * @public
2065
- */
2066
- declare type MetadataPluralizationPolicyInput$2 = MetadataPluralizationDisabledPolicyInput$2 | MetadataPluralizationInferIfMissingPolicyInput$2 | MetadataPluralizationRequireExplicitPolicyInput$2;
2067
-
2068
1389
  /**
2069
1390
  * Pluralization policy input.
2070
1391
  *
@@ -2082,16 +1403,6 @@ declare interface MetadataPluralizationRequireExplicitPolicyInput$1 {
2082
1403
  readonly mode: "require-explicit";
2083
1404
  }
2084
1405
 
2085
- /**
2086
- * Pluralization must be authored explicitly.
2087
- *
2088
- * @public
2089
- */
2090
- declare interface MetadataPluralizationRequireExplicitPolicyInput$2 {
2091
- /** Requires plural values to be authored directly. */
2092
- readonly mode: "require-explicit";
2093
- }
2094
-
2095
1406
  /**
2096
1407
  * Pluralization must be authored explicitly.
2097
1408
  *
@@ -2109,13 +1420,13 @@ export declare interface MetadataPluralizationRequireExplicitPolicyInput {
2109
1420
  */
2110
1421
  declare interface MetadataPolicyInput$1 {
2111
1422
  /** Policy applied to named types and the analyzed root declaration. */
2112
- readonly type?: DeclarationMetadataPolicyInput$2 | undefined;
1423
+ readonly type?: DeclarationMetadataPolicyInput$1 | undefined;
2113
1424
  /** Policy applied to fields and object properties. */
2114
- readonly field?: DeclarationMetadataPolicyInput$2 | undefined;
1425
+ readonly field?: DeclarationMetadataPolicyInput$1 | undefined;
2115
1426
  /** Policy applied to callable/method declarations. */
2116
- readonly method?: DeclarationMetadataPolicyInput$2 | undefined;
1427
+ readonly method?: DeclarationMetadataPolicyInput$1 | undefined;
2117
1428
  /** Policy applied to enum-member display names during build-time IR resolution. */
2118
- readonly enumMember?: EnumMemberMetadataPolicyInput$2 | undefined;
1429
+ readonly enumMember?: EnumMemberMetadataPolicyInput$1 | undefined;
2119
1430
  }
2120
1431
 
2121
1432
  /**
@@ -2134,22 +1445,6 @@ export declare interface MetadataPolicyInput {
2134
1445
  readonly enumMember?: EnumMemberMetadataPolicyInput | undefined;
2135
1446
  }
2136
1447
 
2137
- /**
2138
- * User-facing metadata policy configuration.
2139
- *
2140
- * @public
2141
- */
2142
- declare interface MetadataPolicyInput_2 {
2143
- /** Policy applied to named types and the analyzed root declaration. */
2144
- readonly type?: DeclarationMetadataPolicyInput$1 | undefined;
2145
- /** Policy applied to fields and object properties. */
2146
- readonly field?: DeclarationMetadataPolicyInput$1 | undefined;
2147
- /** Policy applied to callable/method declarations. */
2148
- readonly method?: DeclarationMetadataPolicyInput$1 | undefined;
2149
- /** Policy applied to enum-member display names during build-time IR resolution. */
2150
- readonly enumMember?: EnumMemberMetadataPolicyInput$1 | undefined;
2151
- }
2152
-
2153
1448
  /**
2154
1449
  * Supported qualifier registration for an extensible metadata slot.
2155
1450
  *
@@ -2184,23 +1479,6 @@ export declare interface MetadataQualifierRegistration {
2184
1479
  readonly inferValue?: MetadataSlotInferenceFn | undefined;
2185
1480
  }
2186
1481
 
2187
- /**
2188
- * Supported qualifier registration for an extensible metadata slot.
2189
- *
2190
- * @public
2191
- */
2192
- declare interface MetadataQualifierRegistration_2 {
2193
- /** Qualifier text without the leading colon. */
2194
- readonly qualifier: string;
2195
- /**
2196
- * Optional source qualifier to use as the base input for this qualifier's
2197
- * inference hook. Defaults to the slot's bare/default value when omitted.
2198
- */
2199
- readonly sourceQualifier?: string | undefined;
2200
- /** Optional inference hook for this qualified value. */
2201
- readonly inferValue?: MetadataSlotInferenceFn_2 | undefined;
2202
- }
2203
-
2204
1482
  /**
2205
1483
  * Stable slot identifier for extensible metadata analysis.
2206
1484
  *
@@ -2215,13 +1493,6 @@ declare type MetadataSlotId$1 = string;
2215
1493
  */
2216
1494
  export declare type MetadataSlotId = string;
2217
1495
 
2218
- /**
2219
- * Stable slot identifier for extensible metadata analysis.
2220
- *
2221
- * @public
2222
- */
2223
- declare type MetadataSlotId_2 = string;
2224
-
2225
1496
  /**
2226
1497
  * Context passed to extensible metadata inference hooks.
2227
1498
  *
@@ -2254,22 +1525,6 @@ export declare interface MetadataSlotInferenceContext extends MetadataInferenceC
2254
1525
  readonly baseValue?: string | undefined;
2255
1526
  }
2256
1527
 
2257
- /**
2258
- * Context passed to extensible metadata inference hooks.
2259
- *
2260
- * @public
2261
- */
2262
- declare interface MetadataSlotInferenceContext_2 extends MetadataInferenceContext_2 {
2263
- /** Stable logical slot identifier. */
2264
- readonly slotId: MetadataSlotId_2;
2265
- /** Tag name associated with the slot, without the `@` prefix. */
2266
- readonly tagName: string;
2267
- /** Optional qualifier being inferred (for example `plural`). */
2268
- readonly qualifier?: string | undefined;
2269
- /** Resolved bare/default value used as the base input for derived qualifiers. */
2270
- readonly baseValue?: string | undefined;
2271
- }
2272
-
2273
1528
  /**
2274
1529
  * Callback used to infer an extensible metadata slot value.
2275
1530
  *
@@ -2284,13 +1539,6 @@ declare type MetadataSlotInferenceFn$1 = (context: MetadataSlotInferenceContext$
2284
1539
  */
2285
1540
  export declare type MetadataSlotInferenceFn = (context: MetadataSlotInferenceContext) => string;
2286
1541
 
2287
- /**
2288
- * Callback used to infer an extensible metadata slot value.
2289
- *
2290
- * @public
2291
- */
2292
- declare type MetadataSlotInferenceFn_2 = (context: MetadataSlotInferenceContext_2) => string;
2293
-
2294
1542
  /**
2295
1543
  * Extensible metadata slot definition shared across build- and lint-time analysis.
2296
1544
  *
@@ -2341,31 +1589,6 @@ export declare interface MetadataSlotRegistration {
2341
1589
  readonly isApplicable?: ((context: MetadataInferenceContext) => boolean) | undefined;
2342
1590
  }
2343
1591
 
2344
- /**
2345
- * Extensible metadata slot definition shared across build- and lint-time analysis.
2346
- *
2347
- * @public
2348
- */
2349
- declare interface MetadataSlotRegistration_2 {
2350
- /** Stable logical slot identifier. */
2351
- readonly slotId: MetadataSlotId_2;
2352
- /** Tag name associated with this slot, without the `@` prefix. */
2353
- readonly tagName: string;
2354
- /** Declaration kinds where the slot is meaningful. */
2355
- readonly declarationKinds: readonly MetadataDeclarationKind_2[];
2356
- /** Whether a bare tag without a qualifier is supported. Defaults to true. */
2357
- readonly allowBare?: boolean | undefined;
2358
- /** Supported qualifiers for this slot. */
2359
- readonly qualifiers?: readonly MetadataQualifierRegistration_2[] | undefined;
2360
- /** Optional inference hook for the bare/default slot value. */
2361
- readonly inferValue?: MetadataSlotInferenceFn_2 | undefined;
2362
- /**
2363
- * Optional applicability hook for declaration-specific rules beyond
2364
- * declaration kind. `buildContext` may carry compiler objects.
2365
- */
2366
- readonly isApplicable?: ((context: MetadataInferenceContext_2) => boolean) | undefined;
2367
- }
2368
-
2369
1592
  /**
2370
1593
  * Scalar metadata disabled unless provided explicitly elsewhere.
2371
1594
  *
@@ -2378,18 +1601,6 @@ declare interface MetadataValueDisabledPolicyInput$1 {
2378
1601
  readonly pluralization?: MetadataPluralizationPolicyInput$1 | undefined;
2379
1602
  }
2380
1603
 
2381
- /**
2382
- * Scalar metadata disabled unless provided explicitly elsewhere.
2383
- *
2384
- * @public
2385
- */
2386
- declare interface MetadataValueDisabledPolicyInput$2 {
2387
- /** Disables inference for this scalar metadata value. */
2388
- readonly mode?: "disabled" | undefined;
2389
- /** Optional policy controlling plural forms of this scalar value. */
2390
- readonly pluralization?: MetadataPluralizationPolicyInput$2 | undefined;
2391
- }
2392
-
2393
1604
  /**
2394
1605
  * Scalar metadata disabled unless provided explicitly elsewhere.
2395
1606
  *
@@ -2416,20 +1627,6 @@ declare interface MetadataValueInferIfMissingPolicyInput$1 {
2416
1627
  readonly pluralization?: MetadataPluralizationPolicyInput$1 | undefined;
2417
1628
  }
2418
1629
 
2419
- /**
2420
- * Scalar metadata may be inferred when missing.
2421
- *
2422
- * @public
2423
- */
2424
- declare interface MetadataValueInferIfMissingPolicyInput$2 {
2425
- /** Infers this scalar metadata value when it is not authored explicitly. */
2426
- readonly mode: "infer-if-missing";
2427
- /** Callback used to infer the missing singular value. */
2428
- readonly infer: MetadataInferenceFn$2;
2429
- /** Optional policy controlling plural forms of this scalar value. */
2430
- readonly pluralization?: MetadataPluralizationPolicyInput$2 | undefined;
2431
- }
2432
-
2433
1630
  /**
2434
1631
  * Scalar metadata may be inferred when missing.
2435
1632
  *
@@ -2451,13 +1648,6 @@ export declare interface MetadataValueInferIfMissingPolicyInput {
2451
1648
  */
2452
1649
  declare type MetadataValuePolicyInput$1 = MetadataValueDisabledPolicyInput$1 | MetadataValueInferIfMissingPolicyInput$1 | MetadataValueRequireExplicitPolicyInput$1;
2453
1650
 
2454
- /**
2455
- * Scalar metadata policy input.
2456
- *
2457
- * @public
2458
- */
2459
- declare type MetadataValuePolicyInput$2 = MetadataValueDisabledPolicyInput$2 | MetadataValueInferIfMissingPolicyInput$2 | MetadataValueRequireExplicitPolicyInput$2;
2460
-
2461
1651
  /**
2462
1652
  * Scalar metadata policy input.
2463
1653
  *
@@ -2477,18 +1667,6 @@ declare interface MetadataValueRequireExplicitPolicyInput$1 {
2477
1667
  readonly pluralization?: MetadataPluralizationPolicyInput$1 | undefined;
2478
1668
  }
2479
1669
 
2480
- /**
2481
- * Scalar metadata must be authored explicitly.
2482
- *
2483
- * @public
2484
- */
2485
- declare interface MetadataValueRequireExplicitPolicyInput$2 {
2486
- /** Requires this scalar metadata value to be authored directly. */
2487
- readonly mode: "require-explicit";
2488
- /** Optional policy controlling plural forms of this scalar value. */
2489
- readonly pluralization?: MetadataPluralizationPolicyInput$2 | undefined;
2490
- }
2491
-
2492
1670
  /**
2493
1671
  * Scalar metadata must be authored explicitly.
2494
1672
  *
@@ -2547,18 +1725,6 @@ export declare interface RuleConditionSchema {
2547
1725
  allOf?: RuleConditionSchema[];
2548
1726
  }
2549
1727
 
2550
- /**
2551
- * JSON Forms rule constraints.
2552
- *
2553
- * @public
2554
- */
2555
- declare interface RuleConstraints {
2556
- /** Whether rules are enabled at all */
2557
- enabled?: Severity;
2558
- /** Fine-grained control over rule effects */
2559
- effects?: RuleEffectConstraints;
2560
- }
2561
-
2562
1728
  /**
2563
1729
  * JSON Forms UI Schema type definitions.
2564
1730
  *
@@ -2574,22 +1740,6 @@ declare interface RuleConstraints {
2574
1740
  */
2575
1741
  export declare type RuleEffect = "DISABLE" | "ENABLE" | "HIDE" | "SHOW";
2576
1742
 
2577
- /**
2578
- * JSON Forms rule effect constraints.
2579
- *
2580
- * @public
2581
- */
2582
- declare interface RuleEffectConstraints {
2583
- /** SHOW - show element when condition is true */
2584
- SHOW?: Severity;
2585
- /** HIDE - hide element when condition is true */
2586
- HIDE?: Severity;
2587
- /** ENABLE - enable element when condition is true */
2588
- ENABLE?: Severity;
2589
- /** DISABLE - disable element when condition is true */
2590
- DISABLE?: Severity;
2591
- }
2592
-
2593
1743
  /**
2594
1744
  * Condition for a rule.
2595
1745
  *
@@ -2604,16 +1754,6 @@ export declare interface SchemaBasedCondition {
2604
1754
 
2605
1755
  export { setSchemaExtension }
2606
1756
 
2607
- /**
2608
- * Severity level for DSL-policy violations.
2609
- * - "error": Violation fails validation
2610
- * - "warn": Violation emits warning but passes
2611
- * - "off": Feature is allowed (no violation)
2612
- *
2613
- * @public
2614
- */
2615
- declare type Severity = "error" | "off" | "warn";
2616
-
2617
1757
  /**
2618
1758
  * Shared options for schema generation flows that support custom extensions.
2619
1759
  *
@@ -2683,18 +1823,6 @@ export declare interface StaticSchemaGenerationOptions {
2683
1823
  */
2684
1824
  export declare type UISchema = Categorization | GroupLayout | HorizontalLayout | VerticalLayout;
2685
1825
 
2686
- /**
2687
- * UI schema feature constraints - control JSON Forms-specific features.
2688
- *
2689
- * @public
2690
- */
2691
- declare interface UISchemaConstraints {
2692
- /** Layout type constraints */
2693
- layouts?: LayoutTypeConstraints;
2694
- /** Rule (conditional) constraints */
2695
- rules?: RuleConstraints;
2696
- }
2697
-
2698
1826
  /**
2699
1827
  * Union of all UI Schema element types.
2700
1828
  *
@@ -2746,16 +1874,4 @@ export declare interface VocabularyKeywordRegistration {
2746
1874
  readonly schema: ExtensionPayloadValue;
2747
1875
  }
2748
1876
 
2749
- /**
2750
- * Registration for a vocabulary keyword to include in a JSON Schema `$vocabulary` declaration.
2751
- *
2752
- * @public
2753
- */
2754
- declare interface VocabularyKeywordRegistration_2 {
2755
- /** The keyword name (without vendor prefix). */
2756
- readonly keyword: string;
2757
- /** JSON Schema that describes the valid values for this keyword. */
2758
- readonly schema: ExtensionPayloadValue_2;
2759
- }
2760
-
2761
1877
  export { }