@speclynx/apidom-ns-openapi-2 1.12.2 → 2.0.1

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 (222) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/NOTICE +16 -7
  3. package/README.md +18 -13
  4. package/dist/apidom-ns-openapi-2.browser.js +9354 -13260
  5. package/dist/apidom-ns-openapi-2.browser.min.js +1 -1
  6. package/package.json +10 -9
  7. package/src/elements/Contact.cjs +2 -2
  8. package/src/elements/Contact.mjs +1 -1
  9. package/src/elements/Definitions.cjs +2 -2
  10. package/src/elements/Definitions.mjs +1 -1
  11. package/src/elements/Example.cjs +2 -2
  12. package/src/elements/Example.mjs +1 -1
  13. package/src/elements/ExternalDocumentation.cjs +2 -2
  14. package/src/elements/ExternalDocumentation.mjs +1 -1
  15. package/src/elements/Header.cjs +10 -10
  16. package/src/elements/Header.mjs +10 -10
  17. package/src/elements/Headers.cjs +2 -2
  18. package/src/elements/Headers.mjs +1 -1
  19. package/src/elements/Info.cjs +2 -2
  20. package/src/elements/Info.mjs +1 -1
  21. package/src/elements/Items.cjs +10 -10
  22. package/src/elements/Items.mjs +10 -10
  23. package/src/elements/License.cjs +2 -2
  24. package/src/elements/License.mjs +1 -1
  25. package/src/elements/Operation.cjs +3 -3
  26. package/src/elements/Operation.mjs +1 -1
  27. package/src/elements/Parameter.cjs +11 -11
  28. package/src/elements/Parameter.mjs +11 -11
  29. package/src/elements/ParametersDefinitions.cjs +2 -2
  30. package/src/elements/ParametersDefinitions.mjs +1 -1
  31. package/src/elements/PathItem.cjs +23 -23
  32. package/src/elements/PathItem.mjs +22 -22
  33. package/src/elements/Paths.cjs +2 -2
  34. package/src/elements/Paths.mjs +1 -1
  35. package/src/elements/Reference.cjs +2 -2
  36. package/src/elements/Reference.mjs +1 -1
  37. package/src/elements/Response.cjs +2 -2
  38. package/src/elements/Response.mjs +1 -1
  39. package/src/elements/Responses.cjs +2 -2
  40. package/src/elements/Responses.mjs +1 -1
  41. package/src/elements/ResponsesDefinitions.cjs +2 -2
  42. package/src/elements/ResponsesDefinitions.mjs +1 -1
  43. package/src/elements/Schema.cjs +43 -8
  44. package/src/elements/Schema.mjs +43 -9
  45. package/src/elements/Scopes.cjs +2 -2
  46. package/src/elements/Scopes.mjs +1 -1
  47. package/src/elements/SecurityDefinitions.cjs +2 -2
  48. package/src/elements/SecurityDefinitions.mjs +1 -1
  49. package/src/elements/SecurityRequirement.cjs +2 -2
  50. package/src/elements/SecurityRequirement.mjs +1 -1
  51. package/src/elements/SecurityScheme.cjs +2 -2
  52. package/src/elements/SecurityScheme.mjs +1 -1
  53. package/src/elements/Swagger.cjs +2 -2
  54. package/src/elements/Swagger.mjs +1 -1
  55. package/src/elements/SwaggerVersion.cjs +2 -2
  56. package/src/elements/SwaggerVersion.mjs +1 -1
  57. package/src/elements/Tag.cjs +2 -2
  58. package/src/elements/Tag.mjs +1 -1
  59. package/src/elements/Xml.cjs +2 -2
  60. package/src/elements/Xml.mjs +1 -1
  61. package/src/elements/nces/OperationConsumes.cjs +2 -2
  62. package/src/elements/nces/OperationConsumes.mjs +1 -1
  63. package/src/elements/nces/OperationParameters.cjs +2 -2
  64. package/src/elements/nces/OperationParameters.mjs +1 -1
  65. package/src/elements/nces/OperationProduces.cjs +2 -2
  66. package/src/elements/nces/OperationProduces.mjs +1 -1
  67. package/src/elements/nces/OperationSchemes.cjs +2 -2
  68. package/src/elements/nces/OperationSchemes.mjs +1 -1
  69. package/src/elements/nces/OperationSecurity.cjs +2 -2
  70. package/src/elements/nces/OperationSecurity.mjs +1 -1
  71. package/src/elements/nces/OperationTags.cjs +2 -2
  72. package/src/elements/nces/OperationTags.mjs +1 -1
  73. package/src/elements/nces/PathItemParameters.cjs +2 -2
  74. package/src/elements/nces/PathItemParameters.mjs +1 -1
  75. package/src/elements/nces/SwaggerConsumes.cjs +2 -2
  76. package/src/elements/nces/SwaggerConsumes.mjs +1 -1
  77. package/src/elements/nces/SwaggerProduces.cjs +2 -2
  78. package/src/elements/nces/SwaggerProduces.mjs +1 -1
  79. package/src/elements/nces/SwaggerSchemes.cjs +2 -2
  80. package/src/elements/nces/SwaggerSchemes.mjs +1 -1
  81. package/src/elements/nces/SwaggerSecurity.cjs +2 -2
  82. package/src/elements/nces/SwaggerSecurity.mjs +1 -1
  83. package/src/elements/nces/SwaggerTags.cjs +2 -2
  84. package/src/elements/nces/SwaggerTags.mjs +1 -1
  85. package/src/index.cjs +65 -45
  86. package/src/index.mjs +6 -5
  87. package/src/namespace.mjs +2 -2
  88. package/src/predicates.cjs +54 -190
  89. package/src/predicates.mjs +27 -190
  90. package/src/refractor/index.cjs +279 -17
  91. package/src/refractor/index.mjs +251 -16
  92. package/src/refractor/inspect.cjs +157 -0
  93. package/src/refractor/inspect.mjs +126 -0
  94. package/src/refractor/plugins/replace-empty-element.cjs +20 -14
  95. package/src/refractor/plugins/replace-empty-element.mjs +14 -8
  96. package/src/refractor/predicates.cjs +3 -2
  97. package/src/refractor/predicates.mjs +2 -1
  98. package/src/refractor/specification.cjs +41 -12
  99. package/src/refractor/specification.mjs +41 -12
  100. package/src/refractor/toolbox.cjs +8 -3
  101. package/src/refractor/toolbox.mjs +6 -2
  102. package/src/refractor/visitors/FallbackVisitor.cjs +4 -4
  103. package/src/refractor/visitors/FallbackVisitor.mjs +4 -4
  104. package/src/refractor/visitors/SpecificationExtensionVisitor.cjs +4 -4
  105. package/src/refractor/visitors/SpecificationExtensionVisitor.mjs +4 -4
  106. package/src/refractor/visitors/SpecificationVisitor.cjs +4 -3
  107. package/src/refractor/visitors/SpecificationVisitor.mjs +3 -2
  108. package/src/refractor/visitors/Visitor.cjs +10 -8
  109. package/src/refractor/visitors/Visitor.mjs +11 -9
  110. package/src/refractor/visitors/generics/AlternatingVisitor.cjs +3 -3
  111. package/src/refractor/visitors/generics/AlternatingVisitor.mjs +3 -3
  112. package/src/refractor/visitors/generics/FixedFieldsVisitor.cjs +10 -7
  113. package/src/refractor/visitors/generics/FixedFieldsVisitor.mjs +9 -6
  114. package/src/refractor/visitors/generics/MixedFieldsVisitor.cjs +13 -6
  115. package/src/refractor/visitors/generics/MixedFieldsVisitor.mjs +13 -6
  116. package/src/refractor/visitors/generics/PatternedFieldsVisitor.cjs +9 -6
  117. package/src/refractor/visitors/generics/PatternedFieldsVisitor.mjs +8 -5
  118. package/src/refractor/visitors/open-api-2/BasePathVisitor.cjs +2 -3
  119. package/src/refractor/visitors/open-api-2/BasePathVisitor.mjs +2 -3
  120. package/src/refractor/visitors/open-api-2/ConsumesVisitor.cjs +5 -4
  121. package/src/refractor/visitors/open-api-2/ConsumesVisitor.mjs +4 -3
  122. package/src/refractor/visitors/open-api-2/HostVisitor.cjs +2 -3
  123. package/src/refractor/visitors/open-api-2/HostVisitor.mjs +2 -3
  124. package/src/refractor/visitors/open-api-2/ProducesVisitor.cjs +5 -4
  125. package/src/refractor/visitors/open-api-2/ProducesVisitor.mjs +4 -3
  126. package/src/refractor/visitors/open-api-2/SchemesVisitor.cjs +5 -4
  127. package/src/refractor/visitors/open-api-2/SchemesVisitor.mjs +4 -3
  128. package/src/refractor/visitors/open-api-2/SecurityVisitor.cjs +5 -11
  129. package/src/refractor/visitors/open-api-2/SecurityVisitor.mjs +5 -10
  130. package/src/refractor/visitors/open-api-2/SwaggerVisitor.cjs +5 -10
  131. package/src/refractor/visitors/open-api-2/SwaggerVisitor.mjs +6 -10
  132. package/src/refractor/visitors/open-api-2/TagsVisitor.cjs +5 -11
  133. package/src/refractor/visitors/open-api-2/TagsVisitor.mjs +5 -10
  134. package/src/refractor/visitors/open-api-2/bases.cjs +72 -0
  135. package/src/refractor/visitors/open-api-2/bases.mjs +67 -0
  136. package/src/refractor/visitors/open-api-2/contact/index.cjs +2 -8
  137. package/src/refractor/visitors/open-api-2/contact/index.mjs +2 -7
  138. package/src/refractor/visitors/open-api-2/definitions/index.cjs +5 -12
  139. package/src/refractor/visitors/open-api-2/definitions/index.mjs +5 -11
  140. package/src/refractor/visitors/open-api-2/example/index.cjs +2 -8
  141. package/src/refractor/visitors/open-api-2/example/index.mjs +2 -7
  142. package/src/refractor/visitors/open-api-2/external-documentation/index.cjs +2 -8
  143. package/src/refractor/visitors/open-api-2/external-documentation/index.mjs +2 -7
  144. package/src/refractor/visitors/open-api-2/header/index.cjs +2 -8
  145. package/src/refractor/visitors/open-api-2/header/index.mjs +2 -7
  146. package/src/refractor/visitors/open-api-2/headers/index.cjs +2 -8
  147. package/src/refractor/visitors/open-api-2/headers/index.mjs +2 -7
  148. package/src/refractor/visitors/open-api-2/index.cjs +2 -8
  149. package/src/refractor/visitors/open-api-2/index.mjs +2 -7
  150. package/src/refractor/visitors/open-api-2/info/VersionVisitor.cjs +2 -3
  151. package/src/refractor/visitors/open-api-2/info/VersionVisitor.mjs +2 -3
  152. package/src/refractor/visitors/open-api-2/info/index.cjs +2 -8
  153. package/src/refractor/visitors/open-api-2/info/index.mjs +2 -7
  154. package/src/refractor/visitors/open-api-2/items/index.cjs +2 -8
  155. package/src/refractor/visitors/open-api-2/items/index.mjs +2 -7
  156. package/src/refractor/visitors/open-api-2/license/index.cjs +2 -8
  157. package/src/refractor/visitors/open-api-2/license/index.mjs +2 -7
  158. package/src/refractor/visitors/open-api-2/operation/ConsumesVisitor.cjs +5 -4
  159. package/src/refractor/visitors/open-api-2/operation/ConsumesVisitor.mjs +4 -3
  160. package/src/refractor/visitors/open-api-2/operation/ParametersVisitor.cjs +6 -12
  161. package/src/refractor/visitors/open-api-2/operation/ParametersVisitor.mjs +6 -11
  162. package/src/refractor/visitors/open-api-2/operation/ProducesVisitor.cjs +5 -4
  163. package/src/refractor/visitors/open-api-2/operation/ProducesVisitor.mjs +4 -3
  164. package/src/refractor/visitors/open-api-2/operation/SchemesVisitor.cjs +5 -4
  165. package/src/refractor/visitors/open-api-2/operation/SchemesVisitor.mjs +4 -3
  166. package/src/refractor/visitors/open-api-2/operation/SecurityVisitor.cjs +5 -11
  167. package/src/refractor/visitors/open-api-2/operation/SecurityVisitor.mjs +5 -10
  168. package/src/refractor/visitors/open-api-2/operation/TagsVisitor.cjs +5 -4
  169. package/src/refractor/visitors/open-api-2/operation/TagsVisitor.mjs +4 -3
  170. package/src/refractor/visitors/open-api-2/operation/index.cjs +2 -8
  171. package/src/refractor/visitors/open-api-2/operation/index.mjs +2 -7
  172. package/src/refractor/visitors/open-api-2/parameter/index.cjs +2 -8
  173. package/src/refractor/visitors/open-api-2/parameter/index.mjs +2 -7
  174. package/src/refractor/visitors/open-api-2/parameters-definitions/index.cjs +2 -8
  175. package/src/refractor/visitors/open-api-2/parameters-definitions/index.mjs +2 -7
  176. package/src/refractor/visitors/open-api-2/path-item/$RefVisitor.cjs +2 -3
  177. package/src/refractor/visitors/open-api-2/path-item/$RefVisitor.mjs +2 -3
  178. package/src/refractor/visitors/open-api-2/path-item/ParametersVisitor.cjs +6 -12
  179. package/src/refractor/visitors/open-api-2/path-item/ParametersVisitor.mjs +6 -11
  180. package/src/refractor/visitors/open-api-2/path-item/index.cjs +8 -14
  181. package/src/refractor/visitors/open-api-2/path-item/index.mjs +7 -12
  182. package/src/refractor/visitors/open-api-2/paths/index.cjs +6 -13
  183. package/src/refractor/visitors/open-api-2/paths/index.mjs +6 -12
  184. package/src/refractor/visitors/open-api-2/reference/$RefVisitor.cjs +2 -3
  185. package/src/refractor/visitors/open-api-2/reference/$RefVisitor.mjs +2 -3
  186. package/src/refractor/visitors/open-api-2/reference/index.cjs +6 -13
  187. package/src/refractor/visitors/open-api-2/reference/index.mjs +5 -11
  188. package/src/refractor/visitors/open-api-2/response/index.cjs +2 -8
  189. package/src/refractor/visitors/open-api-2/response/index.mjs +2 -7
  190. package/src/refractor/visitors/open-api-2/responses/DefaultVisitor.cjs +6 -12
  191. package/src/refractor/visitors/open-api-2/responses/DefaultVisitor.mjs +6 -11
  192. package/src/refractor/visitors/open-api-2/responses/index.cjs +8 -14
  193. package/src/refractor/visitors/open-api-2/responses/index.mjs +8 -13
  194. package/src/refractor/visitors/open-api-2/responses-definitions/index.cjs +2 -8
  195. package/src/refractor/visitors/open-api-2/responses-definitions/index.mjs +2 -7
  196. package/src/refractor/visitors/open-api-2/schema/AllOfVisitor.cjs +3 -4
  197. package/src/refractor/visitors/open-api-2/schema/AllOfVisitor.mjs +3 -4
  198. package/src/refractor/visitors/open-api-2/schema/ItemsVisitor.cjs +9 -15
  199. package/src/refractor/visitors/open-api-2/schema/ItemsVisitor.mjs +8 -13
  200. package/src/refractor/visitors/open-api-2/schema/PropertiesVisitor.cjs +3 -4
  201. package/src/refractor/visitors/open-api-2/schema/PropertiesVisitor.mjs +3 -4
  202. package/src/refractor/visitors/open-api-2/schema/SchemaOrJSONReferenceVisitor.cjs +3 -4
  203. package/src/refractor/visitors/open-api-2/schema/SchemaOrJSONReferenceVisitor.mjs +3 -4
  204. package/src/refractor/visitors/open-api-2/schema/index.cjs +2 -8
  205. package/src/refractor/visitors/open-api-2/schema/index.mjs +2 -7
  206. package/src/refractor/visitors/open-api-2/scopes/index.cjs +2 -8
  207. package/src/refractor/visitors/open-api-2/scopes/index.mjs +2 -7
  208. package/src/refractor/visitors/open-api-2/security-definitions/index.cjs +2 -8
  209. package/src/refractor/visitors/open-api-2/security-definitions/index.mjs +2 -7
  210. package/src/refractor/visitors/open-api-2/security-requirement/index.cjs +2 -8
  211. package/src/refractor/visitors/open-api-2/security-requirement/index.mjs +2 -7
  212. package/src/refractor/visitors/open-api-2/security-scheme/index.cjs +2 -8
  213. package/src/refractor/visitors/open-api-2/security-scheme/index.mjs +2 -7
  214. package/src/refractor/visitors/open-api-2/tag/index.cjs +2 -8
  215. package/src/refractor/visitors/open-api-2/tag/index.mjs +2 -7
  216. package/src/refractor/visitors/open-api-2/xml/index.cjs +2 -8
  217. package/src/refractor/visitors/open-api-2/xml/index.mjs +2 -7
  218. package/types/apidom-ns-openapi-2.d.ts +541 -565
  219. package/src/refractor/registration.cjs +0 -87
  220. package/src/refractor/registration.mjs +0 -56
  221. package/src/traversal/visitor.cjs +0 -56
  222. package/src/traversal/visitor.mjs +0 -53
