@itwin/ecschema-editing 3.4.0-dev.46 → 3.4.0-dev.48

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (146) hide show
  1. package/lib/cjs/Editing/Constants.d.ts +20 -20
  2. package/lib/cjs/Editing/Constants.js +64 -64
  3. package/lib/cjs/Editing/Constants.js.map +1 -1
  4. package/lib/cjs/Editing/CustomAttributes.d.ts +20 -20
  5. package/lib/cjs/Editing/CustomAttributes.js +62 -62
  6. package/lib/cjs/Editing/CustomAttributes.js.map +1 -1
  7. package/lib/cjs/Editing/ECClasses.d.ts +54 -54
  8. package/lib/cjs/Editing/ECClasses.js +269 -269
  9. package/lib/cjs/Editing/ECClasses.js.map +1 -1
  10. package/lib/cjs/Editing/Editor.d.ts +112 -112
  11. package/lib/cjs/Editing/Editor.js +166 -166
  12. package/lib/cjs/Editing/Editor.js.map +1 -1
  13. package/lib/cjs/Editing/Entities.d.ts +25 -25
  14. package/lib/cjs/Editing/Entities.js +124 -124
  15. package/lib/cjs/Editing/Entities.js.map +1 -1
  16. package/lib/cjs/Editing/Enumerations.d.ts +21 -21
  17. package/lib/cjs/Editing/Enumerations.js +76 -76
  18. package/lib/cjs/Editing/Enumerations.js.map +1 -1
  19. package/lib/cjs/Editing/Formats.d.ts +21 -21
  20. package/lib/cjs/Editing/Formats.js +63 -63
  21. package/lib/cjs/Editing/Formats.js.map +1 -1
  22. package/lib/cjs/Editing/InvertedUnits.d.ts +17 -17
  23. package/lib/cjs/Editing/InvertedUnits.js +85 -85
  24. package/lib/cjs/Editing/InvertedUnits.js.map +1 -1
  25. package/lib/cjs/Editing/KindOfQuantities.d.ts +28 -28
  26. package/lib/cjs/Editing/KindOfQuantities.js +79 -79
  27. package/lib/cjs/Editing/KindOfQuantities.js.map +1 -1
  28. package/lib/cjs/Editing/Mixins.d.ts +22 -22
  29. package/lib/cjs/Editing/Mixins.js +88 -88
  30. package/lib/cjs/Editing/Mixins.js.map +1 -1
  31. package/lib/cjs/Editing/Mutable/MutableCAClass.d.ts +9 -9
  32. package/lib/cjs/Editing/Mutable/MutableCAClass.js +15 -15
  33. package/lib/cjs/Editing/Mutable/MutableCAClass.js.map +1 -1
  34. package/lib/cjs/Editing/Mutable/MutableClass.d.ts +34 -34
  35. package/lib/cjs/Editing/Mutable/MutableClass.js +22 -22
  36. package/lib/cjs/Editing/Mutable/MutableClass.js.map +1 -1
  37. package/lib/cjs/Editing/Mutable/MutableConstant.d.ts +12 -12
  38. package/lib/cjs/Editing/Mutable/MutableConstant.js +15 -15
  39. package/lib/cjs/Editing/Mutable/MutableConstant.js.map +1 -1
  40. package/lib/cjs/Editing/Mutable/MutableEntityClass.d.ts +15 -15
  41. package/lib/cjs/Editing/Mutable/MutableEntityClass.js +59 -59
  42. package/lib/cjs/Editing/Mutable/MutableEntityClass.js.map +1 -1
  43. package/lib/cjs/Editing/Mutable/MutableEnumeration.d.ts +9 -9
  44. package/lib/cjs/Editing/Mutable/MutableEnumeration.js +14 -14
  45. package/lib/cjs/Editing/Mutable/MutableEnumeration.js.map +1 -1
  46. package/lib/cjs/Editing/Mutable/MutableFormat.d.ts +18 -18
  47. package/lib/cjs/Editing/Mutable/MutableFormat.js +15 -15
  48. package/lib/cjs/Editing/Mutable/MutableFormat.js.map +1 -1
  49. package/lib/cjs/Editing/Mutable/MutableInvertedUnit.d.ts +10 -10
  50. package/lib/cjs/Editing/Mutable/MutableInvertedUnit.js +15 -15
  51. package/lib/cjs/Editing/Mutable/MutableInvertedUnit.js.map +1 -1
  52. package/lib/cjs/Editing/Mutable/MutableKindOfQuantity.d.ts +10 -10
  53. package/lib/cjs/Editing/Mutable/MutableKindOfQuantity.js +15 -15
  54. package/lib/cjs/Editing/Mutable/MutableKindOfQuantity.js.map +1 -1
  55. package/lib/cjs/Editing/Mutable/MutableMixin.d.ts +11 -11
  56. package/lib/cjs/Editing/Mutable/MutableMixin.js +15 -15
  57. package/lib/cjs/Editing/Mutable/MutableMixin.js.map +1 -1
  58. package/lib/cjs/Editing/Mutable/MutablePhenomenon.d.ts +9 -9
  59. package/lib/cjs/Editing/Mutable/MutablePhenomenon.js +15 -15
  60. package/lib/cjs/Editing/Mutable/MutablePhenomenon.js.map +1 -1
  61. package/lib/cjs/Editing/Mutable/MutableProperty.d.ts +8 -8
  62. package/lib/cjs/Editing/Mutable/MutableProperty.js +15 -15
  63. package/lib/cjs/Editing/Mutable/MutableProperty.js.map +1 -1
  64. package/lib/cjs/Editing/Mutable/MutablePropertyCategory.d.ts +9 -9
  65. package/lib/cjs/Editing/Mutable/MutablePropertyCategory.js +15 -15
  66. package/lib/cjs/Editing/Mutable/MutablePropertyCategory.js.map +1 -1
  67. package/lib/cjs/Editing/Mutable/MutableRelationshipClass.d.ts +21 -21
  68. package/lib/cjs/Editing/Mutable/MutableRelationshipClass.js +24 -24
  69. package/lib/cjs/Editing/Mutable/MutableRelationshipClass.js.map +1 -1
  70. package/lib/cjs/Editing/Mutable/MutableSchema.d.ts +45 -45
  71. package/lib/cjs/Editing/Mutable/MutableSchema.js +17 -17
  72. package/lib/cjs/Editing/Mutable/MutableSchema.js.map +1 -1
  73. package/lib/cjs/Editing/Mutable/MutableUnit.d.ts +11 -11
  74. package/lib/cjs/Editing/Mutable/MutableUnit.js +15 -15
  75. package/lib/cjs/Editing/Mutable/MutableUnit.js.map +1 -1
  76. package/lib/cjs/Editing/Mutable/MutableUnitSystem.d.ts +8 -8
  77. package/lib/cjs/Editing/Mutable/MutableUnitSystem.js +15 -15
  78. package/lib/cjs/Editing/Mutable/MutableUnitSystem.js.map +1 -1
  79. package/lib/cjs/Editing/Phenomena.d.ts +15 -15
  80. package/lib/cjs/Editing/Phenomena.js +47 -47
  81. package/lib/cjs/Editing/Phenomena.js.map +1 -1
  82. package/lib/cjs/Editing/PropertyCategories.d.ts +16 -16
  83. package/lib/cjs/Editing/PropertyCategories.js +53 -53
  84. package/lib/cjs/Editing/PropertyCategories.js.map +1 -1
  85. package/lib/cjs/Editing/RelationshipClasses.d.ts +21 -21
  86. package/lib/cjs/Editing/RelationshipClasses.js +69 -69
  87. package/lib/cjs/Editing/RelationshipClasses.js.map +1 -1
  88. package/lib/cjs/Editing/Structs.d.ts +19 -19
  89. package/lib/cjs/Editing/Structs.js +60 -60
  90. package/lib/cjs/Editing/Structs.js.map +1 -1
  91. package/lib/cjs/Editing/UnitSystems.d.ts +15 -15
  92. package/lib/cjs/Editing/UnitSystems.js +43 -43
  93. package/lib/cjs/Editing/UnitSystems.js.map +1 -1
  94. package/lib/cjs/Editing/Units.d.ts +15 -15
  95. package/lib/cjs/Editing/Units.js +61 -61
  96. package/lib/cjs/Editing/Units.js.map +1 -1
  97. package/lib/cjs/Validation/Diagnostic.d.ts +321 -321
  98. package/lib/cjs/Validation/Diagnostic.js +310 -310
  99. package/lib/cjs/Validation/Diagnostic.js.map +1 -1
  100. package/lib/cjs/Validation/DiagnosticReporter.d.ts +96 -96
  101. package/lib/cjs/Validation/DiagnosticReporter.js +106 -106
  102. package/lib/cjs/Validation/DiagnosticReporter.js.map +1 -1
  103. package/lib/cjs/Validation/ECRules.d.ts +438 -438
  104. package/lib/cjs/Validation/ECRules.js +583 -583
  105. package/lib/cjs/Validation/ECRules.js.map +1 -1
  106. package/lib/cjs/Validation/LoggingDiagnosticReporter.d.ts +13 -13
  107. package/lib/cjs/Validation/LoggingDiagnosticReporter.js +40 -40
  108. package/lib/cjs/Validation/LoggingDiagnosticReporter.js.map +1 -1
  109. package/lib/cjs/Validation/RuleSuppressionSet.d.ts +58 -58
  110. package/lib/cjs/Validation/RuleSuppressionSet.js +9 -9
  111. package/lib/cjs/Validation/RuleSuppressionSet.js.map +1 -1
  112. package/lib/cjs/Validation/Rules.d.ts +64 -64
  113. package/lib/cjs/Validation/Rules.js +9 -9
  114. package/lib/cjs/Validation/Rules.js.map +1 -1
  115. package/lib/cjs/Validation/SchemaChanges.d.ts +607 -607
  116. package/lib/cjs/Validation/SchemaChanges.js +1135 -1135
  117. package/lib/cjs/Validation/SchemaChanges.js.map +1 -1
  118. package/lib/cjs/Validation/SchemaCompareDiagnostics.d.ts +422 -422
  119. package/lib/cjs/Validation/SchemaCompareDiagnostics.js +111 -111
  120. package/lib/cjs/Validation/SchemaCompareDiagnostics.js.map +1 -1
  121. package/lib/cjs/Validation/SchemaCompareReporter.d.ts +11 -11
  122. package/lib/cjs/Validation/SchemaCompareReporter.js +9 -9
  123. package/lib/cjs/Validation/SchemaCompareReporter.js.map +1 -1
  124. package/lib/cjs/Validation/SchemaCompareResultDelegate.d.ts +236 -236
  125. package/lib/cjs/Validation/SchemaCompareResultDelegate.js +348 -348
  126. package/lib/cjs/Validation/SchemaCompareResultDelegate.js.map +1 -1
  127. package/lib/cjs/Validation/SchemaCompareVisitor.d.ts +119 -119
  128. package/lib/cjs/Validation/SchemaCompareVisitor.js +206 -206
  129. package/lib/cjs/Validation/SchemaCompareVisitor.js.map +1 -1
  130. package/lib/cjs/Validation/SchemaComparer.d.ts +171 -171
  131. package/lib/cjs/Validation/SchemaComparer.js +666 -666
  132. package/lib/cjs/Validation/SchemaComparer.js.map +1 -1
  133. package/lib/cjs/Validation/SchemaValidater.d.ts +19 -19
  134. package/lib/cjs/Validation/SchemaValidater.js +61 -61
  135. package/lib/cjs/Validation/SchemaValidater.js.map +1 -1
  136. package/lib/cjs/Validation/SchemaValidationVisitor.d.ts +170 -170
  137. package/lib/cjs/Validation/SchemaValidationVisitor.js +490 -490
  138. package/lib/cjs/Validation/SchemaValidationVisitor.js.map +1 -1
  139. package/lib/cjs/Validation/SchemaWalker.d.ts +22 -22
  140. package/lib/cjs/Validation/SchemaWalker.js +51 -51
  141. package/lib/cjs/Validation/SchemaWalker.js.map +1 -1
  142. package/lib/cjs/ecschema-editing.d.ts +33 -33
  143. package/lib/cjs/ecschema-editing.js +54 -54
  144. package/lib/cjs/ecschema-editing.js.map +1 -1
  145. package/package.json +10 -10
  146. package/public/locales/en/ECSchemaEditing.json +26 -26
