@snaptrude/plugin-core 0.11.0-rc.1 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (226) hide show
  1. package/AGENTS.md +4 -0
  2. package/CHANGELOG.md +176 -14
  3. package/api-manifest.json +872 -49
  4. package/dist/api/analysis/daylight.d.ts +5 -5
  5. package/dist/api/analysis/solar.d.ts +2 -2
  6. package/dist/api/core/camera/index.d.ts +447 -0
  7. package/dist/api/core/camera/index.d.ts.map +1 -1
  8. package/dist/api/core/geom/create/index.d.ts +942 -101
  9. package/dist/api/core/geom/create/index.d.ts.map +1 -1
  10. package/dist/api/core/geom/query/brep.d.ts +59 -2
  11. package/dist/api/core/geom/query/brep.d.ts.map +1 -1
  12. package/dist/api/core/geom/query/curve.d.ts +59 -35
  13. package/dist/api/core/geom/query/curve.d.ts.map +1 -1
  14. package/dist/api/core/geom/query/edge.d.ts +2 -2
  15. package/dist/api/core/geom/query/face.d.ts +105 -0
  16. package/dist/api/core/geom/query/face.d.ts.map +1 -1
  17. package/dist/api/core/geom/update/contour.d.ts +10 -2
  18. package/dist/api/core/geom/update/contour.d.ts.map +1 -1
  19. package/dist/api/core/geom/update/curve.d.ts +5 -5
  20. package/dist/api/core/geom/update/profile.d.ts +3 -1
  21. package/dist/api/core/geom/update/profile.d.ts.map +1 -1
  22. package/dist/api/core/handles/index.d.ts +4 -2
  23. package/dist/api/core/handles/index.d.ts.map +1 -1
  24. package/dist/api/core/index.d.ts +4 -4
  25. package/dist/api/core/index.d.ts.map +1 -1
  26. package/dist/api/core/io/import/index.d.ts +3 -1
  27. package/dist/api/core/io/import/index.d.ts.map +1 -1
  28. package/dist/api/core/layers.d.ts +377 -255
  29. package/dist/api/core/layers.d.ts.map +1 -1
  30. package/dist/api/core/mode/index.d.ts +19 -7
  31. package/dist/api/core/mode/index.d.ts.map +1 -1
  32. package/dist/api/core/proposals/index.d.ts +4 -3
  33. package/dist/api/core/proposals/index.d.ts.map +1 -1
  34. package/dist/api/core/storeys/index.d.ts +17 -2
  35. package/dist/api/core/storeys/index.d.ts.map +1 -1
  36. package/dist/api/core/storeys/layers.d.ts +408 -0
  37. package/dist/api/core/storeys/layers.d.ts.map +1 -0
  38. package/dist/api/core/tags.d.ts +84 -3
  39. package/dist/api/core/tags.d.ts.map +1 -1
  40. package/dist/api/core/zoom/index.d.ts +13 -0
  41. package/dist/api/core/zoom/index.d.ts.map +1 -1
  42. package/dist/api/design/bim.d.ts +299 -0
  43. package/dist/api/design/bim.d.ts.map +1 -0
  44. package/dist/api/design/boolean/index.d.ts +2 -0
  45. package/dist/api/design/boolean/index.d.ts.map +1 -1
  46. package/dist/api/design/catalog.d.ts +320 -0
  47. package/dist/api/design/catalog.d.ts.map +1 -0
  48. package/dist/api/design/create/bulk-items.d.ts +269 -0
  49. package/dist/api/design/create/bulk-items.d.ts.map +1 -0
  50. package/dist/api/design/create/grids.d.ts +132 -0
  51. package/dist/api/design/create/grids.d.ts.map +1 -0
  52. package/dist/api/design/create/index.d.ts +753 -102
  53. package/dist/api/design/create/index.d.ts.map +1 -1
  54. package/dist/api/design/create/opening-fields.d.ts +38 -0
  55. package/dist/api/design/create/opening-fields.d.ts.map +1 -0
  56. package/dist/api/design/delete/index.d.ts +7 -20
  57. package/dist/api/design/delete/index.d.ts.map +1 -1
  58. package/dist/api/design/dimensions.d.ts +427 -0
  59. package/dist/api/design/dimensions.d.ts.map +1 -0
  60. package/dist/api/design/doors/index.d.ts +24 -23
  61. package/dist/api/design/doors/index.d.ts.map +1 -1
  62. package/dist/api/design/family.d.ts +1446 -0
  63. package/dist/api/design/family.d.ts.map +1 -0
  64. package/dist/api/design/grids.d.ts +237 -0
  65. package/dist/api/design/grids.d.ts.map +1 -0
  66. package/dist/api/design/index.d.ts +30 -0
  67. package/dist/api/design/index.d.ts.map +1 -1
  68. package/dist/api/design/networks.d.ts +1703 -0
  69. package/dist/api/design/networks.d.ts.map +1 -0
  70. package/dist/api/design/query/geometry/index.d.ts +33 -5
  71. package/dist/api/design/query/geometry/index.d.ts.map +1 -1
  72. package/dist/api/design/query/grids.d.ts +287 -0
  73. package/dist/api/design/query/grids.d.ts.map +1 -0
  74. package/dist/api/design/query/index.d.ts +143 -36
  75. package/dist/api/design/query/index.d.ts.map +1 -1
  76. package/dist/api/design/query/spaces.d.ts +5 -66
  77. package/dist/api/design/query/spaces.d.ts.map +1 -1
  78. package/dist/api/design/selection/index.d.ts +12 -12
  79. package/dist/api/design/types/index.d.ts +40 -24
  80. package/dist/api/design/types/index.d.ts.map +1 -1
  81. package/dist/api/design/update/index.d.ts +412 -8
  82. package/dist/api/design/update/index.d.ts.map +1 -1
  83. package/dist/api/design/windows/index.d.ts +8 -8
  84. package/dist/api/design/windows/index.d.ts.map +1 -1
  85. package/dist/api/entity/buildableEnvelope.d.ts +84 -2
  86. package/dist/api/entity/buildableEnvelope.d.ts.map +1 -1
  87. package/dist/api/entity/referenceLine.d.ts +13 -1
  88. package/dist/api/entity/referenceLine.d.ts.map +1 -1
  89. package/dist/api/entity/space.d.ts +12 -15
  90. package/dist/api/entity/space.d.ts.map +1 -1
  91. package/dist/api/entity/story.d.ts +4 -4
  92. package/dist/api/presentation/aiInspiration.d.ts +24 -24
  93. package/dist/api/presentation/annotate.d.ts +38 -22
  94. package/dist/api/presentation/annotate.d.ts.map +1 -1
  95. package/dist/api/presentation/camera.d.ts +265 -0
  96. package/dist/api/presentation/camera.d.ts.map +1 -0
  97. package/dist/api/presentation/drawingContract.d.ts +32 -0
  98. package/dist/api/presentation/drawingContract.d.ts.map +1 -0
  99. package/dist/api/presentation/drawings.d.ts +3523 -0
  100. package/dist/api/presentation/drawings.d.ts.map +1 -0
  101. package/dist/api/presentation/export.d.ts +23 -5
  102. package/dist/api/presentation/export.d.ts.map +1 -1
  103. package/dist/api/presentation/graphics.d.ts +419 -0
  104. package/dist/api/presentation/graphics.d.ts.map +1 -0
  105. package/dist/api/presentation/index.d.ts +66 -12
  106. package/dist/api/presentation/index.d.ts.map +1 -1
  107. package/dist/api/presentation/placedViews.d.ts +117 -51
  108. package/dist/api/presentation/placedViews.d.ts.map +1 -1
  109. package/dist/api/presentation/sections.d.ts +461 -0
  110. package/dist/api/presentation/sections.d.ts.map +1 -0
  111. package/dist/api/presentation/shapes.d.ts +2 -2
  112. package/dist/api/presentation/sheets.d.ts +175 -37
  113. package/dist/api/presentation/sheets.d.ts.map +1 -1
  114. package/dist/api/presentation/standards.d.ts +590 -0
  115. package/dist/api/presentation/standards.d.ts.map +1 -0
  116. package/dist/api/presentation/viewPresets.d.ts +222 -0
  117. package/dist/api/presentation/viewPresets.d.ts.map +1 -0
  118. package/dist/api/presentation/views.d.ts +144 -9
  119. package/dist/api/presentation/views.d.ts.map +1 -1
  120. package/dist/api/presentation/walkthroughs.d.ts +1350 -0
  121. package/dist/api/presentation/walkthroughs.d.ts.map +1 -0
  122. package/dist/api/program/departments.d.ts +58 -2
  123. package/dist/api/program/departments.d.ts.map +1 -1
  124. package/dist/api/program/index.d.ts +16 -6
  125. package/dist/api/program/index.d.ts.map +1 -1
  126. package/dist/api/program/labels.d.ts +355 -0
  127. package/dist/api/program/labels.d.ts.map +1 -0
  128. package/dist/api/program/metadata.d.ts +328 -0
  129. package/dist/api/program/metadata.d.ts.map +1 -0
  130. package/dist/api/program/site.d.ts +4 -4
  131. package/dist/api/program/spreadsheet.d.ts +267 -4
  132. package/dist/api/program/spreadsheet.d.ts.map +1 -1
  133. package/dist/api/workspace/index.d.ts +49 -2
  134. package/dist/api/workspace/index.d.ts.map +1 -1
  135. package/dist/errors/codes.d.ts +5 -8
  136. package/dist/errors/codes.d.ts.map +1 -1
  137. package/dist/handles.d.ts +32 -3
  138. package/dist/handles.d.ts.map +1 -1
  139. package/dist/index.cjs +6534 -2865
  140. package/dist/index.cjs.map +1 -1
  141. package/dist/index.d.ts +2 -0
  142. package/dist/index.d.ts.map +1 -1
  143. package/dist/index.js +6118 -2857
  144. package/dist/index.js.map +1 -1
  145. package/dist/massParameters.d.ts +287 -0
  146. package/dist/massParameters.d.ts.map +1 -0
  147. package/dist/massParameters.ops.d.ts +138 -0
  148. package/dist/massParameters.ops.d.ts.map +1 -0
  149. package/package.json +2 -1
  150. package/scripts/check-dist-fresh.mjs +22 -0
  151. package/scripts/generate-manifest.mjs +5 -0
  152. package/scripts/generate-manifest.test.mjs +14 -3
  153. package/src/api/core/camera/index.ts +429 -1
  154. package/src/api/core/geom/create/index.ts +1037 -102
  155. package/src/api/core/geom/query/brep.ts +60 -2
  156. package/src/api/core/geom/query/curve.ts +26 -2
  157. package/src/api/core/geom/query/edge.ts +2 -2
  158. package/src/api/core/geom/query/face.ts +109 -4
  159. package/src/api/core/geom/update/contour.ts +10 -2
  160. package/src/api/core/geom/update/profile.ts +2 -0
  161. package/src/api/core/handles/index.ts +3 -2
  162. package/src/api/core/index.ts +4 -4
  163. package/src/api/core/io/import/index.ts +11 -3
  164. package/src/api/core/layers.ts +380 -173
  165. package/src/api/core/mode/index.ts +19 -7
  166. package/src/api/core/proposals/index.ts +4 -3
  167. package/src/api/core/storeys/index.ts +19 -2
  168. package/src/api/core/storeys/layers.ts +339 -0
  169. package/src/api/core/tags.ts +76 -0
  170. package/src/api/core/zoom/index.ts +13 -0
  171. package/src/api/design/bim.ts +210 -0
  172. package/src/api/design/boolean/index.ts +2 -0
  173. package/src/api/design/catalog.ts +203 -0
  174. package/src/api/design/create/bulk-items.ts +294 -0
  175. package/src/api/design/create/grids.ts +137 -0
  176. package/src/api/design/create/index.ts +824 -141
  177. package/src/api/design/create/opening-fields.ts +40 -0
  178. package/src/api/design/delete/index.ts +6 -20
  179. package/src/api/design/dimensions.ts +453 -0
  180. package/src/api/design/doors/index.ts +64 -41
  181. package/src/api/design/family.ts +1342 -0
  182. package/src/api/design/grids.ts +237 -0
  183. package/src/api/design/index.ts +49 -4
  184. package/src/api/design/networks.ts +607 -0
  185. package/src/api/design/query/geometry/index.ts +35 -4
  186. package/src/api/design/query/grids.ts +197 -0
  187. package/src/api/design/query/index.ts +105 -5
  188. package/src/api/design/query/spaces.ts +0 -68
  189. package/src/api/design/types/index.ts +31 -24
  190. package/src/api/design/update/index.ts +398 -4
  191. package/src/api/design/windows/index.ts +40 -22
  192. package/src/api/entity/buildableEnvelope.ts +77 -2
  193. package/src/api/entity/referenceLine.ts +25 -12
  194. package/src/api/entity/space.ts +0 -2
  195. package/src/api/presentation/annotate.ts +90 -58
  196. package/src/api/presentation/camera.ts +289 -0
  197. package/src/api/presentation/drawingContract.ts +70 -0
  198. package/src/api/presentation/drawings.ts +1179 -0
  199. package/src/api/presentation/export.ts +32 -6
  200. package/src/api/presentation/graphics.ts +324 -0
  201. package/src/api/presentation/index.ts +73 -14
  202. package/src/api/presentation/placedViews.ts +120 -57
  203. package/src/api/presentation/sections.ts +420 -0
  204. package/src/api/presentation/sheets.ts +182 -37
  205. package/src/api/presentation/standards.ts +445 -0
  206. package/src/api/presentation/viewPresets.ts +241 -0
  207. package/src/api/presentation/views.ts +81 -10
  208. package/src/api/presentation/walkthroughs.ts +1201 -0
  209. package/src/api/program/departments.ts +54 -2
  210. package/src/api/program/index.ts +16 -6
  211. package/src/api/program/labels.ts +332 -0
  212. package/src/api/program/metadata.ts +364 -0
  213. package/src/api/program/spreadsheet.ts +282 -0
  214. package/src/api/workspace/index.ts +51 -2
  215. package/src/errors/codes.ts +9 -30
  216. package/src/handles.ts +42 -3
  217. package/src/index.ts +2 -0
  218. package/src/massParameters.ops.ts +246 -0
  219. package/src/massParameters.ts +427 -0
  220. package/test/drawingContract.test.mjs +288 -0
  221. package/test/errors.test.mjs +1 -4
  222. package/test/massParameters.test.mjs +952 -0
  223. package/test/paperPensContract.test.mjs +75 -0
  224. package/test/presentationViewSettings.test.mjs +85 -0
  225. package/api-manifest.full.json +0 -6928
  226. package/snaptrude-plugin-core-0.11.0.tgz +0 -0