@@ -1,36 +1,27 @@
1
1
  import { AllOfVisitor } from '@speclynx/apidom-ns-json-schema-draft-4';
2
- import { ArrayElement } from '@speclynx/apidom-core';
3
- import { Attributes } from '@speclynx/apidom-core';
4
- import { BooleanElement } from '@speclynx/apidom-core';
2
+ import { ArrayElement } from '@speclynx/apidom-datamodel';
3
+ import { Attributes } from '@speclynx/apidom-datamodel';
4
+ import { BooleanElement } from '@speclynx/apidom-datamodel';
5
5
  import { Class } from 'ts-mixer/dist/types/types.js';
6
- import { Element as Element_2 } from '@speclynx/apidom-core';
7
- import { ElementPredicate } from '@speclynx/apidom-core';
6
+ import { Element as Element_2 } from '@speclynx/apidom-datamodel';
8
7
  import { EnumVisitor } from '@speclynx/apidom-ns-json-schema-draft-4';
9
- import { isArrayElement } from '@speclynx/apidom-core';
10
- import { isBooleanElement } from '@speclynx/apidom-core';
11
- import { isElement } from '@speclynx/apidom-core';
12
8
  import { isJSONReferenceElement } from '@speclynx/apidom-ns-json-schema-draft-4';
13
9
  import { isJSONReferenceLikeElement } from '@speclynx/apidom-ns-json-schema-draft-4';
14
- import { isLinkElement as isLinkPrimitiveElement } from '@speclynx/apidom-core';
15
- import { isMemberElement } from '@speclynx/apidom-core';
16
- import { isNullElement } from '@speclynx/apidom-core';
17
- import { isNumberElement } from '@speclynx/apidom-core';
18
- import { isObjectElement } from '@speclynx/apidom-core';
19
- import { isRefElement } from '@speclynx/apidom-core';
20
- import { isStringElement } from '@speclynx/apidom-core';
21
- import { ItemsVisitor as ItemsVisitor_2 } from '@speclynx/apidom-ns-json-schema-draft-4';
22
10
  import { JSONReference$RefVisitor } from '@speclynx/apidom-ns-json-schema-draft-4';
23
11
  import { JSONReferenceElement } from '@speclynx/apidom-ns-json-schema-draft-4';
24
12
  import { JSONReferenceVisitor } from '@speclynx/apidom-ns-json-schema-draft-4';
25
13
  import { JSONSchemaElement } from '@speclynx/apidom-ns-json-schema-draft-4';
14
+ import { ItemsVisitor as JSONSchemaItemsVisitor } from '@speclynx/apidom-ns-json-schema-draft-4';
15
+ import { LinkDescriptionElement } from '@speclynx/apidom-ns-json-schema-draft-4';
26
16
  import { MediaElement } from '@speclynx/apidom-ns-json-schema-draft-4';
27
17
  import { MediaTypes } from '@speclynx/apidom-core';
28
- import { MemberElement } from '@speclynx/apidom-core';
29
- import { Meta } from '@speclynx/apidom-core';
30
- import { Namespace } from 'minim';
31
- import { NamespacePluginOptions } from '@speclynx/apidom-core';
32
- import { NumberElement } from '@speclynx/apidom-core';
33
- import { ObjectElement } from '@speclynx/apidom-core';
18
+ import { MemberElement } from '@speclynx/apidom-datamodel';
19
+ import { Meta } from '@speclynx/apidom-datamodel';
20
+ import { Namespace } from '@speclynx/apidom-datamodel';
21
+ import { NamespacePlugin } from '@speclynx/apidom-datamodel';
22
+ import { NumberElement } from '@speclynx/apidom-datamodel';
23
+ import { ObjectElement } from '@speclynx/apidom-datamodel';
24
+ import { Path } from '@speclynx/apidom-traverse';
34
25
  import { PropertiesVisitor } from '@speclynx/apidom-ns-json-schema-draft-4';
35
26
  import { RequiredVisitor } from '@speclynx/apidom-ns-json-schema-draft-4';
36
27
  import { AllOfVisitorOptions as SchemaAllOfVisitorOptions } from '@speclynx/apidom-ns-json-schema-draft-4';
@@ -38,7 +29,7 @@ import { ItemsVisitorOptions as SchemaItemsVisitorOptions } from '@speclynx/apid
38
29
  import { SchemaOrReferenceVisitorOptions as SchemaOrJSONReferenceVisitorOptions } from '@speclynx/apidom-ns-json-schema-draft-4';
39
30
  import { SchemaOrReferenceVisitor } from '@speclynx/apidom-ns-json-schema-draft-4';
40
31
  import { PropertiesVisitorOptions as SchemaPropertiesVisitorOptions } from '@speclynx/apidom-ns-json-schema-draft-4';
41
- import { StringElement } from '@speclynx/apidom-core';
32
+ import { StringElement } from '@speclynx/apidom-datamodel';
42
33
  import { TypeVisitor } from '@speclynx/apidom-ns-json-schema-draft-4';
43
34
 
44
35
  /**
@@ -47,7 +38,7 @@ import { TypeVisitor } from '@speclynx/apidom-ns-json-schema-draft-4';
47
38
  export declare class AlternatingVisitor extends SpecificationVisitor {
48
39
  protected alternator: Alternator[];
49
40
  constructor({ alternator, ...rest }: AlternatingVisitorOptions);
50
- enter(element: Element_2): {};
41
+ enter(path: Path<Element_2>): void;
51
42
  }
52
43
 
53
44
  /**
@@ -65,13 +56,124 @@ export declare type Alternator = {
65
56
  specPath: string[];
66
57
  };
67
58
 
59
+ /**
60
+ * Base class for visitors using Mixin(AlternatingVisitor, FallbackVisitor)
61
+ * @public
62
+ */
63
+ export declare const BaseAlternatingVisitor: Class<any[], AlternatingVisitor & FallbackVisitor, typeof AlternatingVisitor & typeof FallbackVisitor>;
64
+
65
+ /**
66
+ * @public
67
+ */
68
+ declare interface BaseAlternatingVisitorOptions extends AlternatingVisitorOptions, VisitorOptions {
69
+ }
70
+ export { BaseAlternatingVisitorOptions }
71
+ export { BaseAlternatingVisitorOptions as ResponsesDefaultVisitorOptions }
72
+
73
+ /**
74
+ * Base class for visitors using Mixin(FixedFieldsVisitor, FallbackVisitor)
75
+ * @public
76
+ */
77
+ export declare const BaseFixedFieldsVisitor: Class<any[], FixedFieldsVisitor & FallbackVisitor, typeof FixedFieldsVisitor & typeof FallbackVisitor>;
78
+
79
+ /**
80
+ * @public
81
+ */
82
+ declare interface BaseFixedFieldsVisitorOptions extends FixedFieldsVisitorOptions, VisitorOptions {
83
+ }
84
+ export { BaseFixedFieldsVisitorOptions }
85
+ export { BaseFixedFieldsVisitorOptions as ContactVisitorOptions }
86
+ export { BaseFixedFieldsVisitorOptions as ExternalDocumentationVisitorOptions }
87
+ export { BaseFixedFieldsVisitorOptions as HeaderVisitorOptions }
88
+ export { BaseFixedFieldsVisitorOptions as InfoVisitorOptions }
89
+ export { BaseFixedFieldsVisitorOptions as ItemsVisitorOptions }
90
+ export { BaseFixedFieldsVisitorOptions as LicenseVisitorOptions }
91
+ export { BaseFixedFieldsVisitorOptions as OperationVisitorOptions }
92
+ export { BaseFixedFieldsVisitorOptions as ParameterVisitorOptions }
93
+ export { BaseFixedFieldsVisitorOptions as PathItemVisitorOptions }
94
+ export { BaseFixedFieldsVisitorOptions as ReferenceVisitorOptions }
95
+ export { BaseFixedFieldsVisitorOptions as ResponseVisitorOptions }
96
+ export { BaseFixedFieldsVisitorOptions as SchemaVisitorOptions }
97
+ export { BaseFixedFieldsVisitorOptions as SecuritySchemeVisitorOptions }
98
+ export { BaseFixedFieldsVisitorOptions as SwaggerVisitorOptions }
99
+ export { BaseFixedFieldsVisitorOptions as TagVisitorOptions }
100
+ export { BaseFixedFieldsVisitorOptions as XmlVisitorOptions }
101
+
102
+ /**
103
+ * Base class for visitors using Mixin(MapVisitor, FallbackVisitor)
104
+ * @public
105
+ */
106
+ export declare const BaseMapVisitor: Class<any[], MapVisitor & FallbackVisitor, typeof MapVisitor & typeof FallbackVisitor>;
107
+
108
+ /**
109
+ * @public
110
+ */
111
+ declare interface BaseMapVisitorOptions extends MapVisitorOptions, VisitorOptions {
112
+ }
113
+ export { BaseMapVisitorOptions }
114
+ export { BaseMapVisitorOptions as DefinitionsVisitorOptions }
115
+ export { BaseMapVisitorOptions as ExampleVisitorOptions }
116
+ export { BaseMapVisitorOptions as HeadersVisitorOptions }
117
+ export { BaseMapVisitorOptions as ParametersDefinitionsVisitorOptions }
118
+ export { BaseMapVisitorOptions as ResponsesDefinitionsVisitorOptions }
119
+ export { BaseMapVisitorOptions as ScopesVisitorOptions }
120
+ export { BaseMapVisitorOptions as SecurityDefinitionsVisitorOptions }
121
+ export { BaseMapVisitorOptions as SecurityRequirementVisitorOptions }
122
+
123
+ /**
124
+ * Base class for visitors using Mixin(MixedFieldsVisitor, FallbackVisitor)
125
+ * @public
126
+ */
127
+ export declare const BaseMixedFieldsVisitor: Class<any[], MixedFieldsVisitor & FallbackVisitor, typeof MixedFieldsVisitor & typeof FallbackVisitor>;
128
+
129
+ /**
130
+ * @public
131
+ */
132
+ declare interface BaseMixedFieldsVisitorOptions extends MixedFieldsVisitorOptions, VisitorOptions {
133
+ }
134
+ export { BaseMixedFieldsVisitorOptions }
135
+ export { BaseMixedFieldsVisitorOptions as ResponsesVisitorOptions }
136
+
68
137
  /**
69
138
  * @public
70
139
  */
71
140
  export declare class BasePathVisitor extends FallbackVisitor {
72
141
  readonly element: StringElement;
73
- StringElement(stringElement: StringElement): {};
142
+ StringElement(path: Path<StringElement>): void;
143
+ }
144
+
145
+ /**
146
+ * Base class for visitors using Mixin(PatternedFieldsVisitor, FallbackVisitor)
147
+ * @public
148
+ */
149
+ export declare const BasePatternedFieldsVisitor: Class<any[], PatternedFieldsVisitor & FallbackVisitor, typeof PatternedFieldsVisitor & typeof FallbackVisitor>;
150
+
151
+ /**
152
+ * @public
153
+ */
154
+ declare interface BasePatternedFieldsVisitorOptions extends PatternedFieldsVisitorOptions, VisitorOptions {
155
+ }
156
+ export { BasePatternedFieldsVisitorOptions }
157
+ export { BasePatternedFieldsVisitorOptions as PathsVisitorOptions }
158
+
159
+ /**
160
+ * Base class for visitors using Mixin(SpecificationVisitor, FallbackVisitor)
161
+ * @public
162
+ */
163
+ export declare const BaseSpecificationVisitor: Class<any[], SpecificationVisitor & FallbackVisitor, typeof SpecificationVisitor & typeof FallbackVisitor>;
164
+
165
+ /**
166
+ * @public
167
+ */
168
+ declare interface BaseSpecificationVisitorOptions extends SpecificationVisitorOptions, VisitorOptions {
74
169
  }
170
+ export { BaseSpecificationVisitorOptions }
171
+ export { BaseSpecificationVisitorOptions as OperationParametersVisitorOptions }
172
+ export { BaseSpecificationVisitorOptions as OperationSecurityVisitorOptions }
173
+ export { BaseSpecificationVisitorOptions as PathItemParametersVisitorOptions }
174
+ export { BaseSpecificationVisitorOptions as SecurityVisitorOptions }
175
+ export { BaseSpecificationVisitorOptions as SwaggerVersionVisitorOptions }
176
+ export { BaseSpecificationVisitorOptions as TagsVisitorOptions }
75
177
 
