@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
  *
@@ -210,24 +181,6 @@ export declare interface ConstraintSemanticRole {
210
181
  readonly inclusive: boolean;
211
182
  }
212
183
 
213
- /**
214
- * Semantic metadata for ordered custom constraints that should participate in
215
- * the generic contradiction/broadening logic.
216
- *
217
- * @public
218
- */
219
- declare interface ConstraintSemanticRole_2 {
220
- /**
221
- * Logical family identifier shared by related constraints, for example
222
- * `"decimal-bound"` or `"date-bound"`.
223
- */
224
- readonly family: string;
225
- /** Whether this constraint acts as a lower or upper bound. */
226
- readonly bound: "exact" | "lower" | "upper";
227
- /** Whether equality is allowed when comparing against the bound. */
228
- readonly inclusive: boolean;
229
- }
230
-
231
184
  /**
232
185
  * Declarative authoring-side registration for a custom TSDoc constraint tag.
233
186
  *
@@ -268,26 +221,6 @@ declare interface ConstraintTagRegistration_2 {
268
221
  readonly isApplicableToType?: (type: ExtensionApplicableType$1) => boolean;
269
222
  }
270
223
 
271
- /**
272
- * Declarative authoring-side registration for a custom TSDoc constraint tag.
273
- *
274
- * @public
275
- */
276
- declare interface ConstraintTagRegistration_3 {
277
- /** Tag name without the `@` prefix, e.g. `"maxSigFig"`. */
278
- readonly tagName: string;
279
- /** The custom constraint that this tag should produce. */
280
- readonly constraintName: string;
281
- /** Parser from raw TSDoc text to JSON-serializable payload. */
282
- readonly parseValue: (raw: string) => ExtensionPayloadValue_2;
283
- /**
284
- * Optional precise applicability predicate for the field type being parsed.
285
- * When omitted, the target custom constraint registration controls type
286
- * applicability during validation.
287
- */
288
- readonly isApplicableToType?: (type: ExtensionApplicableType_2) => boolean;
289
- }
290
-
291
224
  /**
292
225
  * A Control element that binds to a JSON Schema property.
293
226
  *
@@ -308,27 +241,6 @@ export declare interface ControlElement {
308
241
  readonly [k: string]: unknown;
309
242
  }
310
243
 
311
- /**
312
- * Control options constraints - control which JSON Forms Control.options are allowed.
313
- * These are renderer-specific options that may not be universally supported.
314
- *
315
- * @public
316
- */
317
- declare interface ControlOptionConstraints {
318
- /** format - renderer format hint (e.g., "radio", "textarea") */
319
- format?: Severity;
320
- /** readonly - read-only mode */
321
- readonly?: Severity;
322
- /** multi - multi-select for enums */
323
- multi?: Severity;
324
- /** showUnfocusedDescription - show description when unfocused */
325
- showUnfocusedDescription?: Severity;
326
- /** hideRequiredAsterisk - hide required indicator */
327
- hideRequiredAsterisk?: Severity;
328
- /** Custom control options (extensible dictionary) */
329
- custom?: Record<string, Severity>;
330
- }
331
-
332
244
  /**
333
245
  * Registration for a custom annotation that may produce JSON Schema keywords.
334
246
  *
@@ -391,37 +303,6 @@ declare interface CustomAnnotationRegistration_2 {
391
303
  readonly toJsonSchema?: (value: ExtensionPayloadValue$1, vendorPrefix: string) => Record<string, unknown>;
392
304
  }
393
305
 
394
- /**
395
- * Registration for a custom annotation that may produce JSON Schema keywords.
396
- *
397
- * Custom annotations are referenced by FormSpec's internal custom-annotation nodes.
398
- * They describe or present a field but do not affect which values are valid.
399
- *
400
- * @public
401
- */
402
- declare interface CustomAnnotationRegistration_3 {
403
- /** The annotation name, unique within the extension. */
404
- readonly annotationName: string;
405
- /**
406
- * Optional type-level inheritance behavior for semantic consumers.
407
- *
408
- * `"local-wins"` means a derived declaration inherits this annotation from
409
- * its base declaration only when the derived declaration does not provide the
410
- * same extension annotation identity locally. Omitted registrations behave as
411
- * `"never"`.
412
- */
413
- readonly inheritFromBase?: AnnotationInheritancePolicy_2;
414
- /**
415
- * Optional editor documentation for the annotation's TSDoc authoring tag.
416
- */
417
- readonly tagDocumentation?: CustomAnnotationTagDocumentation_2;
418
- /**
419
- * Optionally converts the annotation value into JSON Schema keywords.
420
- * If omitted, the annotation has no JSON Schema representation (UI-only).
421
- */
422
- readonly toJsonSchema?: (value: ExtensionPayloadValue_2, vendorPrefix: string) => Record<string, unknown>;
423
- }
424
-
425
306
  /**
426
307
  * Documentation text for an extension annotation's TSDoc authoring tag.
427
308
  *
@@ -472,31 +353,6 @@ declare interface CustomAnnotationTagDocumentation {
472
353
  readonly hoverMarkdown?: string;
473
354
  }
474
355
 
475
- /**
476
- * Documentation text for an extension annotation's TSDoc authoring tag.
477
- *
478
- * These strings are consumed by editor integrations for completion details and
479
- * hover text. They do not affect annotation parsing, inheritance, or schema
480
- * emission.
481
- *
482
- * @public
483
- */
484
- declare interface CustomAnnotationTagDocumentation_2 {
485
- /** Completion detail shown beside the annotation tag. */
486
- readonly completionDetail?: string;
487
- /**
488
- * Label for the payload portion of the annotation tag signature.
489
- *
490
- * The payload remains the full authored text after the tag name, so this can
491
- * describe single-argument or multi-argument annotation syntaxes.
492
- */
493
- readonly payloadLabel?: string;
494
- /** Short hover summary shown for the annotation tag. */
495
- readonly hoverSummary?: string;
496
- /** Full markdown hover body for the annotation tag. */
497
- readonly hoverMarkdown?: string;
498
- }
499
-
500
356
  /**
501
357
  * Registration for a custom constraint that maps to JSON Schema keywords.
502
358
  *
@@ -613,64 +469,6 @@ declare interface CustomConstraintRegistration_2 {
613
469
  readonly emitsVocabularyKeywords?: boolean;
614
470
  }
615
471
 
616
- /**
617
- * Registration for a custom constraint that maps to JSON Schema keywords.
618
- *
619
- * Custom constraints are referenced by FormSpec's internal custom-constraint nodes.
620
- *
621
- * @public
622
- */
623
- declare interface CustomConstraintRegistration_3 {
624
- /** The constraint name, unique within the extension. */
625
- readonly constraintName: string;
626
- /**
627
- * How this constraint composes with other constraints of the same kind.
628
- * - "intersect": combine with logical AND (both must hold)
629
- * - "override": last writer wins
630
- */
631
- readonly compositionRule: "intersect" | "override";
632
- /**
633
- * TypeNode kinds this constraint is applicable to, or `null` for any type.
634
- * Used by the validator to emit TYPE_MISMATCH diagnostics.
635
- */
636
- readonly applicableTypes: null | readonly ExtensionApplicableType_2["kind"][];
637
- /**
638
- * Optional precise type predicate used when kind-level applicability is too
639
- * broad (for example, constraints that apply to integer-like primitives but
640
- * not strings).
641
- */
642
- readonly isApplicableToType?: (type: ExtensionApplicableType_2) => boolean;
643
- /**
644
- * Optional comparator for payloads belonging to the same custom constraint.
645
- * Return values follow the `Array.prototype.sort()` contract.
646
- */
647
- readonly comparePayloads?: (left: ExtensionPayloadValue_2, right: ExtensionPayloadValue_2) => number;
648
- /**
649
- * Optional semantic family metadata for generic contradiction/broadening
650
- * handling across ordered constraints.
651
- */
652
- readonly semanticRole?: ConstraintSemanticRole_2;
653
- /**
654
- * Converts the custom constraint's payload into JSON Schema keywords.
655
- *
656
- * @param payload - The opaque JSON payload stored on the custom constraint node.
657
- * @param vendorPrefix - The vendor prefix for extension keywords.
658
- * @returns A JSON Schema fragment with the constraint keywords.
659
- */
660
- readonly toJsonSchema: (payload: ExtensionPayloadValue_2, vendorPrefix: string) => Record<string, unknown>;
661
- /**
662
- * When true, `toJsonSchema` may emit vocabulary keywords that do not carry
663
- * the vendor prefix. By default, all keys returned from `toJsonSchema` must
664
- * start with `${vendorPrefix}-`; setting this flag relaxes that check so
665
- * the constraint can produce standard or custom vocabulary keywords such as
666
- * `decimalMinimum`.
667
- *
668
- * Use this for constraints that define their own JSON Schema vocabulary
669
- * rather than namespacing under the vendor prefix.
670
- */
671
- readonly emitsVocabularyKeywords?: boolean;
672
- }
673
-
674
472
  /**
675
473
  * Registration for a custom type that maps to a JSON Schema representation.
676
474
  *
@@ -785,63 +583,6 @@ declare interface CustomTypeRegistration_2 {
785
583
  readonly builtinConstraintBroadenings?: readonly BuiltinConstraintBroadeningRegistration_2[];
786
584
  }
787
585
 
788
- /**
789
- * Registration for a custom type that maps to a JSON Schema representation.
790
- *
791
- * Custom types are referenced by FormSpec's internal custom-type IR nodes and
792
- * resolved to JSON Schema via `toJsonSchema` during generation.
793
- *
794
- * @public
795
- */
796
- declare interface CustomTypeRegistration_3 {
797
- /** The type name, unique within the extension. */
798
- readonly typeName: string;
799
- /**
800
- * Optional TypeScript surface names that should resolve to this custom type
801
- * during TSDoc/class analysis. Defaults to `typeName` when omitted.
802
- * @deprecated Prefer `brand` for structural detection or type parameters
803
- * on `defineCustomType<T>()` for symbol-based detection. String name
804
- * matching will be removed in a future major version.
805
- */
806
- readonly tsTypeNames?: readonly string[];
807
- /**
808
- * Optional brand identifier for structural type detection.
809
- *
810
- * When provided, the type resolver checks `type.getProperties()` for a
811
- * computed property whose name matches this identifier. This is more
812
- * reliable than `tsTypeNames` for aliased branded types because it does not
813
- * depend on the local type name.
814
- *
815
- * Brand detection is attempted after name-based resolution (`tsTypeNames`)
816
- * as a structural fallback. If both match, name-based resolution wins.
817
- *
818
- * The value should match the identifier text of a `unique symbol` declaration
819
- * used as a computed property key on the branded type. For example, if the
820
- * type is `string & { readonly [__decimalBrand]: true }`, the brand is
821
- * `"__decimalBrand"`.
822
- *
823
- * Brand identifiers are stored as plain strings in the extension registry, so
824
- * they must be unique across the extensions loaded into the same build.
825
- *
826
- * Note: `"__integerBrand"` is reserved for the builtin Integer type.
827
- */
828
- readonly brand?: string;
829
- /**
830
- * Converts the custom type's payload into a JSON Schema fragment.
831
- *
832
- * @param payload - The opaque JSON payload stored on the custom type node.
833
- * @param vendorPrefix - The vendor prefix for extension keywords (e.g., "x-stripe").
834
- * @returns A JSON Schema fragment representing this type.
835
- */
836
- readonly toJsonSchema: (payload: ExtensionPayloadValue_2, vendorPrefix: string) => Record<string, unknown>;
837
- /* Excluded from this release type: serializeDefault */
838
- /**
839
- * Optional broadening of built-in constraint tags so they can apply to this
840
- * custom type without modifying the core built-in constraint tables.
841
- */
842
- readonly builtinConstraintBroadenings?: readonly BuiltinConstraintBroadeningRegistration_3[];
843
- }
844
-
845
586
  /**
846
587
  * Per-declaration metadata policy input.
847
588
  *
@@ -854,18 +595,6 @@ declare interface DeclarationMetadataPolicyInput$1 {
854
595
  readonly displayName?: MetadataValuePolicyInput$1 | undefined;
855
596
  }
856
597
 
857
- /**
858
- * Per-declaration metadata policy input.
859
- *
860
- * @public
861
- */
862
- declare interface DeclarationMetadataPolicyInput$2 {
863
- /** Policy for JSON-facing serialized names. */
864
- readonly apiName?: MetadataValuePolicyInput$2 | undefined;
865
- /** Policy for human-facing labels and titles. */
866
- readonly displayName?: MetadataValuePolicyInput$2 | undefined;
867
- }
868
-
869
598
  /**
870
599
  * Per-declaration metadata policy input.
871
600
  *
@@ -893,24 +622,6 @@ export declare interface DiscriminatorResolutionOptions {
893
622
  readonly apiNamePrefix?: string | undefined;
894
623
  }
895
624
 
896
- /**
897
- * Complete DSL policy for a FormSpec project.
898
- *
899
- * @public
900
- */
901
- declare interface DSLPolicy {
902
- /** Field type constraints */
903
- fieldTypes?: FieldTypeConstraints;
904
- /** Layout and structure constraints */
905
- layout?: LayoutConstraints;
906
- /** UI schema feature constraints */
907
- uiSchema?: UISchemaConstraints;
908
- /** Field configuration option constraints */
909
- fieldOptions?: FieldOptionConstraints;
910
- /** Control options constraints */
911
- controlOptions?: ControlOptionConstraints;
912
- }
913
-
914
625
  /**
915
626
  * Enum-member display names remain unset unless authored explicitly.
916
627
  *
@@ -921,16 +632,6 @@ declare interface EnumMemberDisplayNameDisabledPolicyInput$1 {
921
632
  readonly mode: "disabled";
922
633
  }
923
634
 
924
- /**
925
- * Enum-member display names remain unset unless authored explicitly.
926
- *
927
- * @public
928
- */
929
- declare interface EnumMemberDisplayNameDisabledPolicyInput$2 {
930
- /** Leaves missing enum-member display names unresolved. */
931
- readonly mode: "disabled";
932
- }
933
-
934
635
  /**
935
636
  * Enum-member display names remain unset unless authored explicitly.
936
637
  *
@@ -953,18 +654,6 @@ declare interface EnumMemberDisplayNameInferIfMissingPolicyInput$1 {
953
654
  readonly infer: EnumMemberMetadataInferenceFn$1;
954
655
  }
955
656
 
956
- /**
957
- * Missing enum-member display names may be inferred.
958
- *
959
- * @public
960
- */
961
- declare interface EnumMemberDisplayNameInferIfMissingPolicyInput$2 {
962
- /** Infers an enum-member display name when it is not authored explicitly. */
963
- readonly mode: "infer-if-missing";
964
- /** Callback used to infer the missing display name. */
965
- readonly infer: EnumMemberMetadataInferenceFn$2;
966
- }
967
-
968
657
  /**
969
658
  * Missing enum-member display names may be inferred.
970
659
  *
@@ -984,13 +673,6 @@ declare interface EnumMemberDisplayNameInferIfMissingPolicyInput {
984
673
  */
