@theerapat-s28/ts-structural-eng-tools 1.0.1 → 1.2.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 (37) hide show
  1. package/README.md +13 -3
  2. package/dist/core/constants/rc.constant.d.ts +23 -0
  3. package/dist/core/constants/rc.constant.js +42 -1
  4. package/dist/core/constants/rc.constant.js.map +1 -1
  5. package/dist/core/errors/rc-design.error.js +29 -0
  6. package/dist/core/errors/rc-design.error.js.map +1 -1
  7. package/dist/core/index.d.ts +4 -3
  8. package/dist/core/index.js +7 -1
  9. package/dist/core/index.js.map +1 -1
  10. package/dist/core/types/plate-jacketing.type.d.ts +31 -4
  11. package/dist/core/types/plate-jacketing.type.js +12 -0
  12. package/dist/core/types/plate-jacketing.type.js.map +1 -1
  13. package/dist/core/types/rc-beam.type.d.ts +30 -0
  14. package/dist/core/types/rc-beam.type.js +1 -4
  15. package/dist/core/types/rc-beam.type.js.map +1 -1
  16. package/dist/index.d.ts +4 -4
  17. package/dist/index.js +13 -1
  18. package/dist/index.js.map +1 -1
  19. package/dist/rc/index.d.ts +2 -1
  20. package/dist/rc/index.js +6 -1
  21. package/dist/rc/index.js.map +1 -1
  22. package/dist/rc/rc-bar-layout.d.ts +34 -0
  23. package/dist/rc/rc-bar-layout.js +125 -0
  24. package/dist/rc/rc-bar-layout.js.map +1 -0
  25. package/dist/rc/rc-beam-design.d.ts +58 -1
  26. package/dist/rc/rc-beam-design.js +144 -5
  27. package/dist/rc/rc-beam-design.js.map +1 -1
  28. package/dist/strengthening/index.d.ts +1 -0
  29. package/dist/strengthening/index.js +5 -1
  30. package/dist/strengthening/index.js.map +1 -1
  31. package/dist/strengthening/rc-beam-plate-interface-bolts.d.ts +134 -0
  32. package/dist/strengthening/rc-beam-plate-interface-bolts.js +377 -0
  33. package/dist/strengthening/rc-beam-plate-interface-bolts.js.map +1 -0
  34. package/dist/strengthening/rc-beam-steel-plate-jacketing.js +23 -13
  35. package/dist/strengthening/rc-beam-steel-plate-jacketing.js.map +1 -1
  36. package/dist/utils/math.js.map +1 -1
  37. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { RectBeamSection } from "../core/types/rc-beam.type";
1
+ import { RectBeamSection, RectShearSection, StirrupShearSection, ShearReinforcementCheckInput } from "../core/types/rc-beam.type";
2
2
  import { Warnings } from "../core/types/output-message.type";