76
178
  /**
77
179
  * @public
@@ -79,7 +181,7 @@ export declare class BasePathVisitor extends FallbackVisitor {
79
181
  export declare class ConsumesVisitor extends FallbackVisitor {
80
182
  element: SwaggerConsumesElement;
81
183
  constructor(options: VisitorOptions);
82
- ArrayElement(arrayElement: ArrayElement): {};
184
+ ArrayElement(path: Path<ArrayElement>): void;
83
185
  }
84
186
 
85
187
  /**
@@ -98,28 +200,13 @@ export declare class ContactElement extends ObjectElement {
98
200
  /**
99
201
  * @public
100
202
  */
101
- export declare class ContactVisitor extends ContactVisitor_base {
203
+ export declare class ContactVisitor extends BaseFixedFieldsVisitor {
102
204
  readonly element: ContactElement;
103
205
  protected readonly specPath: SpecPath<['document', 'objects', 'Contact']>;
104
206
  protected readonly canSupportSpecificationExtensions: true;
105
- constructor(options: ContactVisitorOptions);
106
- }
107
-
108
- declare const ContactVisitor_base: Class<any[], FixedFieldsVisitor & FallbackVisitor, typeof FixedFieldsVisitor & typeof FallbackVisitor>;
109
-
110
- /**
111
- * @public
112
- */
113
- export declare interface ContactVisitorOptions extends FixedFieldsVisitorOptions, VisitorOptions {
207
+ constructor(options: BaseFixedFieldsVisitorOptions);
114
208
  }
115
209
 
116
- /**
117
- * @public
118
- */
119
- export declare const createRefractor: (specPath: string[]) => (value: unknown, options?: {}) => Element_2;
120
-
121
- declare const DefaultVisitor_base: Class<any[], AlternatingVisitor & FallbackVisitor, typeof AlternatingVisitor & typeof FallbackVisitor>;
122
-
123
210
  /**
124
211
  * @public
125
212
  */
@@ -130,23 +217,15 @@ export declare class DefinitionsElement extends ObjectElement {
130
217
  /**
131
218
  * @public
132
219
  */
133
- export declare class DefinitionsVisitor extends DefinitionsVisitor_base {
220
+ export declare class DefinitionsVisitor extends BaseMapVisitor {
134
221
  readonly element: DefinitionsElement;
135
222
  protected readonly specPath: SpecPath<[
136
223
  'document',
137
224
  'objects',
138
225
  'JSONReference'
139
226
  ] | ['document', 'objects', 'Schema']>;
140
- constructor(options: DefinitionsVisitorOptions);
141
- ObjectElement(objectElement: ObjectElement): {};
142
- }
143
-
144
- declare const DefinitionsVisitor_base: Class<any[], MapVisitor & FallbackVisitor, typeof MapVisitor & typeof FallbackVisitor>;
145
-
146
- /**
147
- * @public
148
- */
149
- export declare interface DefinitionsVisitorOptions extends MapVisitorOptions, VisitorOptions {
227
+ constructor(options: BaseMapVisitorOptions);
228
+ ObjectElement(path: Path<ObjectElement>): void;
150
229
  }
151
230
 
152
231
  /**
@@ -159,19 +238,11 @@ export declare class ExampleElement extends ObjectElement {
159
238
  /**
160
239
  * @public
161
240
  */
162
- export declare class ExampleVisitor extends ExampleVisitor_base {
241
+ export declare class ExampleVisitor extends BaseMapVisitor {
163
242
  readonly element: ExampleElement;
164
243
  protected readonly specPath: SpecPath<['value']>;
165
244
  protected readonly canSupportSpecificationExtensions: false;
166
- constructor(options: ExampleVisitorOptions);
167
- }
168
-
169
- declare const ExampleVisitor_base: Class<any[], MapVisitor & FallbackVisitor, typeof MapVisitor & typeof FallbackVisitor>;
170
-
171
- /**
172
- * @public
173
- */
174
- export declare interface ExampleVisitorOptions extends MapVisitorOptions, VisitorOptions {
245
+ constructor(options: BaseMapVisitorOptions);
175
246
  }
176
247
 
177
248
  /**
@@ -188,26 +259,18 @@ export declare class ExternalDocumentationElement extends ObjectElement {
188
259
  /**
189
260
  * @public
190
261
  */
191
- export declare class ExternalDocumentationVisitor extends ExternalDocumentationVisitor_base {
262
+ export declare class ExternalDocumentationVisitor extends BaseFixedFieldsVisitor {
192
263
  readonly element: ExternalDocumentationElement;
193
264
  protected readonly specPath: SpecPath<['document', 'objects', 'ExternalDocumentation']>;
194
265
  protected readonly canSupportSpecificationExtensions: true;
195
- constructor(options: ExternalDocumentationVisitorOptions);
196
- }
197
-
198
- declare const ExternalDocumentationVisitor_base: Class<any[], FixedFieldsVisitor & FallbackVisitor, typeof FixedFieldsVisitor & typeof FallbackVisitor>;
199
-
200
- /**
201
- * @public
202
- */
203
- export declare interface ExternalDocumentationVisitorOptions extends FixedFieldsVisitorOptions, VisitorOptions {
266
+ constructor(options: BaseFixedFieldsVisitorOptions);
204
267
  }
205
268
 
206
269
  /**
207
270
  * @public
208
271
  */
209
272
  export declare class FallbackVisitor extends Visitor {
210
- enter(element: Element_2): {};
273
+ enter(path: Path<Element_2>): void;
211
274
  }
212
275
 
213
276
  /**
@@ -219,7 +282,7 @@ export declare class FixedFieldsVisitor extends SpecificationVisitor {
219
282
  protected canSupportSpecificationExtensions: boolean;
220
283
  protected specificationExtensionPredicate: (element: MemberElement) => boolean;
221
284
  constructor({ specPath, ignoredFields, canSupportSpecificationExtensions, specificationExtensionPredicate, ...rest }: FixedFieldsVisitorOptions);
222
- ObjectElement(objectElement: ObjectElement): {};
285
+ ObjectElement(path: Path<ObjectElement>): void;
223
286
  }
224
287
 
225
288
  /**
@@ -237,11 +300,6 @@ export declare interface FixedFieldsVisitorOptions extends SpecificationVisitorO
237
300
  */
238
301
  export declare type Format = 'generic' | 'json' | 'yaml';
239
302
 
240
- /**
241
- * @public
242
- */
243
- export declare const getNodeType: <T extends Element_2>(element: T) => string | undefined;
244
-
245
303
  /**
246
304
  * @public
247
305
  */
@@ -252,8 +310,8 @@ export declare class HeaderElement extends JSONSchemaElement {
252
310
  *
253
311
  * URI: https://tools.ietf.org/html/draft-wright-json-schema-00
254
312
  */
255
- get idProp(): StringElement | undefined;
256
- set idProp(idProps: StringElement | undefined);
313
+ get idField(): StringElement | undefined;
314
+ set idField(idField: StringElement | undefined);
257
315
  get $schema(): StringElement | undefined;
258
316
  set $schema($schema: StringElement | undefined);
259
317
  /**
@@ -261,8 +319,8 @@ export declare class HeaderElement extends JSONSchemaElement {
261
319
  */
262
320
  get additionalItems(): this | JSONReferenceElement | BooleanElement | undefined;
263
321
  set additionalItems(additionalItems: this | JSONReferenceElement | BooleanElement | undefined);
264
- get items(): this | undefined;
265
- set items(items: this | undefined);
322
+ get itemsField(): this | undefined;
323
+ set itemsField(items: this | undefined);
266
324
  /**
267
325
  * Validation keywords for objects
268
326
  */
@@ -270,8 +328,8 @@ export declare class HeaderElement extends JSONSchemaElement {
270
328
  set maxProperties(maxProperties: NumberElement | undefined);
271
329
  get minProperties(): NumberElement | undefined;
272
330
  set minProperties(minProperties: NumberElement | undefined);
273
- get required(): ArrayElement | undefined;
274
- set required(required: ArrayElement | undefined);
331
+ get required(): ArrayElement<StringElement> | undefined;
332
+ set required(required: ArrayElement<StringElement> | undefined);
275
333
  get properties(): ObjectElement | undefined;
276
334
  set properties(properties: ObjectElement | undefined);
277
335
  get additionalProperties(): this | JSONReferenceElement | BooleanElement | undefined;
@@ -285,12 +343,12 @@ export declare class HeaderElement extends JSONSchemaElement {
285
343
  */
286
344
  get type(): StringElement | undefined;
287
345
  set type(type: StringElement | undefined);
288
- get allOf(): ArrayElement | undefined;
289
- set allOf(allOf: ArrayElement | undefined);
290
- get anyOf(): ArrayElement | undefined;
291
- set anyOf(anyOf: ArrayElement | undefined);
292
- get oneOf(): ArrayElement | undefined;
293
- set oneOf(oneOf: ArrayElement | undefined);
346
+ get allOf(): ArrayElement<this | JSONReferenceElement> | undefined;
347
+ set allOf(allOf: ArrayElement<this | JSONReferenceElement> | undefined);
348
+ get anyOf(): ArrayElement<this | JSONReferenceElement> | undefined;
349
+ set anyOf(anyOf: ArrayElement<this | JSONReferenceElement> | undefined);
350
+ get oneOf(): ArrayElement<this | JSONReferenceElement> | undefined;
351
+ set oneOf(oneOf: ArrayElement<this | JSONReferenceElement> | undefined);
294
352
  get not(): this | JSONReferenceElement | undefined;
295
353
  set not(not: this | JSONReferenceElement | undefined);
296
354
  get definitions(): ObjectElement | undefined;
@@ -309,8 +367,8 @@ export declare class HeaderElement extends JSONSchemaElement {
309
367
  */
310
368
  get base(): StringElement | undefined;
311
369
  set base(base: StringElement | undefined);
312
- get links(): ArrayElement | undefined;
313
- set links(links: ArrayElement | undefined);
370
+ get linksField(): ArrayElement<LinkDescriptionElement> | undefined;
371
+ set linksField(links: ArrayElement<LinkDescriptionElement> | undefined);
314
372
  get media(): MediaElement | undefined;
315
373
  set media(media: MediaElement | undefined);
316
374
  get readOnly(): BooleanElement | undefined;
@@ -327,37 +385,21 @@ export declare class HeadersElement extends ObjectElement {
327
385
  /**
328
386
  * @public
329
387
  */
330
- export declare class HeadersVisitor extends HeadersVisitor_base {
388
+ export declare class HeadersVisitor extends BaseMapVisitor {
331
389
  readonly element: HeadersElement;
332
390
  protected readonly specPath: SpecPath<['document', 'objects', 'Header']>;
333
391
  protected readonly canSupportSpecificationExtensions: false;
334
- constructor(options: HeadersVisitorOptions);
335
- }
336
-
337
- declare const HeadersVisitor_base: Class<any[], MapVisitor & FallbackVisitor, typeof MapVisitor & typeof FallbackVisitor>;
338
-
339
- /**
340
- * @public
341
- */
342
- export declare interface HeadersVisitorOptions extends MapVisitorOptions, VisitorOptions {
392
+ constructor(options: BaseMapVisitorOptions);
343
393
  }
344
394
 
345
395
  /**
346
396
  * @public
347
397
  */
348
- export declare class HeaderVisitor extends HeaderVisitor_base {
398
+ export declare class HeaderVisitor extends BaseFixedFieldsVisitor {
349
399
  readonly element: HeaderElement;
350
400
  protected readonly specPath: SpecPath<['document', 'objects', 'Header']>;
351
401
  protected readonly canSupportSpecificationExtensions: true;
352
- constructor(options: HeaderVisitorOptions);
353
- }
354
-
355
- declare const HeaderVisitor_base: Class<any[], FixedFieldsVisitor & FallbackVisitor, typeof FixedFieldsVisitor & typeof FallbackVisitor>;
356
-
357
- /**
358
- * @public
359
- */
360
- export declare interface HeaderVisitorOptions extends FixedFieldsVisitorOptions, VisitorOptions {
402
+ constructor(options: BaseFixedFieldsVisitorOptions);
361
403
  }
362
404
 
363
405
  /**
@@ -365,7 +407,7 @@ export declare interface HeaderVisitorOptions extends FixedFieldsVisitorOptions,
365
407
  */
366
408
  export declare class HostVisitor extends FallbackVisitor {
367
409
  readonly element: StringElement;
368
- StringElement(stringElement: StringElement): {};
410
+ StringElement(path: Path<StringElement>): void;
369
411
  }
370
412
 
371
413
  /**
@@ -392,72 +434,58 @@ export declare class InfoElement extends ObjectElement {
392
434
  */
393
435
  export declare class InfoVersionVisitor extends FallbackVisitor {
394
436
  readonly element: StringElement;
395
- StringElement(stringElement: StringElement): {};
437
+ StringElement(path: Path<StringElement>): void;
396
438
  }
397
439
 
398
440
  /**
399
441
  * @public
400
442
  */
401
- export declare class InfoVisitor extends InfoVisitor_base {
443
+ export declare class InfoVisitor extends BaseFixedFieldsVisitor {
402
444
  readonly element: InfoElement;
403
445
  protected readonly specPath: SpecPath<['document', 'objects', 'Info']>;
404
446
  protected readonly canSupportSpecificationExtensions: true;
405
- constructor(options: InfoVisitorOptions);
406
- }
407
-
408
- declare const InfoVisitor_base: Class<any[], FixedFieldsVisitor & FallbackVisitor, typeof FixedFieldsVisitor & typeof FallbackVisitor>;
409
-
410
- /**
411
- * @public
412
- */
413
- export declare interface InfoVisitorOptions extends FixedFieldsVisitorOptions, VisitorOptions {
447
+ constructor(options: BaseFixedFieldsVisitorOptions);
414
448
  }
415
449
 
416
- export { isArrayElement }
417
-
418
- export { isBooleanElement }
419
-
420
450
  /**
421
451
  * @public
422
452
  */
423
- export declare const isContactElement: ElementPredicate<ContactElement>;
453
+ export declare const isContactElement: (element: unknown) => element is ContactElement;
424
454
 
425
455
  /**
426
456
  * @public
427
457
  */
428
- export declare const isDefinitionsElement: ElementPredicate<DefinitionsElement>;
429
-
430
- export { isElement }
458
+ export declare const isDefinitionsElement: (element: unknown) => element is DefinitionsElement;
431
459
 
432
460
  /**
433
461
  * @public
434
462
  */
435
- export declare const isExampleElement: ElementPredicate<ExampleElement>;
463
+ export declare const isExampleElement: (element: unknown) => element is ExampleElement;
436
464
 
437
465
  /**
438
466
  * @public
439
467
  */
440
- export declare const isExternalDocumentationElement: ElementPredicate<ExternalDocumentationElement>;
468
+ export declare const isExternalDocumentationElement: (element: unknown) => element is ExternalDocumentationElement;
441
469
 
442
470
  /**
443
471
  * @public
444
472
  */
445
- export declare const isHeaderElement: ElementPredicate<HeaderElement>;
473
+ export declare const isHeaderElement: (element: unknown) => element is HeaderElement;
446
474
 
447
475
  /**
448
476
  * @public
449
477
  */
450
- export declare const isHeadersElement: ElementPredicate<HeadersElement>;
478
+ export declare const isHeadersElement: (element: unknown) => element is HeadersElement;
451
479
 
452
480
  /**
453
481
  * @public
454
482
  */
455
- export declare const isInfoElement: ElementPredicate<InfoElement>;
483
+ export declare const isInfoElement: (element: unknown) => element is InfoElement;
456
484
 
457
485
  /**
458
486
  * @public
459
487
  */
460
- export declare const isItemsElement: ElementPredicate<ItemsElement>;
488
+ export declare const isItemsElement: (element: unknown) => element is ItemsElement;
461
489
 
462
490
  export { isJSONReferenceElement }
463
491
 
@@ -466,49 +494,37 @@ export { isJSONReferenceLikeElement }
466
494
  /**
467
495
  * @public
468
496
  */
469
- export declare const isLicenseElement: ElementPredicate<LicenseElement>;
470
-
471
- export { isLinkPrimitiveElement }
472
-
473
- export { isMemberElement }
474
-
475
- export { isNullElement }
476
-
477
- export { isNumberElement }
478
-
479
- export { isObjectElement }
497
+ export declare const isLicenseElement: (element: unknown) => element is LicenseElement;
480
498
 
481
499
  /**
482
500
  * @public
483
501
  */
484
- export declare const isOperationElement: ElementPredicate<OperationElement>;
502
+ export declare const isOperationElement: (element: unknown) => element is OperationElement;
485
503
 
486
504
  /**
487
505
  * @public
488
506
  */
489
- export declare const isParameterElement: ElementPredicate<ParameterElement>;
507
+ export declare const isParameterElement: (element: unknown) => element is ParameterElement;
490
508
 
491
509
  /**
492
510
  * @public
493
511
  */
494
- export declare const isParametersDefinitionsElement: ElementPredicate<ParametersDefinitionsElement>;
512
+ export declare const isParametersDefinitionsElement: (element: unknown) => element is ParametersDefinitionsElement;
495
513
 
496
514
  /**
497
515
  * @public
498
516
  */
499
- export declare const isPathItemElement: ElementPredicate<PathItemElement>;
517
+ export declare const isPathItemElement: (element: unknown) => element is PathItemElement;
500
518
 
501
519
  /**
502
520
  * @public
503
521
  */
504
- export declare const isPathsElement: ElementPredicate<PathsElement>;
505
-
506
- export { isRefElement }
522
+ export declare const isPathsElement: (element: unknown) => element is PathsElement;
507
523
 
508
524
  /**
509
525
  * @public
510
526
  */
511
- export declare const isReferenceElement: ElementPredicate<ReferenceElement>;
527
+ export declare const isReferenceElement: (element: unknown) => element is ReferenceElement;
512
528
 
513
529
  /**
514
530
  * @public
@@ -518,49 +534,47 @@ export declare const isReferenceLikeElement: (element: unknown) => element is Re
518
534
  /**
519
535
  * @public
520
536
  */
521
- export declare const isResponseElement: ElementPredicate<ResponseElement>;
537
+ export declare const isResponseElement: (element: unknown) => element is ResponseElement;
522
538
 
523
539
  /**
524
540
  * @public
525
541
  */
526
- export declare const isResponsesDefinitionsElement: ElementPredicate<ResponsesDefinitionsElement>;
542
+ export declare const isResponsesDefinitionsElement: (element: unknown) => element is ResponsesDefinitionsElement;
527
543
 
528
544
  /**
529
545
  * @public
530
546
  */
531
- export declare const isResponsesElement: ElementPredicate<ResponsesElement>;
547
+ export declare const isResponsesElement: (element: unknown) => element is ResponsesElement;
532
548
 
533
549
  /**
534
550
  * @public
535
551
  */
536
- export declare const isSchemaElement: ElementPredicate<SchemaElement>;
552
+ export declare const isSchemaElement: (element: unknown) => element is SchemaElement;
537
553
 
538
554
  /**
539
555
  * @public
540
556
  */
541
- export declare const isScopesElement: ElementPredicate<ScopesElement>;
557
+ export declare const isScopesElement: (element: unknown) => element is ScopesElement;
542
558
 
543
559
  /**
544
560
  * @public
545
561
  */
546
- export declare const isSecurityDefinitionsElement: ElementPredicate<SecurityDefinitionsElement>;
562
+ export declare const isSecurityDefinitionsElement: (element: unknown) => element is SecurityDefinitionsElement;
547
563
 
548
564
  /**
549
565
  * @public
550
566
  */
551
- export declare const isSecurityRequirementElement: ElementPredicate<SecurityRequirementElement>;
567
+ export declare const isSecurityRequirementElement: (element: unknown) => element is SecurityRequirementElement;
552
568
 
553
569
  /**
554
570
  * @public
555
571
  */
556
- export declare const isSecuritySchemeElement: ElementPredicate<SecuritySchemeElement>;
557
-
558
- export { isStringElement }
572
+ export declare const isSecuritySchemeElement: (element: unknown) => element is SecuritySchemeElement;
559
573
 
560
574
  /**
561
575
  * @public
562
576
  */
563
- export declare const isSwaggerElement: ElementPredicate<SwaggerElement>;
577
+ export declare const isSwaggerElement: (element: unknown) => element is SwaggerElement;
564
578
 
565
579
  /**
566
580
  * @public
@@ -570,17 +584,17 @@ export declare const isSwaggerExtension: (element: MemberElement) => boolean;
570
584
  /**
571
585
  * @public
572
586
  */
573
- export declare const isSwaggerVersionElement: ElementPredicate<SwaggerVersionElement>;
587
+ export declare const isSwaggerVersionElement: (element: unknown) => element is SwaggerVersionElement;
574
588
 
575
589
  /**
576
590
  * @public
577
591
  */
578
- export declare const isTagElement: ElementPredicate<TagElement>;
592
+ export declare const isTagElement: (element: unknown) => element is TagElement;
579
593
 
580
594
  /**
581
595
  * @public
582
596
  */
583
- export declare const isXmlElement: ElementPredicate<XmlElement>;
597
+ export declare const isXmlElement: (element: unknown) => element is XmlElement;
584
598
 
585
599
  /**
586
600
  * @public
@@ -592,8 +606,8 @@ export declare class ItemsElement extends JSONSchemaElement {
592
606
  *
593
607
  * URI: https://tools.ietf.org/html/draft-wright-json-schema-00
594
608
  */
595
- get idProp(): StringElement | undefined;
596
- set idProp(idProps: StringElement | undefined);
609
+ get idField(): StringElement | undefined;
610
+ set idField(idField: StringElement | undefined);
597
611
  get $schema(): StringElement | undefined;
598
612
  set $schema($schema: StringElement | undefined);
599
613
  /**
@@ -601,8 +615,8 @@ export declare class ItemsElement extends JSONSchemaElement {
601
615
  */
602
616
  get additionalItems(): this | JSONReferenceElement | BooleanElement | undefined;
603
617
  set additionalItems(additionalItems: this | JSONReferenceElement | BooleanElement | undefined);
604
- get items(): this | undefined;
605
- set items(items: this | undefined);
618
+ get itemsField(): this | undefined;
619
+ set itemsField(items: this | undefined);
606
620
  /**
607
621
  * Validation keywords for objects
608
622
  */
@@ -610,8 +624,8 @@ export declare class ItemsElement extends JSONSchemaElement {
610
624
  set maxProperties(maxProperties: NumberElement | undefined);
611
625
  get minProperties(): NumberElement | undefined;
612
626
  set minProperties(minProperties: NumberElement | undefined);
613
- get required(): ArrayElement | undefined;
614
- set required(required: ArrayElement | undefined);
627
+ get required(): ArrayElement<StringElement> | undefined;
628
+ set required(required: ArrayElement<StringElement> | undefined);
615
629
  get properties(): ObjectElement | undefined;
616
630
  set properties(properties: ObjectElement | undefined);
617
631
  get additionalProperties(): this | JSONReferenceElement | BooleanElement | undefined;
@@ -625,12 +639,12 @@ export declare class ItemsElement extends JSONSchemaElement {
625
639
  */
626
640
  get type(): StringElement | undefined;
627
641
  set type(type: StringElement | undefined);
628
- get allOf(): ArrayElement | undefined;
629
- set allOf(allOf: ArrayElement | undefined);
630
- get anyOf(): ArrayElement | undefined;
631
- set anyOf(anyOf: ArrayElement | undefined);
632
- get oneOf(): ArrayElement | undefined;
633
- set oneOf(oneOf: ArrayElement | undefined);
642
+ get allOf(): ArrayElement<this | JSONReferenceElement> | undefined;
643
+ set allOf(allOf: ArrayElement<this | JSONReferenceElement> | undefined);
644
+ get anyOf(): ArrayElement<this | JSONReferenceElement> | undefined;
645
+ set anyOf(anyOf: ArrayElement<this | JSONReferenceElement> | undefined);
646
+ get oneOf(): ArrayElement<this | JSONReferenceElement> | undefined;
647
+ set oneOf(oneOf: ArrayElement<this | JSONReferenceElement> | undefined);
634
648
  get not(): this | JSONReferenceElement | undefined;
635
649
  set not(not: this | JSONReferenceElement | undefined);
636
650
  get definitions(): ObjectElement | undefined;
@@ -651,8 +665,8 @@ export declare class ItemsElement extends JSONSchemaElement {
651
665
  */
652
666
  get base(): StringElement | undefined;
653
667
  set base(base: StringElement | undefined);
654
- get links(): ArrayElement | undefined;
655
- set links(links: ArrayElement | undefined);
668
+ get linksField(): ArrayElement<LinkDescriptionElement> | undefined;
669
+ set linksField(links: ArrayElement<LinkDescriptionElement> | undefined);
656
670
  get media(): MediaElement | undefined;
657
671
  set media(media: MediaElement | undefined);
658
672
  get readOnly(): BooleanElement | undefined;
@@ -662,19 +676,11 @@ export declare class ItemsElement extends JSONSchemaElement {
662
676
  /**
663
677
  * @public
664
678
  */
665
- export declare class ItemsVisitor extends ItemsVisitor_base {
679
+ export declare class ItemsVisitor extends BaseFixedFieldsVisitor {
666
680
  readonly element: ItemsElement;
667
681
  protected readonly specPath: SpecPath<['document', 'objects', 'Items']>;
668
682
  protected readonly canSupportSpecificationExtensions: true;
669
- constructor(options: ItemsVisitorOptions);
670
- }
671
-
672
- declare const ItemsVisitor_base: Class<any[], FixedFieldsVisitor & FallbackVisitor, typeof FixedFieldsVisitor & typeof FallbackVisitor>;
673
-
674
- /**
675
- * @public
676
- */
677
- export declare interface ItemsVisitorOptions extends FixedFieldsVisitorOptions, VisitorOptions {
683
+ constructor(options: BaseFixedFieldsVisitorOptions);
678
684
  }
679
685
 
680
686
  export { JSONReferenceElement }
@@ -684,10 +690,7 @@ export { JSONReferenceElement }
684
690
  */
685
691
  export declare const JSONSchemaAllOfVisitor: typeof AllOfVisitor;
686
692
 
687
- /**
688
- * @public
689
- */
690
- export declare const JSONSchemaItemsVisitor: typeof ItemsVisitor_2;
693
+ export { JSONSchemaItemsVisitor }
691
694
 
692
695
  /**
693
696
  * @public
@@ -699,59 +702,6 @@ export declare const JSONSchemaOrJSONReferenceVisitor: typeof SchemaOrReferenceV
699
702
  */
700
703
  export declare const JSONSchemaPropertiesVisitor: typeof PropertiesVisitor;
701
704
 
702
- /**
703
- * There are unfortunately two `LinkElement` types. One is from base namespace
704
- * and the other one if from this namespace. `LinkElement` from base namespace
705
- * is used extremely rarely, so it's almost always safe during traversing
706
- * to assume that `LinkElement` is element from this namespace.
707
- *
708
- * To be 100% sure that currently visiting `LinkElement` is from this namespace
709
- * use `isLinkElement` predicate from this namespace to assert for it.
710
- * @public
711
- */
712
- export declare const keyMap: {
713
- ObjectElement: string[];
714
- ArrayElement: string[];
715
- MemberElement: string[];
716
- StringElement: never[];
717
- BooleanElement: never[];
718
- NumberElement: never[];
719
- NullElement: never[];
720
- RefElement: never[];
721
- LinkElement: never[];
722
- Annotation: never[];
723
- Comment: never[];
724
- ParseResultElement: string[];
725
- SourceMap: string[];
726
- SwaggerElement: string[];
727
- InfoElement: string[];
728
- ContactElement: string[];
729
- LicenseElement: string[];
730
- PathsElement: string[];
731
- PathItemElement: string[];
732
- OperationElement: string[];
733
- ExternalDocumentationElement: string[];
734
- ParameterElement: string[];
735
- ItemsElement: string[];
736
- ExampleElement: string[];
737
- ResponsesElement: string[];
738
- ResponseElement: string[];
739
- HeadersElement: string[];
740
- HeaderElement: string[];
741
- TagElement: string[];
742
- ReferenceElement: string[];
743
- JSONReferenceElement: string[];
744
- SchemaElement: string[];
745
- XmlElement: string[];
746
- DefinitionsElement: string[];
747
- ParametersDefinitionsElement: string[];
748
- ResponsesDefinitionsElement: string[];
749
- SecurityDefinitionsElement: string[];
750
- SecuritySchemeElement: string[];
751
- ScopesElement: string[];
752
- SecurityRequirementElement: string[];
753
- };
754
-
755
705
  /**
756
706
  * @public
757
707
  */
@@ -766,19 +716,11 @@ export declare class LicenseElement extends ObjectElement {
766
716
  /**
767
717
  * @public
768
718
  */
769
- export declare class LicenseVisitor extends LicenseVisitor_base {
719
+ export declare class LicenseVisitor extends BaseFixedFieldsVisitor {
770
720
  readonly element: LicenseElement;
771
721
  protected readonly specPath: SpecPath<['document', 'objects', 'License']>;
772
722
  protected readonly canSupportSpecificationExtensions: true;
773
- constructor(options: LicenseVisitorOptions);
774
- }
775
-
776
- declare const LicenseVisitor_base: Class<any[], FixedFieldsVisitor & FallbackVisitor, typeof FixedFieldsVisitor & typeof FallbackVisitor>;
777
-
778
- /**
779
- * @public
780
- */
781
- export declare interface LicenseVisitorOptions extends FixedFieldsVisitorOptions, VisitorOptions {
723
+ constructor(options: BaseFixedFieldsVisitorOptions);
782
724
  }
783
725
 
784
726
  /**
@@ -802,14 +744,18 @@ export declare const mediaTypes: OpenAPIMediaTypes;
802
744
  /**
803
745
  * @public
804
746
  */
805
- export declare class MixedFieldsVisitor extends MixedFieldsVisitor_base {
747
+ export declare class MixedFieldsVisitor extends MixedFieldsVisitorBase {
806
748
  protected readonly specPathFixedFields: SpecPath;
807
749
  protected readonly specPathPatternedFields: SpecPath;
808
750
  constructor({ specPathFixedFields, specPathPatternedFields, ...rest }: MixedFieldsVisitorOptions);
809
- ObjectElement(objectElement: ObjectElement): {};
751
+ ObjectElement(path: Path<ObjectElement>): void;
810
752
  }
811
753
 
812
- declare const MixedFieldsVisitor_base: Class<any[], FixedFieldsVisitor & PatternedFieldsVisitor, typeof FixedFieldsVisitor & typeof PatternedFieldsVisitor>;
754
+ /**
755
+ * Base class for MixedFieldsVisitor combining FixedFieldsVisitor and PatternedFieldsVisitor.
756
+ * @public
757
+ */
758
+ export declare const MixedFieldsVisitorBase: Class<any[], FixedFieldsVisitor & PatternedFieldsVisitor, typeof FixedFieldsVisitor & typeof PatternedFieldsVisitor>;
813
759
 
814
760
  /**
815
761
  * @public
@@ -822,9 +768,7 @@ export declare interface MixedFieldsVisitorOptions extends PatternedFieldsVisito
822
768
  /**
823
769
  * @public
824
770
  */
825
- declare const openApi2: {
826
- namespace: (options: NamespacePluginOptions) => Namespace;
827
- };
771
+ declare const openApi2: NamespacePlugin;
828
772
  export default openApi2;
829
773
 
830
774
  /**
@@ -850,7 +794,7 @@ export declare class OperationConsumesElement extends ArrayElement {
850
794
  export declare class OperationConsumesVisitor extends FallbackVisitor {
851
795
  element: OperationConsumesElement;
852
796
  constructor(options: VisitorOptions);
853
- ArrayElement(arrayElement: ArrayElement): {};
797
+ ArrayElement(path: Path<ArrayElement>): void;
854
798
  }
855
799
 
856
800
  /**
@@ -891,16 +835,10 @@ export declare class OperationParametersElement extends ArrayElement {
891
835
  /**
892
836
  * @public
893
837
  */
894
- export declare class OperationParametersVisitor extends ParametersVisitor_base_2 {
838
+ export declare class OperationParametersVisitor extends BaseSpecificationVisitor {
895
839
  readonly element: OperationParametersElement;
896
- constructor(options: OperationParametersVisitorOptions);
897
- ArrayElement(arrayElement: ArrayElement): {};
898
- }
899
-
900
- /**
901
- * @public
902
- */
903
- export declare interface OperationParametersVisitorOptions extends SpecificationVisitorOptions, VisitorOptions {
840
+ constructor(options: BaseSpecificationVisitorOptions);
841
+ ArrayElement(path: Path<ArrayElement>): void;
904
842
  }
905
843
 
906
844
  /**
@@ -917,7 +855,7 @@ export declare class OperationProducesElement extends ArrayElement {
917
855
  export declare class OperationProducesVisitor extends FallbackVisitor {
918
856
  element: OperationProducesElement;
919
857
  constructor(options: VisitorOptions);
920
- ArrayElement(arrayElement: ArrayElement): {};
858
+ ArrayElement(path: Path<ArrayElement>): void;
921
859
  }
922
860
 
923
861
  /**
@@ -934,7 +872,7 @@ export declare class OperationSchemesElement extends ArrayElement {
934
872
  export declare class OperationSchemesVisitor extends FallbackVisitor {
935
873
  element: OperationSchemesElement;
936
874
  constructor(options: VisitorOptions);
937
- ArrayElement(arrayElement: ArrayElement): {};
875
+ ArrayElement(path: Path<ArrayElement>): void;
938
876
  }
939
877
 
940
878
  /**
@@ -948,16 +886,10 @@ export declare class OperationSecurityElement extends ArrayElement {
948
886
  /**
949
887
  * @public
950
888
  */
951
- export declare class OperationSecurityVisitor extends SecurityVisitor_base_2 {
889
+ export declare class OperationSecurityVisitor extends BaseSpecificationVisitor {
952
890
  readonly element: OperationSecurityElement;
953
- constructor(options: OperationSecurityVisitorOptions);
954
- ArrayElement(arrayElement: ArrayElement): {};
955
- }
956
-
957
- /**
958
- * @public
959
- */
960
- export declare interface OperationSecurityVisitorOptions extends SpecificationVisitorOptions, VisitorOptions {
891
+ constructor(options: BaseSpecificationVisitorOptions);
892
+ ArrayElement(path: Path<ArrayElement>): void;
961
893
  }
962
894
 
963
895
  /**
@@ -974,24 +906,16 @@ export declare class OperationTagsElement extends ArrayElement {
974
906
  export declare class OperationTagsVisitor extends FallbackVisitor {
975
907
  element: OperationTagsElement;
976
908
  constructor(options: VisitorOptions);
977
- ArrayElement(arrayElement: ArrayElement): {};
909
+ ArrayElement(path: Path<ArrayElement>): void;
978
910
  }
979
911
 
980
912
  /**
981
913
  * @public
982
914
  */
983
- export declare class OperationVisitor extends OperationVisitor_base {
915
+ export declare class OperationVisitor extends BaseFixedFieldsVisitor {
984
916
  readonly element: OperationElement;
985
917
  protected readonly specPath: SpecPath<['document', 'objects', 'Operation']>;
986
- constructor(options: OperationVisitorOptions);
987
- }
988
-
989
- declare const OperationVisitor_base: Class<any[], FixedFieldsVisitor & FallbackVisitor, typeof FixedFieldsVisitor & typeof FallbackVisitor>;
990
-
991
- /**
992
- * @public
993
- */
994
- export declare interface OperationVisitorOptions extends FixedFieldsVisitorOptions, VisitorOptions {
918
+ constructor(options: BaseFixedFieldsVisitorOptions);
995
919
  }
996
920
 
997
921
  /**
@@ -1004,8 +928,8 @@ export declare class ParameterElement extends JSONSchemaElement {
1004
928
  *
1005
929
  * URI: https://tools.ietf.org/html/draft-wright-json-schema-00
1006
930
  */
1007
- get idProp(): StringElement | undefined;
1008
- set idProp(idProps: StringElement | undefined);
931
+ get idField(): StringElement | undefined;
932
+ set idField(idField: StringElement | undefined);
1009
933
  get $schema(): StringElement | undefined;
1010
934
  set $schema($schema: StringElement | undefined);
1011
935
  /**
@@ -1013,8 +937,8 @@ export declare class ParameterElement extends JSONSchemaElement {
1013
937
  */
1014
938
  get additionalItems(): this | JSONReferenceElement | BooleanElement | undefined;
1015
939
  set additionalItems(additionalItems: this | JSONReferenceElement | BooleanElement | undefined);
1016
- get items(): this | undefined;
1017
- set items(items: this | undefined);
940
+ get itemsField(): this | undefined;
941
+ set itemsField(items: this | undefined);
1018
942
  /**
1019
943
  * Validation keywords for objects
1020
944
  */
@@ -1037,12 +961,12 @@ export declare class ParameterElement extends JSONSchemaElement {
1037
961
  */
1038
962
  get type(): StringElement | undefined;
1039
963
  set type(type: StringElement | undefined);
1040
- get allOf(): ArrayElement | undefined;
1041
- set allOf(allOf: ArrayElement | undefined);
1042
- get anyOf(): ArrayElement | undefined;
1043
- set anyOf(anyOf: ArrayElement | undefined);
1044
- get oneOf(): ArrayElement | undefined;
1045
- set oneOf(oneOf: ArrayElement | undefined);
964
+ get allOf(): ArrayElement<this | JSONReferenceElement> | undefined;
965
+ set allOf(allOf: ArrayElement<this | JSONReferenceElement> | undefined);
966
+ get anyOf(): ArrayElement<this | JSONReferenceElement> | undefined;
967
+ set anyOf(anyOf: ArrayElement<this | JSONReferenceElement> | undefined);
968
+ get oneOf(): ArrayElement<this | JSONReferenceElement> | undefined;
969
+ set oneOf(oneOf: ArrayElement<this | JSONReferenceElement> | undefined);
1046
970
  get not(): this | JSONReferenceElement | undefined;
1047
971
  set not(not: this | JSONReferenceElement | undefined);
1048
972
  get definitions(): ObjectElement | undefined;
@@ -1070,8 +994,8 @@ export declare class ParameterElement extends JSONSchemaElement {
1070
994
  */
1071
995
  get base(): StringElement | undefined;
1072
996
  set base(base: StringElement | undefined);
1073
- get links(): ArrayElement | undefined;
1074
- set links(links: ArrayElement | undefined);
997
+ get linksField(): ArrayElement<LinkDescriptionElement> | undefined;
998
+ set linksField(links: ArrayElement<LinkDescriptionElement> | undefined);
1075
999
  get media(): MediaElement | undefined;
1076
1000
  set media(media: MediaElement | undefined);
1077
1001
  get readOnly(): BooleanElement | undefined;
@@ -1097,40 +1021,20 @@ export declare class ParametersDefinitionsElement extends ObjectElement {
1097
1021
  /**
1098
1022
  * @public
1099
1023
  */
1100
- export declare class ParametersDefinitionsVisitor extends ParametersDefinitionsVisitor_base {
1024
+ export declare class ParametersDefinitionsVisitor extends BaseMapVisitor {
1101
1025
  readonly element: ParametersDefinitionsElement;
1102
1026
  protected readonly specPath: SpecPath<['document', 'objects', 'Parameter']>;
1103
- constructor(options: ParametersDefinitionsVisitorOptions);
1104
- }
1105
-
1106
- declare const ParametersDefinitionsVisitor_base: Class<any[], MapVisitor & FallbackVisitor, typeof MapVisitor & typeof FallbackVisitor>;
1107
-
1108
- /**
1109
- * @public
1110
- */
1111
- export declare interface ParametersDefinitionsVisitorOptions extends MapVisitorOptions, VisitorOptions {
1027
+ constructor(options: BaseMapVisitorOptions);
1112
1028
  }
1113
1029
 
1114
- declare const ParametersVisitor_base: Class<any[], SpecificationVisitor & FallbackVisitor, typeof SpecificationVisitor & typeof FallbackVisitor>;
1115
-
1116
- declare const ParametersVisitor_base_2: Class<any[], SpecificationVisitor & FallbackVisitor, typeof SpecificationVisitor & typeof FallbackVisitor>;
1117
-
1118
1030
  /**
1119
1031
  * @public
1120
1032
  */
1121
- export declare class ParameterVisitor extends ParameterVisitor_base {
1033
+ export declare class ParameterVisitor extends BaseFixedFieldsVisitor {
1122
1034
  readonly element: ParameterElement;
1123
1035
  protected readonly specPath: SpecPath<['document', 'objects', 'Parameter']>;
1124
1036
  protected readonly canSupportSpecificationExtensions: true;
1125
- constructor(options: ParameterVisitorOptions);
1126
- }
1127
-
1128
- declare const ParameterVisitor_base: Class<any[], FixedFieldsVisitor & FallbackVisitor, typeof FixedFieldsVisitor & typeof FallbackVisitor>;
1129
-
1130
- /**
1131
- * @public
1132
- */
1133
- export declare interface ParameterVisitorOptions extends FixedFieldsVisitorOptions, VisitorOptions {
1037
+ constructor(options: BaseFixedFieldsVisitorOptions);
1134
1038
  }
1135
1039
 
1136
1040
  /**
@@ -1138,7 +1042,7 @@ export declare interface ParameterVisitorOptions extends FixedFieldsVisitorOptio
1138
1042
  */
1139
1043
  export declare class PathItem$RefVisitor extends FallbackVisitor {
1140
1044
  readonly element: StringElement;
1141
- StringElement(stringElement: StringElement): {};
1045
+ StringElement(path: Path<StringElement>): void;
1142
1046
  }
1143
1047
 
1144
1048
  /**
@@ -1148,20 +1052,20 @@ export declare class PathItemElement extends ObjectElement {
1148
1052
  constructor(content?: Record<string, unknown>, meta?: Meta, attributes?: Attributes);
1149
1053
  get $ref(): StringElement | undefined;
1150
1054
  set $ref($ref: StringElement | undefined);
1151
- get GET(): OperationElement;
1152
- set GET(operation: OperationElement | undefined);
1153
- get PUT(): OperationElement;
1154
- set PUT(operation: OperationElement | undefined);
1155
- get POST(): OperationElement;
1156
- set POST(operation: OperationElement | undefined);
1157
- get DELETE(): OperationElement;
1158
- set DELETE(operation: OperationElement | undefined);
1159
- get OPTIONS(): OperationElement;
1160
- set OPTIONS(operation: OperationElement | undefined);
1161
- get HEAD(): OperationElement;
1162
- set HEAD(operation: OperationElement | undefined);
1163
- get PATCH(): OperationElement;
1164
- set PATCH(operation: OperationElement | undefined);
1055
+ get getField(): OperationElement | undefined;
1056
+ set getField(operation: OperationElement | undefined);
1057
+ get put(): OperationElement | undefined;
1058
+ set put(operation: OperationElement | undefined);
1059
+ get post(): OperationElement | undefined;
1060
+ set post(operation: OperationElement | undefined);
1061
+ get deleteField(): OperationElement | undefined;
1062
+ set deleteField(operation: OperationElement | undefined);
1063
+ get options(): OperationElement | undefined;
1064
+ set options(operation: OperationElement | undefined);
1065
+ get head(): OperationElement | undefined;
1066
+ set head(operation: OperationElement | undefined);
1067
+ get patch(): OperationElement | undefined;
1068
+ set patch(operation: OperationElement | undefined);
1165
1069
  get parameters(): ArrayElement;
1166
1070
  set parameters(parameters: ArrayElement | undefined);
1167
1071
  }
@@ -1177,34 +1081,20 @@ export declare class PathItemParametersElement extends ArrayElement {
1177
1081
  /**
1178
1082
  * @public
1179
1083
  */
1180
- export declare class PathItemParametersVisitor extends ParametersVisitor_base {
1084
+ export declare class PathItemParametersVisitor extends BaseSpecificationVisitor {
1181
1085
  readonly element: PathItemParametersElement;
1182
- constructor(options: PathItemParametersVisitorOptions);
1183
- ArrayElement(arrayElement: ArrayElement): {};
1184
- }
1185
-
1186
- /**
1187
- * @public
1188
- */
1189
- export declare interface PathItemParametersVisitorOptions extends SpecificationVisitorOptions, VisitorOptions {
1086
+ constructor(options: BaseSpecificationVisitorOptions);
1087
+ ArrayElement(path: Path<ArrayElement>): void;
1190
1088
  }
1191
1089
 
1192
1090
  /**
1193
1091
  * @public
1194
1092
  */
1195
- export declare class PathItemVisitor extends PathItemVisitor_base {
1093
+ export declare class PathItemVisitor extends BaseFixedFieldsVisitor {
1196
1094
  readonly element: PathItemElement;
1197
1095
  protected readonly specPath: SpecPath<['document', 'objects', 'PathItem']>;
1198
- constructor(options: PathItemVisitorOptions);
1199
- ObjectElement(objectElement: ObjectElement): {};
1200
- }
1201
-
1202
- declare const PathItemVisitor_base: Class<any[], FixedFieldsVisitor & FallbackVisitor, typeof FixedFieldsVisitor & typeof FallbackVisitor>;
1203
-
1204
- /**
1205
- * @public
1206
- */
1207
- export declare interface PathItemVisitorOptions extends FixedFieldsVisitorOptions, VisitorOptions {
1096
+ constructor(options: BaseFixedFieldsVisitorOptions);
1097
+ ObjectElement(path: Path<ObjectElement>): void;
1208
1098
  }
1209
1099
 
1210
1100
  /**
@@ -1217,20 +1107,12 @@ export declare class PathsElement extends ObjectElement {
1217
1107
  /**
1218
1108
  * @public
1219
1109
  */
1220
- export declare class PathsVisitor extends PathsVisitor_base {
1110
+ export declare class PathsVisitor extends BasePatternedFieldsVisitor {
1221
1111
  readonly element: PathsElement;
1222
1112
  protected readonly specPath: SpecPath<['document', 'objects', 'PathItem']>;
1223
1113
  protected readonly canSupportSpecificationExtensions: true;
1224
- constructor(options: PathsVisitorOptions);
1225
- ObjectElement(objectElement: ObjectElement): {};
1226
- }
1227
-
1228
- declare const PathsVisitor_base: Class<any[], PatternedFieldsVisitor & FallbackVisitor, typeof PatternedFieldsVisitor & typeof FallbackVisitor>;
1229
-
1230
- /**
1231
- * @public
1232
- */
1233
- export declare interface PathsVisitorOptions extends PatternedFieldsVisitorOptions, VisitorOptions {
1114
+ constructor(options: BasePatternedFieldsVisitorOptions);
1115
+ ObjectElement(path: Path<ObjectElement>): void;
1234
1116
  }
1235
1117
 
1236
1118
  /**
@@ -1243,7 +1125,7 @@ export declare class PatternedFieldsVisitor extends SpecificationVisitor {
1243
1125
  protected canSupportSpecificationExtensions: boolean;
1244
1126
  protected specificationExtensionPredicate: (element: MemberElement) => boolean;
1245
1127
  constructor({ specPath, ignoredFields, fieldPatternPredicate, canSupportSpecificationExtensions, specificationExtensionPredicate, ...rest }: PatternedFieldsVisitorOptions);
1246
- ObjectElement(objectElement: ObjectElement): {};
1128
+ ObjectElement(path: Path<ObjectElement>): void;
1247
1129
  }
1248
1130
 
1249
1131
  /**
@@ -1263,7 +1145,7 @@ export declare interface PatternedFieldsVisitorOptions extends SpecificationVisi
1263
1145
  export declare class ProducesVisitor extends FallbackVisitor {
1264
1146
  element: SwaggerProducesElement;
1265
1147
  constructor(options: VisitorOptions);
1266
- ArrayElement(arrayElement: ArrayElement): {};
1148
+ ArrayElement(path: Path<ArrayElement>): void;
1267
1149
  }
1268
1150
 
1269
1151
  /**
@@ -1271,7 +1153,7 @@ export declare class ProducesVisitor extends FallbackVisitor {
1271
1153
  */
1272
1154
  export declare class Reference$RefVisitor extends FallbackVisitor {
1273
1155
  readonly element: StringElement;
1274
- StringElement(stringElement: StringElement): {};
1156
+ StringElement(path: Path<StringElement>): void;
1275
1157
  }
1276
1158
 
1277
1159
  /**
@@ -1293,39 +1175,202 @@ export declare interface ReferenceLikeElement extends ObjectElement {
1293
1175
  /**
1294
1176
  * @public
1295
1177
  */
1296
- export declare class ReferenceVisitor extends ReferenceVisitor_base {
1178
+ export declare class ReferenceVisitor extends BaseFixedFieldsVisitor {
1297
1179
  readonly element: ReferenceElement;
1298
1180
  protected readonly specPath: SpecPath<['document', 'objects', 'Reference']>;
1299
1181
  protected readonly canSupportSpecificationExtensions: false;
1300
- constructor(options: ReferenceVisitorOptions);
1301
- ObjectElement(objectElement: ObjectElement): {};
1182
+ constructor(options: BaseFixedFieldsVisitorOptions);
1183
+ ObjectElement(path: Path<ObjectElement>): void;
1302
1184
  }
1303
1185
 
1304
- declare const ReferenceVisitor_base: Class<any[], FixedFieldsVisitor & FallbackVisitor, typeof FixedFieldsVisitor & typeof FallbackVisitor>;
1186
+ /**
1187
+ * @public
1188
+ */
1189
+ export declare const refract: <T extends Element_2>(value: unknown, { element, plugins, specificationObj }?: RefractorOptions) => T;
1190
+
1191
+ /**
1192
+ * Refracts a value into a ContactElement.
1193
+ * @public
1194
+ */
1195
+ export declare const refractContact: <T extends Element_2 = ContactElement>(value: unknown, options?: Omit<RefractorOptions, "element">) => T;
1196
+
1197
+ /**
1198
+ * Refracts a value into a DefinitionsElement.
1199
+ * @public
1200
+ */
1201
+ export declare const refractDefinitions: <T extends Element_2 = DefinitionsElement>(value: unknown, options?: Omit<RefractorOptions, "element">) => T;
1202
+
1203
+ /**
1204
+ * Refracts a value into an ExampleElement.
1205
+ * @public
1206
+ */
1207
+ export declare const refractExample: <T extends Element_2 = ExampleElement>(value: unknown, options?: Omit<RefractorOptions, "element">) => T;
1208
+
1209
+ /**
1210
+ * Refracts a value into an ExternalDocumentationElement.
1211
+ * @public
1212
+ */
1213
+ export declare const refractExternalDocumentation: <T extends Element_2 = ExternalDocumentationElement>(value: unknown, options?: Omit<RefractorOptions, "element">) => T;
1214
+
1215
+ /**
1216
+ * Refracts a value into a HeaderElement.
1217
+ * @public
1218
+ */
1219
+ export declare const refractHeader: <T extends Element_2 = HeaderElement>(value: unknown, options?: Omit<RefractorOptions, "element">) => T;
1220
+
1221
+ /**
1222
+ * Refracts a value into a HeadersElement.
1223
+ * @public
1224
+ */
1225
+ export declare const refractHeaders: <T extends Element_2 = HeadersElement>(value: unknown, options?: Omit<RefractorOptions, "element">) => T;
1226
+
1227
+ /**
1228
+ * Refracts a value into an InfoElement.
1229
+ * @public
1230
+ */
1231
+ export declare const refractInfo: <T extends Element_2 = InfoElement>(value: unknown, options?: Omit<RefractorOptions, "element">) => T;
1232
+
1233
+ /**
1234
+ * Refracts a value into an ItemsElement.
1235
+ * @public
1236
+ */
1237
+ export declare const refractItems: <T extends Element_2 = ItemsElement>(value: unknown, options?: Omit<RefractorOptions, "element">) => T;
1238
+
1239
+ /**
1240
+ * Refracts a value into a LicenseElement.
1241
+ * @public
1242
+ */
1243
+ export declare const refractLicense: <T extends Element_2 = LicenseElement>(value: unknown, options?: Omit<RefractorOptions, "element">) => T;
1244
+
1245
+ /**
1246
+ * Refracts a value into an OperationElement.
1247
+ * @public
1248
+ */
1249
+ export declare const refractOperation: <T extends Element_2 = OperationElement>(value: unknown, options?: Omit<RefractorOptions, "element">) => T;
1305
1250
 
1306
1251
  /**
1307
1252
  * @public
1308
1253
  */
1309
- export declare interface ReferenceVisitorOptions extends FixedFieldsVisitorOptions, VisitorOptions {
1254
+ export declare interface RefractorOptions {
1255
+ readonly element?: string;
1256
+ readonly plugins?: RefractorPlugin[];
1257
+ readonly specificationObj?: typeof specificationObj;
1310
1258
  }
1311
1259
 
1312
1260
  /**
1313
1261
  * @public
1314
1262
  */
1315
- export declare const refract: <T extends Element_2>(value: unknown, { specPath, plugins }?: {
1316
- specPath?: string[] | undefined;
1317
- plugins?: never[] | undefined;
1318
- }) => T;
1263
+ export declare type RefractorPlugin = (toolbox: Toolbox) => {
1264
+ visitor?: object;
1265
+ pre?: () => void;
1266
+ post?: () => void;
1267
+ };
1319
1268
 
1320
1269
  /**
1321
1270
  * @public
1322
1271
  */
1323
1272
  export declare const refractorPluginReplaceEmptyElement: () => () => {
1324
1273
  visitor: {
1325
- StringElement(element: StringElement, key: any, parent: any, path: any, ancestors: any[]): any;
1274
+ StringElement(path: Path<StringElement>): void;
1326
1275
  };
1327
1276
  };
1328
1277
 
1278
+ /**
1279
+ * Refracts a value into a ParameterElement.
1280
+ * @public
1281
+ */
1282
+ export declare const refractParameter: <T extends Element_2 = ParameterElement>(value: unknown, options?: Omit<RefractorOptions, "element">) => T;
1283
+
1284
+ /**
1285
+ * Refracts a value into a ParametersDefinitionsElement.
1286
+ * @public
1287
+ */
1288
+ export declare const refractParametersDefinitions: <T extends Element_2 = ParametersDefinitionsElement>(value: unknown, options?: Omit<RefractorOptions, "element">) => T;
1289
+
1290
+ /**
1291
+ * Refracts a value into a PathItemElement.
1292
+ * @public
1293
+ */
1294
+ export declare const refractPathItem: <T extends Element_2 = PathItemElement>(value: unknown, options?: Omit<RefractorOptions, "element">) => T;
1295
+
1296
+ /**
1297
+ * Refracts a value into a PathsElement.
1298
+ * @public
1299
+ */
1300
+ export declare const refractPaths: <T extends Element_2 = PathsElement>(value: unknown, options?: Omit<RefractorOptions, "element">) => T;
1301
+
1302
+ /**
1303
+ * Refracts a value into a ReferenceElement.
1304
+ * @public
1305
+ */
1306
+ export declare const refractReference: <T extends Element_2 = ReferenceElement>(value: unknown, options?: Omit<RefractorOptions, "element">) => T;
1307
+
1308
+ /**
1309
+ * Refracts a value into a ResponseElement.
1310
+ * @public
1311
+ */
1312
+ export declare const refractResponse: <T extends Element_2 = ResponseElement>(value: unknown, options?: Omit<RefractorOptions, "element">) => T;
1313
+
1314
+ /**
1315
+ * Refracts a value into a ResponsesElement.
1316
+ * @public
1317
+ */
1318
+ export declare const refractResponses: <T extends Element_2 = ResponsesElement>(value: unknown, options?: Omit<RefractorOptions, "element">) => T;
1319
+
1320
+ /**
1321
+ * Refracts a value into a ResponsesDefinitionsElement.
1322
+ * @public
1323
+ */
1324
+ export declare const refractResponsesDefinitions: <T extends Element_2 = ResponsesDefinitionsElement>(value: unknown, options?: Omit<RefractorOptions, "element">) => T;
1325
+
1326
+ /**
1327
+ * Refracts a value into a SchemaElement.
1328
+ * @public
1329
+ */
1330
+ export declare const refractSchema: <T extends Element_2 = SchemaElement>(value: unknown, options?: Omit<RefractorOptions, "element">) => T;
1331
+
1332
+ /**
1333
+ * Refracts a value into a ScopesElement.
1334
+ * @public
1335
+ */
1336
+ export declare const refractScopes: <T extends Element_2 = ScopesElement>(value: unknown, options?: Omit<RefractorOptions, "element">) => T;
1337
+
1338
+ /**
1339
+ * Refracts a value into a SecurityDefinitionsElement.
1340
+ * @public
1341
+ */
1342
+ export declare const refractSecurityDefinitions: <T extends Element_2 = SecurityDefinitionsElement>(value: unknown, options?: Omit<RefractorOptions, "element">) => T;
1343
+
1344
+ /**
1345
+ * Refracts a value into a SecurityRequirementElement.
1346
+ * @public
1347
+ */
1348
+ export declare const refractSecurityRequirement: <T extends Element_2 = SecurityRequirementElement>(value: unknown, options?: Omit<RefractorOptions, "element">) => T;
1349
+
1350
+ /**
1351
+ * Refracts a value into a SecuritySchemeElement.
1352
+ * @public
1353
+ */
1354
+ export declare const refractSecurityScheme: <T extends Element_2 = SecuritySchemeElement>(value: unknown, options?: Omit<RefractorOptions, "element">) => T;
1355
+
1356
+ /**
1357
+ * Refracts a value into a SwaggerElement.
1358
+ * @public
1359
+ */
1360
+ export declare const refractSwagger: <T extends Element_2 = SwaggerElement>(value: unknown, options?: Omit<RefractorOptions, "element">) => T;
1361
+
1362
+ /**
1363
+ * Refracts a value into a TagElement.
1364
+ * @public
1365
+ */
1366
+ export declare const refractTag: <T extends Element_2 = TagElement>(value: unknown, options?: Omit<RefractorOptions, "element">) => T;
1367
+
1368
+ /**
1369
+ * Refracts a value into an XmlElement.
1370
+ * @public
1371
+ */
1372
+ export declare const refractXml: <T extends Element_2 = XmlElement>(value: unknown, options?: Omit<RefractorOptions, "element">) => T;
1373
+
1329
1374
  /**
1330
1375
  * @public
1331
1376
  */
@@ -1344,15 +1389,9 @@ export declare class ResponseElement extends ObjectElement {
1344
1389
  /**
1345
1390
  * @public
1346
1391
  */
1347
- export declare class ResponsesDefaultVisitor extends DefaultVisitor_base {
1348
- constructor(options: ResponsesDefaultVisitorOptions);
1349
- ObjectElement(objectElement: ObjectElement): {};
1350
- }
1351
-
1352
- /**
1353
- * @public
1354
- */
1355
- export declare interface ResponsesDefaultVisitorOptions extends AlternatingVisitorOptions, VisitorOptions {
1392
+ export declare class ResponsesDefaultVisitor extends BaseAlternatingVisitor {
1393
+ constructor(options: BaseAlternatingVisitorOptions);
1394
+ ObjectElement(path: Path<ObjectElement>): void;
1356
1395
  }
1357
1396
 
1358
1397
  /**
@@ -1365,18 +1404,10 @@ export declare class ResponsesDefinitionsElement extends ObjectElement {
1365
1404
  /**
1366
1405
  * @public
1367
1406
  */
1368
- export declare class ResponsesDefinitionsVisitor extends ResponsesDefinitionsVisitor_base {
1407
+ export declare class ResponsesDefinitionsVisitor extends BaseMapVisitor {
1369
1408
  readonly element: ResponsesDefinitionsElement;
1370
1409
  protected readonly specPath: SpecPath<['document', 'objects', 'Response']>;
1371
- constructor(options: ResponsesDefinitionsVisitorOptions);
1372
- }
1373
-
1374
- declare const ResponsesDefinitionsVisitor_base: Class<any[], MapVisitor & FallbackVisitor, typeof MapVisitor & typeof FallbackVisitor>;
1375
-
1376
- /**
1377
- * @public
1378
- */
1379
- export declare interface ResponsesDefinitionsVisitorOptions extends MapVisitorOptions, VisitorOptions {
1410
+ constructor(options: BaseMapVisitorOptions);
1380
1411
  }
1381
1412
 
1382
1413
  /**
@@ -1391,7 +1422,7 @@ export declare class ResponsesElement extends ObjectElement {
1391
1422
  /**
1392
1423
  * @public
1393
1424
  */
1394
- export declare class ResponsesVisitor extends ResponsesVisitor_base {
1425
+ export declare class ResponsesVisitor extends BaseMixedFieldsVisitor {
1395
1426
  readonly element: ResponsesElement;
1396
1427
  protected readonly specPathFixedFields: SpecPath<['document', 'objects', 'Responses']>;
1397
1428
  protected readonly canSupportSpecificationExtensions: true;
@@ -1400,41 +1431,25 @@ export declare class ResponsesVisitor extends ResponsesVisitor_base {
1400
1431
  'objects',
1401
1432
  'Reference'
1402
1433
  ] | ['document', 'objects', 'Response']>;
1403
- constructor(options: ResponsesVisitorOptions);
1404
- ObjectElement(objectElement: ObjectElement): {};
1405
- }
1406
-
1407
- declare const ResponsesVisitor_base: Class<any[], MixedFieldsVisitor & FallbackVisitor, typeof MixedFieldsVisitor & typeof FallbackVisitor>;
1408
-
1409
- /**
1410
- * @public
1411
- */
1412
- export declare interface ResponsesVisitorOptions extends MixedFieldsVisitorOptions, VisitorOptions {
1434
+ constructor(options: BaseMixedFieldsVisitorOptions);
1435
+ ObjectElement(path: Path<ObjectElement>): void;
1413
1436
  }
1414
1437
 
1415
1438
  /**
1416
1439
  * @public
1417
1440
  */
1418
- export declare class ResponseVisitor extends ResponseVisitor_base {
1441
+ export declare class ResponseVisitor extends BaseFixedFieldsVisitor {
1419
1442
  readonly element: ResponseElement;
1420
1443
  protected readonly specPath: SpecPath<['document', 'objects', 'Response']>;
1421
1444
  protected readonly canSupportSpecificationExtensions: true;
1422
- constructor(options: ResponseVisitorOptions);
1423
- }
1424
-
1425
- declare const ResponseVisitor_base: Class<any[], FixedFieldsVisitor & FallbackVisitor, typeof FixedFieldsVisitor & typeof FallbackVisitor>;
1426
-
1427
- /**
1428
- * @public
1429
- */
1430
- export declare interface ResponseVisitorOptions extends FixedFieldsVisitorOptions, VisitorOptions {
1445
+ constructor(options: BaseFixedFieldsVisitorOptions);
1431
1446
  }
1432
1447
 
1433
1448
  /**
1434
1449
  * @public
1435
1450
  */
1436
1451
  export declare class SchemaAllOfVisitor extends JSONSchemaAllOfVisitor {
1437
- ArrayElement(arrayElement: ArrayElement): {};
1452
+ ArrayElement(path: Path<ArrayElement>): void;
1438
1453
  }
1439
1454
 
1440
1455
  export { SchemaAllOfVisitorOptions }
@@ -1449,8 +1464,8 @@ export declare class SchemaElement extends JSONSchemaElement {
1449
1464
  *
1450
1465
  * URI: https://tools.ietf.org/html/draft-wright-json-schema-00
1451
1466
  */
1452
- get idProp(): StringElement | undefined;
1453
- set idProp(idProps: StringElement | undefined);
1467
+ get idField(): StringElement | undefined;
1468
+ set idField(idField: StringElement | undefined);
1454
1469
  get $schema(): StringElement | undefined;
1455
1470
  set $schema($schema: StringElement | undefined);
1456
1471
  /**
@@ -1468,10 +1483,10 @@ export declare class SchemaElement extends JSONSchemaElement {
1468
1483
  /**
1469
1484
  * Validation keywords for any instance type
1470
1485
  */
1471
- get anyOf(): ArrayElement | undefined;
1472
- set anyOf(anyOf: ArrayElement | undefined);
1473
- get oneOf(): ArrayElement | undefined;
1474
- set oneOf(oneOf: ArrayElement | undefined);
1486
+ get anyOf(): ArrayElement<this | JSONReferenceElement> | undefined;
1487
+ set anyOf(anyOf: ArrayElement<this | JSONReferenceElement> | undefined);
1488
+ get oneOf(): ArrayElement<this | JSONReferenceElement> | undefined;
1489
+ set oneOf(oneOf: ArrayElement<this | JSONReferenceElement> | undefined);
1475
1490
  get not(): this | JSONReferenceElement | undefined;
1476
1491
  set not(not: this | JSONReferenceElement | undefined);
1477
1492
  get definitions(): ObjectElement | undefined;
@@ -1483,18 +1498,31 @@ export declare class SchemaElement extends JSONSchemaElement {
1483
1498
  */
1484
1499
  get base(): StringElement | undefined;
1485
1500
  set base(base: StringElement | undefined);
1486
- get links(): ArrayElement | undefined;
1487
- set links(links: ArrayElement | undefined);
1501
+ get linksField(): ArrayElement<LinkDescriptionElement> | undefined;
1502
+ set linksField(links: ArrayElement<LinkDescriptionElement> | undefined);
1488
1503
  get media(): MediaElement | undefined;
1489
1504
  set media(media: MediaElement | undefined);
1505
+ /**
1506
+ * OpenAPI 2.0 specific
1507
+ */
1508
+ get xml(): XmlElement | undefined;
1509
+ set xml(xml: XmlElement | undefined);
1510
+ get discriminator(): StringElement | undefined;
1511
+ set discriminator(discriminator: StringElement | undefined);
1512
+ get readOnly(): BooleanElement | undefined;
1513
+ set readOnly(readOnly: BooleanElement | undefined);
1514
+ get externalDocs(): ObjectElement | undefined;
1515
+ set externalDocs(externalDocs: ObjectElement | undefined);
1516
+ get example(): unknown;
1517
+ set example(example: unknown);
1490
1518
  }
1491
1519
 
1492
1520
  /**
1493
1521
  * @public
1494
1522
  */
1495
1523
  export declare class SchemaItemsVisitor extends JSONSchemaItemsVisitor {
1496
- ObjectElement(objectElement: ObjectElement): {};
1497
- ArrayElement(arrayElement: ArrayElement): {};
1524
+ ObjectElement(path: Path<ObjectElement>): void;
1525
+ ArrayElement(path: Path<ArrayElement>): void;
1498
1526
  }
1499
1527
 
1500
1528
  export { SchemaItemsVisitorOptions }
@@ -1504,7 +1532,7 @@ export { SchemaItemsVisitorOptions }
1504
1532
  */
1505
1533
  export declare class SchemaOrJSONReferenceVisitor extends JSONSchemaOrJSONReferenceVisitor {
1506
1534
  element: SchemaElement | JSONReferenceElement;
1507
- ObjectElement(objectElement: ObjectElement): {};
1535
+ ObjectElement(path: Path<ObjectElement>): void;
1508
1536
  }
1509
1537
 
1510
1538
  export { SchemaOrJSONReferenceVisitorOptions }
@@ -1513,7 +1541,7 @@ export { SchemaOrJSONReferenceVisitorOptions }
1513
1541
  * @public
1514
1542
  */
1515
1543
  export declare class SchemaPropertiesVisitor extends JSONSchemaPropertiesVisitor {
1516
- ObjectElement(objectElement: ObjectElement): {};
1544
+ ObjectElement(path: Path<ObjectElement>): void;
1517
1545
  }
1518
1546
 
1519
1547
  export { SchemaPropertiesVisitorOptions }
@@ -1521,19 +1549,11 @@ export { SchemaPropertiesVisitorOptions }
1521
1549
  /**
1522
1550
  * @public
1523
1551
  */
1524
- export declare class SchemaVisitor extends SchemaVisitor_base {
1552
+ export declare class SchemaVisitor extends BaseFixedFieldsVisitor {
1525
1553
  readonly element: SchemaElement;
1526
1554
  protected readonly specPath: SpecPath<['document', 'objects', 'Schema']>;
1527
1555
  protected readonly canSupportSpecificationExtensions: true;
1528
- constructor(options: SchemaVisitorOptions);
1529
- }
1530
-
1531
- declare const SchemaVisitor_base: Class<any[], FixedFieldsVisitor & FallbackVisitor, typeof FixedFieldsVisitor & typeof FallbackVisitor>;
1532
-
1533
- /**
1534
- * @public
1535
- */
1536
- export declare interface SchemaVisitorOptions extends FixedFieldsVisitorOptions, VisitorOptions {
1556
+ constructor(options: BaseFixedFieldsVisitorOptions);
1537
1557
  }
1538
1558
 
1539
1559
  /**
@@ -1542,7 +1562,7 @@ export declare interface SchemaVisitorOptions extends FixedFieldsVisitorOptions,
1542
1562
  export declare class SchemesVisitor extends FallbackVisitor {
1543
1563
  element: SwaggerSchemesElement;
1544
1564
  constructor(options: VisitorOptions);
1545
- ArrayElement(arrayElement: ArrayElement): {};
1565
+ ArrayElement(path: Path<ArrayElement>): void;
1546
1566
  }
1547
1567
 
1548
1568
  /**
@@ -1555,19 +1575,11 @@ export declare class ScopesElement extends ObjectElement {
1555
1575
  /**
1556
1576
  * @public
1557
1577
  */
1558
- export declare class ScopesVisitor extends ScopesVisitor_base {
1578
+ export declare class ScopesVisitor extends BaseMapVisitor {
1559
1579
  readonly element: ScopesElement;
1560
1580
  protected readonly specPath: SpecPath<['value']>;
1561
1581
  protected readonly canSupportSpecificationExtensions: true;
1562
- constructor(options: ScopesVisitorOptions);
1563
- }
1564
-
1565
- declare const ScopesVisitor_base: Class<any[], MapVisitor & FallbackVisitor, typeof MapVisitor & typeof FallbackVisitor>;
1566
-
1567
- /**
1568
- * @public
1569
- */
1570
- export declare interface ScopesVisitorOptions extends MapVisitorOptions, VisitorOptions {
1582
+ constructor(options: BaseMapVisitorOptions);
1571
1583
  }
1572
1584
 
1573
1585
  /**
@@ -1580,18 +1592,10 @@ export declare class SecurityDefinitionsElement extends ObjectElement {
1580
1592
  /**
1581
1593
  * @public
1582
1594
  */
1583
- export declare class SecurityDefinitionsVisitor extends SecurityDefinitionsVisitor_base {
1595
+ export declare class SecurityDefinitionsVisitor extends BaseMapVisitor {
1584
1596
  readonly element: SecurityDefinitionsElement;
1585
1597
  protected readonly specPath: SpecPath<['document', 'objects', 'SecurityScheme']>;
1586
- constructor(options: SecurityDefinitionsVisitorOptions);
1587
- }
1588
-
1589
- declare const SecurityDefinitionsVisitor_base: Class<any[], MapVisitor & FallbackVisitor, typeof MapVisitor & typeof FallbackVisitor>;
1590
-
1591
- /**
1592
- * @public
1593
- */
1594
- export declare interface SecurityDefinitionsVisitorOptions extends MapVisitorOptions, VisitorOptions {
1598
+ constructor(options: BaseMapVisitorOptions);
1595
1599
  }
1596
1600
 
1597
1601
  /**
@@ -1604,18 +1608,10 @@ export declare class SecurityRequirementElement extends ObjectElement {
1604
1608
  /**
1605
1609
  * @public
1606
1610
  */
1607
- export declare class SecurityRequirementVisitor extends SecurityRequirementVisitor_base {
1611
+ export declare class SecurityRequirementVisitor extends BaseMapVisitor {
1608
1612
  readonly element: SecurityRequirementElement;
1609
1613
  protected readonly specPath: SpecPath<['value']>;
1610
- constructor(options: SecurityRequirementVisitorOptions);
1611
- }
1612
-
1613
- declare const SecurityRequirementVisitor_base: Class<any[], MapVisitor & FallbackVisitor, typeof MapVisitor & typeof FallbackVisitor>;
1614
-
1615
- /**
1616
- * @public
1617
- */
1618
- export declare interface SecurityRequirementVisitorOptions extends MapVisitorOptions, VisitorOptions {
1614
+ constructor(options: BaseMapVisitorOptions);
1619
1615
  }
1620
1616
 
1621
1617
  /**
@@ -1644,38 +1640,20 @@ export declare class SecuritySchemeElement extends ObjectElement {
1644
1640
  /**
1645
1641
  * @public
1646
1642
  */
1647
- export declare class SecuritySchemeVisitor extends SecuritySchemeVisitor_base {
1643
+ export declare class SecuritySchemeVisitor extends BaseFixedFieldsVisitor {
1648
1644
  readonly element: SecuritySchemeElement;
1649
1645
  protected readonly specPath: SpecPath<['document', 'objects', 'SecurityScheme']>;
1650
1646
  protected readonly canSupportSpecificationExtensions: true;
1651
- constructor(options: SecuritySchemeVisitorOptions);
1652
- }
1653
-
1654
- declare const SecuritySchemeVisitor_base: Class<any[], FixedFieldsVisitor & FallbackVisitor, typeof FixedFieldsVisitor & typeof FallbackVisitor>;
1655
-
1656
- /**
1657
- * @public
1658
- */
1659
- export declare interface SecuritySchemeVisitorOptions extends FixedFieldsVisitorOptions, VisitorOptions {
1647
+ constructor(options: BaseFixedFieldsVisitorOptions);
1660
1648
  }
1661
1649
 
1662
1650
  /**
1663
1651
  * @public
1664
1652
  */
1665
- export declare class SecurityVisitor extends SecurityVisitor_base {
1653
+ export declare class SecurityVisitor extends BaseSpecificationVisitor {
1666
1654
  readonly element: SwaggerSecurityElement;
1667
- constructor(options: SecurityVisitorOptions);
1668
- ArrayElement(arrayElement: ArrayElement): {};
1669
- }
1670
-
1671
- declare const SecurityVisitor_base: Class<any[], SpecificationVisitor & FallbackVisitor, typeof SpecificationVisitor & typeof FallbackVisitor>;
1672
-
1673
- declare const SecurityVisitor_base_2: Class<any[], SpecificationVisitor & FallbackVisitor, typeof SpecificationVisitor & typeof FallbackVisitor>;
1674
-
1675
- /**
1676
- * @public
1677
- */
1678
- export declare interface SecurityVisitorOptions extends SpecificationVisitorOptions, VisitorOptions {
1655
+ constructor(options: BaseSpecificationVisitorOptions);
1656
+ ArrayElement(path: Path<ArrayElement>): void;
1679
1657
  }
1680
1658
 
1681
1659
  /**
@@ -1683,7 +1661,7 @@ export declare interface SecurityVisitorOptions extends SpecificationVisitorOpti
1683
1661
  */
1684
1662
  export declare class SpecificationExtensionVisitor extends SpecificationVisitor {
1685
1663
  element: MemberElement;
1686
- MemberElement(memberElement: MemberElement): {};
1664
+ MemberElement(path: Path<MemberElement>): void;
1687
1665
  }
1688
1666
 
1689
1667
  /**
@@ -1695,6 +1673,7 @@ export declare const specificationObj: {
1695
1673
  document: {
1696
1674
  objects: {
1697
1675
  JSONReference: {
1676
+ element: string;
1698
1677
  $visitor: JSONReferenceVisitor;
1699
1678
  fixedFields: {
1700
1679
  $ref: JSONReference$RefVisitor;
@@ -1705,6 +1684,7 @@ export declare const specificationObj: {
1705
1684
  };
1706
1685
  Swagger: {
1707
1686
  $visitor: typeof SwaggerVisitor;
1687
+ element: string;
1708
1688
  fixedFields: {
1709
1689
  swagger: typeof SwaggerVersionVisitor;
1710
1690
  info: {
@@ -1739,6 +1719,7 @@ export declare const specificationObj: {
1739
1719
  };
1740
1720
  Info: {
1741
1721
  $visitor: typeof InfoVisitor;
1722
+ element: string;
1742
1723
  fixedFields: {
1743
1724
  title: {
1744
1725
  $ref: string;
@@ -1760,6 +1741,7 @@ export declare const specificationObj: {
1760
1741
  };
1761
1742
  Contact: {
1762
1743
  $visitor: typeof ContactVisitor;
1744
+ element: string;
1763
1745
  fixedFields: {
1764
1746
  name: {
1765
1747
  $ref: string;
@@ -1774,6 +1756,7 @@ export declare const specificationObj: {
1774
1756
  };
1775
1757
  License: {
1776
1758
  $visitor: typeof LicenseVisitor;
1759
+ element: string;
1777
1760
  fixedFields: {
1778
1761
  name: {
1779
1762
  $ref: string;
@@ -1785,9 +1768,11 @@ export declare const specificationObj: {
1785
1768
  };
1786
1769
  Paths: {
1787
1770
  $visitor: typeof PathsVisitor;
1771
+ element: string;
1788
1772
  };
1789
1773
  PathItem: {
1790
1774
  $visitor: typeof PathItemVisitor;
1775
+ element: string;
1791
1776
  fixedFields: {
1792
1777
  $ref: typeof PathItem$RefVisitor;
1793
1778
  get: {
@@ -1816,6 +1801,7 @@ export declare const specificationObj: {
1816
1801
  };
1817
1802
  Operation: {
1818
1803
  $visitor: typeof OperationVisitor;
1804
+ element: string;
1819
1805
  fixedFields: {
1820
1806
  tags: typeof OperationTagsVisitor;
1821
1807
  summary: {
@@ -1845,6 +1831,7 @@ export declare const specificationObj: {
1845
1831
  };
1846
1832
  ExternalDocumentation: {
1847
1833
  $visitor: typeof ExternalDocumentationVisitor;
1834
+ element: string;
1848
1835
  fixedFields: {
1849
1836
  description: {
1850
1837
  $ref: string;
@@ -1856,6 +1843,7 @@ export declare const specificationObj: {
1856
1843
  };
1857
1844
  Parameter: {
1858
1845
  $visitor: typeof ParameterVisitor;
1846
+ element: string;
1859
1847
  fixedFields: {
1860
1848
  name: {
1861
1849
  $ref: string;
@@ -1873,7 +1861,8 @@ export declare const specificationObj: {
1873
1861
  $ref: string;
1874
1862
  };
1875
1863
  items: {
1876
- $ref: string;
1864
+ $visitor: typeof ItemsVisitor;
1865
+ alias: string;
1877
1866
  };
1878
1867
  collectionFormat: {
1879
1868
  $ref: string;
@@ -1919,13 +1908,15 @@ export declare const specificationObj: {
1919
1908
  };
1920
1909
  Items: {
1921
1910
  $visitor: typeof ItemsVisitor;
1911
+ element: string;
1922
1912
  fixedFields: {
1923
1913
  type: TypeVisitor;
1924
1914
  format: {
1925
1915
  $ref: string;
1926
1916
  };
1927
1917
  items: {
1928
- $ref: string;
1918
+ $visitor: typeof ItemsVisitor;
1919
+ alias: string;
1929
1920
  };
1930
1921
  collectionFormat: {
1931
1922
  $ref: string;
@@ -1971,12 +1962,14 @@ export declare const specificationObj: {
1971
1962
  };
1972
1963
  Responses: {
1973
1964
  $visitor: typeof ResponsesVisitor;
1965
+ element: string;
1974
1966
  fixedFields: {
1975
1967
  default: typeof ResponsesDefaultVisitor;
1976
1968
  };
1977
1969
  };
1978
1970
  Response: {
1979
1971
  $visitor: typeof ResponseVisitor;
1972
+ element: string;
1980
1973
  fixedFields: {
1981
1974
  description: {
1982
1975
  $ref: string;
@@ -1992,12 +1985,15 @@ export declare const specificationObj: {
1992
1985
  };
1993
1986
  Headers: {
1994
1987
  $visitor: typeof HeadersVisitor;
1988
+ element: string;
1995
1989
  };
1996
1990
  Example: {
1997
1991
  $visitor: typeof ExampleVisitor;
1992
+ element: string;
1998
1993
  };
1999
1994
  Header: {
2000
1995
  $visitor: typeof HeaderVisitor;
1996
+ element: string;
2001
1997
  fixedFields: {
2002
1998
  description: {
2003
1999
  $ref: string;
@@ -2007,7 +2003,8 @@ export declare const specificationObj: {
2007
2003
  $ref: string;
2008
2004
  };
2009
2005
  items: {
2010
- $ref: string;
2006
+ $visitor: typeof ItemsVisitor;
2007
+ alias: string;
2011
2008
  };
2012
2009
  collectionFormat: {
2013
2010
  $ref: string;
@@ -2053,6 +2050,7 @@ export declare const specificationObj: {
2053
2050
  };
2054
2051
  Tag: {
2055
2052
  $visitor: typeof TagVisitor;
2053
+ element: string;
2056
2054
  fixedFields: {
2057
2055
  name: {
2058
2056
  $ref: string;
@@ -2067,12 +2065,14 @@ export declare const specificationObj: {
2067
2065
  };
2068
2066
  Reference: {
2069
2067
  $visitor: typeof ReferenceVisitor;
2068
+ element: string;
2070
2069
  fixedFields: {
2071
2070
  $ref: typeof Reference$RefVisitor;
2072
2071
  };
2073
2072
  };
2074
2073
  Schema: {
2075
2074
  $visitor: typeof SchemaVisitor;
2075
+ element: string;
2076
2076
  fixedFields: {
2077
2077
  format: {
2078
2078
  $ref: string;
@@ -2151,6 +2151,7 @@ export declare const specificationObj: {
2151
2151
  };
2152
2152
  XML: {
2153
2153
  $visitor: typeof XmlVisitor;
2154
+ element: string;
2154
2155
  fixedFields: {
2155
2156
  name: {
2156
2157
  $ref: string;
@@ -2171,18 +2172,23 @@ export declare const specificationObj: {
2171
2172
  };
2172
2173
  Definitions: {
2173
2174
  $visitor: typeof DefinitionsVisitor;
2175
+ element: string;
2174
2176
  };
2175
2177
  ParametersDefinitions: {
2176
2178
  $visitor: typeof ParametersDefinitionsVisitor;
2179
+ element: string;
2177
2180
  };
2178
2181
  ResponsesDefinitions: {
2179
2182
  $visitor: typeof ResponsesDefinitionsVisitor;
2183
+ element: string;
2180
2184
  };
2181
2185
  SecurityDefinitions: {
2182
2186
  $visitor: typeof SecurityDefinitionsVisitor;
2187
+ element: string;
2183
2188
  };
2184
2189
  SecurityScheme: {
2185
2190
  $visitor: typeof SecuritySchemeVisitor;
2191
+ element: string;
2186
2192
  fixedFields: {
2187
2193
  type: {
2188
2194
  $ref: string;
@@ -2212,9 +2218,11 @@ export declare const specificationObj: {
2212
2218
  };
2213
2219
  Scopes: {
2214
2220
  $visitor: typeof ScopesVisitor;
2221
+ element: string;
2215
2222
  };
2216
2223
  SecurityRequirement: {
2217
2224
  $visitor: typeof SecurityRequirementVisitor;
2225
+ element: string;
2218
2226
  };
2219
2227
  };
2220
2228
  extension: {
@@ -2339,35 +2347,19 @@ export declare class SwaggerVersionElement extends StringElement {
2339
2347
  /**
2340
2348
  * @public
2341
2349
  */
2342
- export declare class SwaggerVersionVisitor extends SwaggerVisitor_base_2 {
2350
+ export declare class SwaggerVersionVisitor extends BaseSpecificationVisitor {
2343
2351
  element: SwaggerVersionElement;
2344
- StringElement(stringElement: StringElement): {};
2345
- }
2346
-
2347
- /**
2348
- * @public
2349
- */
2350
- export declare interface SwaggerVersionVisitorOptions extends SpecificationVisitorOptions, VisitorOptions {
2352
+ StringElement(path: Path<StringElement>): void;
2351
2353
  }
2352
2354
 
2353
2355
  /**
2354
2356
  * @public
2355
2357
  */
2356
- export declare class SwaggerVisitor extends SwaggerVisitor_base {
2358
+ export declare class SwaggerVisitor extends BaseFixedFieldsVisitor {
2357
2359
  readonly element: SwaggerElement;
2358
2360
  protected readonly specPath: SpecPath<['document', 'objects', 'Swagger']>;
2359
2361
  protected readonly canSupportSpecificationExtensions: true;
2360
- constructor(options: SwaggerVisitorOptions);
2361
- }
2362
-
2363
- declare const SwaggerVisitor_base: Class<any[], FixedFieldsVisitor & FallbackVisitor, typeof FixedFieldsVisitor & typeof FallbackVisitor>;
2364
-
2365
- declare const SwaggerVisitor_base_2: Class<any[], SpecificationVisitor & FallbackVisitor, typeof SpecificationVisitor & typeof FallbackVisitor>;
2366
-
2367
- /**
2368
- * @public
2369
- */
2370
- export declare interface SwaggerVisitorOptions extends FixedFieldsVisitorOptions, VisitorOptions {
2362
+ constructor(options: BaseFixedFieldsVisitorOptions);
2371
2363
  }
2372
2364
 
2373
2365
  /**
@@ -2386,36 +2378,28 @@ export declare class TagElement extends ObjectElement {
2386
2378
  /**
2387
2379
  * @public
2388
2380
  */
2389
- export declare class TagsVisitor extends TagsVisitor_base {
2381
+ export declare class TagsVisitor extends BaseSpecificationVisitor {
2390
2382
  readonly element: SwaggerTagsElement;
2391
- constructor(options: TagsVisitorOptions);
2392
- ArrayElement(arrayElement: ArrayElement): {};
2393
- }
2394
-
2395
- declare const TagsVisitor_base: Class<any[], SpecificationVisitor & FallbackVisitor, typeof SpecificationVisitor & typeof FallbackVisitor>;
2396
-
2397
- /**
2398
- * @public
2399
- */
2400
- export declare interface TagsVisitorOptions extends SpecificationVisitorOptions, VisitorOptions {
2383
+ constructor(options: BaseSpecificationVisitorOptions);
2384
+ ArrayElement(path: Path<ArrayElement>): void;
2401
2385
  }
2402
2386
 
2403
2387
  /**
2404
2388
  * @public
2405
2389
  */
2406
- export declare class TagVisitor extends TagVisitor_base {
2390
+ export declare class TagVisitor extends BaseFixedFieldsVisitor {
2407
2391
  readonly element: TagElement;
2408
2392
  protected readonly specPath: SpecPath<['document', 'objects', 'Tag']>;
2409
2393
  protected readonly canSupportSpecificationExtensions: true;
2410
- constructor(options: TagVisitorOptions);
2394
+ constructor(options: BaseFixedFieldsVisitorOptions);
2411
2395
  }
2412
2396
 
2413
- declare const TagVisitor_base: Class<any[], FixedFieldsVisitor & FallbackVisitor, typeof FixedFieldsVisitor & typeof FallbackVisitor>;
2414
-
2415
2397
  /**
2416
2398
  * @public
2417
2399
  */
2418
- export declare interface TagVisitorOptions extends FixedFieldsVisitorOptions, VisitorOptions {
2400
+ export declare interface Toolbox {
2401
+ predicates: Record<string, (...args: any[]) => boolean>;
2402
+ namespace: Namespace;
2419
2403
  }
2420
2404
 
2421
2405
  /**
@@ -2467,19 +2451,11 @@ export declare class XmlElement extends ObjectElement {
2467
2451
  /**
2468
2452
  * @public
2469
2453
  */
2470
- export declare class XmlVisitor extends XmlVisitor_base {
2454
+ export declare class XmlVisitor extends BaseFixedFieldsVisitor {
2471
2455
  readonly element: XmlElement;
2472
2456
  protected readonly specPath: SpecPath<['document', 'objects', 'XML']>;
2473
2457
  protected readonly canSupportSpecificationExtensions: true;
2474
- constructor(options: XmlVisitorOptions);
2475
- }
2476
-
2477
- declare const XmlVisitor_base: Class<any[], FixedFieldsVisitor & FallbackVisitor, typeof FixedFieldsVisitor & typeof FallbackVisitor>;
2478
-
2479
- /**
2480
- * @public
2481
- */
2482
- export declare interface XmlVisitorOptions extends FixedFieldsVisitorOptions, VisitorOptions {
2458
+ constructor(options: BaseFixedFieldsVisitorOptions);
2483
2459
  }
2484
2460
 
2485
2461
  export { }