@@ -1,439 +1,439 @@
1
- /** @packageDocumentation
2
- * @module Validation
3
- */
4
- import { AnyClass, AnyProperty, CustomAttribute, CustomAttributeContainerProps, EntityClass, Enumeration, RelationshipClass, RelationshipConstraint, Schema } from "@itwin/ecschema-metadata";
5
- import { ClassDiagnostic, CustomAttributeContainerDiagnostic, PropertyDiagnostic, RelationshipConstraintDiagnostic, SchemaDiagnostic, SchemaItemDiagnostic } from "./Diagnostic";
6
- import { IRuleSet } from "./Rules";
7
- /**
8
- * The unique diagnostic codes for ECObjects rules.
9
- *
10
- * To provide meaning to code values, with anticipation
11
- * of future rules for all current EC Types, the following
12
- * value ranges should be used:
13
- *
14
- * - Schema: 000-099
15
- * - Class: 100-199
16
- * - Constant: 200-299
17
- * - CustomAttribute 300-399
18
- * - CustomAttributeClass: 400-499
19
- * - CustomAttributeContainer: 500-599
20
- * - EntityClass: 600-699
21
- * - Enumeration: 700-799
22
- * - Format: 800-899
23
- * - InvertedUnit: 900-999
24
- * - KindOfQuantity: 1000-1099
25
- * - Mixin: 1100-1199
26
- * - Phenomenon: 1200-1299
27
- * - Property: 1300-1399
28
- * - PropertyCategory: 1400-1499
29
- * - RelationshipClass: 1500-1599
30
- * - RelationshipConstraint: 1600-1699
31
- * - StructClass: 1700-1799
32
- * - Unit: 1800-1899
33
- * - UnitSystem: 1900-1999
34
- * @beta
35
- */
36
- export declare const DiagnosticCodes: {
37
- BaseClassIsSealed: string;
38
- BaseClassOfDifferentType: string;
39
- AbstractClassWithNonAbstractBase: string;
40
- CustomAttributeNotOfConcreteClass: string;
41
- CustomAttributeSchemaMustBeReferenced: string;
42
- CustomAttributeClassNotFound: string;
43
- EnumerationTypeUnsupported: string;
44
- MixinAppliedToClassMustDeriveFromConstraint: string;
45
- IncompatibleValueTypePropertyOverride: string;
46
- IncompatibleTypePropertyOverride: string;
47
- IncompatibleUnitPropertyOverride: string;
48
- AbstractConstraintMustNarrowBaseConstraints: string;
49
- DerivedConstraintsMustNarrowBaseConstraints: string;
50
- ConstraintClassesDeriveFromAbstractContraint: string;
51
- AtLeastOneConstraintClassDefined: string;
52
- AbstractConstraintMustExistWithMultipleConstraints: string;
53
- };
54
- /**
55
- * The list of [[IDiagnostic]] implementation classes used by the EC rule implementations.
56
- * @beta
57
- */
58
- export declare const Diagnostics: {
59
- /** EC-001: Required message parameters: schema name, referenced schema name */
60
- SupplementalSchemasCannotBeReferenced: {
61
- new (schema: Schema, messageArgs: [string, string], category?: import("./Diagnostic").DiagnosticCategory): {
62
- readonly code: string;
63
- readonly messageText: string;
64
- readonly schema: Schema;
65
- readonly diagnosticType: import("./Diagnostic").DiagnosticType;
66
- ecDefinition: Schema;
67
- messageArgs?: [string, string] | undefined;
68
- category: import("./Diagnostic").DiagnosticCategory;
69
- };
70
- code: string;
71
- diagnosticType: import("./Diagnostic").DiagnosticType;
72
- };
73
- /** EC-002: Required message parameters: schema name, reference schema alias, first schema reference name, second schema reference name. */
74
- SchemaRefAliasMustBeUnique: {
75
- new (schema: Schema, messageArgs: [string, string, string, string], category?: import("./Diagnostic").DiagnosticCategory): {
76
- readonly code: string;
77
- readonly messageText: string;
78
- readonly schema: Schema;
79
- readonly diagnosticType: import("./Diagnostic").DiagnosticType;
80
- ecDefinition: Schema;
81
- messageArgs?: [string, string, string, string] | undefined;
82
- category: import("./Diagnostic").DiagnosticCategory;
83
- };
84
- code: string;
85
- diagnosticType: import("./Diagnostic").DiagnosticType;
86
- };
87
- /** EC-003: Required message parameters: schema name, cycle text */
88
- ReferenceCyclesNotAllowed: {
89
- new (schema: Schema, messageArgs: [string, string], category?: import("./Diagnostic").DiagnosticCategory): {
90
- readonly code: string;
91
- readonly messageText: string;
92
- readonly schema: Schema;
93
- readonly diagnosticType: import("./Diagnostic").DiagnosticType;
94
- ecDefinition: Schema;
95
- messageArgs?: [string, string] | undefined;
96
- category: import("./Diagnostic").DiagnosticCategory;
97
- };
98
- code: string;
99
- diagnosticType: import("./Diagnostic").DiagnosticType;
100
- };
101
- /** EC-100: Required message parameters: childClass.FullName, baseClass.FullName */
102
- BaseClassIsSealed: {
103
- new (ecClass: AnyClass, messageArgs: [string, string], category?: import("./Diagnostic").DiagnosticCategory): {
104
- readonly code: string;
105
- readonly messageText: string;
106
- readonly schema: Schema;
107
- readonly diagnosticType: import("./Diagnostic").DiagnosticType;
108
- ecDefinition: AnyClass;
109
- messageArgs?: [string, string] | undefined;
110
- category: import("./Diagnostic").DiagnosticCategory;
111
- };
112
- diagnosticType: import("./Diagnostic").DiagnosticType;
113
- };
114
- /** EC-101: Required message parameters: childClass.FullName, baseClass.FullName, baseClass.schemaItemType */
115
- BaseClassIsOfDifferentType: {
116
- new (ecClass: AnyClass, messageArgs: [string, string, string], category?: import("./Diagnostic").DiagnosticCategory): {
117
- readonly code: string;
118
- readonly messageText: string;
119
- readonly schema: Schema;
120
- readonly diagnosticType: import("./Diagnostic").DiagnosticType;
121
- ecDefinition: AnyClass;
122
- messageArgs?: [string, string, string] | undefined;
123
- category: import("./Diagnostic").DiagnosticCategory;
124
- };
125
- diagnosticType: import("./Diagnostic").DiagnosticType;
126
- };
127
- /** EC-102: Required message parameters: childClass.FullName, baseClass.FullName */
128
- AbstractClassWithNonAbstractBase: {
129
- new (ecClass: AnyClass, messageArgs: [string, string], category?: import("./Diagnostic").DiagnosticCategory): {
130
- readonly code: string;
131
- readonly messageText: string;
132
- readonly schema: Schema;
133
- readonly diagnosticType: import("./Diagnostic").DiagnosticType;
134
- ecDefinition: AnyClass;
135
- messageArgs?: [string, string] | undefined;
136
- category: import("./Diagnostic").DiagnosticCategory;
137
- };
138
- diagnosticType: import("./Diagnostic").DiagnosticType;
139
- };
140
- /** EC-500: Required message parameters: CustomAttribute container name and CustomAttributeClass name. */
141
- CustomAttributeNotOfConcreteClass: {
142
- new (container: CustomAttributeContainerProps, messageArgs: [string, string], category?: import("./Diagnostic").DiagnosticCategory): {
143
- readonly code: string;
144
- readonly messageText: string;
145
- readonly schema: Schema;
146
- readonly diagnosticType: import("./Diagnostic").DiagnosticType;
147
- ecDefinition: CustomAttributeContainerProps;
148
- messageArgs?: [string, string] | undefined;
149
- category: import("./Diagnostic").DiagnosticCategory;
150
- };
151
- };
152
- /** EC-501: Required message parameters: CustomAttribute container name, CustomAttributeClass name, CustomAttributeClass Schema name. */
153
- CustomAttributeSchemaMustBeReferenced: {
154
- new (container: CustomAttributeContainerProps, messageArgs: [string, string], category?: import("./Diagnostic").DiagnosticCategory): {
155
- readonly code: string;
156
- readonly messageText: string;
157
- readonly schema: Schema;
158
- readonly diagnosticType: import("./Diagnostic").DiagnosticType;
159
- ecDefinition: CustomAttributeContainerProps;
160
- messageArgs?: [string, string] | undefined;
161
- category: import("./Diagnostic").DiagnosticCategory;
162
- };
163
- };
164
- /** EC-502: Required message parameters: CustomAttribute container name and CustomAttributeClass name. */
165
- CustomAttributeClassNotFound: {
166
- new (container: CustomAttributeContainerProps, messageArgs: [string, string], category?: import("./Diagnostic").DiagnosticCategory): {
167
- readonly code: string;
168
- readonly messageText: string;
169
- readonly schema: Schema;
170
- readonly diagnosticType: import("./Diagnostic").DiagnosticType;
171
- ecDefinition: CustomAttributeContainerProps;
172
- messageArgs?: [string, string] | undefined;
173
- category: import("./Diagnostic").DiagnosticCategory;
174
- };
175
- };
176
- /** EC-700: Required message parameters: Enumeration name */
177
- EnumerationTypeUnsupported: {
178
- new (ecDefinition: import("@itwin/ecschema-metadata").SchemaItem, messageArgs: [string], category?: import("./Diagnostic").DiagnosticCategory): {
179
- readonly code: string;
180
- readonly messageText: string;
181
- readonly schema: Schema;
182
- readonly diagnosticType: import("./Diagnostic").DiagnosticType;
183
- ecDefinition: Enumeration;
184
- messageArgs?: [string] | undefined;
185
- category: import("./Diagnostic").DiagnosticCategory;
186
- };
187
- diagnosticType: import("./Diagnostic").DiagnosticType;
188
- };
189
- /** EC-1100: Required message parameters: mixin class fullName, class fullName, applies to constraint class fullName */
190
- MixinAppliedToClassMustDeriveFromConstraint: {
191
- new (ecDefinition: import("@itwin/ecschema-metadata").SchemaItem, messageArgs: [string, string, string], category?: import("./Diagnostic").DiagnosticCategory): {
192
- readonly code: string;
193
- readonly messageText: string;
194
- readonly schema: Schema;
195
- readonly diagnosticType: import("./Diagnostic").DiagnosticType;
196
- ecDefinition: EntityClass;
197
- messageArgs?: [string, string, string] | undefined;
198
- category: import("./Diagnostic").DiagnosticCategory;
199
- };
200
- diagnosticType: import("./Diagnostic").DiagnosticType;
201
- };
202
- /** EC-1300: Required message parameters: childClass.FullName, property name, baseClass.FullName, base value type, child value type */
203
- IncompatibleValueTypePropertyOverride: {
204
- new (property: AnyProperty, messageArgs?: [string, string, string, string, string] | undefined, category?: import("./Diagnostic").DiagnosticCategory): {
205
- readonly code: string;
206
- readonly messageText: string;
207
- readonly schema: Schema;
208
- readonly diagnosticType: import("./Diagnostic").DiagnosticType;
209
- ecDefinition: AnyProperty;
210
- messageArgs?: [string, string, string, string, string] | undefined;
211
- category: import("./Diagnostic").DiagnosticCategory;
212
- };
213
- code: string;
214
- };
215
- /** EC-1301: Required message parameters: childClass.FullName, property name, baseClass.FullName, base property type, child property type */
216
- IncompatibleTypePropertyOverride: {
217
- new (property: AnyProperty, messageArgs?: [string, string, string, string, string] | undefined, category?: import("./Diagnostic").DiagnosticCategory): {
218
- readonly code: string;
219
- readonly messageText: string;
220
- readonly schema: Schema;
221
- readonly diagnosticType: import("./Diagnostic").DiagnosticType;
222
- ecDefinition: AnyProperty;
223
- messageArgs?: [string, string, string, string, string] | undefined;
224
- category: import("./Diagnostic").DiagnosticCategory;
225
- };
226
- code: string;
227
- };
228
- /** EC-1302: Required message parameters: childClass.Name, property name, baseClass.Name, baseClass Koq name, baseClass Koq persistence unit name, child class Koq persistence unit name, child class Koq name */
229
- IncompatibleUnitPropertyOverride: {
230
- new (property: AnyProperty, messageArgs?: [string, string, string, string, string, string, string] | undefined, category?: import("./Diagnostic").DiagnosticCategory): {
231
- readonly code: string;
232
- readonly messageText: string;
233
- readonly schema: Schema;
234
- readonly diagnosticType: import("./Diagnostic").DiagnosticType;
235
- ecDefinition: AnyProperty;
236
- messageArgs?: [string, string, string, string, string, string, string] | undefined;
237
- category: import("./Diagnostic").DiagnosticCategory;
238
- };
239
- code: string;
240
- };
241
- /** EC-1303: Required message parameters: property.fullName, navigation relationship.fullName */
242
- NavigationRelationshipMustBeRoot: {
243
- new (property: AnyProperty, messageArgs?: [string, string] | undefined, category?: import("./Diagnostic").DiagnosticCategory): {
244
- readonly code: string;
245
- readonly messageText: string;
246
- readonly schema: Schema;
247
- readonly diagnosticType: import("./Diagnostic").DiagnosticType;
248
- ecDefinition: AnyProperty;
249
- messageArgs?: [string, string] | undefined;
250
- category: import("./Diagnostic").DiagnosticCategory;
251
- };
252
- code: string;
253
- };
254
- /** EC-1304: Required message parameters: property.fullName, navigation relationship.fullName */
255
- NavigationTargetMustHaveSingularMultiplicity: {
256
- new (property: AnyProperty, messageArgs?: [string, string, string] | undefined, category?: import("./Diagnostic").DiagnosticCategory): {
257
- readonly code: string;
258
- readonly messageText: string;
259
- readonly schema: Schema;
260
- readonly diagnosticType: import("./Diagnostic").DiagnosticType;
261
- ecDefinition: AnyProperty;
262
- messageArgs?: [string, string, string] | undefined;
263
- category: import("./Diagnostic").DiagnosticCategory;
264
- };
265
- code: string;
266
- };
267
- /** EC-1305: Required message parameters: property.fullName, navigation relationship.fullName */
268
- NavigationRelationshipAbstractConstraintEntityOrMixin: {
269
- new (property: AnyProperty, messageArgs?: [string, string] | undefined, category?: import("./Diagnostic").DiagnosticCategory): {
270
- readonly code: string;
271
- readonly messageText: string;
272
- readonly schema: Schema;
273
- readonly diagnosticType: import("./Diagnostic").DiagnosticType;
274
- ecDefinition: AnyProperty;
275
- messageArgs?: [string, string] | undefined;
276
- category: import("./Diagnostic").DiagnosticCategory;
277
- };
278
- code: string;
279
- };
280
- /** EC-1306: Required message parameters: class name, property name, navigation relationship.fullName */
281
- NavigationClassMustBeAConstraintClassOfRelationship: {
282
- new (property: AnyProperty, messageArgs?: [string, string, string, string] | undefined, category?: import("./Diagnostic").DiagnosticCategory): {
283
- readonly code: string;
284
- readonly messageText: string;
285
- readonly schema: Schema;
286
- readonly diagnosticType: import("./Diagnostic").DiagnosticType;
287
- ecDefinition: AnyProperty;
288
- messageArgs?: [string, string, string, string] | undefined;
289
- category: import("./Diagnostic").DiagnosticCategory;
290
- };
291
- code: string;
292
- };
293
- /** EC-1500: Required message parameters: abstract constraint class name, relationship end (source/target), relationship name, base relationship name */
294
- AbstractConstraintMustNarrowBaseConstraints: {
295
- new (ecDefinition: import("@itwin/ecschema-metadata").SchemaItem, messageArgs: [string, string, string, string], category?: import("./Diagnostic").DiagnosticCategory): {
296
- readonly code: string;
297
- readonly messageText: string;
298
- readonly schema: Schema;
299
- readonly diagnosticType: import("./Diagnostic").DiagnosticType;
300
- ecDefinition: RelationshipClass;
301
- messageArgs?: [string, string, string, string] | undefined;
302
- category: import("./Diagnostic").DiagnosticCategory;
303
- };
304
- diagnosticType: import("./Diagnostic").DiagnosticType;
305
- };
306
- /** EC-1501: Required message parameters: constraint class name, relationship end (source/target), relationship name, base relationship name */
307
- DerivedConstraintsMustNarrowBaseConstraints: {
308
- new (ecDefinition: import("@itwin/ecschema-metadata").SchemaItem, messageArgs: [string, string, string, string], category?: import("./Diagnostic").DiagnosticCategory): {
309
- readonly code: string;
310
- readonly messageText: string;
311
- readonly schema: Schema;
312
- readonly diagnosticType: import("./Diagnostic").DiagnosticType;
313
- ecDefinition: RelationshipClass;
314
- messageArgs?: [string, string, string, string] | undefined;
315
- category: import("./Diagnostic").DiagnosticCategory;
316
- };
317
- diagnosticType: import("./Diagnostic").DiagnosticType;
318
- };
319
- /** EC-1502: Required message parameters: constraint class name, relationship end (source/target), relationship name, abstract constraint class name */
320
- ConstraintClassesDeriveFromAbstractContraint: {
321
- new (ecDefinition: import("@itwin/ecschema-metadata").SchemaItem, messageArgs: [string, string, string, string], category?: import("./Diagnostic").DiagnosticCategory): {
322
- readonly code: string;
323
- readonly messageText: string;
324
- readonly schema: Schema;
325
- readonly diagnosticType: import("./Diagnostic").DiagnosticType;
326
- ecDefinition: RelationshipClass;
327
- messageArgs?: [string, string, string, string] | undefined;
328
- category: import("./Diagnostic").DiagnosticCategory;
329
- };
330
- diagnosticType: import("./Diagnostic").DiagnosticType;
331
- };
332
- /** EC-1600: Required message parameters: relationship end (source/target), relationship name */
333
- AtLeastOneConstraintClassDefined: {
334
- new (constraint: RelationshipConstraint, messageArgs: [string, string], category?: import("./Diagnostic").DiagnosticCategory): {
335
- readonly code: string;
336
- readonly messageText: string;
337
- readonly schema: Schema;
338
- readonly diagnosticType: import("./Diagnostic").DiagnosticType;
339
- ecDefinition: RelationshipConstraint;
340
- messageArgs?: [string, string] | undefined;
341
- category: import("./Diagnostic").DiagnosticCategory;
342
- };
343
- };
344
- /** EC-1601: Required message parameters: relationship end (source/target), relationship name */
345
- AbstractConstraintMustExistWithMultipleConstraints: {
346
- new (constraint: RelationshipConstraint, messageArgs: [string, string], category?: import("./Diagnostic").DiagnosticCategory): {
347
- readonly code: string;
348
- readonly messageText: string;
349
- readonly schema: Schema;
350
- readonly diagnosticType: import("./Diagnostic").DiagnosticType;
351
- ecDefinition: RelationshipConstraint;
352
- messageArgs?: [string, string] | undefined;
353
- category: import("./Diagnostic").DiagnosticCategory;
354
- };
355
- };
356
- };
357
- /**
358
- * All schema validation rules that fall under the category of ECObjects.
359
- * @beta
360
- */
361
- export declare const ECRuleSet: IRuleSet;
362
- /**
363
- * Validates schema references against multiple EC rules.
364
- * @param schema The schema to validate.
365
- */
366
- export declare function validateSchemaReferences(schema: Schema): AsyncIterable<SchemaDiagnostic<any[]>>;
367
- export declare function validateSchemaReferencesSync(schema: Schema): Iterable<SchemaDiagnostic<any[]>>;
368
- /**
369
- * EC Rule: Sealed classes cannot be a base class.
370
- * @internal
371
- */
372
- export declare function baseClassIsSealed(ecClass: AnyClass): AsyncIterable<ClassDiagnostic<any[]>>;
373
- /**
374
- * EC Rule: Base and child class must be of the same type (i.e. Entity, Mixin, Relationship, etc.)
375
- * @internal
376
- */
377
- export declare function baseClassIsOfDifferentType(ecClass: AnyClass): AsyncIterable<ClassDiagnostic<any[]>>;
378
- /**
379
- * EC Rule: Abstract class cannot derive from a non-abstract base class.
380
- * @internal
381
- */
382
- export declare function abstractClassWithNonAbstractBase(ecClass: AnyClass): AsyncIterable<ClassDiagnostic<any[]>>;
383
- /**
384
- * EC Rule: When overriding a class primitive property, the child and base property must be of the same type (string, number, etc...).
385
- * @internal
386
- */
387
- export declare function incompatibleValueTypePropertyOverride(property: AnyProperty): AsyncIterable<PropertyDiagnostic<any[]>>;
388
- /**
389
- * EC Rule: When overriding a class property, the child and base property must be of the same property type (primitive, struct, enumeration, etc...).
390
- * @internal
391
- */
392
- export declare function incompatibleTypePropertyOverride(property: AnyProperty): AsyncIterable<PropertyDiagnostic<any[]>>;
393
- /**
394
- * EC Rule: When overriding a kindOfQuantity property, the child and base property units must be the same.
395
- * @internal
396
- */
397
- export declare function incompatibleUnitPropertyOverride(property: AnyProperty): AsyncIterable<PropertyDiagnostic<any[]>>;
398
- /** Validates Navigation Properties. EC Rules: 1303, 1304 */
399
- export declare function validateNavigationProperty(property: AnyProperty): AsyncIterable<PropertyDiagnostic<any[]>>;
400
- /**
401
- * EC Rule: When overriding a RelationshipClass, the derived abstract constraint must narrow the base constraint classes.
402
- * @internal
403
- */
404
- export declare function abstractConstraintMustNarrowBaseConstraints(ecClass: RelationshipClass): AsyncIterable<SchemaItemDiagnostic<RelationshipClass, any[]>>;
405
- /**
406
- * EC Rule: When overriding a RelationshipClass, derived constraint classes must narrow base constraint classes.
407
- * @internal
408
- */
409
- export declare function derivedConstraintsMustNarrowBaseConstraints(ecClass: RelationshipClass): AsyncIterable<SchemaItemDiagnostic<RelationshipClass, any[]>>;
410
- /**
411
- * EC Rule: All constraint classes must have a common base class specified in the abstract constraint.
412
- * @internal
413
- */
414
- export declare function constraintClassesDeriveFromAbstractContraint(ecClass: RelationshipClass): AsyncIterable<SchemaItemDiagnostic<RelationshipClass, any[]>>;
415
- /**
416
- * EC Rule: At least on concrete constraint class must be defined in the list of constraint classes.
417
- * @internal
418
- */
419
- export declare function atLeastOneConstraintClassDefined(constraint: RelationshipConstraint): AsyncIterable<RelationshipConstraintDiagnostic<any[]>>;
420
- /**
421
- * EC Rule: If multiple constraints exist, an abstract constraint must be defined.
422
- * @internal
423
- */
424
- export declare function abstractConstraintMustExistWithMultipleConstraints(constraint: RelationshipConstraint): AsyncIterable<RelationshipConstraintDiagnostic<any[]>>;
425
- /**
426
- * EC Rule: Enumeration type must be a string or integer
427
- * @internal
428
- */
429
- export declare function enumerationTypeUnsupported(enumeration: Enumeration): AsyncIterable<SchemaItemDiagnostic<Enumeration, any[]>>;
430
- /**
431
- * EC Rule: Mixin applied to class must derived from the Mixin appliesTo constraint.
432
- * @internal
433
- */
434
- export declare function mixinAppliedToClassMustDeriveFromConstraint(entityClass: EntityClass): AsyncIterable<SchemaItemDiagnostic<EntityClass, any[]>>;
435
- /**
436
- * Validates a custom attribute instance and yields EC-500, EC-501, and EC-502 rule violations.
437
- */
438
- export declare function validateCustomAttributeInstance(container: CustomAttributeContainerProps, customAttribute: CustomAttribute): AsyncIterable<CustomAttributeContainerDiagnostic<any[]>>;
1
+ /** @packageDocumentation
2
+ * @module Validation
3
+ */
4
+ import { AnyClass, AnyProperty, CustomAttribute, CustomAttributeContainerProps, EntityClass, Enumeration, RelationshipClass, RelationshipConstraint, Schema } from "@itwin/ecschema-metadata";
5
+ import { ClassDiagnostic, CustomAttributeContainerDiagnostic, PropertyDiagnostic, RelationshipConstraintDiagnostic, SchemaDiagnostic, SchemaItemDiagnostic } from "./Diagnostic";
6
+ import { IRuleSet } from "./Rules";
7
+ /**
8
+ * The unique diagnostic codes for ECObjects rules.
9
+ *
10
+ * To provide meaning to code values, with anticipation
11
+ * of future rules for all current EC Types, the following
12
+ * value ranges should be used:
13
+ *
14
+ * - Schema: 000-099
15
+ * - Class: 100-199
16
+ * - Constant: 200-299
17
+ * - CustomAttribute 300-399
18
+ * - CustomAttributeClass: 400-499
19
+ * - CustomAttributeContainer: 500-599
20
+ * - EntityClass: 600-699
21
+ * - Enumeration: 700-799
22
+ * - Format: 800-899
23
+ * - InvertedUnit: 900-999
24
+ * - KindOfQuantity: 1000-1099
25
+ * - Mixin: 1100-1199
26
+ * - Phenomenon: 1200-1299
27
+ * - Property: 1300-1399
28
+ * - PropertyCategory: 1400-1499
29
+ * - RelationshipClass: 1500-1599
30
+ * - RelationshipConstraint: 1600-1699
31
+ * - StructClass: 1700-1799
32
+ * - Unit: 1800-1899
33
+ * - UnitSystem: 1900-1999
34
+ * @beta
35
+ */
36
+ export declare const DiagnosticCodes: {
37
+ BaseClassIsSealed: string;
38
+ BaseClassOfDifferentType: string;
39
+ AbstractClassWithNonAbstractBase: string;
40
+ CustomAttributeNotOfConcreteClass: string;
41
+ CustomAttributeSchemaMustBeReferenced: string;
42
+ CustomAttributeClassNotFound: string;
43
+ EnumerationTypeUnsupported: string;
44
+ MixinAppliedToClassMustDeriveFromConstraint: string;
45
+ IncompatibleValueTypePropertyOverride: string;
46
+ IncompatibleTypePropertyOverride: string;
47
+ IncompatibleUnitPropertyOverride: string;
48
+ AbstractConstraintMustNarrowBaseConstraints: string;
49
+ DerivedConstraintsMustNarrowBaseConstraints: string;
50
+ ConstraintClassesDeriveFromAbstractContraint: string;
51
+ AtLeastOneConstraintClassDefined: string;
52
+ AbstractConstraintMustExistWithMultipleConstraints: string;
53
+ };
54
+ /**
55
+ * The list of [[IDiagnostic]] implementation classes used by the EC rule implementations.
56
+ * @beta
57
+ */
58
+ export declare const Diagnostics: {
59
+ /** EC-001: Required message parameters: schema name, referenced schema name */
60
+ SupplementalSchemasCannotBeReferenced: {
61
+ new (schema: Schema, messageArgs: [string, string], category?: import("./Diagnostic").DiagnosticCategory): {
62
+ readonly code: string;
63
+ readonly messageText: string;
64
+ readonly schema: Schema;
65
+ readonly diagnosticType: import("./Diagnostic").DiagnosticType;
66
+ ecDefinition: Schema;
67
+ messageArgs?: [string, string] | undefined;
68
+ category: import("./Diagnostic").DiagnosticCategory;
69
+ };
70
+ code: string;
71
+ diagnosticType: import("./Diagnostic").DiagnosticType;
72
+ };
73
+ /** EC-002: Required message parameters: schema name, reference schema alias, first schema reference name, second schema reference name. */
74
+ SchemaRefAliasMustBeUnique: {
75
+ new (schema: Schema, messageArgs: [string, string, string, string], category?: import("./Diagnostic").DiagnosticCategory): {
76
+ readonly code: string;
77
+ readonly messageText: string;
78
+ readonly schema: Schema;
79
+ readonly diagnosticType: import("./Diagnostic").DiagnosticType;
80
+ ecDefinition: Schema;
81
+ messageArgs?: [string, string, string, string] | undefined;
82
+ category: import("./Diagnostic").DiagnosticCategory;
83
+ };
84
+ code: string;
85
+ diagnosticType: import("./Diagnostic").DiagnosticType;
86
+ };
87
+ /** EC-003: Required message parameters: schema name, cycle text */
88
+ ReferenceCyclesNotAllowed: {
89
+ new (schema: Schema, messageArgs: [string, string], category?: import("./Diagnostic").DiagnosticCategory): {
90
+ readonly code: string;
91
+ readonly messageText: string;
92
+ readonly schema: Schema;
93
+ readonly diagnosticType: import("./Diagnostic").DiagnosticType;
94
+ ecDefinition: Schema;
95
+ messageArgs?: [string, string] | undefined;
96
+ category: import("./Diagnostic").DiagnosticCategory;
97
+ };
98
+ code: string;
99
+ diagnosticType: import("./Diagnostic").DiagnosticType;
100
+ };
101
+ /** EC-100: Required message parameters: childClass.FullName, baseClass.FullName */
102
+ BaseClassIsSealed: {
103
+ new (ecClass: AnyClass, messageArgs: [string, string], category?: import("./Diagnostic").DiagnosticCategory): {
104
+ readonly code: string;
105
+ readonly messageText: string;
106
+ readonly schema: Schema;
107
+ readonly diagnosticType: import("./Diagnostic").DiagnosticType;
108
+ ecDefinition: AnyClass;
109
+ messageArgs?: [string, string] | undefined;
110
+ category: import("./Diagnostic").DiagnosticCategory;
111
+ };
112
+ diagnosticType: import("./Diagnostic").DiagnosticType;
113
+ };
114
+ /** EC-101: Required message parameters: childClass.FullName, baseClass.FullName, baseClass.schemaItemType */
115
+ BaseClassIsOfDifferentType: {
116
+ new (ecClass: AnyClass, messageArgs: [string, string, string], category?: import("./Diagnostic").DiagnosticCategory): {
117
+ readonly code: string;
118
+ readonly messageText: string;
119
+ readonly schema: Schema;
120
+ readonly diagnosticType: import("./Diagnostic").DiagnosticType;
121
+ ecDefinition: AnyClass;
122
+ messageArgs?: [string, string, string] | undefined;
123
+ category: import("./Diagnostic").DiagnosticCategory;
124
+ };
125
+ diagnosticType: import("./Diagnostic").DiagnosticType;
126
+ };
127
+ /** EC-102: Required message parameters: childClass.FullName, baseClass.FullName */
128
+ AbstractClassWithNonAbstractBase: {
129
+ new (ecClass: AnyClass, messageArgs: [string, string], category?: import("./Diagnostic").DiagnosticCategory): {
130
+ readonly code: string;
131
+ readonly messageText: string;
132
+ readonly schema: Schema;
133
+ readonly diagnosticType: import("./Diagnostic").DiagnosticType;
134
+ ecDefinition: AnyClass;
135
+ messageArgs?: [string, string] | undefined;
136
+ category: import("./Diagnostic").DiagnosticCategory;
137
+ };
138
+ diagnosticType: import("./Diagnostic").DiagnosticType;
139
+ };
140
+ /** EC-500: Required message parameters: CustomAttribute container name and CustomAttributeClass name. */
141
+ CustomAttributeNotOfConcreteClass: {
142
+ new (container: CustomAttributeContainerProps, messageArgs: [string, string], category?: import("./Diagnostic").DiagnosticCategory): {
143
+ readonly code: string;
144
+ readonly messageText: string;
145
+ readonly schema: Schema;
146
+ readonly diagnosticType: import("./Diagnostic").DiagnosticType;
147
+ ecDefinition: CustomAttributeContainerProps;
148
+ messageArgs?: [string, string] | undefined;
149
+ category: import("./Diagnostic").DiagnosticCategory;
150
+ };
151
+ };
152
+ /** EC-501: Required message parameters: CustomAttribute container name, CustomAttributeClass name, CustomAttributeClass Schema name. */
153
+ CustomAttributeSchemaMustBeReferenced: {
154
+ new (container: CustomAttributeContainerProps, messageArgs: [string, string], category?: import("./Diagnostic").DiagnosticCategory): {
155
+ readonly code: string;
156
+ readonly messageText: string;
157
+ readonly schema: Schema;
158
+ readonly diagnosticType: import("./Diagnostic").DiagnosticType;
159
+ ecDefinition: CustomAttributeContainerProps;
160
+ messageArgs?: [string, string] | undefined;
161
+ category: import("./Diagnostic").DiagnosticCategory;
162
+ };
163
+ };
164
+ /** EC-502: Required message parameters: CustomAttribute container name and CustomAttributeClass name. */
165
+ CustomAttributeClassNotFound: {
166
+ new (container: CustomAttributeContainerProps, messageArgs: [string, string], category?: import("./Diagnostic").DiagnosticCategory): {
167
+ readonly code: string;
168
+ readonly messageText: string;
169
+ readonly schema: Schema;
170
+ readonly diagnosticType: import("./Diagnostic").DiagnosticType;
171
+ ecDefinition: CustomAttributeContainerProps;
172
+ messageArgs?: [string, string] | undefined;
173
+ category: import("./Diagnostic").DiagnosticCategory;
174
+ };
175
+ };
176
+ /** EC-700: Required message parameters: Enumeration name */
177
+ EnumerationTypeUnsupported: {
178
+ new (ecDefinition: import("@itwin/ecschema-metadata").SchemaItem, messageArgs: [string], category?: import("./Diagnostic").DiagnosticCategory): {
179
+ readonly code: string;
180
+ readonly messageText: string;
181
+ readonly schema: Schema;
182
+ readonly diagnosticType: import("./Diagnostic").DiagnosticType;
183
+ ecDefinition: Enumeration;
184
+ messageArgs?: [string] | undefined;
185
+ category: import("./Diagnostic").DiagnosticCategory;
186
+ };
187
+ diagnosticType: import("./Diagnostic").DiagnosticType;
188
+ };
189
+ /** EC-1100: Required message parameters: mixin class fullName, class fullName, applies to constraint class fullName */
190
+ MixinAppliedToClassMustDeriveFromConstraint: {
191
+ new (ecDefinition: import("@itwin/ecschema-metadata").SchemaItem, messageArgs: [string, string, string], category?: import("./Diagnostic").DiagnosticCategory): {
192
+ readonly code: string;
193
+ readonly messageText: string;
194
+ readonly schema: Schema;
195
+ readonly diagnosticType: import("./Diagnostic").DiagnosticType;
196
+ ecDefinition: EntityClass;
197
+ messageArgs?: [string, string, string] | undefined;
198
+ category: import("./Diagnostic").DiagnosticCategory;
199
+ };
200
+ diagnosticType: import("./Diagnostic").DiagnosticType;
201
+ };
202
+ /** EC-1300: Required message parameters: childClass.FullName, property name, baseClass.FullName, base value type, child value type */
203
+ IncompatibleValueTypePropertyOverride: {
204
+ new (property: AnyProperty, messageArgs?: [string, string, string, string, string] | undefined, category?: import("./Diagnostic").DiagnosticCategory): {
205
+ readonly code: string;
206
+ readonly messageText: string;
207
+ readonly schema: Schema;
208
+ readonly diagnosticType: import("./Diagnostic").DiagnosticType;
209
+ ecDefinition: AnyProperty;
210
+ messageArgs?: [string, string, string, string, string] | undefined;
211
+ category: import("./Diagnostic").DiagnosticCategory;
212
+ };
213
+ code: string;
214
+ };
215
+ /** EC-1301: Required message parameters: childClass.FullName, property name, baseClass.FullName, base property type, child property type */
216
+ IncompatibleTypePropertyOverride: {
217
+ new (property: AnyProperty, messageArgs?: [string, string, string, string, string] | undefined, category?: import("./Diagnostic").DiagnosticCategory): {
218
+ readonly code: string;
219
+ readonly messageText: string;
220
+ readonly schema: Schema;
221
+ readonly diagnosticType: import("./Diagnostic").DiagnosticType;
222
+ ecDefinition: AnyProperty;
223
+ messageArgs?: [string, string, string, string, string] | undefined;
224
+ category: import("./Diagnostic").DiagnosticCategory;
225
+ };
226
+ code: string;
227
+ };
228
+ /** EC-1302: Required message parameters: childClass.Name, property name, baseClass.Name, baseClass Koq name, baseClass Koq persistence unit name, child class Koq persistence unit name, child class Koq name */
229
+ IncompatibleUnitPropertyOverride: {
230
+ new (property: AnyProperty, messageArgs?: [string, string, string, string, string, string, string] | undefined, category?: import("./Diagnostic").DiagnosticCategory): {
231
+ readonly code: string;
232
+ readonly messageText: string;
233
+ readonly schema: Schema;
234
+ readonly diagnosticType: import("./Diagnostic").DiagnosticType;
235
+ ecDefinition: AnyProperty;
236
+ messageArgs?: [string, string, string, string, string, string, string] | undefined;
237
+ category: import("./Diagnostic").DiagnosticCategory;
238
+ };
239
+ code: string;
240
+ };
241
+ /** EC-1303: Required message parameters: property.fullName, navigation relationship.fullName */
242
+ NavigationRelationshipMustBeRoot: {
243
+ new (property: AnyProperty, messageArgs?: [string, string] | undefined, category?: import("./Diagnostic").DiagnosticCategory): {
244
+ readonly code: string;
245
+ readonly messageText: string;
246
+ readonly schema: Schema;
247
+ readonly diagnosticType: import("./Diagnostic").DiagnosticType;
248
+ ecDefinition: AnyProperty;
249
+ messageArgs?: [string, string] | undefined;
250
+ category: import("./Diagnostic").DiagnosticCategory;
251
+ };
252
+ code: string;
253
+ };
254
+ /** EC-1304: Required message parameters: property.fullName, navigation relationship.fullName */
255
+ NavigationTargetMustHaveSingularMultiplicity: {
256
+ new (property: AnyProperty, messageArgs?: [string, string, string] | undefined, category?: import("./Diagnostic").DiagnosticCategory): {
257
+ readonly code: string;
258
+ readonly messageText: string;
259
+ readonly schema: Schema;
260
+ readonly diagnosticType: import("./Diagnostic").DiagnosticType;
261
+ ecDefinition: AnyProperty;
262
+ messageArgs?: [string, string, string] | undefined;
263
+ category: import("./Diagnostic").DiagnosticCategory;
264
+ };
265
+ code: string;
266
+ };
267
+ /** EC-1305: Required message parameters: property.fullName, navigation relationship.fullName */
268
+ NavigationRelationshipAbstractConstraintEntityOrMixin: {
269
+ new (property: AnyProperty, messageArgs?: [string, string] | undefined, category?: import("./Diagnostic").DiagnosticCategory): {
270
+ readonly code: string;
271
+ readonly messageText: string;
272
+ readonly schema: Schema;
273
+ readonly diagnosticType: import("./Diagnostic").DiagnosticType;
274
+ ecDefinition: AnyProperty;
275
+ messageArgs?: [string, string] | undefined;
276
+ category: import("./Diagnostic").DiagnosticCategory;
277
+ };
278
+ code: string;
279
+ };
280
+ /** EC-1306: Required message parameters: class name, property name, navigation relationship.fullName */
281
+ NavigationClassMustBeAConstraintClassOfRelationship: {
282
+ new (property: AnyProperty, messageArgs?: [string, string, string, string] | undefined, category?: import("./Diagnostic").DiagnosticCategory): {
283
+ readonly code: string;
284
+ readonly messageText: string;
285
+ readonly schema: Schema;
286
+ readonly diagnosticType: import("./Diagnostic").DiagnosticType;
287
+ ecDefinition: AnyProperty;
288
+ messageArgs?: [string, string, string, string] | undefined;
289
+ category: import("./Diagnostic").DiagnosticCategory;
290
+ };
291
+ code: string;
292
+ };
293
+ /** EC-1500: Required message parameters: abstract constraint class name, relationship end (source/target), relationship name, base relationship name */
294
+ AbstractConstraintMustNarrowBaseConstraints: {
295
+ new (ecDefinition: import("@itwin/ecschema-metadata").SchemaItem, messageArgs: [string, string, string, string], category?: import("./Diagnostic").DiagnosticCategory): {
296
+ readonly code: string;
297
+ readonly messageText: string;
298
+ readonly schema: Schema;
299
+ readonly diagnosticType: import("./Diagnostic").DiagnosticType;
300
+ ecDefinition: RelationshipClass;
301
+ messageArgs?: [string, string, string, string] | undefined;
302
+ category: import("./Diagnostic").DiagnosticCategory;
303
+ };
304
+ diagnosticType: import("./Diagnostic").DiagnosticType;
305
+ };
306
+ /** EC-1501: Required message parameters: constraint class name, relationship end (source/target), relationship name, base relationship name */
307
+ DerivedConstraintsMustNarrowBaseConstraints: {
308
+ new (ecDefinition: import("@itwin/ecschema-metadata").SchemaItem, messageArgs: [string, string, string, string], category?: import("./Diagnostic").DiagnosticCategory): {
309
+ readonly code: string;
310
+ readonly messageText: string;
311
+ readonly schema: Schema;
312
+ readonly diagnosticType: import("./Diagnostic").DiagnosticType;
313
+ ecDefinition: RelationshipClass;
314
+ messageArgs?: [string, string, string, string] | undefined;
315
+ category: import("./Diagnostic").DiagnosticCategory;
316
+ };
317
+ diagnosticType: import("./Diagnostic").DiagnosticType;
318
+ };
319
+ /** EC-1502: Required message parameters: constraint class name, relationship end (source/target), relationship name, abstract constraint class name */
320
+ ConstraintClassesDeriveFromAbstractContraint: {
321
+ new (ecDefinition: import("@itwin/ecschema-metadata").SchemaItem, messageArgs: [string, string, string, string], category?: import("./Diagnostic").DiagnosticCategory): {
322
+ readonly code: string;
323
+ readonly messageText: string;
324
+ readonly schema: Schema;
325
+ readonly diagnosticType: import("./Diagnostic").DiagnosticType;
326
+ ecDefinition: RelationshipClass;
327
+ messageArgs?: [string, string, string, string] | undefined;
328
+ category: import("./Diagnostic").DiagnosticCategory;
329
+ };
330
+ diagnosticType: import("./Diagnostic").DiagnosticType;
331
+ };
332
+ /** EC-1600: Required message parameters: relationship end (source/target), relationship name */
333
+ AtLeastOneConstraintClassDefined: {
334
+ new (constraint: RelationshipConstraint, messageArgs: [string, string], category?: import("./Diagnostic").DiagnosticCategory): {
335
+ readonly code: string;
336
+ readonly messageText: string;
337
+ readonly schema: Schema;
338
+ readonly diagnosticType: import("./Diagnostic").DiagnosticType;
339
+ ecDefinition: RelationshipConstraint;
340
+ messageArgs?: [string, string] | undefined;
341
+ category: import("./Diagnostic").DiagnosticCategory;
342
+ };
343
+ };
344
+ /** EC-1601: Required message parameters: relationship end (source/target), relationship name */
345
+ AbstractConstraintMustExistWithMultipleConstraints: {
346
+ new (constraint: RelationshipConstraint, messageArgs: [string, string], category?: import("./Diagnostic").DiagnosticCategory): {
347
+ readonly code: string;
348
+ readonly messageText: string;
349
+ readonly schema: Schema;
350
+ readonly diagnosticType: import("./Diagnostic").DiagnosticType;
351
+ ecDefinition: RelationshipConstraint;
352
+ messageArgs?: [string, string] | undefined;
353
+ category: import("./Diagnostic").DiagnosticCategory;
354
+ };
355
+ };
356
+ };
357
+ /**
358
+ * All schema validation rules that fall under the category of ECObjects.
359
+ * @beta
360
+ */
361
+ export declare const ECRuleSet: IRuleSet;
362
+ /**
363
+ * Validates schema references against multiple EC rules.
364
+ * @param schema The schema to validate.
365
+ */
366
+ export declare function validateSchemaReferences(schema: Schema): AsyncIterable<SchemaDiagnostic<any[]>>;
367
+ export declare function validateSchemaReferencesSync(schema: Schema): Iterable<SchemaDiagnostic<any[]>>;
368
+ /**
369
+ * EC Rule: Sealed classes cannot be a base class.
370
+ * @internal
371
+ */
372
+ export declare function baseClassIsSealed(ecClass: AnyClass): AsyncIterable<ClassDiagnostic<any[]>>;
373
+ /**
374
+ * EC Rule: Base and child class must be of the same type (i.e. Entity, Mixin, Relationship, etc.)
375
+ * @internal
376
+ */
377
+ export declare function baseClassIsOfDifferentType(ecClass: AnyClass): AsyncIterable<ClassDiagnostic<any[]>>;
378
+ /**
379
+ * EC Rule: Abstract class cannot derive from a non-abstract base class.
380
+ * @internal
381
+ */
382
+ export declare function abstractClassWithNonAbstractBase(ecClass: AnyClass): AsyncIterable<ClassDiagnostic<any[]>>;
383
+ /**
384
+ * EC Rule: When overriding a class primitive property, the child and base property must be of the same type (string, number, etc...).
385
+ * @internal
386
+ */
387
+ export declare function incompatibleValueTypePropertyOverride(property: AnyProperty): AsyncIterable<PropertyDiagnostic<any[]>>;
388
+ /**
389
+ * EC Rule: When overriding a class property, the child and base property must be of the same property type (primitive, struct, enumeration, etc...).
390
+ * @internal
391
+ */
392
+ export declare function incompatibleTypePropertyOverride(property: AnyProperty): AsyncIterable<PropertyDiagnostic<any[]>>;
393
+ /**
394
+ * EC Rule: When overriding a kindOfQuantity property, the child and base property units must be the same.
395
+ * @internal
396
+ */
397
+ export declare function incompatibleUnitPropertyOverride(property: AnyProperty): AsyncIterable<PropertyDiagnostic<any[]>>;
398
+ /** Validates Navigation Properties. EC Rules: 1303, 1304 */
399
+ export declare function validateNavigationProperty(property: AnyProperty): AsyncIterable<PropertyDiagnostic<any[]>>;
400
+ /**
401
+ * EC Rule: When overriding a RelationshipClass, the derived abstract constraint must narrow the base constraint classes.
402
+ * @internal
403
+ */
404
+ export declare function abstractConstraintMustNarrowBaseConstraints(ecClass: RelationshipClass): AsyncIterable<SchemaItemDiagnostic<RelationshipClass, any[]>>;
405
+ /**
406
+ * EC Rule: When overriding a RelationshipClass, derived constraint classes must narrow base constraint classes.
407
+ * @internal
408
+ */
409
+ export declare function derivedConstraintsMustNarrowBaseConstraints(ecClass: RelationshipClass): AsyncIterable<SchemaItemDiagnostic<RelationshipClass, any[]>>;
410
+ /**
411
+ * EC Rule: All constraint classes must have a common base class specified in the abstract constraint.
412
+ * @internal
413
+ */
414
+ export declare function constraintClassesDeriveFromAbstractContraint(ecClass: RelationshipClass): AsyncIterable<SchemaItemDiagnostic<RelationshipClass, any[]>>;
415
+ /**
416
+ * EC Rule: At least on concrete constraint class must be defined in the list of constraint classes.
417
+ * @internal
418
+ */
419
+ export declare function atLeastOneConstraintClassDefined(constraint: RelationshipConstraint): AsyncIterable<RelationshipConstraintDiagnostic<any[]>>;
420
+ /**
421
+ * EC Rule: If multiple constraints exist, an abstract constraint must be defined.
422
+ * @internal
423
+ */
424
+ export declare function abstractConstraintMustExistWithMultipleConstraints(constraint: RelationshipConstraint): AsyncIterable<RelationshipConstraintDiagnostic<any[]>>;
425
+ /**
426
+ * EC Rule: Enumeration type must be a string or integer
427
+ * @internal
428
+ */
429
+ export declare function enumerationTypeUnsupported(enumeration: Enumeration): AsyncIterable<SchemaItemDiagnostic<Enumeration, any[]>>;
430
+ /**
431
+ * EC Rule: Mixin applied to class must derived from the Mixin appliesTo constraint.
432
+ * @internal
433
+ */
434
+ export declare function mixinAppliedToClassMustDeriveFromConstraint(entityClass: EntityClass): AsyncIterable<SchemaItemDiagnostic<EntityClass, any[]>>;
435
+ /**
436
+ * Validates a custom attribute instance and yields EC-500, EC-501, and EC-502 rule violations.
437
+ */
438
+ export declare function validateCustomAttributeInstance(container: CustomAttributeContainerProps, customAttribute: CustomAttribute): AsyncIterable<CustomAttributeContainerDiagnostic<any[]>>;
439
439
  //# sourceMappingURL=ECRules.d.ts.map