3
3
  /**
4
4
  * Calculates the nominal moment capacity (φMn) of a rectangular RC beam section.
@@ -16,3 +16,60 @@ export declare const rectBeamMomentCapacity: (section: RectBeamSection) => {
16
16
  unit: string;
17
17
  warnings: Warnings;
18
18
  };
19
+ /**
20
+ * Calculates the concrete contribution to shear capacity (φVc) of a beam section
21
+ * per ACI 318-19 22.5.5.1, Table 22.5.5.1(a): Vc = 0.17 λ √f'c bw d
22
+ *
23
+ * @param section - Shear section properties (fc_, bw, d, optional lambda)
24
+ * @returns Object containing `phiVc` (kN), `calculationDetails`, `unit`, and `warnings`
25
+ */
26
+ export declare const concreteShearCapacity: (section: RectShearSection) => {
27
+ phiVc: number;
28
+ calculationDetails: {
29
+ Vc: number;
30
+ lambda: number;
31
+ };
32
+ unit: string;
33
+ warnings: Warnings;
34
+ };
35
+ /**
36
+ * Calculates the stirrup (shear reinforcement) contribution to shear capacity (φVs)
37
+ * of a beam section per ACI 318-19 22.5.10.5.3: Vs = Av fyt d / s
38
+ *
39
+ * @param section - Stirrup shear properties (fc_, bw, d, Av, fyt, s)
40
+ * @returns Object containing `phiVs` (kN), `calculationDetails`, `unit`, and `warnings`
41
+ * @throws {RCDesignError} If Vs exceeds the ACI 318-19 22.5.1.2 maximum (section too small)
42
+ */
43
+ export declare const stirrupShearCapacity: (section: StirrupShearSection) => {
44
+ phiVs: number;
45
+ calculationDetails: {
46
+ Vs: number;
47
+ maxVs: number;
48
+ };
49
+ unit: string;
50
+ warnings: Warnings;
51
+ };
52
+ /**
53
+ * Checks whether shear reinforcement (stirrups) is required at a section, and if so,
54
+ * whether it may be at the code minimum or must be designed for strength, per
55
+ * ACI 318-19 9.6.3.1 (requirement thresholds), 9.6.3.3 (Av,min), and 9.7.6.2.2 (max spacing).
56
+ *
57
+ * If `Av` and `s` are supplied, the provided reinforcement is checked against the
58
+ * required Av/s ratio and maximum spacing, adding warnings on shortfalls.
59
+ *
60
+ * @param input - Section and demand properties (fc_, bw, d, Vu, fyt, optional Av, s, lambda)
61
+ * @returns Object containing requirement classification, required Av/s and max spacing, and warnings
62
+ * @throws {RCDesignError} If required Vs exceeds the ACI 318-19 22.5.1.2 maximum (section too small)
63
+ */
64
+ export declare const checkStirrupRequirement: (input: ShearReinforcementCheckInput) => {
65
+ required: boolean;
66
+ minimumOnly: boolean;
67
+ calculationDetails: {
68
+ phiVc: number;
69
+ halfPhiVc: number;
70
+ requiredAvOverS: number;
71
+ maxSpacing: number | null;
72
+ };
73
+ unit: string;
74
+ warnings: Warnings;
75
+ };
@@ -33,7 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.rectBeamMomentCapacity = void 0;
36
+ exports.checkStirrupRequirement = exports.stirrupShearCapacity = exports.concreteShearCapacity = exports.rectBeamMomentCapacity = void 0;
37
37
  const rc_design_error_1 = require("../core/errors/rc-design.error");
38
38
  const MyMath = __importStar(require("../utils/math"));
39
39
  const rc_beam_type_1 = require("../core/types/rc-beam.type");
@@ -114,6 +114,147 @@ const rectBeamMomentCapacity = (section) => {
114
114
  };
115
115
  };
116
116
  exports.rectBeamMomentCapacity = rectBeamMomentCapacity;