@@ -0,0 +1,1703 @@
1
+ import * as z from "zod";
2
+ import type { PluginApiReturn } from "../../types";
3
+ /** Versioned metadata stored in a pinned FamilySpecBundle.network. Expressions use the
4
+ * family's parameter scope and SU, just like its geometry. No world-space port overrides.
5
+ * Pipe recipes run from local [0,0,0] to [length,0,0] along +X.
6
+ */
7
+ export declare const NetworkFamilyContract: z.ZodObject<{
8
+ schemaVersion: z.ZodLiteral<1>;
9
+ role: z.ZodEnum<{
10
+ pipe: "pipe";
11
+ duct: "duct";
12
+ wire: "wire";
13
+ cable: "cable";
14
+ conduit: "conduit";
15
+ cableDuct: "cableDuct";
16
+ cableTray: "cableTray";
17
+ connector: "connector";
18
+ equipment: "equipment";
19
+ }>;
20
+ lengthParameter: z.ZodOptional<z.ZodString>;
21
+ ports: z.ZodArray<z.ZodObject<{
22
+ id: z.ZodString;
23
+ position: z.ZodTuple<[z.ZodString, z.ZodString, z.ZodString], null>;
24
+ direction: z.ZodTuple<[z.ZodString, z.ZodString, z.ZodString], null>;
25
+ size: z.ZodString;
26
+ height: z.ZodOptional<z.ZodString>;
27
+ widthDirection: z.ZodOptional<z.ZodTuple<[z.ZodString, z.ZodString, z.ZodString], null>>;
28
+ systems: z.ZodArray<z.ZodString>;
29
+ }, z.core.$strict>>;
30
+ }, z.core.$strict>;
31
+ export type NetworkFamilyContract = z.infer<typeof NetworkFamilyContract>;
32
+ /** Authored topology: vertices are pinned connector/equipment families; each edge is one
33
+ * line and one pinned straight-pipe family. Curved runs are not yet supported by this
34
+ * contract; bends require explicit connector vertices. World mm, Y up, rotations in degrees.
35
+ * Plumbing v2 accepts round ports only. Rectangular ports need a section-roll contract.
36
+ * The resolved component graph is retained for existing persistence, replay and queries.
37
+ */
38
+ export declare const NetworkTopologyDocument: z.ZodObject<{
39
+ schemaVersion: z.ZodLiteral<2>;
40
+ domain: z.ZodLiteral<"plumbing">;
41
+ label: z.ZodString;
42
+ architectureRevision: z.ZodString;
43
+ relationships: z.ZodArray<z.ZodObject<{
44
+ node: z.ZodString;
45
+ relation: z.ZodEnum<{
46
+ mountedOn: "mountedOn";
47
+ within: "within";
48
+ serves: "serves";
49
+ penetrates: "penetrates";
50
+ }>;
51
+ target: z.ZodObject<{
52
+ kind: z.ZodEnum<{
53
+ topology: "topology";
54
+ component: "component";
55
+ }>;
56
+ id: z.ZodString;
57
+ }, z.core.$strict>;
58
+ }, z.core.$strict>>;
59
+ vertices: z.ZodArray<z.ZodObject<{
60
+ id: z.ZodString;
61
+ kind: z.ZodEnum<{
62
+ equipment: "equipment";
63
+ fixture: "fixture";
64
+ tank: "tank";
65
+ pump: "pump";
66
+ valve: "valve";
67
+ manifold: "manifold";
68
+ fitting: "fitting";
69
+ }>;
70
+ storey: z.ZodNumber;
71
+ family: z.ZodObject<{
72
+ definitionId: z.ZodString;
73
+ version: z.ZodNumber;
74
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
75
+ }, z.core.$strict>;
76
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
77
+ rotationDeg: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
78
+ systems: z.ZodRecord<z.ZodString, z.ZodString>;
79
+ }, z.core.$strict>>;
80
+ edges: z.ZodArray<z.ZodObject<{
81
+ id: z.ZodString;
82
+ kind: z.ZodEnum<{
83
+ pipe: "pipe";
84
+ riser: "riser";
85
+ }>;
86
+ storey: z.ZodNumber;
87
+ family: z.ZodObject<{
88
+ definitionId: z.ZodString;
89
+ version: z.ZodNumber;
90
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
91
+ }, z.core.$strict>;
92
+ from: z.ZodObject<{
93
+ node: z.ZodString;
94
+ port: z.ZodString;
95
+ }, z.core.$strict>;
96
+ to: z.ZodObject<{
97
+ node: z.ZodString;
98
+ port: z.ZodString;
99
+ }, z.core.$strict>;
100
+ system: z.ZodString;
101
+ curve: z.ZodObject<{
102
+ kind: z.ZodLiteral<"line">;
103
+ }, z.core.$strict>;
104
+ }, z.core.$strict>>;
105
+ }, z.core.$strict>;
106
+ export type NetworkTopologyDocument = z.infer<typeof NetworkTopologyDocument>;
107
+ export declare const MechanicalAirSystem: z.ZodEnum<{
108
+ supplyAir: "supplyAir";
109
+ returnAir: "returnAir";
110
+ exhaustAir: "exhaustAir";
111
+ outsideAir: "outsideAir";
112
+ reliefAir: "reliefAir";
113
+ }>;
114
+ /** Air-side HVAC intent. Reuses the graph transport, not plumbing domain semantics.
115
+ * Every vertex and edge pins an existing family. Edges run from upstream to downstream.
116
+ * Rectangular duct ports use local +Y as their width axis. The host aligns this axis to
117
+ * the upstream connector's widthDirection and rejects incompatible downstream roll.
118
+ * Bends, branches and transitions are explicit fitting vertices. No flexible curves,
119
+ * hydronic/refrigerant design, airflow sizing or code-compliance inference is provided.
120
+ */
121
+ export declare const MechanicalTopologyDocument: z.ZodObject<{
122
+ schemaVersion: z.ZodLiteral<2>;
123
+ label: z.ZodString;
124
+ architectureRevision: z.ZodString;
125
+ relationships: z.ZodArray<z.ZodObject<{
126
+ node: z.ZodString;
127
+ relation: z.ZodEnum<{
128
+ mountedOn: "mountedOn";
129
+ within: "within";
130
+ serves: "serves";
131
+ penetrates: "penetrates";
132
+ }>;
133
+ target: z.ZodObject<{
134
+ kind: z.ZodEnum<{
135
+ topology: "topology";
136
+ component: "component";
137
+ }>;
138
+ id: z.ZodString;
139
+ }, z.core.$strict>;
140
+ }, z.core.$strict>>;
141
+ domain: z.ZodLiteral<"mechanical">;
142
+ vertices: z.ZodArray<z.ZodObject<{
143
+ id: z.ZodString;
144
+ storey: z.ZodNumber;
145
+ family: z.ZodObject<{
146
+ definitionId: z.ZodString;
147
+ version: z.ZodNumber;
148
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
149
+ }, z.core.$strict>;
150
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
151
+ rotationDeg: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
152
+ kind: z.ZodEnum<{
153
+ equipment: "equipment";
154
+ fitting: "fitting";
155
+ terminal: "terminal";
156
+ damper: "damper";
157
+ }>;
158
+ systems: z.ZodRecord<z.ZodString, z.ZodEnum<{
159
+ supplyAir: "supplyAir";
160
+ returnAir: "returnAir";
161
+ exhaustAir: "exhaustAir";
162
+ outsideAir: "outsideAir";
163
+ reliefAir: "reliefAir";
164
+ }>>;
165
+ }, z.core.$strict>>;
166
+ edges: z.ZodArray<z.ZodObject<{
167
+ id: z.ZodString;
168
+ storey: z.ZodNumber;
169
+ family: z.ZodObject<{
170
+ definitionId: z.ZodString;
171
+ version: z.ZodNumber;
172
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
173
+ }, z.core.$strict>;
174
+ from: z.ZodObject<{
175
+ node: z.ZodString;
176
+ port: z.ZodString;
177
+ }, z.core.$strict>;
178
+ to: z.ZodObject<{
179
+ node: z.ZodString;
180
+ port: z.ZodString;
181
+ }, z.core.$strict>;
182
+ curve: z.ZodObject<{
183
+ kind: z.ZodLiteral<"line">;
184
+ }, z.core.$strict>;
185
+ kind: z.ZodEnum<{
186
+ duct: "duct";
187
+ riser: "riser";
188
+ }>;
189
+ system: z.ZodEnum<{
190
+ supplyAir: "supplyAir";
191
+ returnAir: "returnAir";
192
+ exhaustAir: "exhaustAir";
193
+ outsideAir: "outsideAir";
194
+ reliefAir: "reliefAir";
195
+ }>;
196
+ }, z.core.$strict>>;
197
+ }, z.core.$strict>;
198
+ export type MechanicalTopologyDocument = z.infer<typeof MechanicalTopologyDocument>;
199
+ /** Physical electrical topology, independent of logical circuit membership.
200
+ * Each straight edge pins a family whose role matches its kind. Bends and branches
201
+ * require connector vertices. Junction boxes are equipment with explicit named ports.
202
+ * Rectangular containment uses the same section frame as mechanical ducts.
203
+ * Systems are authored labels which must be supported by the pinned ports.
204
+ * Direction is explicit, never inferred from circuits or spatial contact.
205
+ */
206
+ export declare const ElectricalTopologyDocument: z.ZodObject<{
207
+ schemaVersion: z.ZodLiteral<2>;
208
+ label: z.ZodString;
209
+ architectureRevision: z.ZodString;
210
+ relationships: z.ZodArray<z.ZodObject<{
211
+ node: z.ZodString;
212
+ relation: z.ZodEnum<{
213
+ mountedOn: "mountedOn";
214
+ within: "within";
215
+ serves: "serves";
216
+ penetrates: "penetrates";
217
+ }>;
218
+ target: z.ZodObject<{
219
+ kind: z.ZodEnum<{
220
+ topology: "topology";
221
+ component: "component";
222
+ }>;
223
+ id: z.ZodString;
224
+ }, z.core.$strict>;
225
+ }, z.core.$strict>>;
226
+ domain: z.ZodLiteral<"electrical">;
227
+ vertices: z.ZodArray<z.ZodObject<{
228
+ id: z.ZodString;
229
+ storey: z.ZodNumber;
230
+ family: z.ZodObject<{
231
+ definitionId: z.ZodString;
232
+ version: z.ZodNumber;
233
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
234
+ }, z.core.$strict>;
235
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
236
+ rotationDeg: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
237
+ systems: z.ZodRecord<z.ZodString, z.ZodString>;
238
+ kind: z.ZodEnum<{
239
+ equipment: "equipment";
240
+ fitting: "fitting";
241
+ transformer: "transformer";
242
+ mainBoard: "mainBoard";
243
+ distributionBoard: "distributionBoard";
244
+ mcbBox: "mcbBox";
245
+ junctionBox: "junctionBox";
246
+ switch: "switch";
247
+ outlet: "outlet";
248
+ light: "light";
249
+ load: "load";
250
+ }>;
251
+ }, z.core.$strict>>;
252
+ edges: z.ZodArray<z.ZodObject<{
253
+ id: z.ZodString;
254
+ storey: z.ZodNumber;
255
+ family: z.ZodObject<{
256
+ definitionId: z.ZodString;
257
+ version: z.ZodNumber;
258
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
259
+ }, z.core.$strict>;
260
+ from: z.ZodObject<{
261
+ node: z.ZodString;
262
+ port: z.ZodString;
263
+ }, z.core.$strict>;
264
+ to: z.ZodObject<{
265
+ node: z.ZodString;
266
+ port: z.ZodString;
267
+ }, z.core.$strict>;
268
+ system: z.ZodString;
269
+ curve: z.ZodObject<{
270
+ kind: z.ZodLiteral<"line">;
271
+ }, z.core.$strict>;
272
+ kind: z.ZodEnum<{
273
+ wire: "wire";
274
+ cable: "cable";
275
+ conduit: "conduit";
276
+ cableDuct: "cableDuct";
277
+ cableTray: "cableTray";
278
+ }>;
279
+ directed: z.ZodBoolean;
280
+ }, z.core.$strict>>;
281
+ circuits: z.ZodArray<z.ZodObject<{
282
+ id: z.ZodString;
283
+ source: z.ZodString;
284
+ loads: z.ZodArray<z.ZodString>;
285
+ routes: z.ZodArray<z.ZodString>;
286
+ voltage: z.ZodNumber;
287
+ phases: z.ZodNumber;
288
+ ratedAmps: z.ZodNumber;
289
+ }, z.core.$strict>>;
290
+ }, z.core.$strict>;
291
+ export type ElectricalTopologyDocument = z.infer<typeof ElectricalTopologyDocument>;
292
+ export declare const AuthoredNetworkTopologyDocument: z.ZodDiscriminatedUnion<[z.ZodObject<{
293
+ schemaVersion: z.ZodLiteral<2>;
294
+ domain: z.ZodLiteral<"plumbing">;
295
+ label: z.ZodString;
296
+ architectureRevision: z.ZodString;
297
+ relationships: z.ZodArray<z.ZodObject<{
298
+ node: z.ZodString;
299
+ relation: z.ZodEnum<{
300
+ mountedOn: "mountedOn";
301
+ within: "within";
302
+ serves: "serves";
303
+ penetrates: "penetrates";
304
+ }>;
305
+ target: z.ZodObject<{
306
+ kind: z.ZodEnum<{
307
+ topology: "topology";
308
+ component: "component";
309
+ }>;
310
+ id: z.ZodString;
311
+ }, z.core.$strict>;
312
+ }, z.core.$strict>>;
313
+ vertices: z.ZodArray<z.ZodObject<{
314
+ id: z.ZodString;
315
+ kind: z.ZodEnum<{
316
+ equipment: "equipment";
317
+ fixture: "fixture";
318
+ tank: "tank";
319
+ pump: "pump";
320
+ valve: "valve";
321
+ manifold: "manifold";
322
+ fitting: "fitting";
323
+ }>;
324
+ storey: z.ZodNumber;
325
+ family: z.ZodObject<{
326
+ definitionId: z.ZodString;
327
+ version: z.ZodNumber;
328
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
329
+ }, z.core.$strict>;
330
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
331
+ rotationDeg: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
332
+ systems: z.ZodRecord<z.ZodString, z.ZodString>;
333
+ }, z.core.$strict>>;
334
+ edges: z.ZodArray<z.ZodObject<{
335
+ id: z.ZodString;
336
+ kind: z.ZodEnum<{
337
+ pipe: "pipe";
338
+ riser: "riser";
339
+ }>;
340
+ storey: z.ZodNumber;
341
+ family: z.ZodObject<{
342
+ definitionId: z.ZodString;
343
+ version: z.ZodNumber;
344
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
345
+ }, z.core.$strict>;
346
+ from: z.ZodObject<{
347
+ node: z.ZodString;
348
+ port: z.ZodString;
349
+ }, z.core.$strict>;
350
+ to: z.ZodObject<{
351
+ node: z.ZodString;
352
+ port: z.ZodString;
353
+ }, z.core.$strict>;
354
+ system: z.ZodString;
355
+ curve: z.ZodObject<{
356
+ kind: z.ZodLiteral<"line">;
357
+ }, z.core.$strict>;
358
+ }, z.core.$strict>>;
359
+ }, z.core.$strict>, z.ZodObject<{
360
+ schemaVersion: z.ZodLiteral<2>;
361
+ label: z.ZodString;
362
+ architectureRevision: z.ZodString;
363
+ relationships: z.ZodArray<z.ZodObject<{
364
+ node: z.ZodString;
365
+ relation: z.ZodEnum<{
366
+ mountedOn: "mountedOn";
367
+ within: "within";
368
+ serves: "serves";
369
+ penetrates: "penetrates";
370
+ }>;
371
+ target: z.ZodObject<{
372
+ kind: z.ZodEnum<{
373
+ topology: "topology";
374
+ component: "component";
375
+ }>;
376
+ id: z.ZodString;
377
+ }, z.core.$strict>;
378
+ }, z.core.$strict>>;
379
+ domain: z.ZodLiteral<"mechanical">;
380
+ vertices: z.ZodArray<z.ZodObject<{
381
+ id: z.ZodString;
382
+ storey: z.ZodNumber;
383
+ family: z.ZodObject<{
384
+ definitionId: z.ZodString;
385
+ version: z.ZodNumber;
386
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
387
+ }, z.core.$strict>;
388
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
389
+ rotationDeg: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
390
+ kind: z.ZodEnum<{
391
+ equipment: "equipment";
392
+ fitting: "fitting";
393
+ terminal: "terminal";
394
+ damper: "damper";
395
+ }>;
396
+ systems: z.ZodRecord<z.ZodString, z.ZodEnum<{
397
+ supplyAir: "supplyAir";
398
+ returnAir: "returnAir";
399
+ exhaustAir: "exhaustAir";
400
+ outsideAir: "outsideAir";
401
+ reliefAir: "reliefAir";
402
+ }>>;
403
+ }, z.core.$strict>>;
404
+ edges: z.ZodArray<z.ZodObject<{
405
+ id: z.ZodString;
406
+ storey: z.ZodNumber;
407
+ family: z.ZodObject<{
408
+ definitionId: z.ZodString;
409
+ version: z.ZodNumber;
410
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
411
+ }, z.core.$strict>;
412
+ from: z.ZodObject<{
413
+ node: z.ZodString;
414
+ port: z.ZodString;
415
+ }, z.core.$strict>;
416
+ to: z.ZodObject<{
417
+ node: z.ZodString;
418
+ port: z.ZodString;
419
+ }, z.core.$strict>;
420
+ curve: z.ZodObject<{
421
+ kind: z.ZodLiteral<"line">;
422
+ }, z.core.$strict>;
423
+ kind: z.ZodEnum<{
424
+ duct: "duct";
425
+ riser: "riser";
426
+ }>;
427
+ system: z.ZodEnum<{
428
+ supplyAir: "supplyAir";
429
+ returnAir: "returnAir";
430
+ exhaustAir: "exhaustAir";
431
+ outsideAir: "outsideAir";
432
+ reliefAir: "reliefAir";
433
+ }>;
434
+ }, z.core.$strict>>;
435
+ }, z.core.$strict>, z.ZodObject<{
436
+ schemaVersion: z.ZodLiteral<2>;
437
+ label: z.ZodString;
438
+ architectureRevision: z.ZodString;
439
+ relationships: z.ZodArray<z.ZodObject<{
440
+ node: z.ZodString;
441
+ relation: z.ZodEnum<{
442
+ mountedOn: "mountedOn";
443
+ within: "within";
444
+ serves: "serves";
445
+ penetrates: "penetrates";
446
+ }>;
447
+ target: z.ZodObject<{
448
+ kind: z.ZodEnum<{
449
+ topology: "topology";
450
+ component: "component";
451
+ }>;
452
+ id: z.ZodString;
453
+ }, z.core.$strict>;
454
+ }, z.core.$strict>>;
455
+ domain: z.ZodLiteral<"electrical">;
456
+ vertices: z.ZodArray<z.ZodObject<{
457
+ id: z.ZodString;
458
+ storey: z.ZodNumber;
459
+ family: z.ZodObject<{
460
+ definitionId: z.ZodString;
461
+ version: z.ZodNumber;
462
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
463
+ }, z.core.$strict>;
464
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
465
+ rotationDeg: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
466
+ systems: z.ZodRecord<z.ZodString, z.ZodString>;
467
+ kind: z.ZodEnum<{
468
+ equipment: "equipment";
469
+ fitting: "fitting";
470
+ transformer: "transformer";
471
+ mainBoard: "mainBoard";
472
+ distributionBoard: "distributionBoard";
473
+ mcbBox: "mcbBox";
474
+ junctionBox: "junctionBox";
475
+ switch: "switch";
476
+ outlet: "outlet";
477
+ light: "light";
478
+ load: "load";
479
+ }>;
480
+ }, z.core.$strict>>;
481
+ edges: z.ZodArray<z.ZodObject<{
482
+ id: z.ZodString;
483
+ storey: z.ZodNumber;
484
+ family: z.ZodObject<{
485
+ definitionId: z.ZodString;
486
+ version: z.ZodNumber;
487
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
488
+ }, z.core.$strict>;
489
+ from: z.ZodObject<{
490
+ node: z.ZodString;
491
+ port: z.ZodString;
492
+ }, z.core.$strict>;
493
+ to: z.ZodObject<{
494
+ node: z.ZodString;
495
+ port: z.ZodString;
496
+ }, z.core.$strict>;
497
+ system: z.ZodString;
498
+ curve: z.ZodObject<{
499
+ kind: z.ZodLiteral<"line">;
500
+ }, z.core.$strict>;
501
+ kind: z.ZodEnum<{
502
+ wire: "wire";
503
+ cable: "cable";
504
+ conduit: "conduit";
505
+ cableDuct: "cableDuct";
506
+ cableTray: "cableTray";
507
+ }>;
508
+ directed: z.ZodBoolean;
509
+ }, z.core.$strict>>;
510
+ circuits: z.ZodArray<z.ZodObject<{
511
+ id: z.ZodString;
512
+ source: z.ZodString;
513
+ loads: z.ZodArray<z.ZodString>;
514
+ routes: z.ZodArray<z.ZodString>;
515
+ voltage: z.ZodNumber;
516
+ phases: z.ZodNumber;
517
+ ratedAmps: z.ZodNumber;
518
+ }, z.core.$strict>>;
519
+ }, z.core.$strict>], "domain">;
520
+ export type AuthoredNetworkTopologyDocument = z.infer<typeof AuthoredNetworkTopologyDocument>;
521
+ /** Authored world-space connector. This is not a claim of certified family connector metadata. */
522
+ export declare const NetworkPort: z.ZodObject<{
523
+ id: z.ZodString;
524
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
525
+ direction: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
526
+ system: z.ZodString;
527
+ sizeMm: z.ZodNumber;
528
+ heightMm: z.ZodOptional<z.ZodNumber>;
529
+ widthDirection: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
530
+ }, z.core.$strict>;
531
+ /** The agent supplies every route and section. The host does not size or route a network. */
532
+ export declare const NetworkGeometry: z.ZodDiscriminatedUnion<[z.ZodObject<{
533
+ kind: z.ZodLiteral<"family">;
534
+ definitionId: z.ZodString;
535
+ version: z.ZodNumber;
536
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
537
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
538
+ rotationDeg: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
539
+ ports: z.ZodArray<z.ZodObject<{
540
+ id: z.ZodString;
541
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
542
+ direction: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
543
+ system: z.ZodString;
544
+ sizeMm: z.ZodNumber;
545
+ heightMm: z.ZodOptional<z.ZodNumber>;
546
+ widthDirection: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
547
+ }, z.core.$strict>>;
548
+ }, z.core.$strict>, z.ZodObject<{
549
+ kind: z.ZodLiteral<"route">;
550
+ pathMm: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
551
+ system: z.ZodString;
552
+ section: z.ZodDiscriminatedUnion<[z.ZodObject<{
553
+ kind: z.ZodLiteral<"round">;
554
+ diameterMm: z.ZodNumber;
555
+ wallMm: z.ZodNumber;
556
+ }, z.core.$strict>, z.ZodObject<{
557
+ kind: z.ZodLiteral<"rectangular">;
558
+ widthMm: z.ZodNumber;
559
+ heightMm: z.ZodNumber;
560
+ wallMm: z.ZodNumber;
561
+ }, z.core.$strict>], "kind">;
562
+ }, z.core.$strict>], "kind">;
563
+ /** Electrical connectivity and circuit membership are distinct from physical route occupancy. */
564
+ export declare const ElectricalGraphDocument: z.ZodObject<{
565
+ schemaVersion: z.ZodLiteral<1>;
566
+ label: z.ZodString;
567
+ architectureRevision: z.ZodString;
568
+ connections: z.ZodArray<z.ZodObject<{
569
+ id: z.ZodString;
570
+ from: z.ZodObject<{
571
+ node: z.ZodString;
572
+ port: z.ZodString;
573
+ }, z.core.$strict>;
574
+ to: z.ZodObject<{
575
+ node: z.ZodString;
576
+ port: z.ZodString;
577
+ }, z.core.$strict>;
578
+ directed: z.ZodBoolean;
579
+ }, z.core.$strict>>;
580
+ relationships: z.ZodArray<z.ZodObject<{
581
+ node: z.ZodString;
582
+ relation: z.ZodEnum<{
583
+ mountedOn: "mountedOn";
584
+ within: "within";
585
+ serves: "serves";
586
+ penetrates: "penetrates";
587
+ }>;
588
+ target: z.ZodObject<{
589
+ kind: z.ZodEnum<{
590
+ topology: "topology";
591
+ component: "component";
592
+ }>;
593
+ id: z.ZodString;
594
+ }, z.core.$strict>;
595
+ }, z.core.$strict>>;
596
+ domain: z.ZodLiteral<"electrical">;
597
+ nodes: z.ZodArray<z.ZodObject<{
598
+ id: z.ZodString;
599
+ storey: z.ZodNumber;
600
+ geometry: z.ZodDiscriminatedUnion<[z.ZodObject<{
601
+ kind: z.ZodLiteral<"family">;
602
+ definitionId: z.ZodString;
603
+ version: z.ZodNumber;
604
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
605
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
606
+ rotationDeg: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
607
+ ports: z.ZodArray<z.ZodObject<{
608
+ id: z.ZodString;
609
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
610
+ direction: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
611
+ system: z.ZodString;
612
+ sizeMm: z.ZodNumber;
613
+ heightMm: z.ZodOptional<z.ZodNumber>;
614
+ widthDirection: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
615
+ }, z.core.$strict>>;
616
+ }, z.core.$strict>, z.ZodObject<{
617
+ kind: z.ZodLiteral<"route">;
618
+ pathMm: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
619
+ system: z.ZodString;
620
+ section: z.ZodDiscriminatedUnion<[z.ZodObject<{
621
+ kind: z.ZodLiteral<"round">;
622
+ diameterMm: z.ZodNumber;
623
+ wallMm: z.ZodNumber;
624
+ }, z.core.$strict>, z.ZodObject<{
625
+ kind: z.ZodLiteral<"rectangular">;
626
+ widthMm: z.ZodNumber;
627
+ heightMm: z.ZodNumber;
628
+ wallMm: z.ZodNumber;
629
+ }, z.core.$strict>], "kind">;
630
+ }, z.core.$strict>], "kind">;
631
+ kind: z.ZodEnum<{
632
+ wire: "wire";
633
+ cable: "cable";
634
+ conduit: "conduit";
635
+ cableDuct: "cableDuct";
636
+ cableTray: "cableTray";
637
+ equipment: "equipment";
638
+ fitting: "fitting";
639
+ transformer: "transformer";
640
+ mainBoard: "mainBoard";
641
+ distributionBoard: "distributionBoard";
642
+ mcbBox: "mcbBox";
643
+ junctionBox: "junctionBox";
644
+ switch: "switch";
645
+ outlet: "outlet";
646
+ light: "light";
647
+ load: "load";
648
+ }>;
649
+ }, z.core.$strict>>;
650
+ circuits: z.ZodArray<z.ZodObject<{
651
+ id: z.ZodString;
652
+ source: z.ZodString;
653
+ loads: z.ZodArray<z.ZodString>;
654
+ routes: z.ZodArray<z.ZodString>;
655
+ voltage: z.ZodNumber;
656
+ phases: z.ZodNumber;
657
+ ratedAmps: z.ZodNumber;
658
+ }, z.core.$strict>>;
659
+ authored: z.ZodOptional<z.ZodObject<{
660
+ schemaVersion: z.ZodLiteral<2>;
661
+ label: z.ZodString;
662
+ architectureRevision: z.ZodString;
663
+ relationships: z.ZodArray<z.ZodObject<{
664
+ node: z.ZodString;
665
+ relation: z.ZodEnum<{
666
+ mountedOn: "mountedOn";
667
+ within: "within";
668
+ serves: "serves";
669
+ penetrates: "penetrates";
670
+ }>;
671
+ target: z.ZodObject<{
672
+ kind: z.ZodEnum<{
673
+ topology: "topology";
674
+ component: "component";
675
+ }>;
676
+ id: z.ZodString;
677
+ }, z.core.$strict>;
678
+ }, z.core.$strict>>;
679
+ domain: z.ZodLiteral<"electrical">;
680
+ vertices: z.ZodArray<z.ZodObject<{
681
+ id: z.ZodString;
682
+ storey: z.ZodNumber;
683
+ family: z.ZodObject<{
684
+ definitionId: z.ZodString;
685
+ version: z.ZodNumber;
686
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
687
+ }, z.core.$strict>;
688
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
689
+ rotationDeg: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
690
+ systems: z.ZodRecord<z.ZodString, z.ZodString>;
691
+ kind: z.ZodEnum<{
692
+ equipment: "equipment";
693
+ fitting: "fitting";
694
+ transformer: "transformer";
695
+ mainBoard: "mainBoard";
696
+ distributionBoard: "distributionBoard";
697
+ mcbBox: "mcbBox";
698
+ junctionBox: "junctionBox";
699
+ switch: "switch";
700
+ outlet: "outlet";
701
+ light: "light";
702
+ load: "load";
703
+ }>;
704
+ }, z.core.$strict>>;
705
+ edges: z.ZodArray<z.ZodObject<{
706
+ id: z.ZodString;
707
+ storey: z.ZodNumber;
708
+ family: z.ZodObject<{
709
+ definitionId: z.ZodString;
710
+ version: z.ZodNumber;
711
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
712
+ }, z.core.$strict>;
713
+ from: z.ZodObject<{
714
+ node: z.ZodString;
715
+ port: z.ZodString;
716
+ }, z.core.$strict>;
717
+ to: z.ZodObject<{
718
+ node: z.ZodString;
719
+ port: z.ZodString;
720
+ }, z.core.$strict>;
721
+ system: z.ZodString;
722
+ curve: z.ZodObject<{
723
+ kind: z.ZodLiteral<"line">;
724
+ }, z.core.$strict>;
725
+ kind: z.ZodEnum<{
726
+ wire: "wire";
727
+ cable: "cable";
728
+ conduit: "conduit";
729
+ cableDuct: "cableDuct";
730
+ cableTray: "cableTray";
731
+ }>;
732
+ directed: z.ZodBoolean;
733
+ }, z.core.$strict>>;
734
+ circuits: z.ZodArray<z.ZodObject<{
735
+ id: z.ZodString;
736
+ source: z.ZodString;
737
+ loads: z.ZodArray<z.ZodString>;
738
+ routes: z.ZodArray<z.ZodString>;
739
+ voltage: z.ZodNumber;
740
+ phases: z.ZodNumber;
741
+ ratedAmps: z.ZodNumber;
742
+ }, z.core.$strict>>;
743
+ }, z.core.$strict>>;
744
+ }, z.core.$strict>;
745
+ /** Plumbing uses explicit directed port connections; touching geometry never creates a connection. */
746
+ export declare const PlumbingGraphDocument: z.ZodObject<{
747
+ schemaVersion: z.ZodLiteral<1>;
748
+ label: z.ZodString;
749
+ architectureRevision: z.ZodString;
750
+ connections: z.ZodArray<z.ZodObject<{
751
+ id: z.ZodString;
752
+ from: z.ZodObject<{
753
+ node: z.ZodString;
754
+ port: z.ZodString;
755
+ }, z.core.$strict>;
756
+ to: z.ZodObject<{
757
+ node: z.ZodString;
758
+ port: z.ZodString;
759
+ }, z.core.$strict>;
760
+ directed: z.ZodBoolean;
761
+ }, z.core.$strict>>;
762
+ relationships: z.ZodArray<z.ZodObject<{
763
+ node: z.ZodString;
764
+ relation: z.ZodEnum<{
765
+ mountedOn: "mountedOn";
766
+ within: "within";
767
+ serves: "serves";
768
+ penetrates: "penetrates";
769
+ }>;
770
+ target: z.ZodObject<{
771
+ kind: z.ZodEnum<{
772
+ topology: "topology";
773
+ component: "component";
774
+ }>;
775
+ id: z.ZodString;
776
+ }, z.core.$strict>;
777
+ }, z.core.$strict>>;
778
+ domain: z.ZodLiteral<"plumbing">;
779
+ nodes: z.ZodArray<z.ZodObject<{
780
+ id: z.ZodString;
781
+ storey: z.ZodNumber;
782
+ geometry: z.ZodDiscriminatedUnion<[z.ZodObject<{
783
+ kind: z.ZodLiteral<"family">;
784
+ definitionId: z.ZodString;
785
+ version: z.ZodNumber;
786
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
787
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
788
+ rotationDeg: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
789
+ ports: z.ZodArray<z.ZodObject<{
790
+ id: z.ZodString;
791
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
792
+ direction: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
793
+ system: z.ZodString;
794
+ sizeMm: z.ZodNumber;
795
+ heightMm: z.ZodOptional<z.ZodNumber>;
796
+ widthDirection: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
797
+ }, z.core.$strict>>;
798
+ }, z.core.$strict>, z.ZodObject<{
799
+ kind: z.ZodLiteral<"route">;
800
+ pathMm: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
801
+ system: z.ZodString;
802
+ section: z.ZodDiscriminatedUnion<[z.ZodObject<{
803
+ kind: z.ZodLiteral<"round">;
804
+ diameterMm: z.ZodNumber;
805
+ wallMm: z.ZodNumber;
806
+ }, z.core.$strict>, z.ZodObject<{
807
+ kind: z.ZodLiteral<"rectangular">;
808
+ widthMm: z.ZodNumber;
809
+ heightMm: z.ZodNumber;
810
+ wallMm: z.ZodNumber;
811
+ }, z.core.$strict>], "kind">;
812
+ }, z.core.$strict>], "kind">;
813
+ kind: z.ZodEnum<{
814
+ pipe: "pipe";
815
+ equipment: "equipment";
816
+ fixture: "fixture";
817
+ tank: "tank";
818
+ pump: "pump";
819
+ valve: "valve";
820
+ manifold: "manifold";
821
+ fitting: "fitting";
822
+ riser: "riser";
823
+ }>;
824
+ }, z.core.$strict>>;
825
+ authored: z.ZodOptional<z.ZodObject<{
826
+ schemaVersion: z.ZodLiteral<2>;
827
+ domain: z.ZodLiteral<"plumbing">;
828
+ label: z.ZodString;
829
+ architectureRevision: z.ZodString;
830
+ relationships: z.ZodArray<z.ZodObject<{
831
+ node: z.ZodString;
832
+ relation: z.ZodEnum<{
833
+ mountedOn: "mountedOn";
834
+ within: "within";
835
+ serves: "serves";
836
+ penetrates: "penetrates";
837
+ }>;
838
+ target: z.ZodObject<{
839
+ kind: z.ZodEnum<{
840
+ topology: "topology";
841
+ component: "component";
842
+ }>;
843
+ id: z.ZodString;
844
+ }, z.core.$strict>;
845
+ }, z.core.$strict>>;
846
+ vertices: z.ZodArray<z.ZodObject<{
847
+ id: z.ZodString;
848
+ kind: z.ZodEnum<{
849
+ equipment: "equipment";
850
+ fixture: "fixture";
851
+ tank: "tank";
852
+ pump: "pump";
853
+ valve: "valve";
854
+ manifold: "manifold";
855
+ fitting: "fitting";
856
+ }>;
857
+ storey: z.ZodNumber;
858
+ family: z.ZodObject<{
859
+ definitionId: z.ZodString;
860
+ version: z.ZodNumber;
861
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
862
+ }, z.core.$strict>;
863
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
864
+ rotationDeg: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
865
+ systems: z.ZodRecord<z.ZodString, z.ZodString>;
866
+ }, z.core.$strict>>;
867
+ edges: z.ZodArray<z.ZodObject<{
868
+ id: z.ZodString;
869
+ kind: z.ZodEnum<{
870
+ pipe: "pipe";
871
+ riser: "riser";
872
+ }>;
873
+ storey: z.ZodNumber;
874
+ family: z.ZodObject<{
875
+ definitionId: z.ZodString;
876
+ version: z.ZodNumber;
877
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
878
+ }, z.core.$strict>;
879
+ from: z.ZodObject<{
880
+ node: z.ZodString;
881
+ port: z.ZodString;
882
+ }, z.core.$strict>;
883
+ to: z.ZodObject<{
884
+ node: z.ZodString;
885
+ port: z.ZodString;
886
+ }, z.core.$strict>;
887
+ system: z.ZodString;
888
+ curve: z.ZodObject<{
889
+ kind: z.ZodLiteral<"line">;
890
+ }, z.core.$strict>;
891
+ }, z.core.$strict>>;
892
+ }, z.core.$strict>>;
893
+ }, z.core.$strict>;
894
+ /** Resolved HVAC snapshot for queries, commands and load. New submissions require v2 intent. */
895
+ export declare const MechanicalGraphDocument: z.ZodObject<{
896
+ schemaVersion: z.ZodLiteral<1>;
897
+ label: z.ZodString;
898
+ architectureRevision: z.ZodString;
899
+ connections: z.ZodArray<z.ZodObject<{
900
+ id: z.ZodString;
901
+ from: z.ZodObject<{
902
+ node: z.ZodString;
903
+ port: z.ZodString;
904
+ }, z.core.$strict>;
905
+ to: z.ZodObject<{
906
+ node: z.ZodString;
907
+ port: z.ZodString;
908
+ }, z.core.$strict>;
909
+ directed: z.ZodBoolean;
910
+ }, z.core.$strict>>;
911
+ relationships: z.ZodArray<z.ZodObject<{
912
+ node: z.ZodString;
913
+ relation: z.ZodEnum<{
914
+ mountedOn: "mountedOn";
915
+ within: "within";
916
+ serves: "serves";
917
+ penetrates: "penetrates";
918
+ }>;
919
+ target: z.ZodObject<{
920
+ kind: z.ZodEnum<{
921
+ topology: "topology";
922
+ component: "component";
923
+ }>;
924
+ id: z.ZodString;
925
+ }, z.core.$strict>;
926
+ }, z.core.$strict>>;
927
+ domain: z.ZodLiteral<"mechanical">;
928
+ nodes: z.ZodArray<z.ZodObject<{
929
+ id: z.ZodString;
930
+ storey: z.ZodNumber;
931
+ kind: z.ZodEnum<{
932
+ duct: "duct";
933
+ equipment: "equipment";
934
+ fitting: "fitting";
935
+ riser: "riser";
936
+ terminal: "terminal";
937
+ damper: "damper";
938
+ }>;
939
+ geometry: z.ZodObject<{
940
+ kind: z.ZodLiteral<"family">;
941
+ definitionId: z.ZodString;
942
+ version: z.ZodNumber;
943
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
944
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
945
+ rotationDeg: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
946
+ ports: z.ZodArray<z.ZodObject<{
947
+ id: z.ZodString;
948
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
949
+ direction: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
950
+ system: z.ZodString;
951
+ sizeMm: z.ZodNumber;
952
+ heightMm: z.ZodOptional<z.ZodNumber>;
953
+ widthDirection: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
954
+ }, z.core.$strict>>;
955
+ }, z.core.$strict>;
956
+ }, z.core.$strict>>;
957
+ authored: z.ZodObject<{
958
+ schemaVersion: z.ZodLiteral<2>;
959
+ label: z.ZodString;
960
+ architectureRevision: z.ZodString;
961
+ relationships: z.ZodArray<z.ZodObject<{
962
+ node: z.ZodString;
963
+ relation: z.ZodEnum<{
964
+ mountedOn: "mountedOn";
965
+ within: "within";
966
+ serves: "serves";
967
+ penetrates: "penetrates";
968
+ }>;
969
+ target: z.ZodObject<{
970
+ kind: z.ZodEnum<{
971
+ topology: "topology";
972
+ component: "component";
973
+ }>;
974
+ id: z.ZodString;
975
+ }, z.core.$strict>;
976
+ }, z.core.$strict>>;
977
+ domain: z.ZodLiteral<"mechanical">;
978
+ vertices: z.ZodArray<z.ZodObject<{
979
+ id: z.ZodString;
980
+ storey: z.ZodNumber;
981
+ family: z.ZodObject<{
982
+ definitionId: z.ZodString;
983
+ version: z.ZodNumber;
984
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
985
+ }, z.core.$strict>;
986
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
987
+ rotationDeg: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
988
+ kind: z.ZodEnum<{
989
+ equipment: "equipment";
990
+ fitting: "fitting";
991
+ terminal: "terminal";
992
+ damper: "damper";
993
+ }>;
994
+ systems: z.ZodRecord<z.ZodString, z.ZodEnum<{
995
+ supplyAir: "supplyAir";
996
+ returnAir: "returnAir";
997
+ exhaustAir: "exhaustAir";
998
+ outsideAir: "outsideAir";
999
+ reliefAir: "reliefAir";
1000
+ }>>;
1001
+ }, z.core.$strict>>;
1002
+ edges: z.ZodArray<z.ZodObject<{
1003
+ id: z.ZodString;
1004
+ storey: z.ZodNumber;
1005
+ family: z.ZodObject<{
1006
+ definitionId: z.ZodString;
1007
+ version: z.ZodNumber;
1008
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
1009
+ }, z.core.$strict>;
1010
+ from: z.ZodObject<{
1011
+ node: z.ZodString;
1012
+ port: z.ZodString;
1013
+ }, z.core.$strict>;
1014
+ to: z.ZodObject<{
1015
+ node: z.ZodString;
1016
+ port: z.ZodString;
1017
+ }, z.core.$strict>;
1018
+ curve: z.ZodObject<{
1019
+ kind: z.ZodLiteral<"line">;
1020
+ }, z.core.$strict>;
1021
+ kind: z.ZodEnum<{
1022
+ duct: "duct";
1023
+ riser: "riser";
1024
+ }>;
1025
+ system: z.ZodEnum<{
1026
+ supplyAir: "supplyAir";
1027
+ returnAir: "returnAir";
1028
+ exhaustAir: "exhaustAir";
1029
+ outsideAir: "outsideAir";
1030
+ reliefAir: "reliefAir";
1031
+ }>;
1032
+ }, z.core.$strict>>;
1033
+ }, z.core.$strict>;
1034
+ }, z.core.$strict>;
1035
+ export declare const NetworkGraphDocument: z.ZodDiscriminatedUnion<[z.ZodObject<{
1036
+ schemaVersion: z.ZodLiteral<1>;
1037
+ label: z.ZodString;
1038
+ architectureRevision: z.ZodString;
1039
+ connections: z.ZodArray<z.ZodObject<{
1040
+ id: z.ZodString;
1041
+ from: z.ZodObject<{
1042
+ node: z.ZodString;
1043
+ port: z.ZodString;
1044
+ }, z.core.$strict>;
1045
+ to: z.ZodObject<{
1046
+ node: z.ZodString;
1047
+ port: z.ZodString;
1048
+ }, z.core.$strict>;
1049
+ directed: z.ZodBoolean;
1050
+ }, z.core.$strict>>;
1051
+ relationships: z.ZodArray<z.ZodObject<{
1052
+ node: z.ZodString;
1053
+ relation: z.ZodEnum<{
1054
+ mountedOn: "mountedOn";
1055
+ within: "within";
1056
+ serves: "serves";
1057
+ penetrates: "penetrates";
1058
+ }>;
1059
+ target: z.ZodObject<{
1060
+ kind: z.ZodEnum<{
1061
+ topology: "topology";
1062
+ component: "component";
1063
+ }>;
1064
+ id: z.ZodString;
1065
+ }, z.core.$strict>;
1066
+ }, z.core.$strict>>;
1067
+ domain: z.ZodLiteral<"electrical">;
1068
+ nodes: z.ZodArray<z.ZodObject<{
1069
+ id: z.ZodString;
1070
+ storey: z.ZodNumber;
1071
+ geometry: z.ZodDiscriminatedUnion<[z.ZodObject<{
1072
+ kind: z.ZodLiteral<"family">;
1073
+ definitionId: z.ZodString;
1074
+ version: z.ZodNumber;
1075
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
1076
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1077
+ rotationDeg: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1078
+ ports: z.ZodArray<z.ZodObject<{
1079
+ id: z.ZodString;
1080
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1081
+ direction: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1082
+ system: z.ZodString;
1083
+ sizeMm: z.ZodNumber;
1084
+ heightMm: z.ZodOptional<z.ZodNumber>;
1085
+ widthDirection: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1086
+ }, z.core.$strict>>;
1087
+ }, z.core.$strict>, z.ZodObject<{
1088
+ kind: z.ZodLiteral<"route">;
1089
+ pathMm: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1090
+ system: z.ZodString;
1091
+ section: z.ZodDiscriminatedUnion<[z.ZodObject<{
1092
+ kind: z.ZodLiteral<"round">;
1093
+ diameterMm: z.ZodNumber;
1094
+ wallMm: z.ZodNumber;
1095
+ }, z.core.$strict>, z.ZodObject<{
1096
+ kind: z.ZodLiteral<"rectangular">;
1097
+ widthMm: z.ZodNumber;
1098
+ heightMm: z.ZodNumber;
1099
+ wallMm: z.ZodNumber;
1100
+ }, z.core.$strict>], "kind">;
1101
+ }, z.core.$strict>], "kind">;
1102
+ kind: z.ZodEnum<{
1103
+ wire: "wire";
1104
+ cable: "cable";
1105
+ conduit: "conduit";
1106
+ cableDuct: "cableDuct";
1107
+ cableTray: "cableTray";
1108
+ equipment: "equipment";
1109
+ fitting: "fitting";
1110
+ transformer: "transformer";
1111
+ mainBoard: "mainBoard";
1112
+ distributionBoard: "distributionBoard";
1113
+ mcbBox: "mcbBox";
1114
+ junctionBox: "junctionBox";
1115
+ switch: "switch";
1116
+ outlet: "outlet";
1117
+ light: "light";
1118
+ load: "load";
1119
+ }>;
1120
+ }, z.core.$strict>>;
1121
+ circuits: z.ZodArray<z.ZodObject<{
1122
+ id: z.ZodString;
1123
+ source: z.ZodString;
1124
+ loads: z.ZodArray<z.ZodString>;
1125
+ routes: z.ZodArray<z.ZodString>;
1126
+ voltage: z.ZodNumber;
1127
+ phases: z.ZodNumber;
1128
+ ratedAmps: z.ZodNumber;
1129
+ }, z.core.$strict>>;
1130
+ authored: z.ZodOptional<z.ZodObject<{
1131
+ schemaVersion: z.ZodLiteral<2>;
1132
+ label: z.ZodString;
1133
+ architectureRevision: z.ZodString;
1134
+ relationships: z.ZodArray<z.ZodObject<{
1135
+ node: z.ZodString;
1136
+ relation: z.ZodEnum<{
1137
+ mountedOn: "mountedOn";
1138
+ within: "within";
1139
+ serves: "serves";
1140
+ penetrates: "penetrates";
1141
+ }>;
1142
+ target: z.ZodObject<{
1143
+ kind: z.ZodEnum<{
1144
+ topology: "topology";
1145
+ component: "component";
1146
+ }>;
1147
+ id: z.ZodString;
1148
+ }, z.core.$strict>;
1149
+ }, z.core.$strict>>;
1150
+ domain: z.ZodLiteral<"electrical">;
1151
+ vertices: z.ZodArray<z.ZodObject<{
1152
+ id: z.ZodString;
1153
+ storey: z.ZodNumber;
1154
+ family: z.ZodObject<{
1155
+ definitionId: z.ZodString;
1156
+ version: z.ZodNumber;
1157
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
1158
+ }, z.core.$strict>;
1159
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1160
+ rotationDeg: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1161
+ systems: z.ZodRecord<z.ZodString, z.ZodString>;
1162
+ kind: z.ZodEnum<{
1163
+ equipment: "equipment";
1164
+ fitting: "fitting";
1165
+ transformer: "transformer";
1166
+ mainBoard: "mainBoard";
1167
+ distributionBoard: "distributionBoard";
1168
+ mcbBox: "mcbBox";
1169
+ junctionBox: "junctionBox";
1170
+ switch: "switch";
1171
+ outlet: "outlet";
1172
+ light: "light";
1173
+ load: "load";
1174
+ }>;
1175
+ }, z.core.$strict>>;
1176
+ edges: z.ZodArray<z.ZodObject<{
1177
+ id: z.ZodString;
1178
+ storey: z.ZodNumber;
1179
+ family: z.ZodObject<{
1180
+ definitionId: z.ZodString;
1181
+ version: z.ZodNumber;
1182
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
1183
+ }, z.core.$strict>;
1184
+ from: z.ZodObject<{
1185
+ node: z.ZodString;
1186
+ port: z.ZodString;
1187
+ }, z.core.$strict>;
1188
+ to: z.ZodObject<{
1189
+ node: z.ZodString;
1190
+ port: z.ZodString;
1191
+ }, z.core.$strict>;
1192
+ system: z.ZodString;
1193
+ curve: z.ZodObject<{
1194
+ kind: z.ZodLiteral<"line">;
1195
+ }, z.core.$strict>;
1196
+ kind: z.ZodEnum<{
1197
+ wire: "wire";
1198
+ cable: "cable";
1199
+ conduit: "conduit";
1200
+ cableDuct: "cableDuct";
1201
+ cableTray: "cableTray";
1202
+ }>;
1203
+ directed: z.ZodBoolean;
1204
+ }, z.core.$strict>>;
1205
+ circuits: z.ZodArray<z.ZodObject<{
1206
+ id: z.ZodString;
1207
+ source: z.ZodString;
1208
+ loads: z.ZodArray<z.ZodString>;
1209
+ routes: z.ZodArray<z.ZodString>;
1210
+ voltage: z.ZodNumber;
1211
+ phases: z.ZodNumber;
1212
+ ratedAmps: z.ZodNumber;
1213
+ }, z.core.$strict>>;
1214
+ }, z.core.$strict>>;
1215
+ }, z.core.$strict>, z.ZodObject<{
1216
+ schemaVersion: z.ZodLiteral<1>;
1217
+ label: z.ZodString;
1218
+ architectureRevision: z.ZodString;
1219
+ connections: z.ZodArray<z.ZodObject<{
1220
+ id: z.ZodString;
1221
+ from: z.ZodObject<{
1222
+ node: z.ZodString;
1223
+ port: z.ZodString;
1224
+ }, z.core.$strict>;
1225
+ to: z.ZodObject<{
1226
+ node: z.ZodString;
1227
+ port: z.ZodString;
1228
+ }, z.core.$strict>;
1229
+ directed: z.ZodBoolean;
1230
+ }, z.core.$strict>>;
1231
+ relationships: z.ZodArray<z.ZodObject<{
1232
+ node: z.ZodString;
1233
+ relation: z.ZodEnum<{
1234
+ mountedOn: "mountedOn";
1235
+ within: "within";
1236
+ serves: "serves";
1237
+ penetrates: "penetrates";
1238
+ }>;
1239
+ target: z.ZodObject<{
1240
+ kind: z.ZodEnum<{
1241
+ topology: "topology";
1242
+ component: "component";
1243
+ }>;
1244
+ id: z.ZodString;
1245
+ }, z.core.$strict>;
1246
+ }, z.core.$strict>>;
1247
+ domain: z.ZodLiteral<"plumbing">;
1248
+ nodes: z.ZodArray<z.ZodObject<{
1249
+ id: z.ZodString;
1250
+ storey: z.ZodNumber;
1251
+ geometry: z.ZodDiscriminatedUnion<[z.ZodObject<{
1252
+ kind: z.ZodLiteral<"family">;
1253
+ definitionId: z.ZodString;
1254
+ version: z.ZodNumber;
1255
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
1256
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1257
+ rotationDeg: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1258
+ ports: z.ZodArray<z.ZodObject<{
1259
+ id: z.ZodString;
1260
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1261
+ direction: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1262
+ system: z.ZodString;
1263
+ sizeMm: z.ZodNumber;
1264
+ heightMm: z.ZodOptional<z.ZodNumber>;
1265
+ widthDirection: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1266
+ }, z.core.$strict>>;
1267
+ }, z.core.$strict>, z.ZodObject<{
1268
+ kind: z.ZodLiteral<"route">;
1269
+ pathMm: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1270
+ system: z.ZodString;
1271
+ section: z.ZodDiscriminatedUnion<[z.ZodObject<{
1272
+ kind: z.ZodLiteral<"round">;
1273
+ diameterMm: z.ZodNumber;
1274
+ wallMm: z.ZodNumber;
1275
+ }, z.core.$strict>, z.ZodObject<{
1276
+ kind: z.ZodLiteral<"rectangular">;
1277
+ widthMm: z.ZodNumber;
1278
+ heightMm: z.ZodNumber;
1279
+ wallMm: z.ZodNumber;
1280
+ }, z.core.$strict>], "kind">;
1281
+ }, z.core.$strict>], "kind">;
1282
+ kind: z.ZodEnum<{
1283
+ pipe: "pipe";
1284
+ equipment: "equipment";
1285
+ fixture: "fixture";
1286
+ tank: "tank";
1287
+ pump: "pump";
1288
+ valve: "valve";
1289
+ manifold: "manifold";
1290
+ fitting: "fitting";
1291
+ riser: "riser";
1292
+ }>;
1293
+ }, z.core.$strict>>;
1294
+ authored: z.ZodOptional<z.ZodObject<{
1295
+ schemaVersion: z.ZodLiteral<2>;
1296
+ domain: z.ZodLiteral<"plumbing">;
1297
+ label: z.ZodString;
1298
+ architectureRevision: z.ZodString;
1299
+ relationships: z.ZodArray<z.ZodObject<{
1300
+ node: z.ZodString;
1301
+ relation: z.ZodEnum<{
1302
+ mountedOn: "mountedOn";
1303
+ within: "within";
1304
+ serves: "serves";
1305
+ penetrates: "penetrates";
1306
+ }>;
1307
+ target: z.ZodObject<{
1308
+ kind: z.ZodEnum<{
1309
+ topology: "topology";
1310
+ component: "component";
1311
+ }>;
1312
+ id: z.ZodString;
1313
+ }, z.core.$strict>;
1314
+ }, z.core.$strict>>;
1315
+ vertices: z.ZodArray<z.ZodObject<{
1316
+ id: z.ZodString;
1317
+ kind: z.ZodEnum<{
1318
+ equipment: "equipment";
1319
+ fixture: "fixture";
1320
+ tank: "tank";
1321
+ pump: "pump";
1322
+ valve: "valve";
1323
+ manifold: "manifold";
1324
+ fitting: "fitting";
1325
+ }>;
1326
+ storey: z.ZodNumber;
1327
+ family: z.ZodObject<{
1328
+ definitionId: z.ZodString;
1329
+ version: z.ZodNumber;
1330
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
1331
+ }, z.core.$strict>;
1332
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1333
+ rotationDeg: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1334
+ systems: z.ZodRecord<z.ZodString, z.ZodString>;
1335
+ }, z.core.$strict>>;
1336
+ edges: z.ZodArray<z.ZodObject<{
1337
+ id: z.ZodString;
1338
+ kind: z.ZodEnum<{
1339
+ pipe: "pipe";
1340
+ riser: "riser";
1341
+ }>;
1342
+ storey: z.ZodNumber;
1343
+ family: z.ZodObject<{
1344
+ definitionId: z.ZodString;
1345
+ version: z.ZodNumber;
1346
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
1347
+ }, z.core.$strict>;
1348
+ from: z.ZodObject<{
1349
+ node: z.ZodString;
1350
+ port: z.ZodString;
1351
+ }, z.core.$strict>;
1352
+ to: z.ZodObject<{
1353
+ node: z.ZodString;
1354
+ port: z.ZodString;
1355
+ }, z.core.$strict>;
1356
+ system: z.ZodString;
1357
+ curve: z.ZodObject<{
1358
+ kind: z.ZodLiteral<"line">;
1359
+ }, z.core.$strict>;
1360
+ }, z.core.$strict>>;
1361
+ }, z.core.$strict>>;
1362
+ }, z.core.$strict>, z.ZodObject<{
1363
+ schemaVersion: z.ZodLiteral<1>;
1364
+ label: z.ZodString;
1365
+ architectureRevision: z.ZodString;
1366
+ connections: z.ZodArray<z.ZodObject<{
1367
+ id: z.ZodString;
1368
+ from: z.ZodObject<{
1369
+ node: z.ZodString;
1370
+ port: z.ZodString;
1371
+ }, z.core.$strict>;
1372
+ to: z.ZodObject<{
1373
+ node: z.ZodString;
1374
+ port: z.ZodString;
1375
+ }, z.core.$strict>;
1376
+ directed: z.ZodBoolean;
1377
+ }, z.core.$strict>>;
1378
+ relationships: z.ZodArray<z.ZodObject<{
1379
+ node: z.ZodString;
1380
+ relation: z.ZodEnum<{
1381
+ mountedOn: "mountedOn";
1382
+ within: "within";
1383
+ serves: "serves";
1384
+ penetrates: "penetrates";
1385
+ }>;
1386
+ target: z.ZodObject<{
1387
+ kind: z.ZodEnum<{
1388
+ topology: "topology";
1389
+ component: "component";
1390
+ }>;
1391
+ id: z.ZodString;
1392
+ }, z.core.$strict>;
1393
+ }, z.core.$strict>>;
1394
+ domain: z.ZodLiteral<"mechanical">;
1395
+ nodes: z.ZodArray<z.ZodObject<{
1396
+ id: z.ZodString;
1397
+ storey: z.ZodNumber;
1398
+ kind: z.ZodEnum<{
1399
+ duct: "duct";
1400
+ equipment: "equipment";
1401
+ fitting: "fitting";
1402
+ riser: "riser";
1403
+ terminal: "terminal";
1404
+ damper: "damper";
1405
+ }>;
1406
+ geometry: z.ZodObject<{
1407
+ kind: z.ZodLiteral<"family">;
1408
+ definitionId: z.ZodString;
1409
+ version: z.ZodNumber;
1410
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
1411
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1412
+ rotationDeg: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1413
+ ports: z.ZodArray<z.ZodObject<{
1414
+ id: z.ZodString;
1415
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1416
+ direction: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1417
+ system: z.ZodString;
1418
+ sizeMm: z.ZodNumber;
1419
+ heightMm: z.ZodOptional<z.ZodNumber>;
1420
+ widthDirection: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1421
+ }, z.core.$strict>>;
1422
+ }, z.core.$strict>;
1423
+ }, z.core.$strict>>;
1424
+ authored: z.ZodObject<{
1425
+ schemaVersion: z.ZodLiteral<2>;
1426
+ label: z.ZodString;
1427
+ architectureRevision: z.ZodString;
1428
+ relationships: z.ZodArray<z.ZodObject<{
1429
+ node: z.ZodString;
1430
+ relation: z.ZodEnum<{
1431
+ mountedOn: "mountedOn";
1432
+ within: "within";
1433
+ serves: "serves";
1434
+ penetrates: "penetrates";
1435
+ }>;
1436
+ target: z.ZodObject<{
1437
+ kind: z.ZodEnum<{
1438
+ topology: "topology";
1439
+ component: "component";
1440
+ }>;
1441
+ id: z.ZodString;
1442
+ }, z.core.$strict>;
1443
+ }, z.core.$strict>>;
1444
+ domain: z.ZodLiteral<"mechanical">;
1445
+ vertices: z.ZodArray<z.ZodObject<{
1446
+ id: z.ZodString;
1447
+ storey: z.ZodNumber;
1448
+ family: z.ZodObject<{
1449
+ definitionId: z.ZodString;
1450
+ version: z.ZodNumber;
1451
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
1452
+ }, z.core.$strict>;
1453
+ positionMm: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1454
+ rotationDeg: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1455
+ kind: z.ZodEnum<{
1456
+ equipment: "equipment";
1457
+ fitting: "fitting";
1458
+ terminal: "terminal";
1459
+ damper: "damper";
1460
+ }>;
1461
+ systems: z.ZodRecord<z.ZodString, z.ZodEnum<{
1462
+ supplyAir: "supplyAir";
1463
+ returnAir: "returnAir";
1464
+ exhaustAir: "exhaustAir";
1465
+ outsideAir: "outsideAir";
1466
+ reliefAir: "reliefAir";
1467
+ }>>;
1468
+ }, z.core.$strict>>;
1469
+ edges: z.ZodArray<z.ZodObject<{
1470
+ id: z.ZodString;
1471
+ storey: z.ZodNumber;
1472
+ family: z.ZodObject<{
1473
+ definitionId: z.ZodString;
1474
+ version: z.ZodNumber;
1475
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBoolean]>>;
1476
+ }, z.core.$strict>;
1477
+ from: z.ZodObject<{
1478
+ node: z.ZodString;
1479
+ port: z.ZodString;
1480
+ }, z.core.$strict>;
1481
+ to: z.ZodObject<{
1482
+ node: z.ZodString;
1483
+ port: z.ZodString;
1484
+ }, z.core.$strict>;
1485
+ curve: z.ZodObject<{
1486
+ kind: z.ZodLiteral<"line">;
1487
+ }, z.core.$strict>;
1488
+ kind: z.ZodEnum<{
1489
+ duct: "duct";
1490
+ riser: "riser";
1491
+ }>;
1492
+ system: z.ZodEnum<{
1493
+ supplyAir: "supplyAir";
1494
+ returnAir: "returnAir";
1495
+ exhaustAir: "exhaustAir";
1496
+ outsideAir: "outsideAir";
1497
+ reliefAir: "reliefAir";
1498
+ }>;
1499
+ }, z.core.$strict>>;
1500
+ }, z.core.$strict>;
1501
+ }, z.core.$strict>], "domain">;
1502
+ export type NetworkGraphDocument = z.infer<typeof NetworkGraphDocument>;
1503
+ export type NetworkNode = NetworkGraphDocument["nodes"][number];
1504
+ export type NetworkPort = z.infer<typeof NetworkPort>;
1505
+ export type NetworkDomain = NetworkGraphDocument["domain"];
1506
+ /** JSON is an authored document, not a transport for live geometry handles. Maximum 2 MB characters. */
1507
+ export declare const NetworkValidateArgs: z.ZodObject<{
1508
+ graphJson: z.ZodString;
1509
+ }, z.core.$strict>;
1510
+ export declare const NetworkCreateArgs: z.ZodObject<{
1511
+ graphJson: z.ZodString;
1512
+ requestId: z.ZodString;
1513
+ }, z.core.$strict>;
1514
+ export declare const NetworkGetArgs: z.ZodObject<{
1515
+ graphId: z.ZodString;
1516
+ }, z.core.$strict>;
1517
+ export declare const NetworkContextArgs: z.ZodObject<{
1518
+ offset: z.ZodDefault<z.ZodNumber>;
1519
+ limit: z.ZodDefault<z.ZodNumber>;
1520
+ includeTopology: z.ZodDefault<z.ZodBoolean>;
1521
+ }, z.core.$strict>;
1522
+ export declare const NetworkQueryArgs: z.ZodObject<{
1523
+ graphId: z.ZodString;
1524
+ revision: z.ZodNumber;
1525
+ queryJson: z.ZodString;
1526
+ }, z.core.$strict>;
1527
+ export declare const NetworkQuery: z.ZodObject<{
1528
+ kind: z.ZodEnum<{
1529
+ ports: "ports";
1530
+ relationships: "relationships";
1531
+ circuits: "circuits";
1532
+ nodes: "nodes";
1533
+ connected: "connected";
1534
+ upstream: "upstream";
1535
+ downstream: "downstream";
1536
+ nearestPort: "nearestPort";
1537
+ }>;
1538
+ node: z.ZodOptional<z.ZodString>;
1539
+ pointMm: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1540
+ radiusMm: z.ZodOptional<z.ZodNumber>;
1541
+ system: z.ZodOptional<z.ZodString>;
1542
+ sizeMm: z.ZodOptional<z.ZodNumber>;
1543
+ heightMm: z.ZodOptional<z.ZodNumber>;
1544
+ offset: z.ZodDefault<z.ZodNumber>;
1545
+ limit: z.ZodDefault<z.ZodNumber>;
1546
+ }, z.core.$strict>;
1547
+ export type NetworkQuery = z.infer<typeof NetworkQuery>;
1548
+ export interface NetworkDiagnostic {
1549
+ path: string;
1550
+ message: string;
1551
+ }
1552
+ export interface NetworkValidation {
1553
+ ok: boolean;
1554
+ diagnostics: NetworkDiagnostic[];
1555
+ nodeCount: number;
1556
+ }
1557
+ /** Durable node-to-scene mapping. New family-backed nodes retain the original authorized pin;
1558
+ * parameters and placement belong to the component, not a generated library family.
1559
+ * Existing wrapper pins and v1 raw-route recipe pins remain readable, not newly authored.
1560
+ */
1561
+ export declare const NetworkComponentBinding: z.ZodObject<{
1562
+ nodeId: z.ZodString;
1563
+ componentId: z.ZodString;
1564
+ definitionId: z.ZodString;
1565
+ definitionVersion: z.ZodNumber;
1566
+ }, z.core.$strict>;
1567
+ export type NetworkComponentBinding = z.infer<typeof NetworkComponentBinding>;
1568
+ export interface SavedNetworkGraph {
1569
+ id: string;
1570
+ domain: NetworkDomain;
1571
+ revision: 1;
1572
+ requestId: string;
1573
+ document: NetworkGraphDocument;
1574
+ components: NetworkComponentBinding[];
1575
+ }
1576
+ export interface NetworkCreateResult {
1577
+ graphId: string;
1578
+ revision: number;
1579
+ components: NetworkComponentBinding[];
1580
+ alreadyCreated: boolean;
1581
+ /** Queue acceptance is not a durable database acknowledgement. */
1582
+ saveStatus: "queued" | "existing";
1583
+ }
1584
+ /** Exact TopoGraph routing evidence, not a route planner or inferred enclosure.
1585
+ * World mm, Y-up. A curve's axis is a unit direction, not a length.
1586
+ * Shared region IDs mean a shared boundary, not permission to penetrate a wall.
1587
+ * Regions preserve directed outer/hole loops. No vertical connectivity is inferred;
1588
+ * use their curves and storey elevations to plan risers and explicit penetrations.
1589
+ */
1590
+ export interface NetworkRoutingContext {
1591
+ units: "mm";
1592
+ edges: {
1593
+ id: string;
1594
+ curve: {
1595
+ type: "line";
1596
+ start: number[];
1597
+ end: number[];
1598
+ } | {
1599
+ type: "arc";
1600
+ start: number[];
1601
+ end: number[];
1602
+ centre: number[];
1603
+ axis: number[];
1604
+ };
1605
+ wallId: string | null;
1606
+ regionIds: string[];
1607
+ }[];
1608
+ regions: {
1609
+ id: string;
1610
+ /** Stable source component IDs; read label/storey from context.components. */
1611
+ ownerIds: string[];
1612
+ boundary: {
1613
+ outer: {
1614
+ edgeId: string;
1615
+ direction: "forward" | "reverse";
1616
+ }[];
1617
+ holes: {
1618
+ edgeId: string;
1619
+ direction: "forward" | "reverse";
1620
+ }[][];
1621
+ };
1622
+ floorId: string | null;
1623
+ slabId: string | null;
1624
+ }[];
1625
+ /** Hosting is exact; bounds are only coarse avoidance data, not a penetration clearance check. */
1626
+ openings: {
1627
+ id: string;
1628
+ wallId: string;
1629
+ type: string;
1630
+ minMm: number[];
1631
+ maxMm: number[];
1632
+ }[];
1633
+ }
1634
+ export interface NetworkContextResult {
1635
+ proposalId: string;
1636
+ buildingId: string | null;
1637
+ revision: string;
1638
+ /** PG2's native serialization uses Snaptrude units (1 SU = 254 mm). */
1639
+ topologyUnits: "SU";
1640
+ /** JSON array; empty when includeTopology is false. Prefer routing for network planning. */
1641
+ topologyJson: string;
1642
+ /** Each collection uses offset/limit independently. Follow nextOffset before resolving references.
1643
+ * Empty regions mean topology is unavailable, not that bounds can substitute for room boundaries.
1644
+ */
1645
+ routing: NetworkRoutingContext;
1646
+ nextOffset: number | null;
1647
+ total: number;
1648
+ storeys: {
1649
+ number: number;
1650
+ elevationMm: number;
1651
+ }[];
1652
+ components: {
1653
+ id: string;
1654
+ type: string;
1655
+ label: string;
1656
+ storey: number;
1657
+ minMm: number[];
1658
+ maxMm: number[];
1659
+ }[];
1660
+ /** Saved graph inventory, paged with topology/components. Use these IDs after reopening a project. */
1661
+ networks: {
1662
+ graphId: string;
1663
+ domain: NetworkDomain;
1664
+ revision: number;
1665
+ label: string;
1666
+ componentCount: number;
1667
+ }[];
1668
+ }
1669
+ export interface NetworkQueryResult {
1670
+ revision: number;
1671
+ resultJson: string;
1672
+ nextOffset: number | null;
1673
+ total: number;
1674
+ }
1675
+ /** Shared transport only. Each domain retains a separate schema and semantics. */
1676
+ export declare abstract class PluginDomainNetworkApi {
1677
+ /** Read the active proposal's architectural context before authoring. Keep one revision across pages. */
1678
+ abstract context(args?: z.input<typeof NetworkContextArgs>): PluginApiReturn<NetworkContextResult>;
1679
+ /** Validate authored JSON, pinned families and recipe evaluation without placing or saving anything.
1680
+ * This does not build kernel meshes or certify engineering/code compliance.
1681
+ */
1682
+ abstract validate(args: z.input<typeof NetworkValidateArgs>): PluginApiReturn<NetworkValidation>;
1683
+ /** Construct each node on its authored storey, with one undo command and queued project persistence.
1684
+ * Networks can span storeys. Reuse requestId on retry; components returns the durable node mapping.
1685
+ * Coordinates are world millimetres, Y-up; rotations are degrees. No engineering rules are inferred.
1686
+ * Throws for stale architecture, invalid references/geometry or conflicting retries.
1687
+ */
1688
+ abstract create(args: z.input<typeof NetworkCreateArgs>): PluginApiReturn<NetworkCreateResult>;
1689
+ /** Read one saved graph in the active proposal; null on miss. IDs are durable, not worker handles. */
1690
+ abstract get(args: z.input<typeof NetworkGetArgs>): PluginApiReturn<SavedNetworkGraph | null>;
1691
+ /** Read bounded authored topology in graph revision. Crossings do not connect. No clash/compliance claims. */
1692
+ abstract query(args: z.input<typeof NetworkQueryArgs>): PluginApiReturn<NetworkQueryResult>;
1693
+ }
1694
+ /** Electrical equipment, physical routes and logical circuits, constructed from agent-authored intent. */
1695
+ export declare abstract class PluginElectricalApi extends PluginDomainNetworkApi {
1696
+ }
1697
+ /** Plumbing equipment and routed pipe networks, constructed from agent-authored intent. */
1698
+ export declare abstract class PluginPlumbingApi extends PluginDomainNetworkApi {
1699
+ }
1700
+ /** Family-backed air-side HVAC networks. The agent authors engineering intent; the host constructs it. */
1701
+ export declare abstract class PluginMechanicalApi extends PluginDomainNetworkApi {
1702
+ }
1703
+ //# sourceMappingURL=networks.d.ts.map