985
674
  declare type EnumMemberDisplayNamePolicyInput$1 = EnumMemberDisplayNameDisabledPolicyInput$1 | EnumMemberDisplayNameInferIfMissingPolicyInput$1 | EnumMemberDisplayNameRequireExplicitPolicyInput$1;
986
675
 
987
- /**
988
- * Enum-member display-name policy input.
989
- *
990
- * @public
991
- */
992
- declare type EnumMemberDisplayNamePolicyInput$2 = EnumMemberDisplayNameDisabledPolicyInput$2 | EnumMemberDisplayNameInferIfMissingPolicyInput$2 | EnumMemberDisplayNameRequireExplicitPolicyInput$2;
993
-
994
676
  /**
995
677
  * Enum-member display-name policy input.
996
678
  *
@@ -1008,16 +690,6 @@ declare interface EnumMemberDisplayNameRequireExplicitPolicyInput$1 {
1008
690
  readonly mode: "require-explicit";
1009
691
  }
1010
692
 
1011
- /**
1012
- * Enum members must declare display names explicitly.
1013
- *
1014
- * @public
1015
- */
1016
- declare interface EnumMemberDisplayNameRequireExplicitPolicyInput$2 {
1017
- /** Fails when an enum member has no authored display name. */
1018
- readonly mode: "require-explicit";
1019
- }
1020
-
1021
693
  /**
1022
694
  * Enum members must declare display names explicitly.
1023
695
  *
@@ -1038,26 +710,6 @@ declare interface EnumMemberDisplayNameRequireExplicitPolicyInput {
1038
710
  * @public
1039
711
  */