117
+ /**
118
+ * Calculates the concrete contribution to shear capacity (φVc) of a beam section
119
+ * per ACI 318-19 22.5.5.1, Table 22.5.5.1(a): Vc = 0.17 λ √f'c bw d
120
+ *
121
+ * @param section - Shear section properties (fc_, bw, d, optional lambda)
122
+ * @returns Object containing `phiVc` (kN), `calculationDetails`, `unit`, and `warnings`
123
+ */
124
+ const concreteShearCapacity = (section) => {
125
+ const warnings = [];
126
+ const lambda = section.lambda ?? 1.0;
127
+ const sqrtFc = Math.sqrt(section.fc_);
128
+ if (sqrtFc > RCConstants.SQRT_FC_SHEAR_LIMIT) {
129
+ warnings.push({
130
+ reference: "ACI318-19, 22.5.3.1",
131
+ message: `sqrt(fc') (${MyMath.roundToDecimalPlaces(sqrtFc, 2)}) > ${RCConstants.SQRT_FC_SHEAR_LIMIT} MPa limit for Vc; capped at ${RCConstants.SQRT_FC_SHEAR_LIMIT} MPa unless minimum shear reinforcement per 9.6.3.3 is provided.`,
132
+ });
133
+ }
134
+ const cappedSqrtFc = Math.min(sqrtFc, RCConstants.SQRT_FC_SHEAR_LIMIT);
135
+ const Vc = RCConstants.CONCRETE_SHEAR_VC_COEFFICIENT * lambda * cappedSqrtFc * section.bw * section.d; // N
136
+ return {
137
+ phiVc: MyMath.roundToDecimalPlaces(RCConstants.SHEAR_STRENGTH_REDUCTION_FACTOR * Vc * 0.001, 2),
138
+ calculationDetails: {
139
+ Vc: MyMath.roundToDecimalPlaces(Vc * 0.001, 2),
140
+ lambda,
141
+ },
142
+ unit: "kN",
143
+ warnings,
144
+ };
145
+ };
146
+ exports.concreteShearCapacity = concreteShearCapacity;
147
+ /**
148
+ * Calculates the stirrup (shear reinforcement) contribution to shear capacity (φVs)
149
+ * of a beam section per ACI 318-19 22.5.10.5.3: Vs = Av fyt d / s
150
+ *
151
+ * @param section - Stirrup shear properties (fc_, bw, d, Av, fyt, s)
152
+ * @returns Object containing `phiVs` (kN), `calculationDetails`, `unit`, and `warnings`
153
+ * @throws {RCDesignError} If Vs exceeds the ACI 318-19 22.5.1.2 maximum (section too small)
154
+ */
155
+ const stirrupShearCapacity = (section) => {
156
+ const warnings = [];
157
+ const { fc_, bw, d, Av, fyt, s } = section;
158
+ const Vs = (Av * fyt * d) / s; // N
159
+ const maxVs = RCConstants.MAX_VS_COEFFICIENT * Math.sqrt(fc_) * bw * d; // N
160
+ if (Vs > maxVs) {
161
+ throw new rc_design_error_1.RCDesignError(rc_design_error_1.Errors.SHEAR_STRENGTH_EXCEEDS_MAX);
162
+ }
163
+ return {
164
+ phiVs: MyMath.roundToDecimalPlaces(RCConstants.SHEAR_STRENGTH_REDUCTION_FACTOR * Vs * 0.001, 2),
165
+ calculationDetails: {
166
+ Vs: MyMath.roundToDecimalPlaces(Vs * 0.001, 2),
167
+ maxVs: MyMath.roundToDecimalPlaces(maxVs * 0.001, 2),
168
+ },
169
+ unit: "kN",
170
+ warnings,
171
+ };
172
+ };
173
+ exports.stirrupShearCapacity = stirrupShearCapacity;
174
+ /**
175
+ * Checks whether shear reinforcement (stirrups) is required at a section, and if so,
176
+ * whether it may be at the code minimum or must be designed for strength, per
177
+ * ACI 318-19 9.6.3.1 (requirement thresholds), 9.6.3.3 (Av,min), and 9.7.6.2.2 (max spacing).
178
+ *
179
+ * If `Av` and `s` are supplied, the provided reinforcement is checked against the
180
+ * required Av/s ratio and maximum spacing, adding warnings on shortfalls.
181
+ *
182
+ * @param input - Section and demand properties (fc_, bw, d, Vu, fyt, optional Av, s, lambda)
183
+ * @returns Object containing requirement classification, required Av/s and max spacing, and warnings
184
+ * @throws {RCDesignError} If required Vs exceeds the ACI 318-19 22.5.1.2 maximum (section too small)
185
+ */
186
+ const checkStirrupRequirement = (input) => {
187
+ const warnings = [];
188
+ const { fc_, bw, d, Vu, fyt, Av, s } = input;
189
+ const { phiVc, calculationDetails } = (0, exports.concreteShearCapacity)({
190
+ fc_,
191
+ bw,
192
+ d,
193
+ lambda: input.lambda,
194
+ });
195
+ const Vc = calculationDetails.Vc; // kN
196
+ const halfPhiVc = 0.5 * phiVc;
197
+ let required = false;
198
+ let minimumOnly = false;
199
+ let requiredAvOverS = 0; // mm^2/mm
200
+ let maxSpacing = null;
201
+ if (Vu > halfPhiVc) {
202
+ required = true;
203
+ const sqrtFc = Math.sqrt(fc_);
204
+ const minAvOverS = Math.max((RCConstants.MIN_AV_SQRT_FC_COEFFICIENT * sqrtFc * bw) / fyt, (RCConstants.MIN_AV_ABSOLUTE_COEFFICIENT * bw) / fyt);
205
+ if (Vu <= phiVc) {
206
+ minimumOnly = true;
207
+ requiredAvOverS = minAvOverS;
208
+ maxSpacing =
209
+ RCConstants.MAX_STIRRUP_SPACING_LOW_VS_DEPTH_FACTOR * d <
210
+ RCConstants.MAX_STIRRUP_SPACING_LOW_VS
211
+ ? RCConstants.MAX_STIRRUP_SPACING_LOW_VS_DEPTH_FACTOR * d
212
+ : RCConstants.MAX_STIRRUP_SPACING_LOW_VS;
213
+ }
214
+ else {
215
+ const requiredVs = Vu / RCConstants.SHEAR_STRENGTH_REDUCTION_FACTOR - Vc; // kN
216
+ const maxVs = RCConstants.MAX_VS_COEFFICIENT * sqrtFc * bw * d * 0.001; // kN
217
+ if (requiredVs > maxVs) {
218
+ throw new rc_design_error_1.RCDesignError(rc_design_error_1.Errors.SHEAR_STRENGTH_EXCEEDS_MAX);
219
+ }
220
+ const strengthAvOverS = (requiredVs * 1000) / (fyt * d); // mm^2/mm
221
+ requiredAvOverS = Math.max(minAvOverS, strengthAvOverS);
222
+ const vsThreshold = RCConstants.VS_SPACING_THRESHOLD_COEFFICIENT * sqrtFc * bw * d * 0.001; // kN
223
+ maxSpacing =
224
+ requiredVs <= vsThreshold
225
+ ? Math.min(RCConstants.MAX_STIRRUP_SPACING_LOW_VS_DEPTH_FACTOR * d, RCConstants.MAX_STIRRUP_SPACING_LOW_VS)
226
+ : Math.min(RCConstants.MAX_STIRRUP_SPACING_HIGH_VS_DEPTH_FACTOR * d, RCConstants.MAX_STIRRUP_SPACING_HIGH_VS);
227
+ }
228
+ if (Av !== undefined && s !== undefined) {
229
+ const providedAvOverS = Av / s;
230
+ if (providedAvOverS < requiredAvOverS) {
231
+ warnings.push({
232
+ reference: "ACI318-19, 9.6.3.1",
233
+ message: `Provided Av/s (${MyMath.roundToDecimalPlaces(providedAvOverS, 4)} mm2/mm) < required Av/s (${MyMath.roundToDecimalPlaces(requiredAvOverS, 4)} mm2/mm).`,
234
+ });
235
+ }
236
+ if (maxSpacing !== null && s > maxSpacing) {
237
+ warnings.push({
238
+ reference: "ACI318-19, 9.7.6.2.2",
239
+ message: `Provided spacing s (${s} mm) > max allowed spacing (${MyMath.roundToDecimalPlaces(maxSpacing, 2)} mm).`,
240
+ });
241
+ }
242
+ }
243
+ }
244
+ return {
245
+ required,
246
+ minimumOnly,
247
+ calculationDetails: {
248
+ phiVc,
249
+ halfPhiVc: MyMath.roundToDecimalPlaces(halfPhiVc, 2),
250
+ requiredAvOverS: MyMath.roundToDecimalPlaces(requiredAvOverS, 4),
251
+ maxSpacing: maxSpacing === null ? null : MyMath.roundToDecimalPlaces(maxSpacing, 2),
252
+ },
253
+ unit: "kN",
254
+ warnings,
255
+ };
256
+ };
257
+ exports.checkStirrupRequirement = checkStirrupRequirement;
117
258
  const calculateRectSinglyMn = (singlySection) => {
118
259
  const { Es, fy, fc_, As, b, h, d } = singlySection;
119
260
  const warnings = [];
@@ -123,8 +264,7 @@ const calculateRectSinglyMn = (singlySection) => {
123
264
  const a = Ac / b;
124
265
  const c = a / beta1;
125
266
  const tensileSteelStrain = (RCConstants.CONCRETE_ULTIMATE_STRAIN * (d - c)) / c;
126
- if (tensileSteelStrain <
127
- steelYieldStrain + RCConstants.CONCRETE_ULTIMATE_STRAIN) {
267
+ if (tensileSteelStrain < steelYieldStrain + RCConstants.CONCRETE_ULTIMATE_STRAIN) {
128
268
  throw new rc_design_error_1.RCDesignError(rc_design_error_1.Errors.TENSILE_STEEL_NOT_YIELDING);
129
269
  }
130
270
  const y_ = a / 2;
@@ -151,8 +291,7 @@ const calculateRectDoublyMn = (doublySection) => {
151
291
  const a = c * beta1;
152
292
  const tensileSteelStrain = (RCConstants.CONCRETE_ULTIMATE_STRAIN * (d - c)) / c;
153
293
  const compressionSteelStrain = (RCConstants.CONCRETE_ULTIMATE_STRAIN * (c - d_)) / c;
154
- if (tensileSteelStrain <
155
- steelYieldStrain + RCConstants.CONCRETE_ULTIMATE_STRAIN) {
294
+ if (tensileSteelStrain < steelYieldStrain + RCConstants.CONCRETE_ULTIMATE_STRAIN) {
156
295
  throw new rc_design_error_1.RCDesignError(rc_design_error_1.Errors.TENSILE_STEEL_NOT_YIELDING);
157
296
  }
158
297
  if (d_ > c) {
@@ -1 +1 @@
1
- {"version":3,"file":"rc-beam-design.js","sourceRoot":"","sources":["../../src/rc/rc-beam-design.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rc-beam-design.js","sourceRoot":"","sources":["../../src/rc/rc-beam-design.ts"],"names":[],"mappings":"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"}
@@ -1 +1,2 @@
1
1
  export { calculateSteelJacketedBeamMomentCapacity } from "./rc-beam-steel-plate-jacketing";
2
+ export { plateInterfaceShearFlow, boltShearCapacity, plateInterfaceBoltRequirement, } from "./rc-beam-plate-interface-bolts";
@@ -1,6 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.calculateSteelJacketedBeamMomentCapacity = void 0;
3
+ exports.plateInterfaceBoltRequirement = exports.boltShearCapacity = exports.plateInterfaceShearFlow = exports.calculateSteelJacketedBeamMomentCapacity = void 0;
4
4
  var rc_beam_steel_plate_jacketing_1 = require("./rc-beam-steel-plate-jacketing");
5
5
  Object.defineProperty(exports, "calculateSteelJacketedBeamMomentCapacity", { enumerable: true, get: function () { return rc_beam_steel_plate_jacketing_1.calculateSteelJacketedBeamMomentCapacity; } });
6
+ var rc_beam_plate_interface_bolts_1 = require("./rc-beam-plate-interface-bolts");
7
+ Object.defineProperty(exports, "plateInterfaceShearFlow", { enumerable: true, get: function () { return rc_beam_plate_interface_bolts_1.plateInterfaceShearFlow; } });
8
+ Object.defineProperty(exports, "boltShearCapacity", { enumerable: true, get: function () { return rc_beam_plate_interface_bolts_1.boltShearCapacity; } });
9
+ Object.defineProperty(exports, "plateInterfaceBoltRequirement", { enumerable: true, get: function () { return rc_beam_plate_interface_bolts_1.plateInterfaceBoltRequirement; } });
6
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/strengthening/index.ts"],"names":[],"mappings":";;;AAAA,iFAA2F;AAAlF,yJAAA,wCAAwC,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/strengthening/index.ts"],"names":[],"mappings":";;;AAAA,iFAA2F;AAAlF,yJAAA,wCAAwC,OAAA;AACjD,iFAIyC;AAHvC,wIAAA,uBAAuB,OAAA;AACvB,kIAAA,iBAAiB,OAAA;AACjB,8IAAA,6BAA6B,OAAA"}
@@ -0,0 +1,134 @@
1
+ import { SectionState, BoltProps, PlateShearFlowInput, PlateInterfaceBoltInput } from "../core/types/plate-jacketing.type";
2
+ import { Warnings } from "../core/types/output-message.type";
3
+ /**
4
+ * Calculates the horizontal shear flow that must be transferred across each
5
+ * concrete-to-plate interface of a steel plate jacketed beam, q = V·Q/I, using an
6
+ * elastic transformed section.
7
+ *
8
+ * `Q` at an interface is the first moment of the area beyond that cut — the plate
9
+ * itself — while `ybar` and `Itr` come from one solve that includes every plate
10
+ * present, so adding a top plate also changes the bottom interface shear flow.
11
+ *
12
+ * @param input - Section, plate properties, factored shear V (kN), and section state
13
+ * @returns Object containing per-interface `top`/`bottom` shear flow (`null` when the
14
+ * plate is absent), `calculationDetails`, `unit`, and `warnings`
15
+ * @throws {RCDesignError} If V is not positive or no plate is present (201), the
16
+ * geometry is inconsistent (203), or no cracked neutral axis exists (204)
17
+ */
18
+ export declare const plateInterfaceShearFlow: (input: PlateShearFlowInput) => {
19
+ top: {
20
+ q: number;
21
+ Q: number;
22
+ leverArm: number;
23
+ } | null;
24
+ bottom: {
25
+ q: number;
26
+ Q: number;
27
+ leverArm: number;
28
+ } | null;
29
+ calculationDetails: {
30
+ Ec: number;
31
+ ns: number;
32
+ np: number;
33
+ ybar: number;
34
+ Itr: number;
35
+ sectionState: SectionState;
36
+ };
37
+ unit: string;
38
+ warnings: Warnings;
39
+ };
40
+ /**
41
+ * Calculates the design shear strength of a single anchor bolt from the steel
42
+ * strength per ACI 318-19 17.7.1.2b, Vsa = 0.6 Ase,V futa, with φ = 0.65 from
43
+ * Table 17.5.3 and the futa cap of 17.6.1.2.
44
+ *
45
+ * Concrete breakout (17.7.2) and pryout (17.7.3) depend on edge distances, anchor
46
+ * spacing and embedment depth, and are NOT evaluated here — a warning always says so.
47
+ * Supply `phiVboltOverride` to use a manufacturer or ESR value instead.
48
+ *
49
+ * @param bolt - Anchor properties (Ase, futa, optional fya, diameter, shearPlanes, override)
50
+ * @returns Object containing `phiVbolt` (kN), `calculationDetails`, `unit`, and `warnings`
51
+ * @throws {RCDesignError} If the resolved capacity is not positive (202)
52
+ */
53
+ export declare const boltShearCapacity: (bolt: BoltProps) => {
54
+ phiVbolt: number;
55
+ calculationDetails: {
56
+ source: string;
57
+ shearPlanes: number;
58
+ Vsa?: undefined;
59
+ futaEffective?: undefined;
60
+ };
61
+ unit: string;
62
+ warnings: Warnings;
63
+ } | {
64
+ phiVbolt: number;
65
+ calculationDetails: {
66
+ source: string;
67
+ Vsa: number;
68
+ futaEffective: number;
69
+ shearPlanes: number;
70
+ };
71
+ unit: string;
72
+ warnings: Warnings;
73
+ };
74
+ /**
75
+ * Determines the bolts required to transfer horizontal shear across each
76
+ * concrete-to-plate interface of a steel plate jacketed beam.
77
+ *
78
+ * For each plate present, the required bolt pitch follows from the interface shear
79
+ * flow (s = n·φVbolt / q) and the bolt count is taken as the larger of that pitch
80
+ * over the transfer length and the count needed to develop the full plate yield
81
+ * force (Ap·fy / φVbolt). `governedBy` reports which one controls.
82
+ *
83
+ * @param input - Section, plates, V (kN), bolt properties, bolts per row, and transfer length (mm)
84
+ * @returns Object containing per-interface `top`/`bottom` results (`null` when the plate
85
+ * is absent), `calculationDetails`, `unit`, and `warnings`
86
+ * @throws {RCDesignError} If V is not positive or no plate is present (201), the bolt
87
+ * capacity is invalid (202), the geometry is inconsistent (203), or no cracked
88
+ * neutral axis exists (204)
89
+ */
90
+ export declare const plateInterfaceBoltRequirement: (input: PlateInterfaceBoltInput) => {
91
+ top: {
92
+ q: number;
93
+ Q: number;
94
+ leverArm: number;
95
+ requiredSpacing: number;
96
+ boltCount: number;
97
+ governedBy: string;
98
+ calculationDetails: {
99
+ spacingFromShearFlow: number;
100
+ rows: number;
101
+ boltCountFromShearFlow: number;
102
+ boltCountFromPlateForce: number;
103
+ plateForce: number;
104
+ };
105
+ } | null;
106
+ bottom: {
107
+ q: number;
108
+ Q: number;
109
+ leverArm: number;
110
+ requiredSpacing: number;
111
+ boltCount: number;
112
+ governedBy: string;
113
+ calculationDetails: {
114
+ spacingFromShearFlow: number;
115
+ rows: number;
116
+ boltCountFromShearFlow: number;
117
+ boltCountFromPlateForce: number;
118
+ plateForce: number;
119
+ };
120
+ } | null;
121
+ calculationDetails: {
122
+ phiVbolt: number;
123
+ boltsPerRow: number;
124
+ transferLength: number;
125
+ Ec: number;
126
+ ns: number;
127
+ np: number;
128
+ ybar: number;
129
+ Itr: number;
130
+ sectionState: SectionState;
131
+ };
132
+ unit: string;
133
+ warnings: Warnings;
134
+ };