1040
712
  declare interface EnumMemberMetadataInferenceContext$1 {
1041
- /** Authoring surface the enum originated from. */
1042
- readonly surface: MetadataAuthoringSurface_2;
1043
- /** Logical member identifier used for policy inference. */
1044
- readonly logicalName: string;
1045
- /** Underlying enum value before stringification. */
1046
- readonly memberValue: number | string;
1047
- /** Optional build-only context supplied by the resolver. */
1048
- readonly buildContext?: unknown;
1049
- }
1050
-
1051
- /**
1052
- * Build-facing context passed to enum-member metadata inference callbacks.
1053
- *
1054
- * Enum members are resolved separately from declaration-level metadata so they
1055
- * do not participate in the shared declaration-kind model used by TSDoc and
1056
- * extension metadata slots.
1057
- *
1058
- * @public
1059
- */
1060
- declare interface EnumMemberMetadataInferenceContext$2 {
1061
713
  /** Authoring surface the enum originated from. */
1062
714
  readonly surface: MetadataAuthoringSurface$2;
1063
715
  /** Logical member identifier used for policy inference. */
@@ -1095,13 +747,6 @@ declare interface EnumMemberMetadataInferenceContext {
1095
747
  */
1096
748
  declare type EnumMemberMetadataInferenceFn$1 = (context: EnumMemberMetadataInferenceContext$1) => string;
1097
749
 
1098
- /**
1099
- * Callback used to infer enum-member display names.
1100
- *
1101
- * @public
1102
- */
1103
- declare type EnumMemberMetadataInferenceFn$2 = (context: EnumMemberMetadataInferenceContext$2) => string;
1104
-
1105
750
  /**
1106
751
  * Callback used to infer enum-member display names.
1107
752
  *
@@ -1119,16 +764,6 @@ declare interface EnumMemberMetadataPolicyInput$1 {
1119
764
  readonly displayName?: EnumMemberDisplayNamePolicyInput$1 | undefined;
1120
765
  }
1121
766
 
1122
- /**
1123
- * User-facing enum-member metadata policy input.
1124
- *
1125
- * @public
1126
- */
1127
- declare interface EnumMemberMetadataPolicyInput$2 {
1128
- /** Policy for human-facing enum-member labels. */
1129
- readonly displayName?: EnumMemberDisplayNamePolicyInput$2 | undefined;
1130
- }
1131
-
1132
767
  /**
1133
768
  * User-facing enum-member metadata policy input.
1134
769
  *
@@ -1175,23 +810,6 @@ export declare type ExtensionApplicableType = {
1175
810
  readonly primitiveKind: "bigint" | "boolean" | "integer" | "null" | "number" | "string";
1176
811
  } | { readonly kind: Exclude<ExtensionTypeKind, "custom" | "primitive"> };
1177
812
 
1178
- /**
1179
- * A curated type shape exposed to extension applicability hooks.
1180
- *
1181
- * This intentionally exposes only the fields needed to determine tag/type
1182
- * applicability without committing the entire canonical IR as public API.
1183
- *
1184
- * @public
1185
- */
1186
- declare type ExtensionApplicableType_2 = {
1187
- readonly kind: "custom";
1188
- readonly payload: ExtensionPayloadValue_2;
1189
- readonly typeId: string;
1190
- } | {
1191
- readonly kind: "primitive";
1192
- readonly primitiveKind: "bigint" | "boolean" | "integer" | "null" | "number" | "string";
1193
- } | { readonly kind: Exclude<ExtensionTypeKind_2, "custom" | "primitive"> };
1194
-
1195
813
  /**
1196
814
  * A complete extension definition bundling types, constraints, annotations,
1197
815
  * and vocabulary keywords.
@@ -1270,45 +888,6 @@ declare interface ExtensionDefinition_2 {
1270
888
  readonly vocabularyKeywords?: readonly VocabularyKeywordRegistration$1[];
1271
889
  }
1272
890
 
1273
- /**
1274
- * A complete extension definition bundling types, constraints, annotations,
1275
- * and vocabulary keywords.
1276
- *
1277
- * @example
1278
- * ```typescript
1279
- * const monetaryExtension = defineExtension({
1280
- * extensionId: "x-stripe/monetary",
1281
- * types: [
1282
- * defineCustomType({
1283
- * typeName: "Decimal",
1284
- * toJsonSchema: (_payload, prefix) => ({
1285
- * type: "string",
1286
- * [`${prefix}-decimal`]: true,
1287
- * }),
1288
- * }),
1289
- * ],
1290
- * });
1291
- * ```
1292
- *
1293
- * @public
1294
- */
1295
- declare interface ExtensionDefinition_3 {
1296
- /** Globally unique extension identifier, e.g., "x-stripe/monetary". */
1297
- readonly extensionId: string;
1298
- /** Custom type registrations provided by this extension. */
1299
- readonly types?: readonly CustomTypeRegistration_3[];
1300
- /** Custom constraint registrations provided by this extension. */
1301
- readonly constraints?: readonly CustomConstraintRegistration_3[];
1302
- /** Authoring-side TSDoc tag registrations provided by this extension. */
1303
- readonly constraintTags?: readonly ConstraintTagRegistration_3[];
1304
- /** Metadata-slot registrations shared by build- and lint-time analysis. */
1305
- readonly metadataSlots?: readonly MetadataSlotRegistration_2[];
1306
- /** Custom annotation registrations provided by this extension. */
1307
- readonly annotations?: readonly CustomAnnotationRegistration_3[];
1308
- /** Vocabulary keyword registrations provided by this extension. */
1309
- readonly vocabularyKeywords?: readonly VocabularyKeywordRegistration_2[];
1310
- }
1311
-
1312
891
  /**
1313
892
  * A JSON-serializable payload value used by extension registration hooks.
1314
893
  *
@@ -1323,13 +902,6 @@ declare type ExtensionPayloadValue$1 = { readonly [key: string]: ExtensionPayloa
1323
902
  */
1324
903
  export declare type ExtensionPayloadValue = { readonly [key: string]: ExtensionPayloadValue } | boolean | null | number | readonly ExtensionPayloadValue[] | string;
1325
904
 
1326
- /**
1327
- * A JSON-serializable payload value used by extension registration hooks.
1328
- *
1329
- * @public
1330
- */
1331
- declare type ExtensionPayloadValue_2 = { readonly [key: string]: ExtensionPayloadValue_2 } | boolean | null | number | readonly ExtensionPayloadValue_2[] | string;
1332
-
1333
905
  /**
1334
906
  * A registry of extensions that provides lookup by fully-qualified ID.
1335
907
  *
@@ -1426,13 +998,6 @@ declare type ExtensionTypeKind$1 = "array" | "custom" | "dynamic" | "enum" | "ob
1426
998
  */
1427
999
  export declare type ExtensionTypeKind = "array" | "custom" | "dynamic" | "enum" | "object" | "primitive" | "record" | "reference" | "union";
1428
1000
 
1429
- /**
1430
- * Top-level type kinds that extension applicability hooks may inspect.
1431
- *
1432
- * @public
1433
- */
1434
- declare type ExtensionTypeKind_2 = "array" | "custom" | "dynamic" | "enum" | "object" | "primitive" | "record" | "reference" | "union";
1435
-
1436
1001
  /**
1437
1002
  * The result of a successful extension type lookup.
1438
1003
  *
@@ -1495,148 +1060,23 @@ export declare interface _ExtractConfigSchemasOptions {
1495
1060
  * @internal
1496
1061
  */
1497
1062
  export declare interface _ExtractConfigSchemasResult {
1498
- /** Config schemas extracted from the class's `implements` clauses */
1499
- schemas: _ConfigSchemaResult[];
1500
- }
1501
-
1502
- /**
1503
- * Field configuration option constraints - control which field options are allowed.
1504
- *
1505
- * @public
1506
- */
1507
- declare interface FieldOptionConstraints {
1508
- /** label - field label text */
1509
- label?: Severity;
1510
- /** placeholder - input placeholder text */
1511
- placeholder?: Severity;
1512
- /** required - whether field is required */
1513
- required?: Severity;
1514
- /** minValue - minimum value for numbers */
1515
- minValue?: Severity;
1516
- /** maxValue - maximum value for numbers */
1517
- maxValue?: Severity;
1518
- /** minItems - minimum array length */
1519
- minItems?: Severity;
1520
- /** maxItems - maximum array length */
1521
- maxItems?: Severity;
1522
- }
1523
-
1524
- /**
1525
- * Field type constraints - control which field types are allowed.
1526
- * Fine-grained control over each DSL field builder.
1527
- *
1528
- * @public
1529
- */
1530
- declare interface FieldTypeConstraints {
1531
- /** field.text() - basic text input */
1532
- text?: Severity;
1533
- /** field.number() - numeric input */
1534
- number?: Severity;
1535
- /** field.boolean() - checkbox/toggle */
1536
- boolean?: Severity;
1537
- /** field.enum() with literal options */
1538
- staticEnum?: Severity;
1539
- /** field.dynamicEnum() - runtime-fetched options */
1540
- dynamicEnum?: Severity;
1541
- /** field.dynamicSchema() - runtime-fetched schema */
1542
- dynamicSchema?: Severity;
1543
- /** field.array() / field.arrayWithConfig() */
1544
- array?: Severity;
1545
- /** field.object() / field.objectWithConfig() */
1546
- object?: Severity;
1547
- }
1548
-
1549
- /**
1550
- * Post-processes a generated JSON Schema to fix path-targeted constraints on
1551
- * Decimal sub-properties. Mutates the schema in place for efficiency.
1552
- *
1553
- * When formspec emits `$ref` + sibling `properties` for path-targeted
1554
- * constraints, any numeric constraint keywords targeting a Decimal sub-property
1555
- * must be broadened to the corresponding `decimal*` keyword with a string value.
1556
- *
1557
- * @internal
1558
- */
1559
- export declare function _fixupDecimalPathConstraints(schema: JsonSchema2020): JsonSchema2020;
1560
-
1561
- /**
1562
- * Top-level FormSpec configuration structure.
1563
- *
1564
- * @public
1565
- */
1566
- export declare interface FormSpecConfig {
1567
- /**
1568
- * Extension definitions providing custom types, constraints,
1569
- * annotations, and vocabulary keywords.
1570
- */
1571
- readonly extensions?: readonly ExtensionDefinition_3[];
1572
- /**
1573
- * DSL-policy surface configuration controlling which field types,
1574
- * layouts, UI features, and field/control options are allowed.
1575
- */
1576
- readonly constraints?: DSLPolicy;
1577
- /**
1578
- * Metadata inference and naming policy. Controls how apiName,
1579
- * displayName, and plural forms are derived when not authored.
1580
- */
1581
- readonly metadata?: MetadataPolicyInput_2;
1582
- /**
1583
- * Vendor prefix for extension-emitted JSON Schema keywords.
1584
- * Must start with "x-".
1585
- * @defaultValue "x-formspec"
1586
- */
1587
- readonly vendorPrefix?: string;
1588
- /**
1589
- * JSON Schema representation for static enums.
1590
- * - "enum": compact `enum` output, plus a display-name extension when labels exist
1591
- * - "oneOf": per-member `const` output, with `title` only for distinct labels
1592
- * - "smart-size": uses `enum` unless a distinct display label would be lost
1593
- * @defaultValue "enum"
1594
- */
1595
- readonly enumSerialization?: "enum" | "oneOf" | "smart-size";
1596
- /**
1597
- * JSON Schema serialization settings for vocabulary and dialect emission.
1598
- * PR-1 stores and resolves this block; PR-2 consumes it.
1599
- */
1600
- readonly serialization?: FormSpecSerializationConfig;
1601
- /**
1602
- * Per-package configuration overrides for monorepos.
1603
- * Keys are glob patterns matched against file paths relative to
1604
- * the config file's directory. Values merge with root settings.
1605
- */
1606
- readonly packages?: Readonly<Record<string, FormSpecPackageOverride>>;
1607
- }
1608
-
1609
- /**
1610
- * Per-package overrides that merge with the root config.
1611
- * Only settings that genuinely vary per package are overridable.
1612
- *
1613
- * @public
1614
- */
1615
- declare interface FormSpecPackageOverride {
1616
- /** Override DSL policy for this package. */
1617
- readonly constraints?: DSLPolicy;
1618
- /** Override enum serialization for this package. */
1619
- readonly enumSerialization?: "enum" | "oneOf" | "smart-size";
1620
- /** Override metadata policy for this package. */
1621
- readonly metadata?: MetadataPolicyInput_2;
1063
+ /** Config schemas extracted from the class's `implements` clauses */
1064
+ schemas: _ConfigSchemaResult[];
1622
1065
  }
1623
1066
 
1624
1067
  /**
1625
- * Forward-looking JSON Schema serialization settings.
1068
+ * Post-processes a generated JSON Schema to fix path-targeted constraints on
1069
+ * Decimal sub-properties. Mutates the schema in place for efficiency.
1626
1070
  *
1627
- * These values are currently carried through configuration for future
1628
- * vocabulary and dialect emission.
1071
+ * When formspec emits `$ref` + sibling `properties` for path-targeted
1072
+ * constraints, any numeric constraint keywords targeting a Decimal sub-property
1073
+ * must be broadened to the corresponding `decimal*` keyword with a string value.
1629
1074
  *
1630
- * @public
1075
+ * @internal
1631
1076
  */
1632
- declare interface FormSpecSerializationConfig {
1633
- /** Base URL used to construct default FormSpec vocabulary URLs. */
1634
- readonly vocabularyBaseUrl?: string;
1635
- /** Per-vocabulary URL overrides keyed by vocabulary identifier. */
1636
- readonly vocabularyUrls?: Readonly<Record<string, string>>;
1637
- /** Explicit FormSpec dialect URL override. */
1638
- readonly dialectUrl?: string;
1639
- }
1077
+ export declare function _fixupDecimalPathConstraints(schema: JsonSchema2020): JsonSchema2020;
1078
+
1079
+ export { FormSpecConfig }
1640
1080
 
1641
1081
  /**
1642
1082
  * Options for generating schemas from a decorated class.
@@ -1845,38 +1285,6 @@ export declare interface LabelElement {
1845
1285
  readonly [k: string]: unknown;
1846
1286
  }
1847
1287
 
1848
- /**
1849
- * Layout and structure constraints - control grouping, conditionals, nesting.
1850
- *
1851
- * @public
1852
- */
1853
- declare interface LayoutConstraints {
1854
- /** group() - visual grouping of fields */
1855
- group?: Severity;
1856
- /** when() - conditional field visibility */
1857
- conditionals?: Severity;
1858
- /** Maximum nesting depth for objects/arrays (0 = flat only) */
1859
- maxNestingDepth?: number;
1860
- }
1861
-
1862
- /**
1863
- * JSON Forms layout type constraints.
1864
- *
1865
- * @public
1866
- */
1867
- declare interface LayoutTypeConstraints {
1868
- /** VerticalLayout - stack elements vertically */
1869
- VerticalLayout?: Severity;
1870
- /** HorizontalLayout - arrange elements horizontally */
1871
- HorizontalLayout?: Severity;
1872
- /** Group - visual grouping with label */
1873
- Group?: Severity;
1874
- /** Categorization - tabbed/wizard interface */
1875
- Categorization?: Severity;
1876
- /** Category - individual tab/step in Categorization */
1877
- Category?: Severity;
1878
- }
1879
-
1880
1288
  /**
1881
1289
  * Authoring surfaces that can contribute metadata.
1882
1290
  *
@@ -1898,13 +1306,6 @@ declare type MetadataAuthoringSurface$2 = "chain-dsl" | "tsdoc";
1898
1306
  */
1899
1307
  export declare type MetadataAuthoringSurface = "chain-dsl" | "tsdoc";
1900
1308
 
1901
- /**
1902
- * Authoring surfaces that can contribute metadata.
1903
- *
1904
- * @public
1905
- */
1906
- declare type MetadataAuthoringSurface_2 = "chain-dsl" | "tsdoc";
1907
-
1908
1309
  /**
1909
1310
  * Declaration categories that metadata policy can target.
1910
1311
  *
@@ -1926,13 +1327,6 @@ declare type MetadataDeclarationKind$2 = "field" | "method" | "type";
1926
1327
  */
1927
1328
  export declare type MetadataDeclarationKind = "field" | "method" | "type";
1928
1329
 
1929
- /**
1930
- * Declaration categories that metadata policy can target.
1931
- *
1932
- * @public
1933
- */
1934
- declare type MetadataDeclarationKind_2 = "field" | "method" | "type";
1935
-
1936
1330
  /**
1937
1331
  * Build-facing context passed to metadata inference callbacks.
1938
1332
  *
@@ -1990,38 +1384,12 @@ export declare interface MetadataInferenceContext {
1990
1384
  readonly buildContext?: unknown;
1991
1385
  }
1992
1386
 
1993
- /**
1994
- * Build-facing context passed to metadata inference callbacks.
1995
- *
1996
- * `buildContext` is intentionally opaque so browser/runtime packages do not
1997
- * need to depend on TypeScript compiler types.
1998
- *
1999
- * @public
2000
- */
2001
- declare interface MetadataInferenceContext_2 {
2002
- /** Authoring surface the metadata is being resolved for. */
2003
- readonly surface: MetadataAuthoringSurface_2;
2004
- /** Declaration kind currently being resolved. */
2005
- readonly declarationKind: MetadataDeclarationKind_2;
2006
- /** Logical identifier before any metadata policy is applied. */
2007
- readonly logicalName: string;
2008
- /** Optional build-only context supplied by the resolver. */
2009
- readonly buildContext?: unknown;
2010
- }
2011
-
2012
- /**
2013
- * Callback used to infer a scalar metadata value.
2014
- *
2015
- * @public
2016
- */
2017
- declare type MetadataInferenceFn$1 = (context: MetadataInferenceContext_2) => string;
2018
-
2019
1387
  /**
2020
1388
  * Callback used to infer a scalar metadata value.
2021
1389
  *
2022
1390
  * @public
2023
1391
  */
2024
- declare type MetadataInferenceFn$2 = (context: MetadataInferenceContext$2) => string;
1392
+ declare type MetadataInferenceFn$1 = (context: MetadataInferenceContext$2) => string;
2025
1393
 
2026
1394
  /**
2027
1395
  * Callback used to infer a scalar metadata value.
@@ -2035,17 +1403,7 @@ export declare type MetadataInferenceFn = (context: MetadataInferenceContext) =>
2035
1403
  *
2036
1404
  * @public
2037
1405
  */
2038
- declare interface MetadataPluralizationContext$1 extends MetadataInferenceContext_2 {
2039
- /** Singular value that pluralization should derive from. */
2040
- readonly singular: string;
2041
- }
2042
-
2043
- /**
2044
- * Context passed to pluralization callbacks.
2045
- *
2046
- * @public
2047
- */
2048
- declare interface MetadataPluralizationContext$2 extends MetadataInferenceContext$2 {
1406
+ declare interface MetadataPluralizationContext$1 extends MetadataInferenceContext$2 {
2049
1407
  /** Singular value that pluralization should derive from. */
2050
1408
  readonly singular: string;
2051
1409
  }
@@ -2070,16 +1428,6 @@ declare interface MetadataPluralizationDisabledPolicyInput$1 {
2070
1428
  readonly mode?: "disabled" | undefined;
2071
1429
  }
2072
1430
 
2073
- /**
2074
- * Pluralization disabled.
2075
- *
2076
- * @public
2077
- */
2078
- declare interface MetadataPluralizationDisabledPolicyInput$2 {
2079
- /** Disables automatic plural-value generation. */
2080
- readonly mode?: "disabled" | undefined;
2081
- }
2082
-
2083
1431
  /**
2084
1432
  * Pluralization disabled.
2085
1433
  *
@@ -2097,13 +1445,6 @@ export declare interface MetadataPluralizationDisabledPolicyInput {
2097
1445
  */
2098
1446
  declare type MetadataPluralizationFn$1 = (context: MetadataPluralizationContext$1) => string;
2099
1447
 
2100
- /**
2101
- * Callback used to derive plural metadata from a singular value.
2102
- *
2103
- * @public
2104
- */
2105
- declare type MetadataPluralizationFn$2 = (context: MetadataPluralizationContext$2) => string;
2106
-
2107
1448
  /**
2108
1449
  * Callback used to derive plural metadata from a singular value.
2109
1450
  *
@@ -2123,18 +1464,6 @@ declare interface MetadataPluralizationInferIfMissingPolicyInput$1 {
2123
1464
  readonly inflect: MetadataPluralizationFn$1;
2124
1465
  }
2125
1466
 
2126
- /**
2127
- * Pluralization may be inferred when absent.
2128
- *
2129
- * @public
2130
- */
2131
- declare interface MetadataPluralizationInferIfMissingPolicyInput$2 {
2132
- /** Infers plural values whenever no explicit plural is present. */
2133
- readonly mode: "infer-if-missing";
2134
- /** Callback that derives a plural form from the resolved singular value. */
2135
- readonly inflect: MetadataPluralizationFn$2;
2136
- }
2137
-
2138
1467
  /**
2139
1468
  * Pluralization may be inferred when absent.
2140
1469
  *
@@ -2154,13 +1483,6 @@ export declare interface MetadataPluralizationInferIfMissingPolicyInput {
2154
1483
  */
2155
1484
  declare type MetadataPluralizationPolicyInput$1 = MetadataPluralizationDisabledPolicyInput$1 | MetadataPluralizationInferIfMissingPolicyInput$1 | MetadataPluralizationRequireExplicitPolicyInput$1;
2156
1485
 
2157
- /**
2158
- * Pluralization policy input.
2159
- *
2160
- * @public
2161
- */
2162
- declare type MetadataPluralizationPolicyInput$2 = MetadataPluralizationDisabledPolicyInput$2 | MetadataPluralizationInferIfMissingPolicyInput$2 | MetadataPluralizationRequireExplicitPolicyInput$2;
2163
-
2164
1486
  /**
2165
1487
  * Pluralization policy input.
2166
1488
  *
@@ -2178,16 +1500,6 @@ declare interface MetadataPluralizationRequireExplicitPolicyInput$1 {
2178
1500
  readonly mode: "require-explicit";
2179
1501
  }
2180
1502
 
2181
- /**
2182
- * Pluralization must be authored explicitly.
2183
- *
2184
- * @public
2185
- */
2186
- declare interface MetadataPluralizationRequireExplicitPolicyInput$2 {
2187
- /** Requires plural values to be authored directly. */
2188
- readonly mode: "require-explicit";
2189
- }
2190
-
2191
1503
  /**
2192
1504
  * Pluralization must be authored explicitly.
2193
1505
  *
@@ -2205,13 +1517,13 @@ export declare interface MetadataPluralizationRequireExplicitPolicyInput {
2205
1517
  */
2206
1518
  declare interface MetadataPolicyInput$1 {
2207
1519
  /** Policy applied to named types and the analyzed root declaration. */
2208
- readonly type?: DeclarationMetadataPolicyInput$2 | undefined;
1520
+ readonly type?: DeclarationMetadataPolicyInput$1 | undefined;
2209
1521
  /** Policy applied to fields and object properties. */
2210
- readonly field?: DeclarationMetadataPolicyInput$2 | undefined;
1522
+ readonly field?: DeclarationMetadataPolicyInput$1 | undefined;
2211
1523
  /** Policy applied to callable/method declarations. */
2212
- readonly method?: DeclarationMetadataPolicyInput$2 | undefined;
1524
+ readonly method?: DeclarationMetadataPolicyInput$1 | undefined;
2213
1525
  /** Policy applied to enum-member display names during build-time IR resolution. */
2214
- readonly enumMember?: EnumMemberMetadataPolicyInput$2 | undefined;
1526
+ readonly enumMember?: EnumMemberMetadataPolicyInput$1 | undefined;
2215
1527
  }
2216
1528
 
2217
1529
  /**
@@ -2230,22 +1542,6 @@ export declare interface MetadataPolicyInput {
2230
1542
  readonly enumMember?: EnumMemberMetadataPolicyInput | undefined;
2231
1543
  }
2232
1544
 
2233
- /**
2234
- * User-facing metadata policy configuration.
2235
- *
2236
- * @public
2237
- */
2238
- declare interface MetadataPolicyInput_2 {
2239
- /** Policy applied to named types and the analyzed root declaration. */
2240
- readonly type?: DeclarationMetadataPolicyInput$1 | undefined;
2241
- /** Policy applied to fields and object properties. */
2242
- readonly field?: DeclarationMetadataPolicyInput$1 | undefined;
2243
- /** Policy applied to callable/method declarations. */
2244
- readonly method?: DeclarationMetadataPolicyInput$1 | undefined;
2245
- /** Policy applied to enum-member display names during build-time IR resolution. */
2246
- readonly enumMember?: EnumMemberMetadataPolicyInput$1 | undefined;
2247
- }
2248
-
2249
1545
  /**
2250
1546
  * Supported qualifier registration for an extensible metadata slot.
2251
1547
  *
@@ -2280,23 +1576,6 @@ export declare interface MetadataQualifierRegistration {
2280
1576
  readonly inferValue?: MetadataSlotInferenceFn | undefined;
2281
1577
  }
2282
1578
 
2283
- /**
2284
- * Supported qualifier registration for an extensible metadata slot.
2285
- *
2286
- * @public
2287
- */
2288
- declare interface MetadataQualifierRegistration_2 {
2289
- /** Qualifier text without the leading colon. */
2290
- readonly qualifier: string;
2291
- /**
2292
- * Optional source qualifier to use as the base input for this qualifier's
2293
- * inference hook. Defaults to the slot's bare/default value when omitted.
2294
- */
2295
- readonly sourceQualifier?: string | undefined;
2296
- /** Optional inference hook for this qualified value. */
2297
- readonly inferValue?: MetadataSlotInferenceFn_2 | undefined;
2298
- }
2299
-
2300
1579
  /**
2301
1580
  * Stable slot identifier for extensible metadata analysis.
2302
1581
  *
@@ -2311,13 +1590,6 @@ declare type MetadataSlotId$1 = string;
2311
1590
  */
2312
1591
  export declare type MetadataSlotId = string;
2313
1592
 
2314
- /**
2315
- * Stable slot identifier for extensible metadata analysis.
2316
- *
2317
- * @public
2318
- */
2319
- declare type MetadataSlotId_2 = string;
2320
-
2321
1593
  /**
2322
1594
  * Context passed to extensible metadata inference hooks.
2323
1595
  *
@@ -2350,22 +1622,6 @@ export declare interface MetadataSlotInferenceContext extends MetadataInferenceC
2350
1622
  readonly baseValue?: string | undefined;
2351
1623
  }
2352
1624
 
2353
- /**
2354
- * Context passed to extensible metadata inference hooks.
2355
- *
2356
- * @public
2357
- */
2358
- declare interface MetadataSlotInferenceContext_2 extends MetadataInferenceContext_2 {
2359
- /** Stable logical slot identifier. */
2360
- readonly slotId: MetadataSlotId_2;
2361
- /** Tag name associated with the slot, without the `@` prefix. */
2362
- readonly tagName: string;
2363
- /** Optional qualifier being inferred (for example `plural`). */
2364
- readonly qualifier?: string | undefined;
2365
- /** Resolved bare/default value used as the base input for derived qualifiers. */
2366
- readonly baseValue?: string | undefined;
2367
- }
2368
-
2369
1625
  /**
2370
1626
  * Callback used to infer an extensible metadata slot value.
2371
1627
  *
@@ -2380,13 +1636,6 @@ declare type MetadataSlotInferenceFn$1 = (context: MetadataSlotInferenceContext$
2380
1636
  */
2381
1637
  export declare type MetadataSlotInferenceFn = (context: MetadataSlotInferenceContext) => string;
2382
1638
 
2383
- /**
2384
- * Callback used to infer an extensible metadata slot value.
2385
- *
2386
- * @public
2387
- */
2388
- declare type MetadataSlotInferenceFn_2 = (context: MetadataSlotInferenceContext_2) => string;
2389
-
2390
1639
  /**
2391
1640
  * Extensible metadata slot definition shared across build- and lint-time analysis.
2392
1641
  *
@@ -2437,31 +1686,6 @@ export declare interface MetadataSlotRegistration {
2437
1686
  readonly isApplicable?: ((context: MetadataInferenceContext) => boolean) | undefined;
2438
1687
  }
2439
1688
 
2440
- /**
2441
- * Extensible metadata slot definition shared across build- and lint-time analysis.
2442
- *
2443
- * @public
2444
- */
2445
- declare interface MetadataSlotRegistration_2 {
2446
- /** Stable logical slot identifier. */
2447
- readonly slotId: MetadataSlotId_2;
2448
- /** Tag name associated with this slot, without the `@` prefix. */
2449
- readonly tagName: string;
2450
- /** Declaration kinds where the slot is meaningful. */
2451
- readonly declarationKinds: readonly MetadataDeclarationKind_2[];
2452
- /** Whether a bare tag without a qualifier is supported. Defaults to true. */
2453
- readonly allowBare?: boolean | undefined;
2454
- /** Supported qualifiers for this slot. */
2455
- readonly qualifiers?: readonly MetadataQualifierRegistration_2[] | undefined;
2456
- /** Optional inference hook for the bare/default slot value. */
2457
- readonly inferValue?: MetadataSlotInferenceFn_2 | undefined;
2458
- /**
2459
- * Optional applicability hook for declaration-specific rules beyond
2460
- * declaration kind. `buildContext` may carry compiler objects.
2461
- */
2462
- readonly isApplicable?: ((context: MetadataInferenceContext_2) => boolean) | undefined;
2463
- }
2464
-
2465
1689
  /**
2466
1690
  * Scalar metadata disabled unless provided explicitly elsewhere.
2467
1691
  *
@@ -2474,18 +1698,6 @@ declare interface MetadataValueDisabledPolicyInput$1 {
2474
1698
  readonly pluralization?: MetadataPluralizationPolicyInput$1 | undefined;
2475
1699
  }
2476
1700
 
2477
- /**
2478
- * Scalar metadata disabled unless provided explicitly elsewhere.
2479
- *
2480
- * @public
2481
- */
2482
- declare interface MetadataValueDisabledPolicyInput$2 {
2483
- /** Disables inference for this scalar metadata value. */
2484
- readonly mode?: "disabled" | undefined;
2485
- /** Optional policy controlling plural forms of this scalar value. */
2486
- readonly pluralization?: MetadataPluralizationPolicyInput$2 | undefined;
2487
- }
2488
-
2489
1701
  /**
2490
1702
  * Scalar metadata disabled unless provided explicitly elsewhere.
2491
1703
  *
@@ -2512,20 +1724,6 @@ declare interface MetadataValueInferIfMissingPolicyInput$1 {
2512
1724
  readonly pluralization?: MetadataPluralizationPolicyInput$1 | undefined;
2513
1725
  }
2514
1726
 
2515
- /**
2516
- * Scalar metadata may be inferred when missing.
2517
- *
2518
- * @public
2519
- */
2520
- declare interface MetadataValueInferIfMissingPolicyInput$2 {
2521
- /** Infers this scalar metadata value when it is not authored explicitly. */
2522
- readonly mode: "infer-if-missing";
2523
- /** Callback used to infer the missing singular value. */
2524
- readonly infer: MetadataInferenceFn$2;
2525
- /** Optional policy controlling plural forms of this scalar value. */
2526
- readonly pluralization?: MetadataPluralizationPolicyInput$2 | undefined;
2527
- }
2528
-
2529
1727
  /**
2530
1728
  * Scalar metadata may be inferred when missing.
2531
1729
  *
@@ -2547,13 +1745,6 @@ export declare interface MetadataValueInferIfMissingPolicyInput {
2547
1745
  */
2548
1746
  declare type MetadataValuePolicyInput$1 = MetadataValueDisabledPolicyInput$1 | MetadataValueInferIfMissingPolicyInput$1 | MetadataValueRequireExplicitPolicyInput$1;
2549
1747
 
2550
- /**
2551
- * Scalar metadata policy input.
2552
- *
2553
- * @public
2554
- */
2555
- declare type MetadataValuePolicyInput$2 = MetadataValueDisabledPolicyInput$2 | MetadataValueInferIfMissingPolicyInput$2 | MetadataValueRequireExplicitPolicyInput$2;
2556
-
2557
1748
  /**
2558
1749
  * Scalar metadata policy input.
2559
1750
  *
@@ -2573,18 +1764,6 @@ declare interface MetadataValueRequireExplicitPolicyInput$1 {
2573
1764
  readonly pluralization?: MetadataPluralizationPolicyInput$1 | undefined;
2574
1765
  }
2575
1766
 
2576
- /**
2577
- * Scalar metadata must be authored explicitly.
2578
- *
2579
- * @public
2580
- */
2581
- declare interface MetadataValueRequireExplicitPolicyInput$2 {
2582
- /** Requires this scalar metadata value to be authored directly. */
2583
- readonly mode: "require-explicit";
2584
- /** Optional policy controlling plural forms of this scalar value. */
2585
- readonly pluralization?: MetadataPluralizationPolicyInput$2 | undefined;
2586
- }
2587
-
2588
1767
  /**
2589
1768
  * Scalar metadata must be authored explicitly.
2590
1769
  *
@@ -2668,18 +1847,6 @@ export declare interface RuleConditionSchema {
2668
1847
  allOf?: RuleConditionSchema[];
2669
1848
  }
2670
1849
 
2671
- /**
2672
- * JSON Forms rule constraints.
2673
- *
2674
- * @public
2675
- */
2676
- declare interface RuleConstraints {
2677
- /** Whether rules are enabled at all */
2678
- enabled?: Severity;
2679
- /** Fine-grained control over rule effects */
2680
- effects?: RuleEffectConstraints;
2681
- }
2682
-
2683
1850
  /**
2684
1851
  * JSON Forms UI Schema type definitions.
2685
1852
  *
@@ -2695,22 +1862,6 @@ declare interface RuleConstraints {
2695
1862
  */
2696
1863
  export declare type RuleEffect = "DISABLE" | "ENABLE" | "HIDE" | "SHOW";
2697
1864
 
2698
- /**
2699
- * JSON Forms rule effect constraints.
2700
- *
2701
- * @public
2702
- */
2703
- declare interface RuleEffectConstraints {
2704
- /** SHOW - show element when condition is true */
2705
- SHOW?: Severity;
2706
- /** HIDE - hide element when condition is true */
2707
- HIDE?: Severity;
2708
- /** ENABLE - enable element when condition is true */
2709
- ENABLE?: Severity;
2710
- /** DISABLE - disable element when condition is true */
2711
- DISABLE?: Severity;
2712
- }
2713
-
2714
1865
  /**
2715
1866
  * Condition for a rule.
2716
1867
  *
@@ -2725,16 +1876,6 @@ export declare interface SchemaBasedCondition {
2725
1876
 
2726
1877
  export { setSchemaExtension }
2727
1878
 
2728
- /**
2729
- * Severity level for DSL-policy violations.
2730
- * - "error": Violation fails validation
2731
- * - "warn": Violation emits warning but passes
2732
- * - "off": Feature is allowed (no violation)
2733
- *
2734
- * @public
2735
- */
2736
- declare type Severity = "error" | "off" | "warn";
2737
-
2738
1879
  /**
2739
1880
  * Shared options for schema generation flows that support custom extensions.
2740
1881
  *
@@ -2846,18 +1987,6 @@ export declare const _stripeStdlibExtension: ExtensionDefinition;
2846
1987
  */
2847
1988
  export declare type UISchema = Categorization | GroupLayout | HorizontalLayout | VerticalLayout;
2848
1989
 
2849
- /**
2850
- * UI schema feature constraints - control JSON Forms-specific features.
2851
- *
2852
- * @public
2853
- */
2854
- declare interface UISchemaConstraints {
2855
- /** Layout type constraints */
2856
- layouts?: LayoutTypeConstraints;
2857
- /** Rule (conditional) constraints */
2858
- rules?: RuleConstraints;
2859
- }
2860
-
2861
1990
  /**
2862
1991
  * Union of all UI Schema element types.
2863
1992
  *
@@ -2909,16 +2038,4 @@ export declare interface VocabularyKeywordRegistration {
2909
2038
  readonly schema: ExtensionPayloadValue;
2910
2039
  }
2911
2040
 
2912
- /**
2913
- * Registration for a vocabulary keyword to include in a JSON Schema `$vocabulary` declaration.
2914
- *
2915
- * @public
2916
- */
2917
- declare interface VocabularyKeywordRegistration_2 {
2918
- /** The keyword name (without vendor prefix). */
2919
- readonly keyword: string;
2920
- /** JSON Schema that describes the valid values for this keyword. */
2921
- readonly schema: ExtensionPayloadValue_2;
2922
- }
2923
-
2924
2041
  export { }