uom-types 3.1.0 → 4.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.
package/dist/index.d.cts CHANGED
@@ -1,17 +1,4530 @@
1
- import { E as Exponent, P as Pow, R as Root } from './_units.cjs';
2
- export { A as AbstractUnit, a as AbstractUnitFrom, p as Divide, D as DivideExponents, q as DivideUnitSubvalues, I as Inverse, r as InverseUnitSubvalues, s as Multiply, M as MultiplyExponents, t as MultiplyUnitSubvalues, m as NegExponent, N as NegateExponent, l as NegativeExponent, n as PosExponent, u as PowUnitSubvalues, v as RootUnitSubvalues, S as SubExponents, o as SumExponents, U as Unit, b as UnitClass, c as UnitConversionRate, d as UnitConversionRateFrom, e as UnitFrom, f as UnitMeta, g as UnitSubvalues, h as UnknownAbstractUnit, i as UnknownUnit, j as UnknownUnitClass, k as UnknownUnitMeta } from './_units.cjs';
1
+ // Generated by dts-bundle-generator v9.2.1
3
2
 
4
3
  /**
5
- * Multiple the exponent values of a unit by a number.
4
+ * @file Autogenerated File - Don't manually edit.
5
+ */
6
+ /**
7
+ * All the supported positive exponent values.
8
+ *
9
+ * @group Unit Components
10
+ */
11
+ export type PosExponent = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
12
+ /**
13
+ * All the supported negative exponent values.
14
+ *
15
+ * @group Unit Components
16
+ */
17
+ export type NegExponent = -1 | -2 | -3 | -4 | -5 | -6 | -7 | -8 | -9 | -10 | -11 | -12;
18
+ /**
19
+ * All the supported exponent values.
20
+ *
21
+ * @group Unit Components
22
+ */
23
+ export type Exponent = 0 | PosExponent | NegExponent;
24
+ /**
25
+ * @group Exponent Functions
26
+ */
27
+ export type NegateExponent<T extends Exponent> = MultiplyExponents<T, -1>;
28
+ /**
29
+ * @group Exponent Functions
30
+ */
31
+ export type SumExponents<A extends Exponent, B extends Exponent> = A extends 0 ? B extends 0 ? 0 : B extends 1 ? 1 : B extends -1 ? -1 : B extends 2 ? 2 : B extends -2 ? -2 : B extends 3 ? 3 : B extends -3 ? -3 : B extends 4 ? 4 : B extends -4 ? -4 : B extends 5 ? 5 : B extends -5 ? -5 : B extends 6 ? 6 : B extends -6 ? -6 : B extends 7 ? 7 : B extends -7 ? -7 : B extends 8 ? 8 : B extends -8 ? -8 : B extends 9 ? 9 : B extends -9 ? -9 : B extends 10 ? 10 : B extends -10 ? -10 : B extends 11 ? 11 : B extends -11 ? -11 : B extends 12 ? 12 : B extends -12 ? -12 : never : A extends 1 ? B extends 0 ? 1 : B extends 1 ? 2 : B extends -1 ? 0 : B extends 2 ? 3 : B extends -2 ? -1 : B extends 3 ? 4 : B extends -3 ? -2 : B extends 4 ? 5 : B extends -4 ? -3 : B extends 5 ? 6 : B extends -5 ? -4 : B extends 6 ? 7 : B extends -6 ? -5 : B extends 7 ? 8 : B extends -7 ? -6 : B extends 8 ? 9 : B extends -8 ? -7 : B extends 9 ? 10 : B extends -9 ? -8 : B extends 10 ? 11 : B extends -10 ? -9 : B extends 11 ? 12 : B extends -11 ? -10 : B extends -12 ? -11 : never : A extends -1 ? B extends 0 ? -1 : B extends 1 ? 0 : B extends -1 ? -2 : B extends 2 ? 1 : B extends -2 ? -3 : B extends 3 ? 2 : B extends -3 ? -4 : B extends 4 ? 3 : B extends -4 ? -5 : B extends 5 ? 4 : B extends -5 ? -6 : B extends 6 ? 5 : B extends -6 ? -7 : B extends 7 ? 6 : B extends -7 ? -8 : B extends 8 ? 7 : B extends -8 ? -9 : B extends 9 ? 8 : B extends -9 ? -10 : B extends 10 ? 9 : B extends -10 ? -11 : B extends 11 ? 10 : B extends -11 ? -12 : B extends 12 ? 11 : never : A extends 2 ? B extends 0 ? 2 : B extends 1 ? 3 : B extends -1 ? 1 : B extends 2 ? 4 : B extends -2 ? 0 : B extends 3 ? 5 : B extends -3 ? -1 : B extends 4 ? 6 : B extends -4 ? -2 : B extends 5 ? 7 : B extends -5 ? -3 : B extends 6 ? 8 : B extends -6 ? -4 : B extends 7 ? 9 : B extends -7 ? -5 : B extends 8 ? 10 : B extends -8 ? -6 : B extends 9 ? 11 : B extends -9 ? -7 : B extends 10 ? 12 : B extends -10 ? -8 : B extends -11 ? -9 : B extends -12 ? -10 : never : A extends -2 ? B extends 0 ? -2 : B extends 1 ? -1 : B extends -1 ? -3 : B extends 2 ? 0 : B extends -2 ? -4 : B extends 3 ? 1 : B extends -3 ? -5 : B extends 4 ? 2 : B extends -4 ? -6 : B extends 5 ? 3 : B extends -5 ? -7 : B extends 6 ? 4 : B extends -6 ? -8 : B extends 7 ? 5 : B extends -7 ? -9 : B extends 8 ? 6 : B extends -8 ? -10 : B extends 9 ? 7 : B extends -9 ? -11 : B extends 10 ? 8 : B extends -10 ? -12 : B extends 11 ? 9 : B extends 12 ? 10 : never : A extends 3 ? B extends 0 ? 3 : B extends 1 ? 4 : B extends -1 ? 2 : B extends 2 ? 5 : B extends -2 ? 1 : B extends 3 ? 6 : B extends -3 ? 0 : B extends 4 ? 7 : B extends -4 ? -1 : B extends 5 ? 8 : B extends -5 ? -2 : B extends 6 ? 9 : B extends -6 ? -3 : B extends 7 ? 10 : B extends -7 ? -4 : B extends 8 ? 11 : B extends -8 ? -5 : B extends 9 ? 12 : B extends -9 ? -6 : B extends -10 ? -7 : B extends -11 ? -8 : B extends -12 ? -9 : never : A extends -3 ? B extends 0 ? -3 : B extends 1 ? -2 : B extends -1 ? -4 : B extends 2 ? -1 : B extends -2 ? -5 : B extends 3 ? 0 : B extends -3 ? -6 : B extends 4 ? 1 : B extends -4 ? -7 : B extends 5 ? 2 : B extends -5 ? -8 : B extends 6 ? 3 : B extends -6 ? -9 : B extends 7 ? 4 : B extends -7 ? -10 : B extends 8 ? 5 : B extends -8 ? -11 : B extends 9 ? 6 : B extends -9 ? -12 : B extends 10 ? 7 : B extends 11 ? 8 : B extends 12 ? 9 : never : A extends 4 ? B extends 0 ? 4 : B extends 1 ? 5 : B extends -1 ? 3 : B extends 2 ? 6 : B extends -2 ? 2 : B extends 3 ? 7 : B extends -3 ? 1 : B extends 4 ? 8 : B extends -4 ? 0 : B extends 5 ? 9 : B extends -5 ? -1 : B extends 6 ? 10 : B extends -6 ? -2 : B extends 7 ? 11 : B extends -7 ? -3 : B extends 8 ? 12 : B extends -8 ? -4 : B extends -9 ? -5 : B extends -10 ? -6 : B extends -11 ? -7 : B extends -12 ? -8 : never : A extends -4 ? B extends 0 ? -4 : B extends 1 ? -3 : B extends -1 ? -5 : B extends 2 ? -2 : B extends -2 ? -6 : B extends 3 ? -1 : B extends -3 ? -7 : B extends 4 ? 0 : B extends -4 ? -8 : B extends 5 ? 1 : B extends -5 ? -9 : B extends 6 ? 2 : B extends -6 ? -10 : B extends 7 ? 3 : B extends -7 ? -11 : B extends 8 ? 4 : B extends -8 ? -12 : B extends 9 ? 5 : B extends 10 ? 6 : B extends 11 ? 7 : B extends 12 ? 8 : never : A extends 5 ? B extends 0 ? 5 : B extends 1 ? 6 : B extends -1 ? 4 : B extends 2 ? 7 : B extends -2 ? 3 : B extends 3 ? 8 : B extends -3 ? 2 : B extends 4 ? 9 : B extends -4 ? 1 : B extends 5 ? 10 : B extends -5 ? 0 : B extends 6 ? 11 : B extends -6 ? -1 : B extends 7 ? 12 : B extends -7 ? -2 : B extends -8 ? -3 : B extends -9 ? -4 : B extends -10 ? -5 : B extends -11 ? -6 : B extends -12 ? -7 : never : A extends -5 ? B extends 0 ? -5 : B extends 1 ? -4 : B extends -1 ? -6 : B extends 2 ? -3 : B extends -2 ? -7 : B extends 3 ? -2 : B extends -3 ? -8 : B extends 4 ? -1 : B extends -4 ? -9 : B extends 5 ? 0 : B extends -5 ? -10 : B extends 6 ? 1 : B extends -6 ? -11 : B extends 7 ? 2 : B extends -7 ? -12 : B extends 8 ? 3 : B extends 9 ? 4 : B extends 10 ? 5 : B extends 11 ? 6 : B extends 12 ? 7 : never : A extends 6 ? B extends 0 ? 6 : B extends 1 ? 7 : B extends -1 ? 5 : B extends 2 ? 8 : B extends -2 ? 4 : B extends 3 ? 9 : B extends -3 ? 3 : B extends 4 ? 10 : B extends -4 ? 2 : B extends 5 ? 11 : B extends -5 ? 1 : B extends 6 ? 12 : B extends -6 ? 0 : B extends -7 ? -1 : B extends -8 ? -2 : B extends -9 ? -3 : B extends -10 ? -4 : B extends -11 ? -5 : B extends -12 ? -6 : never : A extends -6 ? B extends 0 ? -6 : B extends 1 ? -5 : B extends -1 ? -7 : B extends 2 ? -4 : B extends -2 ? -8 : B extends 3 ? -3 : B extends -3 ? -9 : B extends 4 ? -2 : B extends -4 ? -10 : B extends 5 ? -1 : B extends -5 ? -11 : B extends 6 ? 0 : B extends -6 ? -12 : B extends 7 ? 1 : B extends 8 ? 2 : B extends 9 ? 3 : B extends 10 ? 4 : B extends 11 ? 5 : B extends 12 ? 6 : never : A extends 7 ? B extends 0 ? 7 : B extends 1 ? 8 : B extends -1 ? 6 : B extends 2 ? 9 : B extends -2 ? 5 : B extends 3 ? 10 : B extends -3 ? 4 : B extends 4 ? 11 : B extends -4 ? 3 : B extends 5 ? 12 : B extends -5 ? 2 : B extends -6 ? 1 : B extends -7 ? 0 : B extends -8 ? -1 : B extends -9 ? -2 : B extends -10 ? -3 : B extends -11 ? -4 : B extends -12 ? -5 : never : A extends -7 ? B extends 0 ? -7 : B extends 1 ? -6 : B extends -1 ? -8 : B extends 2 ? -5 : B extends -2 ? -9 : B extends 3 ? -4 : B extends -3 ? -10 : B extends 4 ? -3 : B extends -4 ? -11 : B extends 5 ? -2 : B extends -5 ? -12 : B extends 6 ? -1 : B extends 7 ? 0 : B extends 8 ? 1 : B extends 9 ? 2 : B extends 10 ? 3 : B extends 11 ? 4 : B extends 12 ? 5 : never : A extends 8 ? B extends 0 ? 8 : B extends 1 ? 9 : B extends -1 ? 7 : B extends 2 ? 10 : B extends -2 ? 6 : B extends 3 ? 11 : B extends -3 ? 5 : B extends 4 ? 12 : B extends -4 ? 4 : B extends -5 ? 3 : B extends -6 ? 2 : B extends -7 ? 1 : B extends -8 ? 0 : B extends -9 ? -1 : B extends -10 ? -2 : B extends -11 ? -3 : B extends -12 ? -4 : never : A extends -8 ? B extends 0 ? -8 : B extends 1 ? -7 : B extends -1 ? -9 : B extends 2 ? -6 : B extends -2 ? -10 : B extends 3 ? -5 : B extends -3 ? -11 : B extends 4 ? -4 : B extends -4 ? -12 : B extends 5 ? -3 : B extends 6 ? -2 : B extends 7 ? -1 : B extends 8 ? 0 : B extends 9 ? 1 : B extends 10 ? 2 : B extends 11 ? 3 : B extends 12 ? 4 : never : A extends 9 ? B extends 0 ? 9 : B extends 1 ? 10 : B extends -1 ? 8 : B extends 2 ? 11 : B extends -2 ? 7 : B extends 3 ? 12 : B extends -3 ? 6 : B extends -4 ? 5 : B extends -5 ? 4 : B extends -6 ? 3 : B extends -7 ? 2 : B extends -8 ? 1 : B extends -9 ? 0 : B extends -10 ? -1 : B extends -11 ? -2 : B extends -12 ? -3 : never : A extends -9 ? B extends 0 ? -9 : B extends 1 ? -8 : B extends -1 ? -10 : B extends 2 ? -7 : B extends -2 ? -11 : B extends 3 ? -6 : B extends -3 ? -12 : B extends 4 ? -5 : B extends 5 ? -4 : B extends 6 ? -3 : B extends 7 ? -2 : B extends 8 ? -1 : B extends 9 ? 0 : B extends 10 ? 1 : B extends 11 ? 2 : B extends 12 ? 3 : never : A extends 10 ? B extends 0 ? 10 : B extends 1 ? 11 : B extends -1 ? 9 : B extends 2 ? 12 : B extends -2 ? 8 : B extends -3 ? 7 : B extends -4 ? 6 : B extends -5 ? 5 : B extends -6 ? 4 : B extends -7 ? 3 : B extends -8 ? 2 : B extends -9 ? 1 : B extends -10 ? 0 : B extends -11 ? -1 : B extends -12 ? -2 : never : A extends -10 ? B extends 0 ? -10 : B extends 1 ? -9 : B extends -1 ? -11 : B extends 2 ? -8 : B extends -2 ? -12 : B extends 3 ? -7 : B extends 4 ? -6 : B extends 5 ? -5 : B extends 6 ? -4 : B extends 7 ? -3 : B extends 8 ? -2 : B extends 9 ? -1 : B extends 10 ? 0 : B extends 11 ? 1 : B extends 12 ? 2 : never : A extends 11 ? B extends 0 ? 11 : B extends 1 ? 12 : B extends -1 ? 10 : B extends -2 ? 9 : B extends -3 ? 8 : B extends -4 ? 7 : B extends -5 ? 6 : B extends -6 ? 5 : B extends -7 ? 4 : B extends -8 ? 3 : B extends -9 ? 2 : B extends -10 ? 1 : B extends -11 ? 0 : B extends -12 ? -1 : never : A extends -11 ? B extends 0 ? -11 : B extends 1 ? -10 : B extends -1 ? -12 : B extends 2 ? -9 : B extends 3 ? -8 : B extends 4 ? -7 : B extends 5 ? -6 : B extends 6 ? -5 : B extends 7 ? -4 : B extends 8 ? -3 : B extends 9 ? -2 : B extends 10 ? -1 : B extends 11 ? 0 : B extends 12 ? 1 : never : A extends 12 ? B extends 0 ? 12 : B extends -1 ? 11 : B extends -2 ? 10 : B extends -3 ? 9 : B extends -4 ? 8 : B extends -5 ? 7 : B extends -6 ? 6 : B extends -7 ? 5 : B extends -8 ? 4 : B extends -9 ? 3 : B extends -10 ? 2 : B extends -11 ? 1 : B extends -12 ? 0 : never : A extends -12 ? B extends 0 ? -12 : B extends 1 ? -11 : B extends 2 ? -10 : B extends 3 ? -9 : B extends 4 ? -8 : B extends 5 ? -7 : B extends 6 ? -6 : B extends 7 ? -5 : B extends 8 ? -4 : B extends 9 ? -3 : B extends 10 ? -2 : B extends 11 ? -1 : B extends 12 ? 0 : never : never;
32
+ /**
33
+ * @group Exponent Functions
34
+ */
35
+ export type SubExponents<A extends Exponent, B extends Exponent> = SumExponents<A, NegateExponent<B>>;
36
+ /**
37
+ * @group Exponent Functions
38
+ */
39
+ export type MultiplyExponents<A extends Exponent, B extends Exponent> = A extends 0 ? B extends 0 ? 0 : B extends 1 ? 0 : B extends -1 ? 0 : B extends 2 ? 0 : B extends -2 ? 0 : B extends 3 ? 0 : B extends -3 ? 0 : B extends 4 ? 0 : B extends -4 ? 0 : B extends 5 ? 0 : B extends -5 ? 0 : B extends 6 ? 0 : B extends -6 ? 0 : B extends 7 ? 0 : B extends -7 ? 0 : B extends 8 ? 0 : B extends -8 ? 0 : B extends 9 ? 0 : B extends -9 ? 0 : B extends 10 ? 0 : B extends -10 ? 0 : B extends 11 ? 0 : B extends -11 ? 0 : B extends 12 ? 0 : B extends -12 ? 0 : never : A extends 1 ? B extends 0 ? 0 : B extends 1 ? 1 : B extends -1 ? -1 : B extends 2 ? 2 : B extends -2 ? -2 : B extends 3 ? 3 : B extends -3 ? -3 : B extends 4 ? 4 : B extends -4 ? -4 : B extends 5 ? 5 : B extends -5 ? -5 : B extends 6 ? 6 : B extends -6 ? -6 : B extends 7 ? 7 : B extends -7 ? -7 : B extends 8 ? 8 : B extends -8 ? -8 : B extends 9 ? 9 : B extends -9 ? -9 : B extends 10 ? 10 : B extends -10 ? -10 : B extends 11 ? 11 : B extends -11 ? -11 : B extends 12 ? 12 : B extends -12 ? -12 : never : A extends -1 ? B extends 0 ? 0 : B extends 1 ? -1 : B extends -1 ? 1 : B extends 2 ? -2 : B extends -2 ? 2 : B extends 3 ? -3 : B extends -3 ? 3 : B extends 4 ? -4 : B extends -4 ? 4 : B extends 5 ? -5 : B extends -5 ? 5 : B extends 6 ? -6 : B extends -6 ? 6 : B extends 7 ? -7 : B extends -7 ? 7 : B extends 8 ? -8 : B extends -8 ? 8 : B extends 9 ? -9 : B extends -9 ? 9 : B extends 10 ? -10 : B extends -10 ? 10 : B extends 11 ? -11 : B extends -11 ? 11 : B extends 12 ? -12 : B extends -12 ? 12 : never : A extends 2 ? B extends 0 ? 0 : B extends 1 ? 2 : B extends -1 ? -2 : B extends 2 ? 4 : B extends -2 ? -4 : B extends 3 ? 6 : B extends -3 ? -6 : B extends 4 ? 8 : B extends -4 ? -8 : B extends 5 ? 10 : B extends -5 ? -10 : B extends 6 ? 12 : B extends -6 ? -12 : never : A extends -2 ? B extends 0 ? 0 : B extends 1 ? -2 : B extends -1 ? 2 : B extends 2 ? -4 : B extends -2 ? 4 : B extends 3 ? -6 : B extends -3 ? 6 : B extends 4 ? -8 : B extends -4 ? 8 : B extends 5 ? -10 : B extends -5 ? 10 : B extends 6 ? -12 : B extends -6 ? 12 : never : A extends 3 ? B extends 0 ? 0 : B extends 1 ? 3 : B extends -1 ? -3 : B extends 2 ? 6 : B extends -2 ? -6 : B extends 3 ? 9 : B extends -3 ? -9 : B extends 4 ? 12 : B extends -4 ? -12 : never : A extends -3 ? B extends 0 ? 0 : B extends 1 ? -3 : B extends -1 ? 3 : B extends 2 ? -6 : B extends -2 ? 6 : B extends 3 ? -9 : B extends -3 ? 9 : B extends 4 ? -12 : B extends -4 ? 12 : never : A extends 4 ? B extends 0 ? 0 : B extends 1 ? 4 : B extends -1 ? -4 : B extends 2 ? 8 : B extends -2 ? -8 : B extends 3 ? 12 : B extends -3 ? -12 : never : A extends -4 ? B extends 0 ? 0 : B extends 1 ? -4 : B extends -1 ? 4 : B extends 2 ? -8 : B extends -2 ? 8 : B extends 3 ? -12 : B extends -3 ? 12 : never : A extends 5 ? B extends 0 ? 0 : B extends 1 ? 5 : B extends -1 ? -5 : B extends 2 ? 10 : B extends -2 ? -10 : never : A extends -5 ? B extends 0 ? 0 : B extends 1 ? -5 : B extends -1 ? 5 : B extends 2 ? -10 : B extends -2 ? 10 : never : A extends 6 ? B extends 0 ? 0 : B extends 1 ? 6 : B extends -1 ? -6 : B extends 2 ? 12 : B extends -2 ? -12 : never : A extends -6 ? B extends 0 ? 0 : B extends 1 ? -6 : B extends -1 ? 6 : B extends 2 ? -12 : B extends -2 ? 12 : never : A extends 7 ? B extends 0 ? 0 : B extends 1 ? 7 : B extends -1 ? -7 : never : A extends -7 ? B extends 0 ? 0 : B extends 1 ? -7 : B extends -1 ? 7 : never : A extends 8 ? B extends 0 ? 0 : B extends 1 ? 8 : B extends -1 ? -8 : never : A extends -8 ? B extends 0 ? 0 : B extends 1 ? -8 : B extends -1 ? 8 : never : A extends 9 ? B extends 0 ? 0 : B extends 1 ? 9 : B extends -1 ? -9 : never : A extends -9 ? B extends 0 ? 0 : B extends 1 ? -9 : B extends -1 ? 9 : never : A extends 10 ? B extends 0 ? 0 : B extends 1 ? 10 : B extends -1 ? -10 : never : A extends -10 ? B extends 0 ? 0 : B extends 1 ? -10 : B extends -1 ? 10 : never : A extends 11 ? B extends 0 ? 0 : B extends 1 ? 11 : B extends -1 ? -11 : never : A extends -11 ? B extends 0 ? 0 : B extends 1 ? -11 : B extends -1 ? 11 : never : A extends 12 ? B extends 0 ? 0 : B extends 1 ? 12 : B extends -1 ? -12 : never : A extends -12 ? B extends 0 ? 0 : B extends 1 ? -12 : B extends -1 ? 12 : never : never;
40
+ /**
41
+ * @group Exponent Functions
42
+ */
43
+ export type DivideExponents<A extends Exponent, B extends Exponent> = B extends 0 ? never : B extends 1 ? A extends 0 ? 0 : A extends 1 ? 1 : A extends -1 ? -1 : A extends 2 ? 2 : A extends -2 ? -2 : A extends 3 ? 3 : A extends -3 ? -3 : A extends 4 ? 4 : A extends -4 ? -4 : A extends 5 ? 5 : A extends -5 ? -5 : A extends 6 ? 6 : A extends -6 ? -6 : A extends 7 ? 7 : A extends -7 ? -7 : A extends 8 ? 8 : A extends -8 ? -8 : A extends 9 ? 9 : A extends -9 ? -9 : A extends 10 ? 10 : A extends -10 ? -10 : A extends 11 ? 11 : A extends -11 ? -11 : A extends 12 ? 12 : A extends -12 ? -12 : never : B extends -1 ? A extends 0 ? 0 : A extends 1 ? -1 : A extends -1 ? 1 : A extends 2 ? -2 : A extends -2 ? 2 : A extends 3 ? -3 : A extends -3 ? 3 : A extends 4 ? -4 : A extends -4 ? 4 : A extends 5 ? -5 : A extends -5 ? 5 : A extends 6 ? -6 : A extends -6 ? 6 : A extends 7 ? -7 : A extends -7 ? 7 : A extends 8 ? -8 : A extends -8 ? 8 : A extends 9 ? -9 : A extends -9 ? 9 : A extends 10 ? -10 : A extends -10 ? 10 : A extends 11 ? -11 : A extends -11 ? 11 : A extends 12 ? -12 : A extends -12 ? 12 : never : B extends 2 ? A extends 0 ? 0 : A extends 2 ? 1 : A extends -2 ? -1 : A extends 4 ? 2 : A extends -4 ? -2 : A extends 6 ? 3 : A extends -6 ? -3 : A extends 8 ? 4 : A extends -8 ? -4 : A extends 10 ? 5 : A extends -10 ? -5 : A extends 12 ? 6 : A extends -12 ? -6 : never : B extends -2 ? A extends 0 ? 0 : A extends 2 ? -1 : A extends -2 ? 1 : A extends 4 ? -2 : A extends -4 ? 2 : A extends 6 ? -3 : A extends -6 ? 3 : A extends 8 ? -4 : A extends -8 ? 4 : A extends 10 ? -5 : A extends -10 ? 5 : A extends 12 ? -6 : A extends -12 ? 6 : never : B extends 3 ? A extends 0 ? 0 : A extends 3 ? 1 : A extends -3 ? -1 : A extends 6 ? 2 : A extends -6 ? -2 : A extends 9 ? 3 : A extends -9 ? -3 : A extends 12 ? 4 : A extends -12 ? -4 : never : B extends -3 ? A extends 0 ? 0 : A extends 3 ? -1 : A extends -3 ? 1 : A extends 6 ? -2 : A extends -6 ? 2 : A extends 9 ? -3 : A extends -9 ? 3 : A extends 12 ? -4 : A extends -12 ? 4 : never : B extends 4 ? A extends 0 ? 0 : A extends 4 ? 1 : A extends -4 ? -1 : A extends 8 ? 2 : A extends -8 ? -2 : A extends 12 ? 3 : A extends -12 ? -3 : never : B extends -4 ? A extends 0 ? 0 : A extends 4 ? -1 : A extends -4 ? 1 : A extends 8 ? -2 : A extends -8 ? 2 : A extends 12 ? -3 : A extends -12 ? 3 : never : B extends 5 ? A extends 0 ? 0 : A extends 5 ? 1 : A extends -5 ? -1 : A extends 10 ? 2 : A extends -10 ? -2 : never : B extends -5 ? A extends 0 ? 0 : A extends 5 ? -1 : A extends -5 ? 1 : A extends 10 ? -2 : A extends -10 ? 2 : never : B extends 6 ? A extends 0 ? 0 : A extends 6 ? 1 : A extends -6 ? -1 : A extends 12 ? 2 : A extends -12 ? -2 : never : B extends -6 ? A extends 0 ? 0 : A extends 6 ? -1 : A extends -6 ? 1 : A extends 12 ? -2 : A extends -12 ? 2 : never : B extends 7 ? A extends 0 ? 0 : A extends 7 ? 1 : A extends -7 ? -1 : never : B extends -7 ? A extends 0 ? 0 : A extends 7 ? -1 : A extends -7 ? 1 : never : B extends 8 ? A extends 0 ? 0 : A extends 8 ? 1 : A extends -8 ? -1 : never : B extends -8 ? A extends 0 ? 0 : A extends 8 ? -1 : A extends -8 ? 1 : never : B extends 9 ? A extends 0 ? 0 : A extends 9 ? 1 : A extends -9 ? -1 : never : B extends -9 ? A extends 0 ? 0 : A extends 9 ? -1 : A extends -9 ? 1 : never : B extends 10 ? A extends 0 ? 0 : A extends 10 ? 1 : A extends -10 ? -1 : never : B extends -10 ? A extends 0 ? 0 : A extends 10 ? -1 : A extends -10 ? 1 : never : B extends 11 ? A extends 0 ? 0 : A extends 11 ? 1 : A extends -11 ? -1 : never : B extends -11 ? A extends 0 ? 0 : A extends 11 ? -1 : A extends -11 ? 1 : never : B extends 12 ? A extends 0 ? 0 : A extends 12 ? 1 : A extends -12 ? -1 : never : B extends -12 ? A extends 0 ? 0 : A extends 12 ? -1 : A extends -12 ? 1 : never : never;
44
+ /**
45
+ * Remove all key from the object that are `never`.
46
+ */
47
+ export type RemoveNeverValues<T extends object> = {
48
+ [K in keyof T as [
49
+ T[K]
50
+ ] extends [
51
+ never
52
+ ] ? never : K]: T[K];
53
+ };
54
+ /**
55
+ * Exclude all unit subvalues with an exponent value of zero.
56
+ */
57
+ export type ExcludeUnitZeroSubvalues<U extends UnitSubvalues> = {
58
+ [S in keyof U as S extends string ? (U[S] extends 0 ? never : S) : never]: U[S];
59
+ };
60
+ /**
61
+ * Get the exponent value of the given key.
62
+ */
63
+ export type GetExponent<C extends UnitSubvalues, S> = S extends keyof C ? C[S] : 0;
64
+ /**
65
+ * Flatten a complex type such as a union or intersection of objects into a
66
+ * single object.
67
+ *
68
+ * @internal
69
+ */
70
+ export type FlatternAlias<T> = {
71
+ [P in keyof T]: T[P];
72
+ } & {};
73
+ /**
74
+ * Make `T` exactly `T`.
75
+ *
76
+ * @internal
77
+ */
78
+ export type Exactify<T, U extends T> = T & {
79
+ [K in keyof U]: K extends keyof T ? U[K] : never;
80
+ };
81
+ /**
82
+ * A unit without any meta data.
83
+ *
84
+ * @group Abstract Unit Generators
85
+ */
86
+ export type AbstractUnit<C extends UnitSubvalues> = number & Readonly<{
87
+ __uom_types__unit_class: UnitClass<C>;
88
+ }>;
89
+ /**
90
+ * Create a unit without meta data from an already existing {@link UnitClass}.
91
+ *
92
+ * @group Abstract Unit Generators
93
+ */
94
+ export type AbstractUnitFrom<C extends UnknownUnitClass> = C extends UnitClass<infer A> ? AbstractUnit<UnitSubvalues extends A ? {} : A> : never;
95
+ /**
96
+ * The core unit type.
97
+ *
98
+ * @group Unit Generators
99
+ */
100
+ export type Unit<C extends UnitSubvalues, M extends UnitSubvalues = {}> = number & Readonly<{
101
+ __uom_types__unit_class: UnitClass<C>;
102
+ __uom_types__unit_meta: UnitMeta<M>;
103
+ }>;
104
+ /**
105
+ * Create a {@link Unit} from already existing {@link UnitClass} and {@link UnitMeta}.
106
+ *
107
+ * @group Unit Generators
108
+ */
109
+ export type UnitFrom<C extends UnknownUnitClass, M extends UnknownUnitMeta = UnitMeta<{}>> = C extends UnitClass<infer A> ? (M extends UnitMeta<infer B> ? Unit<A, B> : never) : never;
110
+ /**
111
+ * A {@link Unit} without any {@link UnitClass}.
112
+ *
113
+ * Used to convert from one {@link Unit} to another of the same {@link UnitClass}.
114
+ *
115
+ * @group Unit Generators
116
+ */
117
+ export type UnitConversionRate<M extends UnitSubvalues> = number & Readonly<{
118
+ __uom_types__unit_meta: UnitMeta<M>;
119
+ }>;
120
+ /**
121
+ * Create a {@link UnitConversionRate} from already existing {@link UnitMeta}.
122
+ *
123
+ * @group Unit Generators
124
+ */
125
+ export type UnitConversionRateFrom<M extends UnknownUnitMeta> = M extends UnitMeta<infer A> ? UnitConversionRate<A> : never;
126
+ /**
127
+ * Used to determine what a unit is of. For example, length, volume, mass etc.
128
+ *
129
+ * @group Unit Components
130
+ */
131
+ export type UnitClass<T extends UnitSubvalues> = UnitKeyValues<T> & Readonly<{
132
+ __uno_types__unit_class_type: true;
133
+ }>;
134
+ /**
135
+ * Used to state how units of the same {@link UnitClass} differ from one another.
136
+ * For example, by a scale factor.
137
+ *
138
+ * @group Unit Components
139
+ */
140
+ export type UnitMeta<T extends UnitSubvalues> = UnitKeyValues<T> & Readonly<{
141
+ __uno_types__unit_meta_type: true;
142
+ }>;
143
+ /**
144
+ * A {@link Unit} that we don't know anything about.
145
+ *
146
+ * @group Unknown Units
147
+ */
148
+ export type UnknownUnit = UnknownAbstractUnit & Readonly<{
149
+ __uom_types__unit_meta: UnknownUnitMeta;
150
+ }>;
151
+ /**
152
+ * An {@link AbstractUnit} that we don't know anything about.
153
+ *
154
+ * @group Unknown Units
155
+ */
156
+ export type UnknownAbstractUnit = number & Readonly<{
157
+ __uom_types__unit_class: UnknownUnitClass;
158
+ }>;
159
+ /**
160
+ * An {@link UnitConversionRate} that we don't know anything about.
161
+ *
162
+ * @group Unknown Units
163
+ */
164
+ export type UnknownUnitConversionRate = number & Readonly<{
165
+ __uom_types__unit_meta: UnknownUnitMeta;
166
+ }>;
167
+ /**
168
+ * A {@link UnitClass} that we don't know anything about.
169
+ *
170
+ * @group Unknown Units
171
+ */
172
+ export type UnknownUnitClass = UnknownUnitKeyValues & Readonly<{
173
+ __uno_types__unit_class_type: true;
174
+ }>;
175
+ /**
176
+ * A {@link UnitMeta} that we don't know anything about.
177
+ *
178
+ * @group Unknown Units
179
+ */
180
+ export type UnknownUnitMeta = UnknownUnitKeyValues & Readonly<{
181
+ __uno_types__unit_meta_type: true;
182
+ }>;
183
+ export type UnitKeyValues<T extends UnitSubvalues> = Readonly<{
184
+ __uom_types__keys: keyof ExcludeUnitZeroSubvalues<T> extends string ? keyof ExcludeUnitZeroSubvalues<T> : never;
185
+ __uom_types__value: RemoveNeverValues<T>;
186
+ }>;
187
+ export type UnknownUnitKeyValues = Readonly<{
188
+ __uom_types__keys: string;
189
+ __uom_types__value: {};
190
+ }>;
191
+ /**
192
+ * A mapping of subvalue of a unit its magnitude.
193
+ *
194
+ * @group Unit Components
195
+ */
196
+ export type UnitSubvalues = Record<string, Exponent>;
197
+ /**
198
+ * Take the inverse of a unit.
199
+ *
200
+ * @group Unit Functions
201
+ * @returns `1/X`.
202
+ */
203
+ export type Inverse<X extends number> = Pow<X, -1>;
204
+ /**
205
+ * Inverses each of the subvalues.
206
+ *
207
+ * @group Unit Subvalue Functions
208
+ */
209
+ export type InverseUnitSubvalues<T extends UnitSubvalues> = PowUnitSubvalues<T, -1>;
210
+ /**
211
+ * Multiply a unit by another unit.
212
+ *
213
+ * @group Unit Functions
214
+ * @returns `A⋅B`
215
+ */
216
+ export type Multiply<A extends number, B extends number> = A extends UnknownUnit ? MultiplyHelperUnit<A, B> : B extends UnknownUnit ? MultiplyHelperUnit<B, A> : A extends UnknownAbstractUnit ? MultiplyHelperAbstractUnit<A, B> : B extends UnknownAbstractUnit ? MultiplyHelperAbstractUnit<B, A> : A extends UnknownUnitConversionRate ? MultiplyHelperUnitConversionRate<A, B> : B extends UnknownUnitConversionRate ? MultiplyHelperUnitConversionRate<B, A> : number;
217
+ /**
218
+ * Multiple a Unit by a Unit, AbstractUnit, UnitConversionRate or number
219
+ *
220
+ * @internal
221
+ */
222
+ export type MultiplyHelperUnit<A extends UnknownUnit, B extends number> = A extends Unit<infer AClass, infer AMeta> ? B extends Unit<infer BClass, infer BMeta> ? Unit<FlatternAlias<MultiplyUnitSubvalues<AClass, BClass>>, FlatternAlias<MultiplyUnitSubvalues<AMeta, BMeta>>> : B extends AbstractUnit<infer BClass> ? Unit<FlatternAlias<MultiplyUnitSubvalues<AClass, BClass>>, AMeta> : B extends UnitConversionRate<infer BMeta> ? Unit<AClass, FlatternAlias<MultiplyUnitSubvalues<AMeta, BMeta>>> : A : never;
223
+ /**
224
+ * Multiple an AbstractUnit by an AbstractUnit, UnitConversionRate or number
225
+ *
226
+ * @internal
227
+ */
228
+ export type MultiplyHelperAbstractUnit<A extends UnknownAbstractUnit, B extends number> = A extends AbstractUnit<infer AClass> ? B extends AbstractUnit<infer BClass> ? AbstractUnit<FlatternAlias<MultiplyUnitSubvalues<AClass, BClass>>> : B extends UnitConversionRate<infer BMeta> ? Unit<AClass, BMeta> : A : never;
229
+ /**
230
+ * Multiple an UnitConversionRate by a UnitConversionRate or number
231
+ *
232
+ * @internal
233
+ */
234
+ export type MultiplyHelperUnitConversionRate<A extends UnknownUnitConversionRate, B extends number> = A extends UnitConversionRate<infer AMeta> ? B extends UnitConversionRate<infer BMeta> ? UnitConversionRate<FlatternAlias<MultiplyUnitSubvalues<AMeta, BMeta>>> : A : never;
235
+ /**
236
+ * Multiply each of the subvalues from a unit with the corresponding once from another unit.
237
+ *
238
+ * @group Unit Subvalue Functions
239
+ */
240
+ export type MultiplyUnitSubvalues<A extends UnitSubvalues, B extends UnitSubvalues> = ExcludeUnitZeroSubvalues<{
241
+ [S in keyof A | keyof B]: SumExponents<GetExponent<A, S>, GetExponent<B, S>>;
242
+ }>;
243
+ /**
244
+ * Divide a unit by another unit.
245
+ *
246
+ * @group Unit Functions
247
+ * @returns `A/B`
248
+ */
249
+ export type Divide<A extends number, B extends number> = Multiply<A, Inverse<B>>;
250
+ /**
251
+ * Divide each of the subvalues from a unit with the corresponding once from another unit.
252
+ *
253
+ * @group Unit Subvalue Functions
254
+ */
255
+ export type DivideUnitSubvalues<A extends UnitSubvalues, B extends UnitSubvalues> = MultiplyUnitSubvalues<A, InverseUnitSubvalues<B>>;
256
+ /**
257
+ * Put a unit to the power of an exponent.
258
+ *
259
+ * @group Unit Functions
260
+ */
261
+ export type Pow<T extends number, N extends Exponent> = T extends Unit<infer Class, infer Meta> ? Unit<FlatternAlias<PowUnitSubvalues<Class, N>>, FlatternAlias<PowUnitSubvalues<Meta, N>>> : T extends AbstractUnit<infer Class> ? AbstractUnit<FlatternAlias<PowUnitSubvalues<Class, N>>> : T extends UnitConversionRate<infer Meta> ? UnitConversionRate<FlatternAlias<PowUnitSubvalues<Meta, N>>> : number;
262
+ /**
263
+ * Put each subvalue of a unit to the power of an exponent.
264
+ *
265
+ * @group Unit Subvalue Functions
266
+ */
267
+ export type PowUnitSubvalues<T extends UnitSubvalues, E extends Exponent> = ExcludeUnitZeroSubvalues<{
268
+ [S in keyof T]: MultiplyExponents<GetExponent<T, S>, E>;
269
+ }>;
270
+ /**
271
+ * Take the nth root of a unit.
272
+ *
273
+ * @group Unit Functions
274
+ */
275
+ export type Root<T extends number, N extends Exponent> = T extends Unit<infer Class, infer Meta> ? Unit<FlatternAlias<RootUnitSubvalues<Class, N>>, FlatternAlias<RootUnitSubvalues<Meta, N>>> : T extends AbstractUnit<infer Class> ? AbstractUnit<FlatternAlias<RootUnitSubvalues<Class, N>>> : T extends UnitConversionRate<infer Meta> ? UnitConversionRate<FlatternAlias<RootUnitSubvalues<Meta, N>>> : number;
276
+ /**
277
+ * Take the nth root of each subvalue of a unit.
278
+ *
279
+ * @group Unit Subvalue Functions
280
+ */
281
+ export type RootUnitSubvalues<T extends UnitSubvalues, E extends Exponent> = ExcludeUnitZeroSubvalues<{
282
+ [S in keyof T]: DivideExponents<GetExponent<T, S>, E>;
283
+ }>;
284
+ export type SiUnitKeys = "Second" | "Meter" | "Kilogram" | "Mole" | "Ampere" | "Candela" | "Kelvin" | "Radian";
285
+ /**
286
+ * The {@link UnitClass} that is the base of all {@link Unit}s defined by this library.
287
+ *
288
+ * @group Unit Classes
289
+ */
290
+ export type BaseUnitClass<T extends Exactify<SiUnitConfig, T>> = UnitClass<T>;
291
+ export type SiUnitConfig = {
292
+ [K in SiUnitKeys]?: Exponent;
293
+ };
294
+ /**
295
+ * @group Unit Classes
296
+ * @category Angle (Plane)
297
+ */
298
+ export type PlaneAngleUnitClass = BaseUnitClass<{
299
+ Radian: 1;
300
+ }>;
301
+ /**
302
+ * @group Abstract Units
303
+ * @category Angle (Plane)
304
+ */
305
+ export type PlaneAngle = AbstractUnitFrom<PlaneAngleUnitClass>;
306
+ /**
307
+ * @group Unit Generators
308
+ * @category Angle (Plane)
309
+ */
310
+ export type PlaneAngleUnit<M extends UnitSubvalues> = PlaneAngleUnitFrom<UnitMeta<M>>;
311
+ /**
312
+ * @group Unit Generators
313
+ * @category Angle (Plane)
314
+ */
315
+ export type PlaneAngleUnitFrom<M extends UnknownUnitMeta> = UnitFrom<PlaneAngleUnitClass, M>;
316
+ /**
317
+ * A unit of {@link PlaneAngle}.
318
+ *
319
+ * One radian is equal to the angle subtended at the centre of a circle by an
320
+ * arc equal in length to the radius.
321
+ * The total plane angle about a point is 2π radian.
322
+ *
323
+ * @group Units
324
+ * @category Base
325
+ * @category Angle (Plane)
326
+ * @symbol `rad`
327
+ */
328
+ export type Radian = PlaneAngleUnit<{}>;
329
+ /**
330
+ * A unit of {@link PlaneAngle}.
331
+ *
332
+ * The total plane angle of a circle is 360 degrees.
333
+ *
334
+ * @group Units
335
+ * @category Angle (Plane)
336
+ * @symbol `°`
337
+ */
338
+ export type Degree = PlaneAngleUnit<{
339
+ scalar360: 1;
340
+ scalar2π: -1;
341
+ }>;
342
+ /**
343
+ * A unit of {@link PlaneAngle}.
344
+ *
345
+ * One gradian is equal to 100th of a right angle.
346
+ * The total plane angle about a point is 400 gradian.
347
+ *
348
+ * @group Units
349
+ * @category Angle (Plane)
350
+ * @symbol `gon`
351
+ */
352
+ export type Gradian = PlaneAngleUnit<{
353
+ scalar400: 1;
354
+ scalar2π: -1;
355
+ }>;
356
+ /**
357
+ * A unit of {@link PlaneAngle}.
358
+ *
359
+ * One turn is equal to 1 full rotation about a point.
360
+ *
361
+ * @group Units
362
+ * @category Angle (Plane)
363
+ * @symbol `tr`
364
+ */
365
+ export type Turn = PlaneAngleUnit<{
366
+ scalar2π: -1;
367
+ }>;
368
+ /**
369
+ * @group Unit Classes
370
+ * @category Angle (Solid)
371
+ */
372
+ export type SolidAngleUnitClass = BaseUnitClass<{
373
+ Radian: 2;
374
+ }>;
375
+ /**
376
+ * @group Abstract Units
377
+ * @category Angle (Solid)
378
+ */
379
+ export type SolidAngle = AbstractUnitFrom<SolidAngleUnitClass>;
380
+ /**
381
+ * @group Unit Generators
382
+ * @category Angle (Solid)
383
+ */
384
+ export type SolidAngleUnit<M extends UnitSubvalues> = SolidAngleUnitFrom<UnitMeta<M>>;
385
+ /**
386
+ * @group Unit Generators
387
+ * @category Angle (Solid)
388
+ */
389
+ export type SolidAngleUnitFrom<M extends UnknownUnitMeta> = UnitFrom<SolidAngleUnitClass, M>;
390
+ /**
391
+ * A unit of {@link SolidAngle}.
392
+ *
393
+ * One steradian is the solid angle of a sphere subtended by a portion of the
394
+ * surface whose area is equal to the square of the sphere's radius.
395
+ * The total solid angle about a point is equal to 4π steradian.
396
+ *
397
+ * @group Units
398
+ * @category Derived
399
+ * @category Angle (Solid)
400
+ * @symbol `sr`
401
+ */
402
+ export type Steradian = SolidAngleUnit<{}>;
403
+ /**
404
+ * @group Unit Classes
405
+ * @category Chemical
406
+ */
407
+ export type AmountOfSubstanceUnitClass = BaseUnitClass<{
408
+ Mole: 1;
409
+ }>;
410
+ /**
411
+ * @group Abstract Units
412
+ * @category Chemical
413
+ */
414
+ export type AmountOfSubstance = AbstractUnitFrom<AmountOfSubstanceUnitClass>;
415
+ /**
416
+ * @group Unit Generators
417
+ * @category Chemical
418
+ */
419
+ export type AmountOfSubstanceUnit<M extends UnitSubvalues> = AmountOfSubstanceUnitFrom<UnitMeta<M>>;
420
+ /**
421
+ * @group Unit Generators
422
+ * @category Chemical
423
+ */
424
+ export type AmountOfSubstanceUnitFrom<M extends UnknownUnitMeta> = UnitFrom<AmountOfSubstanceUnitClass, M>;
425
+ /**
426
+ * A unit of {@link AmountOfSubstance}.
427
+ *
428
+ * @group Units
429
+ * @category Base
430
+ * @category Chemical
431
+ * @symbol `mol`
432
+ */
433
+ export type Mole = AmountOfSubstanceUnit<{}>;
434
+ /**
435
+ * @group Unit Classes
436
+ * @category Chemical
437
+ */
438
+ export type CatalyticActivityUnitClass = BaseUnitClass<{
439
+ Mole: 1;
440
+ Second: -1;
441
+ }>;
442
+ /**
443
+ * @group Abstract Units
444
+ * @category Chemical
445
+ */
446
+ export type CatalyticActivity = AbstractUnitFrom<CatalyticActivityUnitClass>;
447
+ /**
448
+ * @group Unit Generators
449
+ * @category Chemical
450
+ */
451
+ export type CatalyticActivityUnit<M extends UnitSubvalues> = CatalyticActivityUnitFrom<UnitMeta<M>>;
452
+ /**
453
+ * @group Unit Generators
454
+ * @category Chemical
455
+ */
456
+ export type CatalyticActivityUnitFrom<M extends UnknownUnitMeta> = UnitFrom<CatalyticActivityUnitClass, M>;
457
+ /**
458
+ * A unit of {@link CatalyticActivity}.
459
+ *
460
+ * @group Units
461
+ * @category Derived
462
+ * @category Chemical
463
+ * @symbol `kat`
464
+ */
465
+ export type Katal = CatalyticActivityUnit<{}>;
466
+ /**
467
+ * @group Unit Classes
468
+ * @category Chemical
469
+ */
470
+ export type MolarConcentrationUnitClass = BaseUnitClass<{
471
+ Mole: 1;
472
+ Meter: -3;
473
+ }>;
474
+ /**
475
+ * @group Abstract Units
476
+ * @category Chemical
477
+ */
478
+ export type MolarConcentration = AbstractUnitFrom<MolarConcentrationUnitClass>;
479
+ /**
480
+ * @group Unit Generators
481
+ * @category Chemical
482
+ */
483
+ export type MolarConcentrationUnit<M extends UnitSubvalues> = MolarConcentrationUnitFrom<UnitMeta<M>>;
484
+ /**
485
+ * @group Unit Generators
486
+ * @category Chemical
487
+ */
488
+ export type MolarConcentrationUnitFrom<M extends UnknownUnitMeta> = UnitFrom<MolarConcentrationUnitClass, M>;
489
+ /**
490
+ * A unit of {@link MolarConcentration}.
491
+ *
492
+ * Equivalent to {@link MolePerCubicMeter}.
493
+ *
494
+ * @group Units
495
+ * @category Chemical
496
+ * @symbol `c`
497
+ */
498
+ export type Concentration = MolarConcentrationUnit<{}>;
499
+ /**
500
+ * A unit of {@link MolarConcentration}.
501
+ *
502
+ * Equivalent to {@link Concentration}.
503
+ *
504
+ * @group Units
505
+ * @category Chemical
506
+ * @symbol `mol/m³`
507
+ */
508
+ export type MolePerCubicMeter = Concentration;
509
+ /**
510
+ * A unit of {@link MolarConcentration}.
511
+ *
512
+ * @group Units
513
+ * @category Chemical
514
+ * @symbol `mol/l`
515
+ */
516
+ export type MolePerLiter = MolarConcentrationUnit<{
517
+ scalar10: 3;
518
+ }>;
519
+ /**
520
+ * @group Unit Classes
521
+ * @category Electromagnetic
522
+ */
523
+ export type ElectricCapacitanceUnitClass = BaseUnitClass<{
524
+ Ampere: 2;
525
+ Second: 4;
526
+ Kilogram: -1;
527
+ Meter: -2;
528
+ }>;
529
+ /**
530
+ * @group Abstract Units
531
+ * @category Electromagnetic
532
+ */
533
+ export type ElectricCapacitance = AbstractUnitFrom<ElectricCapacitanceUnitClass>;
534
+ /**
535
+ * @group Unit Generators
536
+ * @category Electromagnetic
537
+ */
538
+ export type ElectricCapacitanceUnit<M extends UnitSubvalues> = ElectricCapacitanceUnitFrom<UnitMeta<M>>;
539
+ /**
540
+ * @group Unit Generators
541
+ * @category Electromagnetic
542
+ */
543
+ export type ElectricCapacitanceUnitFrom<M extends UnknownUnitMeta> = UnitFrom<ElectricCapacitanceUnitClass, M>;
544
+ /**
545
+ * A unit of {@link ElectricCapacitance}.
546
+ *
547
+ * One Farad is equal to the capacitance of a capacitor having an equal and opposite charge of 1 coulomb on
548
+ * each plate and a potential difference of 1 volt between the plates.
549
+ *
550
+ * @group Units
551
+ * @category Derived
552
+ * @category Electromagnetic
553
+ * @symbol `F`
554
+ */
555
+ export type Farad = ElectricCapacitanceUnit<{}>;
556
+ /**
557
+ * @group Unit Classes
558
+ * @category Electromagnetic
559
+ */
560
+ export type ElectricChargeDensityUnitClass = BaseUnitClass<{
561
+ Ampere: 1;
562
+ Second: 1;
563
+ Meter: -3;
564
+ }>;
565
+ /**
566
+ * @group Abstract Units
567
+ * @category Electromagnetic
568
+ */
569
+ export type ElectricChargeDensity = AbstractUnitFrom<ElectricChargeDensityUnitClass>;
570
+ /**
571
+ * @group Unit Generators
572
+ * @category Electromagnetic
573
+ */
574
+ export type ElectricChargeDensityUnit<M extends UnitSubvalues> = ElectricChargeDensityUnitFrom<UnitMeta<M>>;
575
+ /**
576
+ * @group Unit Generators
577
+ * @category Electromagnetic
578
+ */
579
+ export type ElectricChargeDensityUnitFrom<M extends UnknownUnitMeta> = UnitFrom<ElectricChargeDensityUnitClass, M>;
580
+ /**
581
+ * A unit of {@link ElectricChargeDensity}.
582
+ *
583
+ * @group Units
584
+ * @category Electromagnetic
585
+ * @symbol `C/m³`
586
+ */
587
+ export type CoulombPerCubicMeter = ElectricChargeDensityUnit<{}>;
588
+ /**
589
+ * @group Unit Classes
590
+ * @category Electromagnetic
591
+ */
592
+ export type ElectricChargeUnitClass = BaseUnitClass<{
593
+ Ampere: 1;
594
+ Second: 1;
595
+ }>;
596
+ /**
597
+ * @group Abstract Units
598
+ * @category Electromagnetic
599
+ */
600
+ export type ElectricCharge = AbstractUnitFrom<ElectricChargeUnitClass>;
601
+ /**
602
+ * @group Unit Generators
603
+ * @category Electromagnetic
604
+ */
605
+ export type ElectricChargeUnit<M extends UnitSubvalues> = ElectricChargeUnitFrom<UnitMeta<M>>;
606
+ /**
607
+ * @group Unit Generators
608
+ * @category Electromagnetic
609
+ */
610
+ export type ElectricChargeUnitFrom<M extends UnknownUnitMeta> = UnitFrom<ElectricChargeUnitClass, M>;
611
+ /**
612
+ * A unit of {@link ElectricCharge}.
613
+ *
614
+ * One Coulomb is equal to the quantity of charge transferred in one second by a steady current of one Ampere.
615
+ *
616
+ * @group Units
617
+ * @category Derived
618
+ * @symbol `C`
619
+ */
620
+ export type Coulomb = ElectricChargeUnit<{}>;
621
+ /**
622
+ * @group Unit Classes
623
+ * @category Electromagnetic
624
+ */
625
+ export type ElectricConductanceUnitClass = BaseUnitClass<{
626
+ Kilogram: -1;
627
+ Meter: -2;
628
+ Second: 3;
629
+ Ampere: 2;
630
+ }>;
631
+ /**
632
+ * @group Abstract Units
633
+ * @category Electromagnetic
634
+ */
635
+ export type ElectricConductance = AbstractUnitFrom<ElectricConductanceUnitClass>;
636
+ /**
637
+ * @group Unit Generators
638
+ * @category Electromagnetic
639
+ */
640
+ export type ElectricConductanceUnit<M extends UnitSubvalues> = ElectricConductanceUnitFrom<UnitMeta<M>>;
641
+ /**
642
+ * @group Unit Generators
643
+ * @category Electromagnetic
644
+ */
645
+ export type ElectricConductanceUnitFrom<M extends UnknownUnitMeta> = UnitFrom<ElectricConductanceUnitClass, M>;
646
+ /**
647
+ * A unit of {@link ElectricConductance}.
648
+ *
649
+ * One Siemens is equal to one ampere per volt.
650
+ *
651
+ * @group Units
652
+ * @category Electromagnetic
653
+ * @symbol `S`
654
+ */
655
+ export type Siemens = ElectricConductanceUnit<{}>;
656
+ /**
657
+ * @group Unit Classes
658
+ * @category Electromagnetic
659
+ */
660
+ export type ElectricalConductivityUnitClass = BaseUnitClass<{
661
+ Kilogram: -1;
662
+ Meter: -3;
663
+ Second: 3;
664
+ Ampere: 2;
665
+ }>;
666
+ /**
667
+ * @group Abstract Units
668
+ * @category Electromagnetic
669
+ */
670
+ export type ElectricalConductivity = AbstractUnitFrom<ElectricalConductivityUnitClass>;
671
+ /**
672
+ * @group Unit Generators
673
+ * @category Electromagnetic
674
+ */
675
+ export type ElectricalConductivityUnit<M extends UnitSubvalues> = ElectricalConductivityUnitFrom<UnitMeta<M>>;
676
+ /**
677
+ * @group Unit Generators
678
+ * @category Electromagnetic
679
+ */
680
+ export type ElectricalConductivityUnitFrom<M extends UnknownUnitMeta> = UnitFrom<ElectricalConductivityUnitClass, M>;
681
+ /**
682
+ * A unit of {@link ElectricalConductivity}.
683
+ *
684
+ * @group Units
685
+ * @category Electromagnetic
686
+ * @symbol `S/m`
687
+ */
688
+ export type SiemensPerMeter = ElectricalConductivityUnit<{}>;
689
+ /**
690
+ * @group Unit Classes
691
+ * @category Electromagnetic
692
+ */
693
+ export type ElectricCurrentDensityUnitClass = BaseUnitClass<{
694
+ Ampere: 1;
695
+ Meter: -2;
696
+ }>;
697
+ /**
698
+ * @group Abstract Units
699
+ * @category Electromagnetic
700
+ */
701
+ export type ElectricCurrentDensity = AbstractUnitFrom<ElectricCurrentDensityUnitClass>;
702
+ /**
703
+ * @group Unit Generators
704
+ * @category Electromagnetic
705
+ */
706
+ export type ElectricCurrentDensityUnit<M extends UnitSubvalues> = ElectricCurrentDensityUnitFrom<UnitMeta<M>>;
707
+ /**
708
+ * @group Unit Generators
709
+ * @category Electromagnetic
710
+ */
711
+ export type ElectricCurrentDensityUnitFrom<M extends UnknownUnitMeta> = UnitFrom<ElectricCurrentDensityUnitClass, M>;
712
+ /**
713
+ * A unit of {@link ElectricCurrentDensity}.
714
+ *
715
+ * @group Units
716
+ * @category Electromagnetic
717
+ * @symbol `A/m²`
718
+ */
719
+ export type AmperePerSquareMeter = ElectricCurrentDensityUnit<{}>;
720
+ /**
721
+ * @group Unit Classes
722
+ * @category Electromagnetic
723
+ */
724
+ export type ElectricCurrentUnitClass = BaseUnitClass<{
725
+ Ampere: 1;
726
+ }>;
727
+ /**
728
+ * @group Abstract Units
729
+ * @category Electromagnetic
730
+ */
731
+ export type ElectricCurrent = AbstractUnitFrom<ElectricCurrentUnitClass>;
732
+ /**
733
+ * @group Unit Generators
734
+ * @category Electromagnetic
735
+ */
736
+ export type ElectricCurrentUnit<M extends UnitSubvalues> = ElectricCurrentUnitFrom<UnitMeta<M>>;
737
+ /**
738
+ * @group Unit Generators
739
+ * @category Electromagnetic
740
+ */
741
+ export type ElectricCurrentUnitFrom<M extends UnknownUnitMeta> = UnitFrom<ElectricCurrentUnitClass, M>;
742
+ /**
743
+ * A unit of {@link ElectricCurrent}.
744
+ *
745
+ * @group Units
746
+ * @category Base
747
+ * @symbol `A`
748
+ */
749
+ export type Ampere = ElectricCurrentUnit<{}>;
750
+ /**
751
+ * @group Unit Classes
752
+ * @category Electromagnetic
753
+ */
754
+ export type ElectricDisplacementFieldUnitClass = BaseUnitClass<{
755
+ Ampere: 1;
756
+ Second: 1;
757
+ Meter: -2;
758
+ }>;
759
+ /**
760
+ * @group Abstract Units
761
+ * @category Electromagnetic
762
+ */
763
+ export type ElectricDisplacementField = AbstractUnitFrom<ElectricDisplacementFieldUnitClass>;
764
+ /**
765
+ * @group Unit Generators
766
+ * @category Electromagnetic
767
+ */
768
+ export type ElectricDisplacementFieldUnit<M extends UnitSubvalues> = ElectricDisplacementFieldUnitFrom<UnitMeta<M>>;
769
+ /**
770
+ * @group Unit Generators
771
+ * @category Electromagnetic
772
+ */
773
+ export type ElectricDisplacementFieldUnitFrom<M extends UnknownUnitMeta> = UnitFrom<ElectricDisplacementFieldUnitClass, M>;
774
+ /**
775
+ * A unit of {@link ElectricDisplacementField}.
776
+ *
777
+ * @group Units
778
+ * @category Electromagnetic
779
+ * @symbol `C/m²`
780
+ */
781
+ export type CoulombPerSquareMeter = ElectricDisplacementFieldUnit<{}>;
782
+ /**
783
+ * @group Unit Classes
784
+ * @category Electromagnetic
785
+ */
786
+ export type ElectricFieldStrengthUnitClass = BaseUnitClass<{
787
+ Kilogram: 1;
788
+ Meter: 1;
789
+ Second: -3;
790
+ Ampere: -1;
791
+ }>;
792
+ /**
793
+ * @group Abstract Units
794
+ * @category Electromagnetic
795
+ */
796
+ export type ElectricFieldStrength = AbstractUnitFrom<ElectricFieldStrengthUnitClass>;
797
+ /**
798
+ * @group Unit Generators
799
+ * @category Electromagnetic
800
+ */
801
+ export type ElectricFieldStrengthUnit<M extends UnitSubvalues> = ElectricFieldStrengthUnitFrom<UnitMeta<M>>;
802
+ /**
803
+ * @group Unit Generators
804
+ * @category Electromagnetic
805
+ */
806
+ export type ElectricFieldStrengthUnitFrom<M extends UnknownUnitMeta> = UnitFrom<ElectricFieldStrengthUnitClass, M>;
807
+ /**
808
+ * A unit of {@link ElectricFieldStrength}.
809
+ *
810
+ * @group Units
811
+ * @category Electromagnetic
812
+ * @symbol `V/m`
813
+ */
814
+ export type VoltPerMeter = ElectricFieldStrengthUnit<{}>;
815
+ /**
816
+ * @group Unit Classes
817
+ * @category Electromagnetic
818
+ */
819
+ export type ElectricInductanceUnitClass = BaseUnitClass<{
820
+ Kilogram: 1;
821
+ Meter: 2;
822
+ Second: -2;
823
+ Ampere: -2;
824
+ }>;
825
+ /**
826
+ * @group Abstract Units
827
+ * @category Electromagnetic
828
+ */
829
+ export type ElectricInductance = AbstractUnitFrom<ElectricInductanceUnitClass>;
830
+ /**
831
+ * @group Unit Generators
832
+ * @category Electromagnetic
833
+ */
834
+ export type ElectricInductanceUnit<M extends UnitSubvalues> = ElectricInductanceUnitFrom<UnitMeta<M>>;
835
+ /**
836
+ * @group Unit Generators
837
+ * @category Electromagnetic
838
+ */
839
+ export type ElectricInductanceUnitFrom<M extends UnknownUnitMeta> = UnitFrom<ElectricInductanceUnitClass, M>;
840
+ /**
841
+ * A unit of {@link ElectricInductance}.
842
+ *
843
+ * @group Units
844
+ * @category Derived
845
+ * @symbol `H`
846
+ */
847
+ export type Henry = ElectricInductanceUnit<{}>;
848
+ /**
849
+ * @group Unit Classes
850
+ * @category Electromagnetic
851
+ */
852
+ export type ElectricLinearChargeDensityUnitClass = BaseUnitClass<{
853
+ Ampere: 1;
854
+ Second: 1;
855
+ Meter: -1;
856
+ }>;
857
+ /**
858
+ * @group Abstract Units
859
+ * @category Electromagnetic
860
+ */
861
+ export type ElectricLinearChargeDensity = AbstractUnitFrom<ElectricLinearChargeDensityUnitClass>;
862
+ /**
863
+ * @group Unit Generators
864
+ * @category Electromagnetic
865
+ */
866
+ export type ElectricLinearChargeDensityUnit<M extends UnitSubvalues> = ElectricLinearChargeDensityUnitFrom<UnitMeta<M>>;
867
+ /**
868
+ * @group Unit Generators
869
+ * @category Electromagnetic
870
+ */
871
+ export type ElectricLinearChargeDensityUnitFrom<M extends UnknownUnitMeta> = UnitFrom<ElectricLinearChargeDensityUnitClass, M>;
872
+ /**
873
+ * A unit of {@link ElectricLinearChargeDensity}.
874
+ *
875
+ * @group Units
876
+ * @category Electromagnetic
877
+ * @symbol `C/m`
878
+ */
879
+ export type CoulombPerMeter = ElectricLinearChargeDensityUnit<{}>;
880
+ /**
881
+ * @group Unit Classes
882
+ * @category Electromagnetic
883
+ */
884
+ export type ElectricPotentialUnitClass = BaseUnitClass<{
885
+ Kilogram: 1;
886
+ Meter: 2;
887
+ Second: -3;
888
+ Ampere: -1;
889
+ }>;
890
+ /**
891
+ * @group Abstract Units
892
+ * @category Electromagnetic
893
+ */
894
+ export type ElectricPotential = AbstractUnitFrom<ElectricPotentialUnitClass>;
895
+ /**
896
+ * @group Unit Generators
897
+ * @category Electromagnetic
898
+ */
899
+ export type ElectricPotentialUnit<M extends UnitSubvalues> = ElectricPotentialUnitFrom<UnitMeta<M>>;
900
+ /**
901
+ * @group Unit Generators
902
+ * @category Electromagnetic
903
+ */
904
+ export type ElectricPotentialUnitFrom<M extends UnknownUnitMeta> = UnitFrom<ElectricPotentialUnitClass, M>;
905
+ /**
906
+ * A unit of {@link ElectricPotential}.
907
+ *
908
+ * One Volt is equal to the difference of electric potential between two points on a conducting
909
+ * wire carrying a export constant current of one Ampere when the power dissipated between the points is one watt.
910
+ *
911
+ * @group Units
912
+ * @category Derived
913
+ * @symbol `V`
914
+ */
915
+ export type Volt = ElectricPotentialUnit<{}>;
916
+ /**
917
+ * @group Unit Classes
918
+ * @category Electromagnetic
919
+ */
920
+ export type ElectricResistanceUnitClass = BaseUnitClass<{
921
+ Kilogram: 1;
922
+ Meter: 2;
923
+ Second: -3;
924
+ Ampere: -2;
925
+ }>;
926
+ /**
927
+ * @group Abstract Units
928
+ * @category Electromagnetic
929
+ */
930
+ export type ElectricResistance = AbstractUnitFrom<ElectricResistanceUnitClass>;
931
+ /**
932
+ * @group Unit Generators
933
+ * @category Electromagnetic
934
+ */
935
+ export type ElectricResistanceUnit<M extends UnitSubvalues> = ElectricResistanceUnitFrom<UnitMeta<M>>;
936
+ /**
937
+ * @group Unit Generators
938
+ * @category Electromagnetic
939
+ */
940
+ export type ElectricResistanceUnitFrom<M extends UnknownUnitMeta> = UnitFrom<ElectricResistanceUnitClass, M>;
941
+ /**
942
+ * A unit of {@link ElectricResistance}.
943
+ *
944
+ * One Ohm is equal to the resistance of a conductor in which a current of one Ampere is produced
945
+ * by a potential of one volt across its terminals.
946
+ *
947
+ * @group Units
948
+ * @category Electromagnetic
949
+ * @symbol `Ω`
950
+ */
951
+ export type Ohm = ElectricResistanceUnit<{}>;
952
+ /**
953
+ * @group Unit Classes
954
+ * @category Electromagnetic
955
+ */
956
+ export type ElectronMobilityUnitClass = BaseUnitClass<{
957
+ Kilogram: -1;
958
+ Second: 2;
959
+ Ampere: 1;
960
+ }>;
961
+ /**
962
+ * @group Abstract Units
963
+ * @category Electromagnetic
964
+ */
965
+ export type ElectronMobility = AbstractUnitFrom<ElectronMobilityUnitClass>;
966
+ /**
967
+ * @group Unit Generators
968
+ * @category Electromagnetic
969
+ */
970
+ export type ElectronMobilityUnit<M extends UnitSubvalues> = ElectronMobilityUnitFrom<UnitMeta<M>>;
971
+ /**
972
+ * @group Unit Generators
973
+ * @category Electromagnetic
974
+ */
975
+ export type ElectronMobilityUnitFrom<M extends UnknownUnitMeta> = UnitFrom<ElectronMobilityUnitClass, M>;
976
+ /**
977
+ * A unit of {@link ElectronMobility}.
978
+ *
979
+ * @group Units
980
+ * @category Electromagnetic
981
+ * @symbol `m²/(V⋅s)`
982
+ */
983
+ export type SquareMeterPerVoltSecond = ElectronMobilityUnit<{}>;
984
+ /**
985
+ * @group Unit Classes
986
+ * @category Electromagnetic
987
+ */
988
+ export type ExposureUnitClass = BaseUnitClass<{
989
+ Ampere: 1;
990
+ Second: 1;
991
+ Kilogram: -1;
992
+ }>;
993
+ /**
994
+ * @group Abstract Units
995
+ * @category Electromagnetic
996
+ */
997
+ export type Exposure = AbstractUnitFrom<ExposureUnitClass>;
998
+ /**
999
+ * @group Unit Generators
1000
+ * @category Electromagnetic
1001
+ */
1002
+ export type ExposureUnit<M extends UnitSubvalues> = ExposureUnitFrom<UnitMeta<M>>;
1003
+ /**
1004
+ * @group Unit Generators
1005
+ * @category Electromagnetic
1006
+ */
1007
+ export type ExposureUnitFrom<M extends UnknownUnitMeta> = UnitFrom<ExposureUnitClass, M>;
1008
+ /**
1009
+ * A unit of {@link Exposure}.
1010
+ *
1011
+ * @group Units
1012
+ * @category Electromagnetic
1013
+ * @symbol `C/kg`
1014
+ */
1015
+ export type CoulombPerKilogram = ExposureUnit<{}>;
1016
+ /**
1017
+ * @group Unit Classes
1018
+ * @category Electromagnetic
1019
+ */
1020
+ export type MagneticDipoleMomentUnitClass = BaseUnitClass<{
1021
+ Meter: 2;
1022
+ Ampere: 1;
1023
+ }>;
1024
+ /**
1025
+ * @group Abstract Units
1026
+ * @category Electromagnetic
1027
+ */
1028
+ export type MagneticDipoleMoment = AbstractUnitFrom<MagneticDipoleMomentUnitClass>;
1029
+ /**
1030
+ * @group Unit Generators
1031
+ * @category Electromagnetic
1032
+ */
1033
+ export type MagneticDipoleMomentUnit<M extends UnitSubvalues> = MagneticDipoleMomentUnitFrom<UnitMeta<M>>;
1034
+ /**
1035
+ * @group Unit Generators
1036
+ * @category Electromagnetic
1037
+ */
1038
+ export type MagneticDipoleMomentUnitFrom<M extends UnknownUnitMeta> = UnitFrom<MagneticDipoleMomentUnitClass, M>;
1039
+ /**
1040
+ * A unit of {@link MagneticDipoleMoment}.
1041
+ *
1042
+ * @group Units
1043
+ * @category Electromagnetic
1044
+ * @symbol `J/T`
1045
+ */
1046
+ export type JoulePerTesla = MagneticDipoleMomentUnit<{}>;
1047
+ /**
1048
+ * @group Unit Classes
1049
+ * @category Electromagnetic
1050
+ */
1051
+ export type MagneticFieldStrengthUnitClass = BaseUnitClass<{
1052
+ Ampere: 1;
1053
+ Meter: -1;
1054
+ }>;
1055
+ /**
1056
+ * @group Abstract Units
1057
+ * @category Electromagnetic
1058
+ */
1059
+ export type MagneticFieldStrength = AbstractUnitFrom<MagneticFieldStrengthUnitClass>;
1060
+ /**
1061
+ * @group Unit Generators
1062
+ * @category Electromagnetic
1063
+ */
1064
+ export type MagneticFieldStrengthUnit<M extends UnitSubvalues> = MagneticFieldStrengthUnitFrom<UnitMeta<M>>;
1065
+ /**
1066
+ * @group Unit Generators
1067
+ * @category Electromagnetic
1068
+ */
1069
+ export type MagneticFieldStrengthUnitFrom<M extends UnknownUnitMeta> = UnitFrom<MagneticFieldStrengthUnitClass, M>;
1070
+ /**
1071
+ * A unit of {@link MagneticFieldStrength}.
1072
+ *
1073
+ * @group Units
1074
+ * @category Electromagnetic
1075
+ * @symbol `A/m`
1076
+ */
1077
+ export type AmperePerMeter = MagneticFieldStrengthUnit<{}>;
1078
+ /**
1079
+ * @group Unit Classes
1080
+ * @category Electromagnetic
1081
+ */
1082
+ export type MagneticFluxDensityUnitClass = BaseUnitClass<{
1083
+ Ampere: -1;
1084
+ Kilogram: 1;
1085
+ Second: -2;
1086
+ }>;
1087
+ /**
1088
+ * @group Abstract Units
1089
+ * @category Electromagnetic
1090
+ */
1091
+ export type MagneticFluxDensity = AbstractUnitFrom<MagneticFluxDensityUnitClass>;
1092
+ /**
1093
+ * @group Unit Generators
1094
+ * @category Electromagnetic
1095
+ */
1096
+ export type MagneticFluxDensityUnit<M extends UnitSubvalues> = MagneticFluxDensityUnitFrom<UnitMeta<M>>;
1097
+ /**
1098
+ * @group Unit Generators
1099
+ * @category Electromagnetic
1100
+ */
1101
+ export type MagneticFluxDensityUnitFrom<M extends UnknownUnitMeta> = UnitFrom<MagneticFluxDensityUnitClass, M>;
1102
+ /**
1103
+ * A unit of {@link MagneticFluxDensity}.
1104
+ *
1105
+ * One Tesla is equal equal to one weber per square meter.
1106
+ *
1107
+ * @group Units
1108
+ * @category Derived
1109
+ * @symbol `T`
1110
+ */
1111
+ export type Tesla = MagneticFluxDensityUnit<{}>;
1112
+ /**
1113
+ * @group Unit Classes
1114
+ * @category Electromagnetic
1115
+ */
1116
+ export type MagneticFluxUnitClass = BaseUnitClass<{
1117
+ Kilogram: 1;
1118
+ Meter: 2;
1119
+ Second: -2;
1120
+ Ampere: -1;
1121
+ }>;
1122
+ /**
1123
+ * @group Abstract Units
1124
+ * @category Electromagnetic
1125
+ */
1126
+ export type MagneticFlux = AbstractUnitFrom<MagneticFluxUnitClass>;
1127
+ /**
1128
+ * @group Unit Generators
1129
+ * @category Electromagnetic
1130
+ */
1131
+ export type MagneticFluxUnit<M extends UnitSubvalues> = MagneticFluxUnitFrom<UnitMeta<M>>;
1132
+ /**
1133
+ * @group Unit Generators
1134
+ * @category Electromagnetic
1135
+ */
1136
+ export type MagneticFluxUnitFrom<M extends UnknownUnitMeta> = UnitFrom<MagneticFluxUnitClass, M>;
1137
+ /**
1138
+ * A unit of {@link MagneticFlux}.
1139
+ *
1140
+ * One Weber is equal to the magnetic flux that in linking a circuit of one turn produces in it an
1141
+ * electromotive force of one volt as it is uniformly reduced to zero within one second.
1142
+ *
1143
+ * @group Units
1144
+ * @category Derived
1145
+ * @symbol `Wb`
1146
+ */
1147
+ export type Weber = MagneticFluxUnit<{}>;
1148
+ /**
1149
+ * @group Unit Classes
1150
+ * @category Electromagnetic
1151
+ */
1152
+ export type MagneticMomentUnitClass = BaseUnitClass<{
1153
+ Kilogram: 1;
1154
+ Meter: 3;
1155
+ Second: -2;
1156
+ Ampere: -1;
1157
+ }>;
1158
+ /**
1159
+ * @group Abstract Units
1160
+ * @category Electromagnetic
1161
+ */
1162
+ export type MagneticMoment = AbstractUnitFrom<MagneticMomentUnitClass>;
1163
+ /**
1164
+ * @group Unit Generators
1165
+ * @category Electromagnetic
1166
+ */
1167
+ export type MagneticMomentUnit<M extends UnitSubvalues> = MagneticMomentUnitFrom<UnitMeta<M>>;
1168
+ /**
1169
+ * @group Unit Generators
1170
+ * @category Electromagnetic
1171
+ */
1172
+ export type MagneticMomentUnitFrom<M extends UnknownUnitMeta> = UnitFrom<MagneticMomentUnitClass, M>;
1173
+ /**
1174
+ * A unit of {@link MagneticMoment}.
1175
+ *
1176
+ * @group Units
1177
+ * @category Electromagnetic
1178
+ * @symbol `Wb⋅m`
1179
+ */
1180
+ export type WeberMeter = MagneticMomentUnit<{}>;
1181
+ /**
1182
+ * @group Unit Classes
1183
+ * @category Electromagnetic
1184
+ */
1185
+ export type MagneticPermeabilityUnitClass = BaseUnitClass<{
1186
+ Kilogram: 1;
1187
+ Meter: 1;
1188
+ Second: -2;
1189
+ Ampere: -2;
1190
+ }>;
1191
+ /**
1192
+ * @group Abstract Units
1193
+ * @category Electromagnetic
1194
+ */
1195
+ export type MagneticPermeability = AbstractUnitFrom<MagneticPermeabilityUnitClass>;
1196
+ /**
1197
+ * @group Unit Generators
1198
+ * @category Electromagnetic
1199
+ */
1200
+ export type MagneticPermeabilityUnit<M extends UnitSubvalues> = MagneticPermeabilityUnitFrom<UnitMeta<M>>;
1201
+ /**
1202
+ * @group Unit Generators
1203
+ * @category Electromagnetic
1204
+ */
1205
+ export type MagneticPermeabilityUnitFrom<M extends UnknownUnitMeta> = UnitFrom<MagneticPermeabilityUnitClass, M>;
1206
+ /**
1207
+ * A unit of {@link MagneticPermeability}.
1208
+ *
1209
+ * @group Units
1210
+ * @category Electromagnetic
1211
+ * @symbol `H/m`
1212
+ */
1213
+ export type HenryPerMeter = MagneticPermeabilityUnit<{}>;
1214
+ /**
1215
+ * Put the given {@link Unit} to the power of 2.
1216
+ *
1217
+ * @group Modifiers
1218
+ * @category General
1219
+ * @see {@link Pow}
1220
+ * @see {@link Cubic}
1221
+ */
1222
+ export type Square<T extends UnknownUnit | UnknownAbstractUnit | UnknownUnitConversionRate | UnknownUnitClass | UnknownUnitMeta> = T extends number ? Pow<T, 2> : T extends UnknownUnitClass ? UnitClass<PowUnitSubvalues<T["__uom_types__value"], 2>> : T extends UnknownUnitMeta ? UnitMeta<PowUnitSubvalues<T["__uom_types__value"], 2>> : never;
1223
+ /**
1224
+ * Put the given {@link Unit} to the power of 3.
1225
+ *
1226
+ * @group Modifiers
1227
+ * @category General
1228
+ * @see {@link Pow}
1229
+ * @see {@link Square}
1230
+ */
1231
+ export type Cubic<T extends UnknownUnit | UnknownAbstractUnit | UnknownUnitConversionRate | UnknownUnitClass | UnknownUnitMeta> = T extends number ? Pow<T, 3> : T extends UnknownUnitClass ? UnitClass<PowUnitSubvalues<T["__uom_types__value"], 3>> : T extends UnknownUnitMeta ? UnitMeta<PowUnitSubvalues<T["__uom_types__value"], 3>> : never;
1232
+ /**
1233
+ * Binary prefix denoting an order of magnitude of 10^1.
1234
+ *
1235
+ * @group Modifiers
1236
+ * @category Metric Prefixes
1237
+ */
1238
+ export type Deka<T extends UnknownUnit> = Multiply<T, UnitConversionRate<{
1239
+ scalar10: 1;
1240
+ }>>;
1241
+ /**
1242
+ * Binary prefix denoting an order of magnitude of 10^-1.
1243
+ *
1244
+ * @group Modifiers
1245
+ * @category Metric Prefixes
1246
+ */
1247
+ export type Deci<T extends UnknownUnit> = Multiply<T, UnitConversionRate<{
1248
+ scalar10: -1;
1249
+ }>>;
1250
+ /**
1251
+ * Binary prefix denoting an order of magnitude of 10^2.
1252
+ *
1253
+ * @group Modifiers
1254
+ * @category Metric Prefixes
1255
+ */
1256
+ export type Hecto<T extends UnknownUnit> = Multiply<T, UnitConversionRate<{
1257
+ scalar10: 2;
1258
+ }>>;
1259
+ /**
1260
+ * Binary prefix denoting an order of magnitude of 10^-2.
1261
+ *
1262
+ * @group Modifiers
1263
+ * @category Metric Prefixes
1264
+ */
1265
+ export type Centi<T extends UnknownUnit> = Multiply<T, UnitConversionRate<{
1266
+ scalar10: -2;
1267
+ }>>;
1268
+ /**
1269
+ * Binary prefix denoting an order of magnitude of 10^3.
1270
+ *
1271
+ * @group Modifiers
1272
+ * @category Metric Prefixes
1273
+ */
1274
+ export type Kilo<T extends UnknownUnit> = Multiply<T, UnitConversionRate<{
1275
+ scalar10: 3;
1276
+ }>>;
1277
+ /**
1278
+ * Binary prefix denoting an order of magnitude of 10^-3.
1279
+ *
1280
+ * @group Modifiers
1281
+ * @category Metric Prefixes
1282
+ */
1283
+ export type Milli<T extends UnknownUnit> = Multiply<T, UnitConversionRate<{
1284
+ scalar10: -3;
1285
+ }>>;
1286
+ /**
1287
+ * Binary prefix denoting an order of magnitude of 10^6.
1288
+ *
1289
+ * @group Modifiers
1290
+ * @category Metric Prefixes
1291
+ */
1292
+ export type Mega<T extends UnknownUnit> = Multiply<T, UnitConversionRate<{
1293
+ scalar10: 6;
1294
+ }>>;
1295
+ /**
1296
+ * Binary prefix denoting an order of magnitude of 10^-6.
1297
+ *
1298
+ * @group Modifiers
1299
+ * @category Metric Prefixes
1300
+ */
1301
+ export type Micro<T extends UnknownUnit> = Multiply<T, UnitConversionRate<{
1302
+ scalar10: -6;
1303
+ }>>;
1304
+ /**
1305
+ * Binary prefix denoting an order of magnitude of 10^9.
1306
+ *
1307
+ * @group Modifiers
1308
+ * @category Metric Prefixes
1309
+ */
1310
+ export type Giga<T extends UnknownUnit> = Multiply<T, UnitConversionRate<{
1311
+ scalar10: 9;
1312
+ }>>;
1313
+ /**
1314
+ * Binary prefix denoting an order of magnitude of 10^-9.
1315
+ *
1316
+ * @group Modifiers
1317
+ * @category Metric Prefixes
1318
+ */
1319
+ export type Nano<T extends UnknownUnit> = Multiply<T, UnitConversionRate<{
1320
+ scalar10: -9;
1321
+ }>>;
1322
+ /**
1323
+ * Binary prefix denoting an order of magnitude of 10^12.
1324
+ *
1325
+ * @group Modifiers
1326
+ * @category Metric Prefixes
1327
+ */
1328
+ export type Tera<T extends UnknownUnit> = Multiply<T, UnitConversionRate<{
1329
+ scalar10: 12;
1330
+ }>>;
1331
+ /**
1332
+ * Binary prefix denoting an order of magnitude of 10^-12.
1333
+ *
1334
+ * @group Modifiers
1335
+ * @category Metric Prefixes
1336
+ */
1337
+ export type Pico<T extends UnknownUnit> = Multiply<T, UnitConversionRate<{
1338
+ scalar10: -12;
1339
+ }>>;
1340
+ /**
1341
+ * Invert the {@link Unit}.
1342
+ *
1343
+ * @group Modifiers
1344
+ * @category General
1345
+ */
1346
+ export type Reciprocal<T extends UnknownUnit | UnknownAbstractUnit | UnknownUnitConversionRate | UnknownUnitClass | UnknownUnitMeta> = T extends number ? Inverse<T> : T extends UnknownUnitClass ? UnitClass<InverseUnitSubvalues<T["__uom_types__value"]>> : T extends UnknownUnitMeta ? UnitMeta<InverseUnitSubvalues<T["__uom_types__value"]>> : never;
1347
+ /**
1348
+ * @group Unit Classes
1349
+ * @category Electromagnetic
1350
+ */
1351
+ export type MagneticReluctanceUnitClass = Reciprocal<ElectricInductanceUnitClass>;
1352
+ /**
1353
+ * @group Abstract Units
1354
+ * @category Electromagnetic
1355
+ */
1356
+ export type MagneticReluctance = Reciprocal<ElectricInductance>;
1357
+ /**
1358
+ * @group Unit Generators
1359
+ * @category Electromagnetic
1360
+ */
1361
+ export type MagneticReluctanceUnit<M extends UnitSubvalues> = MagneticReluctanceUnitFrom<UnitMeta<M>>;
1362
+ /**
1363
+ * @group Unit Generators
1364
+ * @category Electromagnetic
1365
+ */
1366
+ export type MagneticReluctanceUnitFrom<M extends UnknownUnitMeta> = UnitFrom<MagneticReluctanceUnitClass, M>;
1367
+ /**
1368
+ * @group Unit Classes
1369
+ * @category Electromagnetic
1370
+ */
1371
+ export type MagneticRigidityUnitClass = BaseUnitClass<{
1372
+ Ampere: -1;
1373
+ Kilogram: 1;
1374
+ Meter: 1;
1375
+ Second: -2;
1376
+ }>;
1377
+ /**
1378
+ * @group Abstract Units
1379
+ * @category Electromagnetic
1380
+ */
1381
+ export type MagneticRigidity = AbstractUnitFrom<MagneticRigidityUnitClass>;
1382
+ /**
1383
+ * @group Unit Generators
1384
+ * @category Electromagnetic
1385
+ */
1386
+ export type MagneticRigidityUnit<M extends UnitSubvalues> = MagneticRigidityUnitFrom<UnitMeta<M>>;
1387
+ /**
1388
+ * @group Unit Generators
1389
+ * @category Electromagnetic
1390
+ */
1391
+ export type MagneticRigidityUnitFrom<M extends UnknownUnitMeta> = UnitFrom<MagneticRigidityUnitClass, M>;
1392
+ /**
1393
+ * A unit of {@link MagneticRigidity}.
1394
+ *
1395
+ * @group Units
1396
+ * @category Electromagnetic
1397
+ * @symbol `T⋅m`
1398
+ */
1399
+ export type TeslaMeter = MagneticRigidityUnit<{}>;
1400
+ /**
1401
+ * @group Unit Classes
1402
+ * @category Electromagnetic
1403
+ */
1404
+ export type MagneticSusceptibilityUnitClass = BaseUnitClass<{
1405
+ Kilogram: -1;
1406
+ Meter: -1;
1407
+ Second: 2;
1408
+ Ampere: 2;
1409
+ }>;
1410
+ /**
1411
+ * @group Abstract Units
1412
+ * @category Electromagnetic
1413
+ */
1414
+ export type MagneticSusceptibility = AbstractUnitFrom<MagneticSusceptibilityUnitClass>;
1415
+ /**
1416
+ * @group Unit Generators
1417
+ * @category Electromagnetic
1418
+ */
1419
+ export type MagneticSusceptibilityUnit<M extends UnitSubvalues> = MagneticSusceptibilityUnitFrom<UnitMeta<M>>;
1420
+ /**
1421
+ * @group Unit Generators
1422
+ * @category Electromagnetic
1423
+ */
1424
+ export type MagneticSusceptibilityUnitFrom<M extends UnknownUnitMeta> = UnitFrom<MagneticSusceptibilityUnitClass, M>;
1425
+ /**
1426
+ * A unit of {@link MagneticSusceptibility}.
1427
+ *
1428
+ * @group Units
1429
+ * @category Electromagnetic
1430
+ * @symbol `m/H`
1431
+ */
1432
+ export type MeterPerHenry = MagneticSusceptibilityUnit<{}>;
1433
+ /**
1434
+ * @group Unit Classes
1435
+ * @category Electromagnetic
1436
+ */
1437
+ export type MagneticVectorPotentialUnitClass = BaseUnitClass<{
1438
+ Kilogram: 1;
1439
+ Meter: 1;
1440
+ Second: -2;
1441
+ Ampere: -1;
1442
+ }>;
1443
+ /**
1444
+ * @group Abstract Units
1445
+ * @category Electromagnetic
1446
+ */
1447
+ export type MagneticVectorPotential = AbstractUnitFrom<MagneticVectorPotentialUnitClass>;
1448
+ /**
1449
+ * @group Unit Generators
1450
+ * @category Electromagnetic
1451
+ */
1452
+ export type MagneticVectorPotentialUnit<M extends UnitSubvalues> = MagneticVectorPotentialUnitFrom<UnitMeta<M>>;
1453
+ /**
1454
+ * @group Unit Generators
1455
+ * @category Electromagnetic
1456
+ */
1457
+ export type MagneticVectorPotentialUnitFrom<M extends UnknownUnitMeta> = UnitFrom<MagneticVectorPotentialUnitClass, M>;
1458
+ /**
1459
+ * A unit of {@link MagneticVectorPotential}.
1460
+ *
1461
+ * @group Units
1462
+ * @category Electromagnetic
1463
+ * @symbol `Wb/m`
1464
+ */
1465
+ export type WeberPerMeter = MagneticVectorPotentialUnit<{}>;
1466
+ /**
1467
+ * @group Unit Classes
1468
+ * @category Electromagnetic
1469
+ */
1470
+ export type MagnetomotiveForceUnitClass = BaseUnitClass<{
1471
+ Ampere: 1;
1472
+ Radian: 1;
1473
+ }>;
1474
+ /**
1475
+ * @group Abstract Units
1476
+ * @category Electromagnetic
1477
+ */
1478
+ export type MagnetomotiveForce = AbstractUnitFrom<MagnetomotiveForceUnitClass>;
1479
+ /**
1480
+ * @group Unit Generators
1481
+ * @category Electromagnetic
1482
+ */
1483
+ export type MagnetomotiveForceUnit<M extends UnitSubvalues> = MagnetomotiveForceUnitFrom<UnitMeta<M>>;
1484
+ /**
1485
+ * @group Unit Generators
1486
+ * @category Electromagnetic
1487
+ */
1488
+ export type MagnetomotiveForceUnitFrom<M extends UnknownUnitMeta> = UnitFrom<MagnetomotiveForceUnitClass, M>;
1489
+ /**
1490
+ * A unit of {@link MagnetomotiveForce}.
1491
+ *
1492
+ * @group Units
1493
+ * @category Electromagnetic
1494
+ * @symbol `A⋅rad`
1495
+ */
1496
+ export type AmpereRadian = MagnetomotiveForceUnit<{}>;
1497
+ /**
1498
+ * @group Unit Classes
1499
+ * @category Electromagnetic
1500
+ */
1501
+ export type PermittivityUnitClass = BaseUnitClass<{
1502
+ Ampere: 2;
1503
+ Second: 4;
1504
+ Kilogram: -1;
1505
+ Meter: -3;
1506
+ }>;
1507
+ /**
1508
+ * @group Abstract Units
1509
+ * @category Electromagnetic
1510
+ */
1511
+ export type Permittivity = AbstractUnitFrom<PermittivityUnitClass>;
1512
+ /**
1513
+ * @group Unit Generators
1514
+ * @category Electromagnetic
1515
+ */
1516
+ export type PermittivityUnit<M extends UnitSubvalues> = PermittivityUnitFrom<UnitMeta<M>>;
1517
+ /**
1518
+ * @group Unit Generators
1519
+ * @category Electromagnetic
1520
+ */
1521
+ export type PermittivityUnitFrom<M extends UnknownUnitMeta> = UnitFrom<PermittivityUnitClass, M>;
1522
+ /**
1523
+ * A unit of {@link Permittivity}.
1524
+ *
1525
+ * @group Units
1526
+ * @category Electromagnetic
1527
+ * @symbol `F/m`
1528
+ */
1529
+ export type FaradPerMeter = PermittivityUnit<{}>;
1530
+ /**
1531
+ * @group Unit Classes
1532
+ * @category Electromagnetic
1533
+ */
1534
+ export type ResistivityUnitClass = BaseUnitClass<{
1535
+ Ampere: -2;
1536
+ Kilogram: 1;
1537
+ Meter: 3;
1538
+ Second: -3;
1539
+ }>;
1540
+ /**
1541
+ * @group Abstract Units
1542
+ * @category Electromagnetic
1543
+ */
1544
+ export type Resistivity = AbstractUnitFrom<ResistivityUnitClass>;
1545
+ /**
1546
+ * @group Unit Generators
1547
+ * @category Electromagnetic
1548
+ */
1549
+ export type ResistivityUnit<M extends UnitSubvalues> = ResistivityUnitFrom<UnitMeta<M>>;
1550
+ /**
1551
+ * @group Unit Generators
1552
+ * @category Electromagnetic
1553
+ */
1554
+ export type ResistivityUnitFrom<M extends UnknownUnitMeta> = UnitFrom<ResistivityUnitClass, M>;
1555
+ /**
1556
+ * A unit of {@link Resistivity}.
1557
+ *
1558
+ * @group Units
1559
+ * @category Electromagnetic
1560
+ * @symbol `Ωm`
1561
+ */
1562
+ export type OhmMeter = ResistivityUnit<{}>;
1563
+ /**
1564
+ * @group Unit Classes
1565
+ */
1566
+ export type IdentityUnitClass = BaseUnitClass<{}>;
1567
+ /**
1568
+ * @group Abstract Units
1569
+ */
1570
+ export type Identity = AbstractUnitFrom<IdentityUnitClass>;
1571
+ /**
1572
+ * @group Unit Generators
1573
+ */
1574
+ export type IdentityUnit<M extends UnitSubvalues> = IdentityUnitFrom<UnitMeta<M>>;
1575
+ /**
1576
+ * @group Unit Generators
1577
+ */
1578
+ export type IdentityUnitFrom<M extends UnknownUnitMeta> = UnitFrom<IdentityUnitClass, M>;
1579
+ /**
1580
+ * A {@link Unit} with no units.
1581
+ *
1582
+ * @group Units
1583
+ * @category Base
1584
+ * @symbol ``
1585
+ */
1586
+ export type Unitless = IdentityUnit<{}>;
1587
+ /**
1588
+ * @group Unit Classes
1589
+ * @category Kinematic
1590
+ */
1591
+ export type AccelerationUnitClass = BaseUnitClass<{
1592
+ Meter: 1;
1593
+ Second: -2;
1594
+ }>;
1595
+ /**
1596
+ * @group Abstract Units
1597
+ * @category Kinematic
1598
+ */
1599
+ export type Acceleration = AbstractUnitFrom<AccelerationUnitClass>;
1600
+ /**
1601
+ * @group Unit Generators
1602
+ * @category Kinematic
1603
+ */
1604
+ export type AccelerationUnit<M extends UnitSubvalues> = AccelerationUnitFrom<UnitMeta<M>>;
1605
+ /**
1606
+ * @group Unit Generators
1607
+ * @category Kinematic
1608
+ */
1609
+ export type AccelerationUnitFrom<M extends UnknownUnitMeta> = UnitFrom<AccelerationUnitClass, M>;
1610
+ /**
1611
+ * A unit of {@link Acceleration}.
1612
+ *
1613
+ * @group Units
1614
+ * @category Kinematic
1615
+ * @symbol `m/s²`
1616
+ */
1617
+ export type MeterPerSecondSquared = AccelerationUnit<{}>;
1618
+ /**
1619
+ * @group Unit Classes
1620
+ * @category Kinematic
1621
+ */
1622
+ export type AngularAccelerationUnitClass = BaseUnitClass<{
1623
+ Radian: 1;
1624
+ Second: -2;
1625
+ }>;
1626
+ /**
1627
+ * @group Abstract Units
1628
+ * @category Kinematic
1629
+ */
1630
+ export type AngularAcceleration = AbstractUnitFrom<AngularAccelerationUnitClass>;
1631
+ /**
1632
+ * @group Unit Generators
1633
+ * @category Kinematic
1634
+ */
1635
+ export type AngularAccelerationUnit<M extends UnitSubvalues> = AngularAccelerationUnitFrom<UnitMeta<M>>;
1636
+ /**
1637
+ * @group Unit Generators
1638
+ * @category Kinematic
1639
+ */
1640
+ export type AngularAccelerationUnitFrom<M extends UnknownUnitMeta> = UnitFrom<AngularAccelerationUnitClass, M>;
1641
+ /**
1642
+ * A unit of {@link AngularAcceleration}.
1643
+ *
1644
+ * @group Units
1645
+ * @category Kinematic
1646
+ * @symbol `rad/s²`
1647
+ */
1648
+ export type RadianPerSecondSquared = AngularAccelerationUnit<{}>;
1649
+ /**
1650
+ * @group Unit Classes
1651
+ * @category Kinematic
1652
+ */
1653
+ export type AngularMomentumUnitClass = BaseUnitClass<{
1654
+ Kilogram: 1;
1655
+ Meter: 2;
1656
+ Second: -1;
1657
+ Radian: -1;
1658
+ }>;
1659
+ /**
1660
+ * @group Abstract Units
1661
+ * @category Kinematic
1662
+ */
1663
+ export type AngularMomentum = AbstractUnitFrom<AngularMomentumUnitClass>;
1664
+ /**
1665
+ * @group Unit Generators
1666
+ * @category Kinematic
1667
+ */
1668
+ export type AngularMomentumUnit<M extends UnitSubvalues> = AngularMomentumUnitFrom<UnitMeta<M>>;
1669
+ /**
1670
+ * @group Unit Generators
1671
+ * @category Kinematic
1672
+ */
1673
+ export type AngularMomentumUnitFrom<M extends UnknownUnitMeta> = UnitFrom<AngularMomentumUnitClass, M>;
1674
+ /**
1675
+ * A unit of {@link AngularMomentum}.
1676
+ *
1677
+ * @group Units
1678
+ * @category Kinematic
1679
+ * @symbol `J⋅s/rad`
1680
+ */
1681
+ export type JouleSecondPerRadian = AngularMomentumUnit<{}>;
1682
+ /**
1683
+ * @group Unit Classes
1684
+ * @category Kinematic
1685
+ */
1686
+ export type AngularVelocityUnitClass = BaseUnitClass<{
1687
+ Radian: 1;
1688
+ Second: -1;
1689
+ }>;
1690
+ /**
1691
+ * @group Abstract Units
1692
+ * @category Kinematic
1693
+ */
1694
+ export type AngularVelocity = AbstractUnitFrom<AngularVelocityUnitClass>;
1695
+ /**
1696
+ * @group Unit Generators
1697
+ * @category Kinematic
1698
+ */
1699
+ export type AngularVelocityUnit<M extends UnitSubvalues> = AngularVelocityUnitFrom<UnitMeta<M>>;
1700
+ /**
1701
+ * @group Unit Generators
1702
+ * @category Kinematic
1703
+ */
1704
+ export type AngularVelocityUnitFrom<M extends UnknownUnitMeta> = UnitFrom<AngularVelocityUnitClass, M>;
1705
+ /**
1706
+ * A unit of {@link AngularVelocity}.
1707
+ *
1708
+ * @group Units
1709
+ * @category Kinematic
1710
+ * @symbol `rad/s`
1711
+ */
1712
+ export type RadianPerSecond = AngularVelocityUnit<{}>;
1713
+ /**
1714
+ * @group Unit Classes
1715
+ * @category Kinematic
1716
+ */
1717
+ export type CrackleUnitClass = BaseUnitClass<{
1718
+ Meter: 1;
1719
+ Second: -5;
1720
+ }>;
1721
+ /**
1722
+ * @group Abstract Units
1723
+ * @category Kinematic
1724
+ */
1725
+ export type Crackle = AbstractUnitFrom<CrackleUnitClass>;
1726
+ /**
1727
+ * @group Unit Generators
1728
+ * @category Kinematic
1729
+ */
1730
+ export type CrackleUnit<M extends UnitSubvalues> = CrackleUnitFrom<UnitMeta<M>>;
1731
+ /**
1732
+ * @group Unit Generators
1733
+ * @category Kinematic
1734
+ */
1735
+ export type CrackleUnitFrom<M extends UnknownUnitMeta> = UnitFrom<CrackleUnitClass, M>;
1736
+ /**
1737
+ * A unit of {@link Crackle}.
1738
+ *
1739
+ * @group Units
1740
+ * @category Kinematic
1741
+ * @symbol `m/s⁵`
1742
+ */
1743
+ export type MeterPerSecondToTheFifth = CrackleUnit<{}>;
1744
+ /**
1745
+ * @group Unit Classes
1746
+ * @category Kinematic
1747
+ */
1748
+ export type FrequencyDriftUnitClass = BaseUnitClass<{
1749
+ Second: -2;
1750
+ }>;
1751
+ /**
1752
+ * @group Abstract Units
1753
+ * @category Kinematic
1754
+ */
1755
+ export type FrequencyDrift = AbstractUnitFrom<FrequencyDriftUnitClass>;
1756
+ /**
1757
+ * @group Unit Generators
1758
+ * @category Kinematic
1759
+ */
1760
+ export type FrequencyDriftUnit<M extends UnitSubvalues> = FrequencyDriftUnitFrom<UnitMeta<M>>;
1761
+ /**
1762
+ * @group Unit Generators
1763
+ * @category Kinematic
1764
+ */
1765
+ export type FrequencyDriftUnitFrom<M extends UnknownUnitMeta> = UnitFrom<FrequencyDriftUnitClass, M>;
1766
+ /**
1767
+ * A unit of {@link FrequencyDrift} equal to one hertz per second.
1768
+ *
1769
+ * @group Units
1770
+ * @category Kinematic
1771
+ * @symbol `Hz/s`
1772
+ */
1773
+ export type HertzPerSecond = FrequencyDriftUnit<{}>;
1774
+ /**
1775
+ * @group Unit Classes
1776
+ * @category Kinematic
1777
+ */
1778
+ export type FrequencyUnitClass = Reciprocal<DurationUnitClass>;
1779
+ /**
1780
+ * @group Abstract Units
1781
+ * @category Kinematic
1782
+ */
1783
+ export type Frequency = Reciprocal<Duration>;
1784
+ /**
1785
+ * @group Unit Generators
1786
+ * @category Kinematic
1787
+ */
1788
+ export type FrequencyUnit<M extends UnitSubvalues> = FrequencyUnitFrom<UnitMeta<M>>;
1789
+ /**
1790
+ * @group Unit Generators
1791
+ * @category Kinematic
1792
+ */
1793
+ export type FrequencyUnitFrom<M extends UnknownUnitMeta> = UnitFrom<FrequencyUnitClass, M>;
1794
+ /**
1795
+ * A unit of {@link Frequency}.
1796
+ *
1797
+ * One hertz is equal to one cycle per second.
1798
+ *
1799
+ * @group Units
1800
+ * @category Derived
1801
+ * @category Kinematic
1802
+ * @symbol `Hz`
1803
+ */
1804
+ export type Hertz = FrequencyUnit<{}>;
1805
+ /**
1806
+ * A unit of {@link Frequency}.
1807
+ *
1808
+ * @group Units
1809
+ * @category Kinematic
1810
+ * @symbol `s⁻¹`
1811
+ */
1812
+ export type PerSecond = Hertz;
1813
+ /**
1814
+ * A unit of {@link Frequency}.
1815
+ *
1816
+ * @group Units
1817
+ * @category Kinematic
1818
+ * @symbol `min⁻¹`
1819
+ */
1820
+ export type PerMinute = FrequencyUnit<{
1821
+ scalar60: -1;
1822
+ }>;
1823
+ /**
1824
+ * A unit of {@link Frequency}.
1825
+ *
1826
+ * @group Units
1827
+ * @category Kinematic
1828
+ * @symbol `hr⁻¹`
1829
+ */
1830
+ export type PerHour = FrequencyUnit<{
1831
+ scalar60: -2;
1832
+ }>;
1833
+ /**
1834
+ * A unit of {@link Frequency}.
1835
+ *
1836
+ * @group Units
1837
+ * @category Kinematic
1838
+ * @symbol `day⁻¹`
1839
+ */
1840
+ export type PerDay = FrequencyUnit<{
1841
+ scalar60: -2;
1842
+ scalar24: -1;
1843
+ }>;
1844
+ /**
1845
+ * A unit of {@link Frequency}.
1846
+ *
1847
+ * @group Units
1848
+ * @category Kinematic
1849
+ * @symbol `wk⁻¹`
1850
+ */
1851
+ export type PerWeek = FrequencyUnit<{
1852
+ scalar60: -2;
1853
+ scalar24: -1;
1854
+ scalar7: -1;
1855
+ }>;
1856
+ /**
1857
+ * A unit of {@link Frequency}.
1858
+ *
1859
+ * @group Units
1860
+ * @category Kinematic
1861
+ * @symbol `yr⁻¹`
1862
+ */
1863
+ export type PerYear = FrequencyUnit<{
1864
+ scalar60: -2;
1865
+ scalar24: -1;
1866
+ scalarDayInYear: -1;
1867
+ }>;
1868
+ /**
1869
+ * @group Unit Classes
1870
+ * @category Kinematic
1871
+ */
1872
+ export type JerkUnitClass = BaseUnitClass<{
1873
+ Meter: 1;
1874
+ Second: -3;
1875
+ }>;
1876
+ /**
1877
+ * @group Abstract Units
1878
+ * @category Kinematic
1879
+ */
1880
+ export type Jerk = AbstractUnitFrom<JerkUnitClass>;
1881
+ /**
1882
+ * @group Unit Generators
1883
+ * @category Kinematic
1884
+ */
1885
+ export type JerkUnit<M extends UnitSubvalues> = JerkUnitFrom<UnitMeta<M>>;
1886
+ /**
1887
+ * @group Unit Generators
1888
+ * @category Kinematic
1889
+ */
1890
+ export type JerkUnitFrom<M extends UnknownUnitMeta> = UnitFrom<JerkUnitClass, M>;
1891
+ /**
1892
+ * A unit of {@link Jerk}.
1893
+ *
1894
+ * @group Units
1895
+ * @category Kinematic
1896
+ * @symbol `m/s³`
1897
+ */
1898
+ export type MeterPerSecondCubed = JerkUnit<{}>;
1899
+ /**
1900
+ * @group Unit Classes
1901
+ * @category Kinematic
1902
+ */
1903
+ export type PopUnitClass = BaseUnitClass<{
1904
+ Meter: 1;
1905
+ Second: -6;
1906
+ }>;
1907
+ /**
1908
+ * @group Abstract Units
1909
+ * @category Kinematic
1910
+ */
1911
+ export type Pop = AbstractUnitFrom<PopUnitClass>;
1912
+ /**
1913
+ * @group Unit Generators
1914
+ * @category Kinematic
1915
+ */
1916
+ export type PopUnit<M extends UnitSubvalues> = PopUnitFrom<UnitMeta<M>>;
1917
+ /**
1918
+ * @group Unit Generators
1919
+ * @category Kinematic
1920
+ */
1921
+ export type PopUnitFrom<M extends UnknownUnitMeta> = UnitFrom<PopUnitClass, M>;
1922
+ /**
1923
+ * A unit of {@link Pop}.
1924
+ *
1925
+ * @group Units
1926
+ * @category Kinematic
1927
+ * @symbol `m/s⁶`
1928
+ */
1929
+ export type MeterPerSecondToTheSixth = PopUnit<{}>;
1930
+ /**
1931
+ * @group Unit Classes
1932
+ * @category Kinematic
1933
+ */
1934
+ export type SnapUnitClass = BaseUnitClass<{
1935
+ Meter: 1;
1936
+ Second: -4;
1937
+ }>;
1938
+ /**
1939
+ * @group Abstract Units
1940
+ * @category Kinematic
1941
+ */
1942
+ export type Snap = AbstractUnitFrom<SnapUnitClass>;
1943
+ /**
1944
+ * @group Unit Generators
1945
+ * @category Kinematic
1946
+ */
1947
+ export type SnapUnit<M extends UnitSubvalues> = SnapUnitFrom<UnitMeta<M>>;
1948
+ /**
1949
+ * @group Unit Generators
1950
+ * @category Kinematic
1951
+ */
1952
+ export type SnapUnitFrom<M extends UnknownUnitMeta> = UnitFrom<SnapUnitClass, M>;
1953
+ /**
1954
+ * A unit of {@link Snap}.
1955
+ *
1956
+ * @group Units
1957
+ * @category Kinematic
1958
+ * @symbol `m/s⁴`
1959
+ */
1960
+ export type MeterPerSecondToTheFourth = SnapUnit<{}>;
1961
+ /**
1962
+ * @group Unit Classes
1963
+ * @category Kinematic
1964
+ */
1965
+ export type TorqueUnitClass = BaseUnitClass<{
1966
+ Kilogram: 1;
1967
+ Meter: 2;
1968
+ Second: -2;
1969
+ Radian: -1;
1970
+ }>;
1971
+ /**
1972
+ * @group Abstract Units
1973
+ * @category Kinematic
1974
+ */
1975
+ export type Torque = AbstractUnitFrom<TorqueUnitClass>;
1976
+ /**
1977
+ * @group Unit Generators
1978
+ * @category Kinematic
1979
+ */
1980
+ export type TorqueUnit<M extends UnitSubvalues> = TorqueUnitFrom<UnitMeta<M>>;
1981
+ /**
1982
+ * @group Unit Generators
1983
+ * @category Kinematic
1984
+ */
1985
+ export type TorqueUnitFrom<M extends UnknownUnitMeta> = UnitFrom<TorqueUnitClass, M>;
1986
+ /**
1987
+ * A unit of {@link Torque}.
1988
+ *
1989
+ * @group Units
1990
+ * @category Kinematic
1991
+ * @symbol `J/rad`
1992
+ */
1993
+ export type JoulePerRadian = TorqueUnit<{}>;
1994
+ /**
1995
+ * A unit of {@link Torque}.
1996
+ *
1997
+ * @group Units
1998
+ * @category Kinematic
1999
+ * @symbol `N⋅m/rad`
2000
+ */
2001
+ export type NewtonMeterPerRadian = JoulePerRadian;
2002
+ /**
2003
+ * @group Unit Classes
2004
+ * @category Kinematic
2005
+ */
2006
+ export type VelocityUnitClass = BaseUnitClass<{
2007
+ Meter: 1;
2008
+ Second: -1;
2009
+ }>;
2010
+ /**
2011
+ * @group Abstract Units
2012
+ * @category Kinematic
2013
+ */
2014
+ export type Velocity = AbstractUnitFrom<VelocityUnitClass>;
2015
+ /**
2016
+ * @group Unit Generators
2017
+ * @category Kinematic
2018
+ */
2019
+ export type VelocityUnit<M extends UnitSubvalues> = VelocityUnitFrom<UnitMeta<M>>;
2020
+ /**
2021
+ * @group Unit Generators
2022
+ * @category Kinematic
2023
+ */
2024
+ export type VelocityUnitFrom<M extends UnknownUnitMeta> = UnitFrom<VelocityUnitClass, M>;
2025
+ /**
2026
+ * A unit of {@link Velocity}.
2027
+ *
2028
+ * @group Units
2029
+ * @category Kinematic
2030
+ * @symbol `m/s`
2031
+ */
2032
+ export type MeterPerSecond = VelocityUnit<{}>;
2033
+ /**
2034
+ * @group Unit Classes
2035
+ * @category Kinematic
2036
+ */
2037
+ export type VolumetricFlowUnitClass = BaseUnitClass<{
2038
+ Meter: 3;
2039
+ Second: -1;
2040
+ }>;
2041
+ /**
2042
+ * @group Unit Classes
2043
+ * @category Kinematic
2044
+ */
2045
+ export type VolumetricFlow = AbstractUnitFrom<VolumetricFlowUnitClass>;
2046
+ /**
2047
+ * @group Unit Classes
2048
+ * @category Kinematic
2049
+ */
2050
+ export type VolumetricFlowUnit<M extends UnitSubvalues> = VolumetricFlowUnitFrom<UnitMeta<M>>;
2051
+ /**
2052
+ * @group Unit Classes
2053
+ * @category Kinematic
2054
+ */
2055
+ export type VolumetricFlowUnitFrom<M extends UnknownUnitMeta> = UnitFrom<VolumetricFlowUnitClass, M>;
2056
+ /**
2057
+ * A unit of {@link VolumetricFlow}.
2058
+ *
2059
+ * @group Units
2060
+ * @category Kinematic
2061
+ * @symbol `m³/s`
2062
+ */
2063
+ export type CubicMeterPerSecond = VolumetricFlowUnit<{}>;
2064
+ /**
2065
+ * @group Unit Classes
2066
+ * @category Mechanical
2067
+ */
2068
+ export type AbsorbedDoseRateUnitClass = BaseUnitClass<{
2069
+ Meter: 2;
2070
+ Second: -3;
2071
+ }>;
2072
+ /**
2073
+ * @group Abstract Units
2074
+ * @category Mechanical
2075
+ */
2076
+ export type AbsorbedDoseRate = AbstractUnitFrom<AbsorbedDoseRateUnitClass>;
2077
+ /**
2078
+ * @group Unit Generators
2079
+ * @category Mechanical
2080
+ */
2081
+ export type AbsorbedDoseRateUnit<M extends UnitSubvalues> = AbsorbedDoseRateUnitFrom<UnitMeta<M>>;
2082
+ /**
2083
+ * @group Unit Generators
2084
+ * @category Mechanical
2085
+ */
2086
+ export type AbsorbedDoseRateUnitFrom<M extends UnknownUnitMeta> = UnitFrom<AbsorbedDoseRateUnitClass, M>;
2087
+ /**
2088
+ * A unit of {@link AbsorbedDoseRate}.
2089
+ *
2090
+ * @group Units
2091
+ * @category Mechanical
2092
+ * @symbol `Gy/s`
2093
+ */
2094
+ export type GrayPerSecond = AbsorbedDoseRateUnit<{}>;
2095
+ /**
2096
+ * @group Unit Classes
2097
+ * @category Mechanical
2098
+ */
2099
+ export type ActionUnitClass = BaseUnitClass<{
2100
+ Kilogram: 1;
2101
+ Meter: 2;
2102
+ Second: -1;
2103
+ }>;
2104
+ /**
2105
+ * @group Abstract Units
2106
+ * @category Mechanical
2107
+ */
2108
+ export type Action = AbstractUnitFrom<ActionUnitClass>;
2109
+ /**
2110
+ * @group Unit Generators
2111
+ * @category Mechanical
2112
+ */
2113
+ export type ActionUnit<M extends UnitSubvalues> = ActionUnitFrom<UnitMeta<M>>;
2114
+ /**
2115
+ * @group Unit Generators
2116
+ * @category Mechanical
2117
+ */
2118
+ export type ActionUnitFrom<M extends UnknownUnitMeta> = UnitFrom<ActionUnitClass, M>;
2119
+ /**
2120
+ * A unit of {@link Action}.
2121
+ *
2122
+ * @group Units
2123
+ * @category Mechanical
2124
+ * @symbol `Js`
2125
+ */
2126
+ export type JouleSecond = ActionUnit<{}>;
2127
+ /**
2128
+ * @group Unit Classes
2129
+ * @category Mechanical
2130
+ */
2131
+ export type SpecificAngularMomentumUnitClass = BaseUnitClass<{
2132
+ Meter: 2;
2133
+ Second: -1;
2134
+ Radian: -1;
2135
+ }>;
2136
+ /**
2137
+ * @group Abstract Units
2138
+ * @category Mechanical
2139
+ */
2140
+ export type SpecificAngularMomentum = AbstractUnitFrom<SpecificAngularMomentumUnitClass>;
2141
+ /**
2142
+ * @group Unit Generators
2143
+ * @category Mechanical
2144
+ */
2145
+ export type SpecificAngularMomentumUnit<M extends UnitSubvalues> = SpecificAngularMomentumUnitFrom<UnitMeta<M>>;
2146
+ /**
2147
+ * @group Unit Generators
2148
+ * @category Mechanical
2149
+ */
2150
+ export type SpecificAngularMomentumUnitFrom<M extends UnknownUnitMeta> = UnitFrom<SpecificAngularMomentumUnitClass, M>;
2151
+ /**
2152
+ * A unit of {@link SpecificAngularMomentum}.
2153
+ *
2154
+ * @group Units
2155
+ * @category Mechanical
2156
+ * @symbol `J⋅s/rad/kg`
2157
+ */
2158
+ export type JouleSecondPerRadianPerKilogram = SpecificAngularMomentumUnit<{}>;
2159
+ /**
2160
+ * A unit of {@link SpecificAngularMomentum}.
2161
+ *
2162
+ * @group Units
2163
+ * @category Mechanical
2164
+ * @symbol `N⋅m⋅s/rad/kg`
2165
+ */
2166
+ export type NewtonMeterSecondPerRadianPerKilogram = JouleSecondPerRadianPerKilogram;
2167
+ /**
2168
+ * @group Unit Classes
2169
+ * @category Mechanical
2170
+ */
2171
+ export type AreaUnitClass = BaseUnitClass<{
2172
+ Meter: 2;
2173
+ }>;
2174
+ /**
2175
+ * @group Abstract Units
2176
+ * @category Mechanical
2177
+ */
2178
+ export type Area = AbstractUnitFrom<AreaUnitClass>;
2179
+ /**
2180
+ * @group Unit Generators
2181
+ * @category Mechanical
2182
+ */
2183
+ export type AreaUnit<M extends UnitSubvalues> = AreaUnitFrom<UnitMeta<M>>;
2184
+ /**
2185
+ * @group Unit Generators
2186
+ * @category Mechanical
2187
+ */
2188
+ export type AreaUnitFrom<M extends UnknownUnitMeta> = UnitFrom<AreaUnitClass, M>;
2189
+ /**
2190
+ * A unit of {@link Area} equal to 100 {@link Square}<{@link Meter}>.
2191
+ *
2192
+ * @group Units
2193
+ * @category Mechanical
2194
+ * @symbol `a`
2195
+ */
2196
+ export type Are = AreaUnit<{
2197
+ scalar10: 2;
2198
+ }>;
2199
+ /**
2200
+ * A unit of {@link Area} equal to 10,000 {@link Square}<{@link Meter}>.
2201
+ *
2202
+ * @group Units
2203
+ * @category Mechanical
2204
+ * @symbol `ha`
2205
+ */
2206
+ export type Hectare = AreaUnit<{
2207
+ scalar10: 4;
2208
+ }>;
2209
+ /**
2210
+ * @group Unit Classes
2211
+ * @category Mechanical
2212
+ */
2213
+ export type CompressibilityUnitClass = Reciprocal<PressureUnitClass>;
2214
+ /**
2215
+ * @group Abstract Units
2216
+ * @category Mechanical
2217
+ */
2218
+ export type Compressibility = Reciprocal<Pressure>;
2219
+ /**
2220
+ * @group Unit Generators
2221
+ * @category Mechanical
2222
+ */
2223
+ export type CompressibilityUnit<M extends UnitSubvalues> = CompressibilityUnitFrom<UnitMeta<M>>;
2224
+ /**
2225
+ * @group Unit Generators
2226
+ * @category Mechanical
2227
+ */
2228
+ export type CompressibilityUnitFrom<M extends UnknownUnitMeta> = UnitFrom<CompressibilityUnitClass, M>;
2229
+ /**
2230
+ * @group Unit Classes
2231
+ * @category Mechanical
2232
+ */
2233
+ export type DensityUnitClass = BaseUnitClass<{
2234
+ Kilogram: 1;
2235
+ Meter: -3;
2236
+ }>;
2237
+ /**
2238
+ * @group Abstract Units
2239
+ * @category Mechanical
2240
+ */
2241
+ export type Density = AbstractUnitFrom<DensityUnitClass>;
2242
+ /**
2243
+ * @group Unit Generators
2244
+ * @category Mechanical
2245
+ */
2246
+ export type DensityUnit<M extends UnitSubvalues> = DensityUnitFrom<UnitMeta<M>>;
2247
+ /**
2248
+ * @group Unit Generators
2249
+ * @category Mechanical
2250
+ */
2251
+ export type DensityUnitFrom<M extends UnknownUnitMeta> = UnitFrom<DensityUnitClass, M>;
2252
+ /**
2253
+ * A unit of {@link Density}.
2254
+ *
2255
+ * @group Units
2256
+ * @category Mechanical
2257
+ * @symbol `kg/m³`
2258
+ */
2259
+ export type KilogramPerCubicMeter = DensityUnit<{}>;
2260
+ /**
2261
+ * @group Unit Classes
2262
+ * @category Mechanical
2263
+ */
2264
+ export type DynamicViscosityUnitClass = BaseUnitClass<{
2265
+ Kilogram: 1;
2266
+ Meter: -1;
2267
+ Second: -1;
2268
+ }>;
2269
+ /**
2270
+ * @group Abstract Units
2271
+ * @category Mechanical
2272
+ */
2273
+ export type DynamicViscosity = AbstractUnitFrom<DynamicViscosityUnitClass>;
2274
+ /**
2275
+ * @group Unit Generators
2276
+ * @category Mechanical
2277
+ */
2278
+ export type DynamicViscosityUnit<M extends UnitSubvalues> = DynamicViscosityUnitFrom<UnitMeta<M>>;
2279
+ /**
2280
+ * @group Unit Generators
2281
+ * @category Mechanical
2282
+ */
2283
+ export type DynamicViscosityUnitFrom<M extends UnknownUnitMeta> = UnitFrom<DynamicViscosityUnitClass, M>;
2284
+ /**
2285
+ * A unit of {@link DynamicViscosity}.
2286
+ *
2287
+ * @group Units
2288
+ * @category Mechanical
2289
+ * @symbol `Pa⋅s`
2290
+ */
2291
+ export type PascalSecond = DynamicViscosityUnit<{}>;
2292
+ /**
2293
+ * @group Unit Classes
2294
+ * @category Mechanical
2295
+ */
2296
+ export type EnergyDensityUnitClass = BaseUnitClass<{
2297
+ Kilogram: 1;
2298
+ Meter: -1;
2299
+ Second: -2;
2300
+ }>;
2301
+ /**
2302
+ * @group Abstract Units
2303
+ * @category Mechanical
2304
+ */
2305
+ export type EnergyDensity = AbstractUnitFrom<EnergyDensityUnitClass>;
2306
+ /**
2307
+ * @group Unit Generators
2308
+ * @category Mechanical
2309
+ */
2310
+ export type EnergyDensityUnit<M extends UnitSubvalues> = EnergyDensityUnitFrom<UnitMeta<M>>;
2311
+ /**
2312
+ * @group Unit Generators
2313
+ * @category Mechanical
2314
+ */
2315
+ export type EnergyDensityUnitFrom<M extends UnknownUnitMeta> = UnitFrom<EnergyDensityUnitClass, M>;
2316
+ /**
2317
+ * A unit of {@link EnergyDensity}.
2318
+ *
2319
+ * @group Units
2320
+ * @category Mechanical
2321
+ * @symbol `J/m³`
2322
+ */
2323
+ export type JoulePerCubicMeter = EnergyDensityUnit<{}>;
2324
+ /**
2325
+ * @group Unit Classes
2326
+ * @category Mechanical
2327
+ */
2328
+ export type EnergyFluxDensityUnitClass = BaseUnitClass<{
2329
+ Kilogram: 1;
2330
+ Second: -3;
2331
+ }>;
2332
+ /**
2333
+ * @group Abstract Units
2334
+ * @category Mechanical
2335
+ */
2336
+ export type EnergyFluxDensity = AbstractUnitFrom<EnergyFluxDensityUnitClass>;
2337
+ /**
2338
+ * @group Unit Generators
2339
+ * @category Mechanical
2340
+ */
2341
+ export type EnergyFluxDensityUnit<M extends UnitSubvalues> = EnergyFluxDensityUnitFrom<UnitMeta<M>>;
2342
+ /**
2343
+ * @group Unit Generators
2344
+ * @category Mechanical
2345
+ */
2346
+ export type EnergyFluxDensityUnitFrom<M extends UnknownUnitMeta> = UnitFrom<EnergyFluxDensityUnitClass, M>;
2347
+ /**
2348
+ * A unit of {@link EnergyFluxDensity}.
2349
+ *
2350
+ * @group Units
2351
+ * @category Mechanical
2352
+ * @symbol `J/(m²⋅s)`
2353
+ */
2354
+ export type JoulePerSquareMeterSecond = EnergyFluxDensityUnit<{}>;
2355
+ /**
2356
+ * @group Unit Classes
2357
+ * @category Mechanical
2358
+ */
2359
+ export type EnergyUnitClass = BaseUnitClass<{
2360
+ Kilogram: 1;
2361
+ Meter: 2;
2362
+ Second: -2;
2363
+ }>;
2364
+ /**
2365
+ * @group Abstract Units
2366
+ * @category Mechanical
2367
+ */
2368
+ export type Energy = AbstractUnitFrom<EnergyUnitClass>;
2369
+ /**
2370
+ * @group Unit Generators
2371
+ * @category Mechanical
2372
+ */
2373
+ export type EnergyUnit<M extends UnitSubvalues> = EnergyUnitFrom<UnitMeta<M>>;
2374
+ /**
2375
+ * @group Unit Generators
2376
+ * @category Mechanical
2377
+ */
2378
+ export type EnergyUnitFrom<M extends UnknownUnitMeta> = UnitFrom<EnergyUnitClass, M>;
2379
+ /**
2380
+ * A unit of {@link Energy}.
2381
+ *
2382
+ * One joule is the amount of work done when an applied force of 1 newton moves
2383
+ * through a distance of 1 meter in the direction of the force.
2384
+ *
2385
+ * @group Units
2386
+ * @category Derived
2387
+ * @category Mechanical
2388
+ * @symbol `J`
2389
+ */
2390
+ export type Joule = EnergyUnit<{}>;
2391
+ /**
2392
+ * A unit of {@link Energy}.
2393
+ *
2394
+ * @group Units
2395
+ * @category Mechanical
2396
+ * @symbol `W⋅s`
2397
+ */
2398
+ export type WattSecond = Joule;
2399
+ /**
2400
+ * A unit of {@link Energy}.
2401
+ *
2402
+ * @group Units
2403
+ * @category Mechanical
2404
+ * @symbol `W⋅min`
2405
+ */
2406
+ export type WattMinute = EnergyUnit<{
2407
+ scalar60: 1;
2408
+ }>;
2409
+ /**
2410
+ * A unit of {@link Energy}.
2411
+ *
2412
+ * @group Units
2413
+ * @category Mechanical
2414
+ * @symbol `W⋅hr`
2415
+ */
2416
+ export type WattHour = EnergyUnit<{
2417
+ scalar60: 2;
2418
+ }>;
2419
+ /**
2420
+ * @group Unit Classes
2421
+ * @category Mechanical
2422
+ */
2423
+ export type EnthalpyUnitClass = BaseUnitClass<{
2424
+ Meter: 2;
2425
+ Second: -2;
2426
+ }>;
2427
+ /**
2428
+ * @group Abstract Units
2429
+ * @category Mechanical
2430
+ */
2431
+ export type Enthalpy = AbstractUnitFrom<EnthalpyUnitClass>;
2432
+ /**
2433
+ * @group Unit Generators
2434
+ * @category Mechanical
2435
+ */
2436
+ export type EnthalpyUnit<M extends UnitSubvalues> = EnthalpyUnitFrom<UnitMeta<M>>;
2437
+ /**
2438
+ * @group Unit Generators
2439
+ * @category Mechanical
2440
+ */
2441
+ export type EnthalpyUnitFrom<M extends UnknownUnitMeta> = UnitFrom<EnthalpyUnitClass, M>;
2442
+ /**
2443
+ * A unit of {@link Enthalpy}.
2444
+ *
2445
+ * One gray is equal to the dose of one joule of energy absorbed per one kilogram of matter.
2446
+ *
2447
+ * @group Units
2448
+ * @category Derived
2449
+ * @category Mechanical
2450
+ * @symbol `Gy`
2451
+ */
2452
+ export type Gray = EnthalpyUnit<{}>;
2453
+ /**
2454
+ * @group Unit Classes
2455
+ * @category Mechanical
2456
+ */
2457
+ export type ForceUnitClass = BaseUnitClass<{
2458
+ Kilogram: 1;
2459
+ Meter: 1;
2460
+ Second: -2;
2461
+ }>;
2462
+ /**
2463
+ * @group Abstract Units
2464
+ * @category Mechanical
2465
+ */
2466
+ export type Force = AbstractUnitFrom<ForceUnitClass>;
2467
+ /**
2468
+ * @group Unit Generators
2469
+ * @category Mechanical
2470
+ */
2471
+ export type ForceUnit<M extends UnitSubvalues> = ForceUnitFrom<UnitMeta<M>>;
2472
+ /**
2473
+ * @group Unit Generators
2474
+ * @category Mechanical
2475
+ */
2476
+ export type ForceUnitFrom<M extends UnknownUnitMeta> = UnitFrom<ForceUnitClass, M>;
2477
+ /**
2478
+ * A unit of {@link Force}.
2479
+ *
2480
+ * One newton is the force required to accelerate a mass of 1 kilogram at 1 meter per second per second.
2481
+ *
2482
+ * @group Units
2483
+ * @category Derived
2484
+ * @category Mechanical
2485
+ * @symbol `N`
2486
+ */
2487
+ export type Newton = ForceUnit<{}>;
2488
+ /**
2489
+ * @group Unit Classes
2490
+ * @category Mechanical
2491
+ */
2492
+ export type IntensityUnitClass = BaseUnitClass<{
2493
+ Kilogram: 1;
2494
+ Second: -3;
2495
+ }>;
2496
+ /**
2497
+ * @group Abstract Units
2498
+ * @category Mechanical
2499
+ */
2500
+ export type Intensity = AbstractUnitFrom<IntensityUnitClass>;
2501
+ /**
2502
+ * @group Unit Generators
2503
+ * @category Mechanical
2504
+ */
2505
+ export type IntensityUnit<M extends UnitSubvalues> = IntensityUnitFrom<UnitMeta<M>>;
2506
+ /**
2507
+ * @group Unit Generators
2508
+ * @category Mechanical
2509
+ */
2510
+ export type IntensityUnitFrom<M extends UnknownUnitMeta> = UnitFrom<IntensityUnitClass, M>;
2511
+ /**
2512
+ * A unit of {@link Intensity}.
2513
+ *
2514
+ * @group Units
2515
+ * @category Mechanical
2516
+ * @symbol `W/m²`
2517
+ */
2518
+ export type WattPerSquareMeter = IntensityUnit<{}>;
2519
+ /**
2520
+ * @group Unit Classes
2521
+ * @category Mechanical
2522
+ */
2523
+ export type LengthUnitClass = BaseUnitClass<{
2524
+ Meter: 1;
2525
+ }>;
2526
+ /**
2527
+ * @group Abstract Units
2528
+ * @category Mechanical
2529
+ */
2530
+ export type Length = AbstractUnitFrom<LengthUnitClass>;
2531
+ /**
2532
+ * @group Unit Generators
2533
+ * @category Mechanical
2534
+ */
2535
+ export type LengthUnit<M extends UnitSubvalues> = LengthUnitFrom<UnitMeta<M>>;
2536
+ /**
2537
+ * @group Unit Generators
2538
+ * @category Mechanical
2539
+ */
2540
+ export type LengthUnitFrom<M extends UnknownUnitMeta> = UnitFrom<LengthUnitClass, M>;
2541
+ /**
2542
+ * A unit of {@link Length}.
2543
+ *
2544
+ * @group Units
2545
+ * @category Base
2546
+ * @category Mechanical
2547
+ * @symbol `m`
2548
+ */
2549
+ export type Meter = LengthUnit<{}>;
2550
+ /**
2551
+ * @group Unit Classes
2552
+ * @category Mechanical
2553
+ */
2554
+ export type LinearMassDensityUnitClass = BaseUnitClass<{
2555
+ Kilogram: 1;
2556
+ Meter: -1;
2557
+ }>;
2558
+ /**
2559
+ * @group Abstract Units
2560
+ * @category Mechanical
2561
+ */
2562
+ export type LinearMassDensity = AbstractUnitFrom<LinearMassDensityUnitClass>;
2563
+ /**
2564
+ * @group Unit Generators
2565
+ * @category Mechanical
2566
+ */
2567
+ export type LinearMassDensityUnit<M extends UnitSubvalues> = LinearMassDensityUnitFrom<UnitMeta<M>>;
2568
+ /**
2569
+ * @group Unit Generators
2570
+ * @category Mechanical
2571
+ */
2572
+ export type LinearMassDensityUnitFrom<M extends UnknownUnitMeta> = UnitFrom<LinearMassDensityUnitClass, M>;
2573
+ /**
2574
+ * A unit of {@link LinearMassDensity}.
2575
+ *
2576
+ * @group Units
2577
+ * @category Mechanical
2578
+ * @symbol `kg/m`
2579
+ */
2580
+ export type KilogramPerMeter = LinearMassDensityUnit<{}>;
2581
+ /**
2582
+ * @group Unit Classes
2583
+ * @category Mechanical
2584
+ */
2585
+ export type MassFlowRateUnitClass = BaseUnitClass<{
2586
+ Kilogram: 1;
2587
+ Second: -1;
2588
+ }>;
2589
+ /**
2590
+ * @group Abstract Units
2591
+ * @category Mechanical
2592
+ */
2593
+ export type MassFlowRate = AbstractUnitFrom<MassFlowRateUnitClass>;
2594
+ /**
2595
+ * @group Unit Generators
2596
+ * @category Mechanical
2597
+ */
2598
+ export type MassFlowRateUnit<M extends UnitSubvalues> = MassFlowRateUnitFrom<UnitMeta<M>>;
2599
+ /**
2600
+ * @group Unit Generators
2601
+ * @category Mechanical
2602
+ */
2603
+ export type MassFlowRateUnitFrom<M extends UnknownUnitMeta> = UnitFrom<MassFlowRateUnitClass, M>;
2604
+ /**
2605
+ * A unit of {@link MassFlowRate}.
2606
+ *
2607
+ * @group Units
2608
+ * @category Mechanical
2609
+ * @symbol `kg/s`
2610
+ */
2611
+ export type KilogramPerSecond = MassFlowRateUnit<{}>;
2612
+ /**
2613
+ * @group Unit Classes
2614
+ * @category Mechanical
2615
+ */
2616
+ export type MassUnitClass = BaseUnitClass<{
2617
+ Kilogram: 1;
2618
+ }>;
2619
+ /**
2620
+ * @group Abstract Units
2621
+ * @category Mechanical
2622
+ */
2623
+ export type Mass = AbstractUnitFrom<MassUnitClass>;
2624
+ /**
2625
+ * @group Unit Generators
2626
+ * @category Mechanical
2627
+ */
2628
+ export type MassUnit<M extends UnitSubvalues> = MassUnitFrom<UnitMeta<M>>;
2629
+ /**
2630
+ * @group Unit Generators
2631
+ * @category Mechanical
2632
+ */
2633
+ export type MassUnitFrom<M extends UnknownUnitMeta> = UnitFrom<MassUnitClass, M>;
2634
+ /**
2635
+ * A unit of {@link Mass}.
2636
+ *
2637
+ * @group Units
2638
+ * @category Base
2639
+ * @category Mechanical
2640
+ * @symbol `g`
2641
+ */
2642
+ export type Gram = MassUnit<{
2643
+ scalar10: -3;
2644
+ }>;
2645
+ /**
2646
+ * A unit of {@link Mass}.
2647
+ *
2648
+ * @group Units
2649
+ * @category Mechanical
2650
+ * @symbol `t`
2651
+ */
2652
+ export type Tonne = MassUnit<{
2653
+ scalar10: 3;
2654
+ }>;
2655
+ /**
2656
+ * @group Unit Classes
2657
+ * @category Mechanical
2658
+ */
2659
+ export type MomentOfInertiaUnitClass = BaseUnitClass<{
2660
+ Kilogram: 1;
2661
+ Meter: 2;
2662
+ Radian: -2;
2663
+ }>;
2664
+ /**
2665
+ * @group Abstract Units
2666
+ * @category Mechanical
2667
+ */
2668
+ export type MomentOfInertia = AbstractUnitFrom<MomentOfInertiaUnitClass>;
2669
+ /**
2670
+ * @group Unit Generators
2671
+ * @category Mechanical
2672
+ */
2673
+ export type MomentOfInertiaUnit<M extends UnitSubvalues> = MomentOfInertiaUnitFrom<UnitMeta<M>>;
2674
+ /**
2675
+ * @group Unit Generators
2676
+ * @category Mechanical
2677
+ */
2678
+ export type MomentOfInertiaUnitFrom<M extends UnknownUnitMeta> = UnitFrom<MomentOfInertiaUnitClass, M>;
2679
+ /**
2680
+ * A unit of {@link MomentOfInertia}.
2681
+ *
2682
+ * @group Units
2683
+ * @category Mechanical
2684
+ * @symbol `kg⋅m²/sr`
2685
+ */
2686
+ export type KilogramSquareMeterPerSteradian = MomentOfInertiaUnit<{}>;
2687
+ /**
2688
+ * @group Unit Classes
2689
+ * @category Mechanical
2690
+ */
2691
+ export type MomentumUnitClass = BaseUnitClass<{
2692
+ Kilogram: 1;
2693
+ Meter: 1;
2694
+ Second: -1;
2695
+ }>;
2696
+ /**
2697
+ * @group Abstract Units
2698
+ * @category Mechanical
2699
+ */
2700
+ export type Momentum = AbstractUnitFrom<MomentumUnitClass>;
2701
+ /**
2702
+ * @group Unit Generators
2703
+ * @category Mechanical
2704
+ */
2705
+ export type MomentumUnit<M extends UnitSubvalues> = MomentumUnitFrom<UnitMeta<M>>;
2706
+ /**
2707
+ * @group Unit Generators
2708
+ * @category Mechanical
2709
+ */
2710
+ export type MomentumUnitFrom<M extends UnknownUnitMeta> = UnitFrom<MomentumUnitClass, M>;
2711
+ /**
2712
+ * One newton second corresponds to a one newton of force applied for one second.
2713
+ *
2714
+ * @group Units
2715
+ * @category Mechanical
2716
+ * @symbol `N⋅s`
2717
+ */
2718
+ export type NewtonSecond = MomentumUnit<{}>;
2719
+ /**
2720
+ * @group Unit Classes
2721
+ * @category Mechanical
2722
+ */
2723
+ export type PressureUnitClass = BaseUnitClass<{
2724
+ Kilogram: 1;
2725
+ Meter: -1;
2726
+ Second: -2;
2727
+ }>;
2728
+ /**
2729
+ * @group Abstract Units
2730
+ * @category Mechanical
2731
+ */
2732
+ export type Pressure = AbstractUnitFrom<PressureUnitClass>;
2733
+ /**
2734
+ * @group Unit Generators
2735
+ * @category Mechanical
2736
+ */
2737
+ export type PressureUnit<M extends UnitSubvalues> = PressureUnitFrom<UnitMeta<M>>;
2738
+ /**
2739
+ * @group Unit Generators
2740
+ * @category Mechanical
2741
+ */
2742
+ export type PressureUnitFrom<M extends UnknownUnitMeta> = UnitFrom<PressureUnitClass, M>;
2743
+ /**
2744
+ * A unit of {@link Pressure}.
2745
+ *
2746
+ * One pascal is equal to one newton per square meter.
2747
+ *
2748
+ * @group Units
2749
+ * @category Derived
2750
+ * @category Mechanical
2751
+ * @symbol `Pa`
2752
+ */
2753
+ export type Pascal = PressureUnit<{}>;
2754
+ /**
2755
+ * @group Unit Classes
2756
+ * @category Mechanical
2757
+ */
2758
+ export type SpectralRadianceUnitClass = BaseUnitClass<{
2759
+ Kilogram: 1;
2760
+ Meter: -1;
2761
+ Radian: -2;
2762
+ Second: -3;
2763
+ }>;
2764
+ /**
2765
+ * @group Abstract Units
2766
+ * @category Mechanical
2767
+ */
2768
+ export type SpectralRadiance = AbstractUnitFrom<SpectralRadianceUnitClass>;
2769
+ /**
2770
+ * @group Unit Generators
2771
+ * @category Mechanical
2772
+ */
2773
+ export type SpectralRadianceUnit<M extends UnitSubvalues> = SpectralRadianceUnitFrom<UnitMeta<M>>;
2774
+ /**
2775
+ * @group Unit Generators
2776
+ * @category Mechanical
2777
+ */
2778
+ export type SpectralRadianceUnitFrom<M extends UnknownUnitMeta> = UnitFrom<SpectralRadianceUnitClass, M>;
2779
+ /**
2780
+ * A unit of {@link SpectralRadiance}.
2781
+ *
2782
+ * @group Units
2783
+ * @category Mechanical
2784
+ * @symbol `W/(sr⋅m³)`
2785
+ */
2786
+ export type WattPerSteradianCubicMeter = SpectralRadianceUnit<{}>;
2787
+ /**
2788
+ * @group Unit Classes
2789
+ * @category Mechanical
2790
+ */
2791
+ export type RadianceUnitClass = BaseUnitClass<{
2792
+ Kilogram: 1;
2793
+ Second: -3;
2794
+ Radian: -2;
2795
+ }>;
2796
+ /**
2797
+ * @group Abstract Units
2798
+ * @category Mechanical
2799
+ */
2800
+ export type Radiance = AbstractUnitFrom<RadianceUnitClass>;
2801
+ /**
2802
+ * @group Unit Generators
2803
+ * @category Mechanical
2804
+ */
2805
+ export type RadianceUnit<M extends UnitSubvalues> = RadianceUnitFrom<UnitMeta<M>>;
2806
+ /**
2807
+ * @group Unit Generators
2808
+ * @category Mechanical
2809
+ */
2810
+ export type RadianceUnitFrom<M extends UnknownUnitMeta> = UnitFrom<RadianceUnitClass, M>;
2811
+ /**
2812
+ * A unit of {@link Radiance}.
2813
+ *
2814
+ * @group Units
2815
+ * @category Mechanical
2816
+ * @symbol `W/(sr⋅m²)`
2817
+ */
2818
+ export type WattPerSteradianSquareMeter = RadianceUnit<{}>;
2819
+ /**
2820
+ * @group Unit Classes
2821
+ * @category Mechanical
2822
+ */
2823
+ export type RadiantExposureUnitClass = BaseUnitClass<{
2824
+ Kilogram: 1;
2825
+ Second: -2;
2826
+ }>;
2827
+ /**
2828
+ * @group Abstract Units
2829
+ * @category Mechanical
2830
+ */
2831
+ export type RadiantExposure = AbstractUnitFrom<RadiantExposureUnitClass>;
2832
+ /**
2833
+ * @group Unit Generators
2834
+ * @category Mechanical
2835
+ */
2836
+ export type RadiantExposureUnit<M extends UnitSubvalues> = RadiantExposureUnitFrom<UnitMeta<M>>;
2837
+ /**
2838
+ * @group Unit Generators
2839
+ * @category Mechanical
2840
+ */
2841
+ export type RadiantExposureUnitFrom<M extends UnknownUnitMeta> = UnitFrom<RadiantExposureUnitClass, M>;
2842
+ /**
2843
+ * A unit of {@link RadiantExposure}.
2844
+ *
2845
+ * @group Units
2846
+ * @category Mechanical
2847
+ * @symbol `J/m²`
2848
+ */
2849
+ export type JoulePerSquareMeter = RadiantExposureUnit<{}>;
2850
+ /**
2851
+ * @group Unit Classes
2852
+ * @category Mechanical
2853
+ */
2854
+ export type RadiantIntensityUnitClass = BaseUnitClass<{
2855
+ Kilogram: 1;
2856
+ Meter: 2;
2857
+ Second: -3;
2858
+ Radian: -2;
2859
+ }>;
2860
+ /**
2861
+ * @group Abstract Units
2862
+ * @category Mechanical
2863
+ */
2864
+ export type RadiantIntensity = AbstractUnitFrom<RadiantIntensityUnitClass>;
2865
+ /**
2866
+ * @group Unit Generators
2867
+ * @category Mechanical
2868
+ */
2869
+ export type RadiantIntensityUnit<M extends UnitSubvalues> = RadiantIntensityUnitFrom<UnitMeta<M>>;
2870
+ /**
2871
+ * @group Unit Generators
2872
+ * @category Mechanical
2873
+ */
2874
+ export type RadiantIntensityUnitFrom<M extends UnknownUnitMeta> = UnitFrom<RadiantIntensityUnitClass, M>;
2875
+ /**
2876
+ * A unit of {@link RadiantIntensity}.
2877
+ *
2878
+ * @group Units
2879
+ * @category Mechanical
2880
+ * @symbol `W/sr`
2881
+ */
2882
+ export type WattPerSteradian = RadiantIntensityUnit<{}>;
2883
+ /**
2884
+ * @group Unit Classes
2885
+ * @category Mechanical
2886
+ */
2887
+ export type SpecificEnergyUnitClass = BaseUnitClass<{
2888
+ Meter: 2;
2889
+ Second: -2;
2890
+ }>;
2891
+ /**
2892
+ * @group Abstract Units
2893
+ * @category Mechanical
2894
+ */
2895
+ export type SpecificEnergy = AbstractUnitFrom<SpecificEnergyUnitClass>;
2896
+ /**
2897
+ * @group Unit Generators
2898
+ * @category Mechanical
2899
+ */
2900
+ export type SpecificEnergyUnit<M extends UnitSubvalues> = SpecificEnergyUnitFrom<UnitMeta<M>>;
2901
+ /**
2902
+ * @group Unit Generators
2903
+ * @category Mechanical
2904
+ */
2905
+ export type SpecificEnergyUnitFrom<M extends UnknownUnitMeta> = UnitFrom<SpecificEnergyUnitClass, M>;
2906
+ /**
2907
+ * A unit of {@link SpecificEnergy}.
2908
+ *
2909
+ * @group Units
2910
+ * @category Mechanical
2911
+ * @symbol `J/kg`
2912
+ */
2913
+ export type JoulePerKilogram = SpecificEnergyUnit<{}>;
2914
+ /**
2915
+ * @group Unit Classes
2916
+ * @category Mechanical
2917
+ */
2918
+ export type SpectralIntensityUnitClass = BaseUnitClass<{
2919
+ Kilogram: 1;
2920
+ Meter: 1;
2921
+ Second: -3;
2922
+ Radian: -2;
2923
+ }>;
2924
+ /**
2925
+ * @group Abstract Units
2926
+ * @category Mechanical
2927
+ */
2928
+ export type SpectralIntensity = AbstractUnitFrom<SpectralIntensityUnitClass>;
2929
+ /**
2930
+ * @group Unit Generators
2931
+ * @category Mechanical
2932
+ */
2933
+ export type SpectralIntensityUnit<M extends UnitSubvalues> = SpectralIntensityUnitFrom<UnitMeta<M>>;
2934
+ /**
2935
+ * @group Unit Generators
2936
+ * @category Mechanical
2937
+ */
2938
+ export type SpectralIntensityUnitFrom<M extends UnknownUnitMeta> = UnitFrom<SpectralIntensityUnitClass, M>;
2939
+ /**
2940
+ * A unit of {@link SpectralIntensity}.
2941
+ *
2942
+ * @group Units
2943
+ * @category Mechanical
2944
+ * @symbol `W/(sr⋅m)`
2945
+ */
2946
+ export type WattPerSteradianMeter = SpectralIntensityUnit<{}>;
2947
+ /**
2948
+ * @group Unit Classes
2949
+ * @category Mechanical
2950
+ */
2951
+ export type SpectralIrradianceUnitClass = BaseUnitClass<{
2952
+ Kilogram: 1;
2953
+ Meter: -1;
2954
+ Second: -3;
2955
+ }>;
2956
+ /**
2957
+ * @group Abstract Units
2958
+ * @category Mechanical
2959
+ */
2960
+ export type SpectralIrradiance = AbstractUnitFrom<SpectralIrradianceUnitClass>;
2961
+ /**
2962
+ * @group Unit Generators
2963
+ * @category Mechanical
2964
+ */
2965
+ export type SpectralIrradianceUnit<M extends UnitSubvalues> = SpectralIrradianceUnitFrom<UnitMeta<M>>;
2966
+ /**
2967
+ * @group Unit Generators
2968
+ * @category Mechanical
2969
+ */
2970
+ export type SpectralIrradianceUnitFrom<M extends UnknownUnitMeta> = UnitFrom<SpectralIrradianceUnitClass, M>;
2971
+ /**
2972
+ * A unit of {@link SpectralIrradiance}.
2973
+ *
2974
+ * @group Units
2975
+ * @category Mechanical
2976
+ * @symbol `W/m³`
2977
+ */
2978
+ export type WattPerCubicMeter = SpectralIrradianceUnit<{}>;
2979
+ /**
2980
+ * @group Unit Classes
2981
+ * @category Mechanical
2982
+ */
2983
+ export type SpectralPowerUnitClass = BaseUnitClass<{
2984
+ Kilogram: 1;
2985
+ Meter: 1;
2986
+ Second: -3;
2987
+ }>;
2988
+ /**
2989
+ * @group Abstract Units
2990
+ * @category Mechanical
2991
+ */
2992
+ export type SpectralPower = AbstractUnitFrom<SpectralPowerUnitClass>;
2993
+ /**
2994
+ * @group Unit Generators
2995
+ * @category Mechanical
2996
+ */
2997
+ export type SpectralPowerUnit<M extends UnitSubvalues> = SpectralPowerUnitFrom<UnitMeta<M>>;
2998
+ /**
2999
+ * @group Unit Generators
3000
+ * @category Mechanical
3001
+ */
3002
+ export type SpectralPowerUnitFrom<M extends UnknownUnitMeta> = UnitFrom<SpectralPowerUnitClass, M>;
3003
+ /**
3004
+ * A unit of {@link SpectralPower}.
3005
+ *
3006
+ * @group Units
3007
+ * @category Mechanical
3008
+ * @symbol `W/m`
3009
+ */
3010
+ export type WattPerMeter = SpectralPowerUnit<{}>;
3011
+ /**
3012
+ * @group Unit Classes
3013
+ * @category Mechanical
3014
+ */
3015
+ export type StiffnessUnitClass = BaseUnitClass<{
3016
+ Kilogram: 1;
3017
+ Second: -2;
3018
+ }>;
3019
+ /**
3020
+ * @group Abstract Units
3021
+ * @category Mechanical
3022
+ */
3023
+ export type Stiffness = AbstractUnitFrom<StiffnessUnitClass>;
3024
+ /**
3025
+ * @group Unit Generators
3026
+ * @category Mechanical
3027
+ */
3028
+ export type StiffnessUnit<M extends UnitSubvalues> = StiffnessUnitFrom<UnitMeta<M>>;
3029
+ /**
3030
+ * @group Unit Generators
3031
+ * @category Mechanical
3032
+ */
3033
+ export type StiffnessUnitFrom<M extends UnknownUnitMeta> = UnitFrom<StiffnessUnitClass, M>;
3034
+ /**
3035
+ * A unit of {@link Stiffness}.
3036
+ *
3037
+ * @group Units
3038
+ * @category Mechanical
3039
+ * @symbol `N/m`
3040
+ */
3041
+ export type NewtonPerMeter = StiffnessUnit<{}>;
3042
+ /**
3043
+ * @group Unit Classes
3044
+ * @category Mechanical
3045
+ */
3046
+ export type SurfaceDensityUnitClass = BaseUnitClass<{
3047
+ Kilogram: 1;
3048
+ Meter: -2;
3049
+ }>;
3050
+ /**
3051
+ * @group Abstract Units
3052
+ * @category Mechanical
3053
+ */
3054
+ export type SurfaceDensity = AbstractUnitFrom<SurfaceDensityUnitClass>;
3055
+ /**
3056
+ * @group Unit Generators
3057
+ * @category Mechanical
3058
+ */
3059
+ export type SurfaceDensityUnit<M extends UnitSubvalues> = SurfaceDensityUnitFrom<UnitMeta<M>>;
3060
+ /**
3061
+ * @group Unit Generators
3062
+ * @category Mechanical
3063
+ */
3064
+ export type SurfaceDensityUnitFrom<M extends UnknownUnitMeta> = UnitFrom<SurfaceDensityUnitClass, M>;
3065
+ /**
3066
+ * A unit of {@link SurfaceDensity}.
3067
+ *
3068
+ * @group Units
3069
+ * @category Mechanical
3070
+ * @symbol `kg/m²`
3071
+ */
3072
+ export type KilogramPerSquareMeter = SurfaceDensityUnit<{}>;
3073
+ /**
3074
+ * @group Unit Classes
3075
+ * @category Mechanical
3076
+ */
3077
+ export type KinematicViscosityUnitClass = BaseUnitClass<{
3078
+ Meter: 2;
3079
+ Second: -1;
3080
+ }>;
3081
+ /**
3082
+ * @group Abstract Units
3083
+ * @category Mechanical
3084
+ */
3085
+ export type KinematicViscosity = AbstractUnitFrom<KinematicViscosityUnitClass>;
3086
+ /**
3087
+ * @group Unit Generators
3088
+ * @category Mechanical
3089
+ */
3090
+ export type KinematicViscosityUnit<M extends UnitSubvalues> = KinematicViscosityUnitFrom<UnitMeta<M>>;
3091
+ /**
3092
+ * @group Unit Generators
3093
+ * @category Mechanical
3094
+ */
3095
+ export type KinematicViscosityUnitFrom<M extends UnknownUnitMeta> = UnitFrom<KinematicViscosityUnitClass, M>;
3096
+ /**
3097
+ * A unit of {@link KinematicViscosity}.
3098
+ *
3099
+ * @group Units
3100
+ * @category Mechanical
3101
+ * @symbol `m²/s`
3102
+ */
3103
+ export type SquareMeterPerSecond = KinematicViscosityUnit<{}>;
3104
+ /**
3105
+ * @group Unit Classes
3106
+ * @category Mechanical
3107
+ */
3108
+ export type VolumeUnitClass = BaseUnitClass<{
3109
+ Meter: 3;
3110
+ }>;
3111
+ /**
3112
+ * @group Unit Classes
3113
+ * @category Mechanical
3114
+ */
3115
+ export type Volume = AbstractUnitFrom<VolumeUnitClass>;
3116
+ /**
3117
+ * @group Unit Classes
3118
+ * @category Mechanical
3119
+ */
3120
+ export type VolumeUnit<M extends UnitSubvalues> = VolumeUnitFrom<UnitMeta<M>>;
3121
+ /**
3122
+ * @group Unit Classes
3123
+ * @category Mechanical
3124
+ */
3125
+ export type VolumeUnitFrom<M extends UnknownUnitMeta> = UnitFrom<VolumeUnitClass, M>;
3126
+ /**
3127
+ * A unit of volume.
3128
+ *
3129
+ * @group Units
3130
+ * @category Mechanical
3131
+ * @symbol `l`
3132
+ */
3133
+ export type Liter = VolumeUnit<{
3134
+ scalar10: -3;
3135
+ }>;
3136
+ /**
3137
+ * @group Unit Classes
3138
+ * @category Mechanical
3139
+ */
3140
+ export type WorkUnitClass = EnergyUnitClass;
3141
+ /**
3142
+ * @group Abstract Units
3143
+ * @category Mechanical
3144
+ */
3145
+ export type Work = Energy;
3146
+ /**
3147
+ * @group Unit Generators
3148
+ * @category Mechanical
3149
+ */
3150
+ export type WorkUnit<M extends UnitSubvalues> = EnergyUnit<M>;
3151
+ /**
3152
+ * @group Unit Generators
3153
+ * @category Mechanical
3154
+ */
3155
+ export type WorkUnitFrom<M extends UnknownUnitMeta> = EnergyUnitFrom<M>;
3156
+ /**
3157
+ * A unit of {@link Work}.
3158
+ *
3159
+ * @group Units
3160
+ * @category Mechanical
3161
+ * @symbol `N⋅m`
3162
+ */
3163
+ export type NewtonMeter = Joule;
3164
+ /**
3165
+ * @group Unit Classes
3166
+ * @category Mechanical
3167
+ */
3168
+ export type YankUnitClass = BaseUnitClass<{
3169
+ Kilogram: 1;
3170
+ Meter: 1;
3171
+ Second: -3;
3172
+ }>;
3173
+ /**
3174
+ * @group Unit Classes
3175
+ * @category Mechanical
3176
+ */
3177
+ export type Yank = AbstractUnitFrom<YankUnitClass>;
3178
+ /**
3179
+ * @group Unit Classes
3180
+ * @category Mechanical
3181
+ */
3182
+ export type YankUnit<M extends UnitSubvalues> = YankUnitFrom<UnitMeta<M>>;
3183
+ /**
3184
+ * @group Unit Classes
3185
+ * @category Mechanical
3186
+ */
3187
+ export type YankUnitFrom<M extends UnknownUnitMeta> = UnitFrom<YankUnitClass, M>;
3188
+ /**
3189
+ * A unit of {@link Yank}.
3190
+ *
3191
+ * @group Units
3192
+ * @category Mechanical
3193
+ * @symbol `N/s`
3194
+ */
3195
+ export type NewtonPerSecond = YankUnit<{}>;
3196
+ /**
3197
+ * @group Unit Classes
3198
+ * @category Photometric
3199
+ */
3200
+ export type LuminanceUnitClass = BaseUnitClass<{
3201
+ Candela: 1;
3202
+ Meter: -2;
3203
+ }>;
3204
+ /**
3205
+ * @group Abstract Units
3206
+ * @category Photometric
3207
+ */
3208
+ export type Luminance = AbstractUnitFrom<LuminanceUnitClass>;
3209
+ /**
3210
+ * @group Unit Generators
3211
+ * @category Photometric
3212
+ */
3213
+ export type LuminanceUnit<M extends UnitSubvalues> = LuminanceUnitFrom<UnitMeta<M>>;
3214
+ /**
3215
+ * @group Unit Generators
3216
+ * @category Photometric
3217
+ */
3218
+ export type LuminanceUnitFrom<M extends UnknownUnitMeta> = UnitFrom<LuminanceUnitClass, M>;
3219
+ /**
3220
+ * A unit of {@link Luminance}.
3221
+ *
3222
+ * @group Units
3223
+ * @category Derived
3224
+ * @category Photometric
3225
+ * @symbol `lx`
3226
+ */
3227
+ export type Lux = LuminanceUnit<{}>;
3228
+ /**
3229
+ * A unit of {@link Luminance}.
3230
+ *
3231
+ * @group Units
3232
+ * @category Photometric
3233
+ * @symbol `cd/m²`
3234
+ */
3235
+ export type CandelaPerSquareMeter = Lux;
3236
+ /**
3237
+ * @group Unit Classes
3238
+ * @category Photometric
3239
+ */
3240
+ export type LuminousEfficacyUnitClass = BaseUnitClass<{
3241
+ Candela: 1;
3242
+ Radian: 2;
3243
+ Kilogram: -1;
3244
+ Meter: -2;
3245
+ Second: 3;
3246
+ }>;
3247
+ /**
3248
+ * @group Abstract Units
3249
+ * @category Photometric
3250
+ */
3251
+ export type LuminousEfficacy = AbstractUnitFrom<LuminousEfficacyUnitClass>;
3252
+ /**
3253
+ * @group Unit Generators
3254
+ * @category Photometric
3255
+ */
3256
+ export type LuminousEfficacyUnit<M extends UnitSubvalues> = LuminousEfficacyUnitFrom<UnitMeta<M>>;
3257
+ /**
3258
+ * @group Unit Generators
3259
+ * @category Photometric
3260
+ */
3261
+ export type LuminousEfficacyUnitFrom<M extends UnknownUnitMeta> = UnitFrom<LuminousEfficacyUnitClass, M>;
3262
+ /**
3263
+ * A unit of {@link LuminousEfficacy}.
3264
+ *
3265
+ * @group Units
3266
+ * @category Photometric
3267
+ * @symbol `lm/W`
3268
+ */
3269
+ export type LumenPerWatt = LuminousEfficacyUnit<{}>;
3270
+ /**
3271
+ * @group Unit Classes
3272
+ * @category Photometric
3273
+ */
3274
+ export type LuminousEnergyUnitClass = BaseUnitClass<{
3275
+ Candela: 1;
3276
+ Radian: 2;
3277
+ Second: 1;
3278
+ }>;
3279
+ /**
3280
+ * @group Abstract Units
3281
+ * @category Photometric
3282
+ */
3283
+ export type LuminousEnergy = AbstractUnitFrom<LuminousEnergyUnitClass>;
3284
+ /**
3285
+ * @group Unit Generators
3286
+ * @category Photometric
3287
+ */
3288
+ export type LuminousEnergyUnit<M extends UnitSubvalues> = LuminousEnergyUnitFrom<UnitMeta<M>>;
3289
+ /**
3290
+ * @group Unit Generators
3291
+ * @category Photometric
3292
+ */
3293
+ export type LuminousEnergyUnitFrom<M extends UnknownUnitMeta> = UnitFrom<LuminousEnergyUnitClass, M>;
3294
+ /**
3295
+ * A unit of {@link LuminousEnergy}.
3296
+ *
3297
+ * @group Units
3298
+ * @category Photometric
3299
+ * @symbol `lm⋅s`
3300
+ */
3301
+ export type LumenSecond = LuminousEnergyUnit<{}>;
3302
+ /**
3303
+ * @group Unit Classes
3304
+ * @category Photometric
3305
+ */
3306
+ export type LuminousExposureUnitClass = BaseUnitClass<{
3307
+ Candela: 1;
3308
+ Meter: -2;
3309
+ Second: 1;
3310
+ }>;
3311
+ /**
3312
+ * @group Abstract Units
3313
+ * @category Photometric
3314
+ */
3315
+ export type LuminousExposure = AbstractUnitFrom<LuminousExposureUnitClass>;
3316
+ /**
3317
+ * @group Unit Generators
3318
+ * @category Photometric
3319
+ */
3320
+ export type LuminousExposureUnit<M extends UnitSubvalues> = LuminousExposureUnitFrom<UnitMeta<M>>;
3321
+ /**
3322
+ * @group Unit Generators
3323
+ * @category Photometric
3324
+ */
3325
+ export type LuminousExposureUnitFrom<M extends UnknownUnitMeta> = UnitFrom<LuminousExposureUnitClass, M>;
3326
+ /**
3327
+ * A unit of {@link LuminousExposure}.
3328
+ *
3329
+ * @group Units
3330
+ * @category Photometric
3331
+ * @symbol `lx⋅s`
3332
+ */
3333
+ export type LuxSecond = LuminousExposureUnit<{}>;
3334
+ /**
3335
+ * @group Unit Classes
3336
+ * @category Photometric
3337
+ */
3338
+ export type LuminousFluxUnitClass = BaseUnitClass<{
3339
+ Candela: 1;
3340
+ Radian: 2;
3341
+ }>;
3342
+ /**
3343
+ * @group Abstract Units
3344
+ * @category Photometric
3345
+ */
3346
+ export type LuminousFlux = AbstractUnitFrom<LuminousFluxUnitClass>;
3347
+ /**
3348
+ * @group Unit Generators
3349
+ * @category Photometric
3350
+ */
3351
+ export type LuminousFluxUnit<M extends UnitSubvalues> = LuminousFluxUnitFrom<UnitMeta<M>>;
3352
+ /**
3353
+ * @group Unit Generators
3354
+ * @category Photometric
3355
+ */
3356
+ export type LuminousFluxUnitFrom<M extends UnknownUnitMeta> = UnitFrom<LuminousFluxUnitClass, M>;
3357
+ /**
3358
+ * One Lumen is equal to the amount of light given out through a solid angle by a source of one
3359
+ * candela intensity radiating equally in all directions.
3360
+ *
3361
+ * @group Units
3362
+ * @category Derived
3363
+ * @symbol `lm`
3364
+ */
3365
+ export type Lumen = LuminousFluxUnit<{}>;
3366
+ /**
3367
+ * @group Unit Classes
3368
+ * @category Photometric
3369
+ */
3370
+ export type LuminousIntensityUnitClass = BaseUnitClass<{
3371
+ Candela: 1;
3372
+ }>;
3373
+ /**
3374
+ * @group Abstract Units
3375
+ * @category Photometric
3376
+ */
3377
+ export type LuminousIntensity = AbstractUnitFrom<LuminousIntensityUnitClass>;
3378
+ /**
3379
+ * @group Unit Generators
3380
+ * @category Photometric
3381
+ */
3382
+ export type LuminousIntensityUnit<M extends UnitSubvalues> = LuminousIntensityUnitFrom<UnitMeta<M>>;
3383
+ /**
3384
+ * @group Unit Generators
3385
+ * @category Photometric
3386
+ */
3387
+ export type LuminousIntensityUnitFrom<M extends UnknownUnitMeta> = UnitFrom<LuminousIntensityUnitClass, M>;
3388
+ /**
3389
+ * A unit of luminous intensity.
3390
+ *
3391
+ * @group Units
3392
+ * @category Base
3393
+ * @symbol `cd`
3394
+ */
3395
+ export type Candela = LuminousIntensityUnit<{}>;
3396
+ /**
3397
+ * @group Unit Classes
3398
+ * @category Electromagnetic
3399
+ * @category Mechanical
3400
+ */
3401
+ export type PowerUnitClass = BaseUnitClass<{
3402
+ Kilogram: 1;
3403
+ Meter: 2;
3404
+ Second: -3;
3405
+ }>;
3406
+ /**
3407
+ * @group Abstract Units
3408
+ * @category Electromagnetic
3409
+ * @category Mechanical
3410
+ */
3411
+ export type Power = AbstractUnitFrom<PowerUnitClass>;
3412
+ /**
3413
+ * @group Unit Generators
3414
+ * @category Electromagnetic
3415
+ * @category Mechanical
3416
+ */
3417
+ export type PowerUnit<M extends UnitSubvalues> = PowerUnitFrom<UnitMeta<M>>;
3418
+ /**
3419
+ * @group Unit Generators
3420
+ * @category Electromagnetic
3421
+ * @category Mechanical
3422
+ */
3423
+ export type PowerUnitFrom<M extends UnknownUnitMeta> = UnitFrom<PowerUnitClass, M>;
3424
+ /**
3425
+ * A unit of {@link Power}.
3426
+ *
3427
+ * @group Units
3428
+ * @category Derived
3429
+ * @category Electromagnetic
3430
+ * @category Mechanical
3431
+ * @symbol `W`
3432
+ */
3433
+ export type Watt = PowerUnit<{}>;
3434
+ /**
3435
+ * @group Unit Classes
3436
+ * @category Thermodynamic
3437
+ */
3438
+ export type EntropyUnitClass = BaseUnitClass<{
3439
+ Kilogram: 1;
3440
+ Meter: 2;
3441
+ Second: -2;
3442
+ Kelvin: -1;
3443
+ }>;
3444
+ /**
3445
+ * @group Abstract Units
3446
+ * @category Thermodynamic
3447
+ */
3448
+ export type Entropy = AbstractUnitFrom<EntropyUnitClass>;
3449
+ /**
3450
+ * @group Unit Generators
3451
+ * @category Thermodynamic
3452
+ */
3453
+ export type EntropyUnit<M extends UnitSubvalues> = EntropyUnitFrom<UnitMeta<M>>;
3454
+ /**
3455
+ * @group Unit Generators
3456
+ * @category Thermodynamic
3457
+ */
3458
+ export type EntropyUnitFrom<M extends UnknownUnitMeta> = UnitFrom<EntropyUnitClass, M>;
3459
+ /**
3460
+ * A unit of {@link Entropy}.
3461
+ *
3462
+ * @group Units
3463
+ * @category Thermodynamic
3464
+ * @symbol `J/K`
3465
+ */
3466
+ export type JoulePerKelvin = EntropyUnit<{}>;
3467
+ /**
3468
+ * @group Unit Classes
3469
+ * @category Thermodynamic
3470
+ */
3471
+ export type SpecificEntropyUnitClass = BaseUnitClass<{
3472
+ Meter: 2;
3473
+ Second: -2;
3474
+ Kelvin: -1;
3475
+ }>;
3476
+ /**
3477
+ * @group Abstract Units
3478
+ * @category Thermodynamic
3479
+ */
3480
+ export type SpecificEntropy = AbstractUnitFrom<SpecificEntropyUnitClass>;
3481
+ /**
3482
+ * @group Unit Generators
3483
+ * @category Thermodynamic
3484
+ */
3485
+ export type SpecificEntropyUnit<M extends UnitSubvalues> = SpecificEntropyUnitFrom<UnitMeta<M>>;
3486
+ /**
3487
+ * @group Unit Generators
3488
+ * @category Thermodynamic
3489
+ */
3490
+ export type SpecificEntropyUnitFrom<M extends UnknownUnitMeta> = UnitFrom<SpecificEntropyUnitClass, M>;
3491
+ /**
3492
+ * A unit of {@link SpecificEntropy}.
3493
+ *
3494
+ * @group Units
3495
+ * @category Thermodynamic
3496
+ * @symbol `J/(K⋅kg)`
3497
+ */
3498
+ export type JoulePerKilogramKelvin = SpecificEntropyUnit<{}>;
3499
+ /**
3500
+ * @group Unit Classes
3501
+ * @category Thermodynamic
3502
+ */
3503
+ export type SpecificVolumeUnitClass = BaseUnitClass<{
3504
+ Kilogram: -1;
3505
+ Meter: 3;
3506
+ }>;
3507
+ /**
3508
+ * @group Abstract Units
3509
+ * @category Thermodynamic
3510
+ */
3511
+ export type SpecificVolume = AbstractUnitFrom<SpecificVolumeUnitClass>;
3512
+ /**
3513
+ * @group Unit Generators
3514
+ * @category Thermodynamic
3515
+ */
3516
+ export type SpecificVolumeUnit<M extends UnitSubvalues> = SpecificVolumeUnitFrom<UnitMeta<M>>;
3517
+ /**
3518
+ * @group Unit Generators
3519
+ * @category Thermodynamic
3520
+ */
3521
+ export type SpecificVolumeUnitFrom<M extends UnknownUnitMeta> = UnitFrom<SpecificVolumeUnitClass, M>;
3522
+ /**
3523
+ * A unit of {@link SpecificVolume}.
3524
+ *
3525
+ * @group Units
3526
+ * @category Mechanical
3527
+ * @symbol `m³/kg`
3528
+ */
3529
+ export type CubicMeterPerKilogram = SpecificVolumeUnit<{}>;
3530
+ /**
3531
+ * @group Unit Classes
3532
+ * @category Thermodynamic
3533
+ */
3534
+ export type TemperatureGradientUnitClass = BaseUnitClass<{
3535
+ Kelvin: 1;
3536
+ Meter: -1;
3537
+ }>;
3538
+ /**
3539
+ * @group Abstract Units
3540
+ * @category Thermodynamic
3541
+ */
3542
+ export type TemperatureGradient = AbstractUnitFrom<TemperatureGradientUnitClass>;
3543
+ /**
3544
+ * @group Unit Generators
3545
+ * @category Thermodynamic
3546
+ */
3547
+ export type TemperatureGradientUnit<M extends UnitSubvalues> = TemperatureGradientUnitFrom<UnitMeta<M>>;
3548
+ /**
3549
+ * @group Unit Generators
3550
+ * @category Thermodynamic
3551
+ */
3552
+ export type TemperatureGradientUnitFrom<M extends UnknownUnitMeta> = UnitFrom<TemperatureGradientUnitClass, M>;
3553
+ /**
3554
+ * A unit of {@link TemperatureGradient}.
3555
+ *
3556
+ * @group Units
3557
+ * @category Thermodynamic
3558
+ * @symbol `K/m`
3559
+ */
3560
+ export type KelvinPerMeter = TemperatureGradientUnit<{}>;
3561
+ /**
3562
+ * @group Unit Classes
3563
+ * @category Thermodynamic
3564
+ */
3565
+ export type TemperatureUnitClass = BaseUnitClass<{
3566
+ Kelvin: 1;
3567
+ }>;
3568
+ /**
3569
+ * @group Abstract Units
3570
+ * @category Thermodynamic
3571
+ */
3572
+ export type Temperature = AbstractUnitFrom<TemperatureUnitClass>;
3573
+ /**
3574
+ * @group Unit Generators
3575
+ * @category Thermodynamic
3576
+ */
3577
+ export type TemperatureUnit<M extends UnitSubvalues> = TemperatureUnitFrom<UnitMeta<M>>;
3578
+ /**
3579
+ * @group Unit Generators
3580
+ * @category Thermodynamic
3581
+ */
3582
+ export type TemperatureUnitFrom<M extends UnknownUnitMeta> = UnitFrom<TemperatureUnitClass, M>;
3583
+ /**
3584
+ * A unit of {@link Temperature}.
3585
+ *
3586
+ * @group Units
3587
+ * @category Base
3588
+ * @category Thermodynamic
3589
+ * @symbol `K`
3590
+ */
3591
+ export type Kelvin = TemperatureUnit<{}>;
3592
+ /**
3593
+ * A unit of {@link Temperature}.
3594
+ *
3595
+ * This is a unit of temperature such as the freezing point of water (at one atmosphere of pressure)
3596
+ * is 0 ℃, while the boiling point is 100 ℃.
3597
+ *
3598
+ * @group Units
3599
+ * @category Thermodynamic
3600
+ * @symbol `℃`
3601
+ */
3602
+ export type Celsius = TemperatureUnit<{
3603
+ "offset273.15": 1;
3604
+ }>;
3605
+ /**
3606
+ * @group Unit Classes
3607
+ * @category Thermodynamic
3608
+ */
3609
+ export type ThermalConductivityUnitClass = BaseUnitClass<{
3610
+ Kilogram: 1;
3611
+ Meter: 1;
3612
+ Second: -3;
3613
+ Kelvin: -1;
3614
+ }>;
3615
+ /**
3616
+ * @group Abstract Units
3617
+ * @category Thermodynamic
3618
+ */
3619
+ export type ThermalConductivity = AbstractUnitFrom<ThermalConductivityUnitClass>;
3620
+ /**
3621
+ * @group Unit Generators
3622
+ * @category Thermodynamic
3623
+ */
3624
+ export type ThermalConductivityUnit<M extends UnitSubvalues> = ThermalConductivityUnitFrom<UnitMeta<M>>;
3625
+ /**
3626
+ * @group Unit Generators
3627
+ * @category Thermodynamic
3628
+ */
3629
+ export type ThermalConductivityUnitFrom<M extends UnknownUnitMeta> = UnitFrom<ThermalConductivityUnitClass, M>;
3630
+ /**
3631
+ * A unit of {@link ThermalConductivity}.
3632
+ *
3633
+ * @group Units
3634
+ * @category Thermodynamic
3635
+ * @symbol `W/(m⋅K)`
3636
+ */
3637
+ export type WattPerMeterKelvin = ThermalConductivityUnit<{}>;
3638
+ /**
3639
+ * @group Unit Classes
3640
+ * @category Thermodynamic
3641
+ */
3642
+ export type ThermalExpansionCoefficientUnitClass = Reciprocal<TemperatureUnitClass>;
3643
+ /**
3644
+ * @group Abstract Units
3645
+ * @category Thermodynamic
3646
+ */
3647
+ export type ThermalExpansionCoefficient = Reciprocal<Temperature>;
3648
+ /**
3649
+ * @group Unit Generators
3650
+ * @category Thermodynamic
3651
+ */
3652
+ export type ThermalExpansionCoefficientUnit<M extends UnitSubvalues> = ThermalExpansionCoefficientUnitFrom<UnitMeta<M>>;
3653
+ /**
3654
+ * @group Unit Generators
3655
+ * @category Thermodynamic
3656
+ */
3657
+ export type ThermalExpansionCoefficientUnitFrom<M extends UnknownUnitMeta> = UnitFrom<ThermalExpansionCoefficientUnitClass, M>;
3658
+ /**
3659
+ * @group Unit Classes
3660
+ * @category Thermodynamic
3661
+ */
3662
+ export type ThermalResistanceUnitClass = BaseUnitClass<{
3663
+ Kilogram: -1;
3664
+ Meter: -2;
3665
+ Second: 3;
3666
+ Kelvin: 1;
3667
+ }>;
3668
+ /**
3669
+ * @group Abstract Units
3670
+ * @category Thermodynamic
3671
+ */
3672
+ export type ThermalResistance = AbstractUnitFrom<ThermalResistanceUnitClass>;
3673
+ /**
3674
+ * @group Unit Generators
3675
+ * @category Thermodynamic
3676
+ */
3677
+ export type ThermalResistanceUnit<M extends UnitSubvalues> = ThermalResistanceUnitFrom<UnitMeta<M>>;
3678
+ /**
3679
+ * @group Unit Generators
3680
+ * @category Thermodynamic
3681
+ */
3682
+ export type ThermalResistanceUnitFrom<M extends UnknownUnitMeta> = UnitFrom<ThermalResistanceUnitClass, M>;
3683
+ /**
3684
+ * A unit of {@link ThermalResistance}.
3685
+ *
3686
+ * @group Units
3687
+ * @category Thermodynamic
3688
+ * @symbol `K/W`
3689
+ */
3690
+ export type KelvinPerWatt = ThermalResistanceUnit<{}>;
3691
+ /**
3692
+ * @group Unit Classes
3693
+ * @category Thermodynamic
3694
+ */
3695
+ export type ThermalTransmittanceUnitClass = BaseUnitClass<{
3696
+ Kilogram: 1;
3697
+ Second: -3;
3698
+ Kelvin: -1;
3699
+ }>;
3700
+ /**
3701
+ * @group Abstract Units
3702
+ * @category Thermodynamic
3703
+ */
3704
+ export type ThermalTransmittance = AbstractUnitFrom<ThermalTransmittanceUnitClass>;
3705
+ /**
3706
+ * @group Unit Generators
3707
+ * @category Thermodynamic
3708
+ */
3709
+ export type ThermalTransmittanceUnit<M extends UnitSubvalues> = ThermalTransmittanceUnitFrom<UnitMeta<M>>;
3710
+ /**
3711
+ * @group Unit Generators
3712
+ * @category Thermodynamic
3713
+ */
3714
+ export type ThermalTransmittanceUnitFrom<M extends UnknownUnitMeta> = UnitFrom<ThermalTransmittanceUnitClass, M>;
3715
+ /**
3716
+ * A unit of {@link ThermalTransmittance}.
3717
+ *
3718
+ * @group Units
3719
+ * @category Thermodynamic
3720
+ */
3721
+ export type WattPerSquareMeterPerKelvin = ThermalTransmittanceUnit<{}>;
3722
+ /**
3723
+ * @group Unit Classes
3724
+ * @category Time
3725
+ */
3726
+ export type DurationUnitClass = BaseUnitClass<{
3727
+ Second: 1;
3728
+ }>;
3729
+ /**
3730
+ * @group Abstract Units
3731
+ * @category Time
3732
+ */
3733
+ export type Duration = AbstractUnitFrom<DurationUnitClass>;
3734
+ /**
3735
+ * @group Unit Generators
3736
+ * @category Time
3737
+ */
3738
+ export type DurationUnit<M extends UnitSubvalues> = DurationUnitFrom<UnitMeta<M>>;
3739
+ /**
3740
+ * @group Unit Generators
3741
+ * @category Time
3742
+ */
3743
+ export type DurationUnitFrom<M extends UnknownUnitMeta> = UnitFrom<DurationUnitClass, M>;
3744
+ /**
3745
+ * A unit of {@link Duration}.
3746
+ *
3747
+ * @group Units
3748
+ * @category Base
3749
+ * @category Time
3750
+ * @symbol `s`
3751
+ */
3752
+ export type Second = DurationUnit<{}>;
3753
+ /**
3754
+ * A unit of {@link Duration}.
3755
+ *
3756
+ * @group Units
3757
+ * @category Time
3758
+ * @symbol `min`
3759
+ */
3760
+ export type Minute = DurationUnit<{
3761
+ scalar60: 1;
3762
+ }>;
3763
+ /**
3764
+ * A unit of {@link Duration}.
3765
+ *
3766
+ * @group Units
3767
+ * @category Time
3768
+ * @symbol `hr`
3769
+ */
3770
+ export type Hour = DurationUnit<{
3771
+ scalar60: 2;
3772
+ }>;
3773
+ /**
3774
+ * A unit of {@link Duration}.
3775
+ *
3776
+ * @group Units
3777
+ * @category Time
3778
+ * @symbol `day`
3779
+ */
3780
+ export type Day = DurationUnit<{
3781
+ scalar60: 2;
3782
+ scalar24: 1;
3783
+ }>;
3784
+ /**
3785
+ * A unit of {@link Duration}.
3786
+ *
3787
+ * @group Units
3788
+ * @category Time
3789
+ * @symbol `wk`
3790
+ */
3791
+ export type Week = DurationUnit<{
3792
+ scalar60: 2;
3793
+ scalar24: 1;
3794
+ scalar7: 1;
3795
+ }>;
3796
+ /**
3797
+ * A unit of {@link Duration}.
3798
+ *
3799
+ * @group Units
3800
+ * @category Time
3801
+ * @symbol `yr`
3802
+ */
3803
+ export type Year = DurationUnit<{
3804
+ scalar60: 2;
3805
+ scalar24: 1;
3806
+ scalarDayInYear: 1;
3807
+ }>;
3808
+ /**
3809
+ * Convert {@link Radian} to {@link Degree}.
3810
+ */
3811
+ export declare function radiansToDegrees(angle: Radian): Degree;
3812
+ /**
3813
+ * Convert {@link Radian} to {@link Gradian}.
3814
+ */
3815
+ export declare function radiansToGradians(angle: Radian): Gradian;
3816
+ /**
3817
+ * Convert {@link Radian} to {@link Turn}.
3818
+ */
3819
+ export declare function radiansToTurns(angle: Radian): Turn;
3820
+ /**
3821
+ * Convert {@link Degree} to {@link Radian}.
3822
+ */
3823
+ export declare function degreesToRadians(angle: Degree): Radian;
3824
+ /**
3825
+ * Convert {@link Degree} to {@link Gradian}.
3826
+ */
3827
+ export declare function degreesToGradians(angle: Degree): Gradian;
3828
+ /**
3829
+ * Convert {@link Degree} to {@link Turn}.
3830
+ */
3831
+ export declare function degreesToTurns(angle: Degree): Turn;
3832
+ /**
3833
+ * Convert {@link Gradian} to {@link Radian}.
3834
+ */
3835
+ export declare function gradiansToRadians(angle: Gradian): Radian;
3836
+ /**
3837
+ * Convert {@link Gradian} to {@link Degree}.
3838
+ */
3839
+ export declare function gradiansToDegrees(angle: Gradian): Degree;
3840
+ /**
3841
+ * Convert {@link Gradian} to {@link Turn}.
3842
+ */
3843
+ export declare function gradiansToTurns(angle: Gradian): Turn;
3844
+ /**
3845
+ * Convert {@link Turn} to {@link Radian}.
3846
+ */
3847
+ export declare function turnsToRadians(angle: Turn): Radian;
3848
+ /**
3849
+ * Convert {@link Turn} to {@link Degree}.
3850
+ */
3851
+ export declare function turnsToDegrees(angle: Turn): Degree;
3852
+ /**
3853
+ * Convert {@link Turn} to {@link Gradian}.
3854
+ */
3855
+ export declare function turnsToGradians(angle: Turn): Gradian;
3856
+ /**
3857
+ * Convert {@link Square}<{@link Meter}> to {@link Are}.
3858
+ */
3859
+ export declare function squareMetersToAres(area: Square<Meter>): Are;
3860
+ /**
3861
+ * Convert {@link Square}<{@link Meter}> to {@link Hectare}.
3862
+ */
3863
+ export declare function squareMetersToHectares(area: Square<Meter>): Hectare;
3864
+ /**
3865
+ * Convert {@link Are} to {@link Square}<{@link Meter}>.
3866
+ */
3867
+ export declare function aresToSquareMeters(area: Are): Square<Meter>;
3868
+ /**
3869
+ * Convert {@link Are} to {@link Hectare}.
3870
+ */
3871
+ export declare function aresToHectares(area: Are): Hectare;
3872
+ /**
3873
+ * Convert {@link Hectare} to {@link Square}<{@link Meter}>.
3874
+ */
3875
+ export declare function hectaresToSquareMeters(area: Hectare): Square<Meter>;
3876
+ /**
3877
+ * Convert {@link Hectare} to {@link Are}.
3878
+ */
3879
+ export declare function hectaresToAres(area: Hectare): Are;
3880
+ /**
3881
+ * Convert {@link Second} to {@link Minute}.
3882
+ */
3883
+ export declare function secondsToMinutes(duration: Second): Minute;
3884
+ /**
3885
+ * Convert {@link Second} to {@link Hour}.
3886
+ */
3887
+ export declare function secondsToHours(duration: Second): Hour;
3888
+ /**
3889
+ * Convert {@link Minute} to {@link Second}.
3890
+ */
3891
+ export declare function minutesToSeconds(duration: Minute): Second;
3892
+ /**
3893
+ * Convert {@link Minute} to {@link Hour}.
3894
+ */
3895
+ export declare function minutesToHours(duration: Minute): Hour;
3896
+ /**
3897
+ * Convert {@link Hour} to {@link Second}.
3898
+ */
3899
+ export declare function hoursToSeconds(duration: Hour): Second;
3900
+ /**
3901
+ * Convert {@link Hour} to {@link Minute}.
3902
+ */
3903
+ export declare function hoursToMinutes(duration: Hour): Minute;
3904
+ /**
3905
+ * Convert {@link Hour} to {@link Day}.
3906
+ */
3907
+ export declare function hoursToDays(duration: Hour): Day;
3908
+ /**
3909
+ * Convert {@link Day} to {@link Hour}.
3910
+ */
3911
+ export declare function daysToHours(duration: Day): Hour;
3912
+ /**
3913
+ * Convert {@link Day} to {@link Week}.
3914
+ */
3915
+ export declare function daysToWeeks(duration: Day): Week;
3916
+ /**
3917
+ * Convert {@link Day} to {@link Year}.
3918
+ *
3919
+ * This function assume that one year is equal to 365.25 Day.
3920
+ * Use an actual date/time library if you need more control.
3921
+ */
3922
+ export declare function daysToYears(duration: Day): Year;
3923
+ /**
3924
+ * Convert {@link Week} to {@link Day}.
3925
+ */
3926
+ export declare function weeksToDays(duration: Week): Day;
3927
+ /**
3928
+ * Convert {@link Week} to {@link Year}.
3929
+ */
3930
+ export declare function weeksToYears(duration: Week): Year;
3931
+ /**
3932
+ * Convert {@link Year} to {@link Day}.
3933
+ *
3934
+ * This function assume that one year is equal to 365.25 Day.
3935
+ * Use an actual date/time library if you need more control.
3936
+ */
3937
+ export declare function yearsToDays(duration: Year): Day;
3938
+ /**
3939
+ * Convert {@link Year} to {@link Week}.
3940
+ */
3941
+ export declare function yearsToWeeks(duration: Year): Week;
3942
+ /**
3943
+ * Convert {@link Joule} to {@link WattMinute}.
3944
+ */
3945
+ export declare function joulesToWattMinutes(energy: Joule): WattMinute;
3946
+ /**
3947
+ * Convert {@link Joule} to {@link WattHour}.
3948
+ */
3949
+ export declare function joulesToWattHours(energy: Joule): WattHour;
3950
+ /**
3951
+ * Convert {@link WattMinute} to {@link Joule}.
3952
+ */
3953
+ export declare function wattMinutesToJoules(energy: WattMinute): Joule;
3954
+ /**
3955
+ * Convert {@link WattHour} to {@link Joule}.
3956
+ */
3957
+ export declare function wattHoursToJoules(energy: WattHour): Joule;
3958
+ /**
3959
+ * Convert {@link Hertz} to {@link PerMinute}.
3960
+ */
3961
+ export declare function hertzToPerMinute(frequency: Hertz): PerMinute;
3962
+ /**
3963
+ * Convert {@link Hertz} to {@link PerHour}.
3964
+ */
3965
+ export declare function hertzToPerHour(frequency: Hertz): PerHour;
3966
+ /**
3967
+ * Convert {@link PerMinute} to {@link Hertz}.
3968
+ */
3969
+ export declare function perMinuteToHertz(frequency: PerMinute): Hertz;
3970
+ /**
3971
+ * Convert {@link PerMinute} to {@link PerHour}.
3972
+ */
3973
+ export declare function perMinuteToPerHour(frequency: PerMinute): PerHour;
3974
+ /**
3975
+ * Convert {@link PerHour} to {@link Hertz}.
3976
+ */
3977
+ export declare function perHourToHertz(frequency: PerHour): Hertz;
3978
+ /**
3979
+ * Convert {@link PerHour} to {@link PerMinute}.
3980
+ */
3981
+ export declare function perHourToPerMinute(frequency: PerHour): PerMinute;
3982
+ /**
3983
+ * Convert {@link PerHour} to {@link PerDay}.
3984
+ */
3985
+ export declare function perHourToPerDay(frequency: PerHour): PerDay;
3986
+ /**
3987
+ * Convert {@link PerDay} to {@link PerHour}.
3988
+ */
3989
+ export declare function perDayToPerHour(frequency: PerDay): PerHour;
3990
+ /**
3991
+ * Convert {@link PerDay} to {@link PerWeek}.
3992
+ */
3993
+ export declare function perDayToPerWeek(frequency: PerDay): PerWeek;
3994
+ /**
3995
+ * Convert {@link PerDay} to {@link PerYear}.
3996
+ *
3997
+ * This function assume that one year is equal to 365.25 Day.
3998
+ * Use an actual date/time library if you need more control.
3999
+ */
4000
+ export declare function perDayToPerYear(frequency: PerDay): PerYear;
4001
+ /**
4002
+ * Convert {@link PerWeek} to {@link PerDay}.
4003
+ */
4004
+ export declare function perWeekToPerDay(frequency: PerWeek): PerDay;
4005
+ /**
4006
+ * Convert {@link PerWeek} to {@link PerYear}.
4007
+ */
4008
+ export declare function perWeekToPerYear(frequency: PerWeek): PerYear;
4009
+ /**
4010
+ * Convert {@link PerYear} to {@link PerDay}.
4011
+ *
4012
+ * This function assume that one year is equal to 365.25 Day.
4013
+ * Use an actual date/time library if you need more control.
4014
+ */
4015
+ export declare function perYearToPerDay(frequency: PerYear): PerDay;
4016
+ /**
4017
+ * Convert {@link PerYear} to {@link PerWeek}.
4018
+ */
4019
+ export declare function perYearToPerWeek(frequency: PerYear): PerWeek;
4020
+ /**
4021
+ * Convert {@link Gram} to {@link Tonne}.
4022
+ */
4023
+ export declare function gramsToTonnes(mass: Gram): Tonne;
4024
+ /**
4025
+ * Convert {@link Tonne} to {@link Gram}.
4026
+ */
4027
+ export declare function tonnesToGrams(mass: Tonne): Gram;
4028
+ /**
4029
+ * Convert `X` to `dekaX`.
4030
+ */
4031
+ export declare function toDeka<T extends UnknownUnit>(value: T): Multiply<T, UnitConversionRate<{
4032
+ scalar10: -1;
4033
+ }>>;
4034
+ /**
4035
+ * Convert `dekaX` to `X`.
4036
+ */
4037
+ export declare const fromDeka: typeof toDeci;
4038
+ /**
4039
+ * Convert `X` to `deciX`.
4040
+ */
4041
+ export declare function toDeci<T extends UnknownUnit>(value: T): Divide<T, UnitConversionRate<{
4042
+ scalar10: -1;
4043
+ }>>;
4044
+ /**
4045
+ * Convert `deciX` to `X`.
4046
+ */
4047
+ export declare const fromDeci: typeof toDeka;
4048
+ /**
4049
+ * Convert `X` to `hectoX`.
4050
+ */
4051
+ export declare function toHecto<T extends UnknownUnit>(value: T): Multiply<T, UnitConversionRate<{
4052
+ scalar10: -2;
4053
+ }>>;
4054
+ /**
4055
+ * Convert `hectoX` to `X`.
4056
+ */
4057
+ export declare const fromHecto: typeof toCenti;
4058
+ /**
4059
+ * Convert `X` to `centiX`.
4060
+ */
4061
+ export declare function toCenti<T extends UnknownUnit>(value: T): Divide<T, UnitConversionRate<{
4062
+ scalar10: -2;
4063
+ }>>;
4064
+ /**
4065
+ * Convert `centiX` to `X`.
4066
+ */
4067
+ export declare const fromCenti: typeof toHecto;
4068
+ /**
4069
+ * Convert `X` to `kiloX`.
4070
+ */
4071
+ export declare function toKilo<T extends UnknownUnit>(value: T): Multiply<T, UnitConversionRate<{
4072
+ scalar10: -3;
4073
+ }>>;
4074
+ /**
4075
+ * Convert `kiloX` to `X`.
4076
+ */
4077
+ export declare const fromKilo: typeof toMilli;
4078
+ /**
4079
+ * Convert `X` to `milliX`.
4080
+ */
4081
+ export declare function toMilli<T extends UnknownUnit>(value: T): Divide<T, UnitConversionRate<{
4082
+ scalar10: -3;
4083
+ }>>;
4084
+ /**
4085
+ * Convert `milliX` to `X`.
4086
+ */
4087
+ export declare const fromMilli: typeof toKilo;
4088
+ /**
4089
+ * Convert `X` to `megaX`.
4090
+ */
4091
+ export declare function toMega<T extends UnknownUnit>(value: T): Multiply<T, UnitConversionRate<{
4092
+ scalar10: -6;
4093
+ }>>;
4094
+ /**
4095
+ * Convert `megaX` to `X`.
4096
+ */
4097
+ export declare const fromMega: typeof toMicro;
4098
+ /**
4099
+ * Convert `X` to `microX`.
4100
+ */
4101
+ export declare function toMicro<T extends UnknownUnit>(value: T): Divide<T, UnitConversionRate<{
4102
+ scalar10: -6;
4103
+ }>>;
4104
+ /**
4105
+ * Convert `microX` to `X`.
4106
+ */
4107
+ export declare const fromMicro: typeof toMega;
4108
+ /**
4109
+ * Convert `X` to `gigaX`.
4110
+ */
4111
+ export declare function toGiga<T extends UnknownUnit>(value: T): Multiply<T, UnitConversionRate<{
4112
+ scalar10: -9;
4113
+ }>>;
4114
+ /**
4115
+ * Convert `gigaX` to `X`.
4116
+ */
4117
+ export declare const fromGiga: typeof toNano;
4118
+ /**
4119
+ * Convert `X` to `nanoX`.
4120
+ */
4121
+ export declare function toNano<T extends UnknownUnit>(value: T): Divide<T, UnitConversionRate<{
4122
+ scalar10: -9;
4123
+ }>>;
4124
+ /**
4125
+ * Convert `nanoX` to `X`.
4126
+ */
4127
+ export declare const fromNano: typeof toGiga;
4128
+ /**
4129
+ * Convert `X` to `teraX`.
4130
+ */
4131
+ export declare function toTera<T extends UnknownUnit>(value: T): Multiply<T, UnitConversionRate<{
4132
+ scalar10: -12;
4133
+ }>>;
4134
+ /**
4135
+ * Convert `teraX` to `X`.
4136
+ */
4137
+ export declare const fromTera: typeof toPico;
4138
+ /**
4139
+ * Convert `X` to `picoX`.
4140
+ */
4141
+ export declare function toPico<T extends UnknownUnit>(value: T): Divide<T, UnitConversionRate<{
4142
+ scalar10: -12;
4143
+ }>>;
4144
+ /**
4145
+ * Convert `picoX` to `X`.
4146
+ */
4147
+ export declare const fromPico: typeof toTera;
4148
+ /**
4149
+ * Convert {@link Celsius} to {@link Kelvin}.
4150
+ */
4151
+ export declare function celsiusToKelvin(temperature: Celsius): Kelvin;
4152
+ /**
4153
+ * Convert {@link Kelvin} to {@link Celsius}.
4154
+ */
4155
+ export declare function kelvinToCelsius(temperature: Kelvin): Celsius;
4156
+ /**
4157
+ * Convert {@link Cubic}<{@link Meter}> to {@link Liter}.
4158
+ */
4159
+ export declare function cubicMetersToLiters(volume: Cubic<Meter>): Liter;
4160
+ /**
4161
+ * Convert {@link Liter} to {@link Cubic}<{@link Meter}>.
4162
+ */
4163
+ export declare function litersToCubicMeters(volume: Liter): Cubic<Meter>;
4164
+ export type OperationIO<T extends number> = [
4165
+ T
4166
+ ] extends [
4167
+ UnknownUnit | UnknownAbstractUnit
4168
+ ] ? T : number;
4169
+ /**
4170
+ * Add two values with the same units together.
4171
+ *
4172
+ * @category Math
4173
+ * @returns `a + b`
4174
+ */
4175
+ export declare function add<T extends number>(a: OperationIO<T>, b: OperationIO<T>): OperationIO<T>;
4176
+ /**
4177
+ * Add two values with the same units together.
4178
+ *
4179
+ * @category Math
4180
+ * @returns `(a) => a + b`
4181
+ */
4182
+ export declare function add<T extends number>(b: OperationIO<T>): (a: OperationIO<T>) => OperationIO<T>;
4183
+ /**
4184
+ * Subtract one value from another with the same units.
4185
+ *
4186
+ * @category Math
4187
+ * @returns `a - b`
4188
+ */
4189
+ export declare function sub<T extends number>(a: OperationIO<T>, b: OperationIO<T>): OperationIO<T>;
4190
+ /**
4191
+ * Subtract one value from another with the same units.
4192
+ *
4193
+ * @category Math
4194
+ * @returns `(a) => a - b`
4195
+ */
4196
+ export declare function sub<T extends number>(b: OperationIO<T>): (a: OperationIO<T>) => OperationIO<T>;
4197
+ /**
4198
+ * Multiple two values together.
4199
+ *
4200
+ * @category Math
4201
+ * @returns `a * b`
4202
+ */
4203
+ export declare function mul<A extends number, B extends number>(a: A, b: B): Multiply<A, B>;
4204
+ /**
4205
+ * Multiple a value by the given value.
4206
+ *
4207
+ * @category Math
4208
+ * @returns `(a) => a * b`
4209
+ */
4210
+ export declare function mul<B extends number>(b: B): <A extends number>(a: A) => Multiply<A, B>;
4211
+ /**
4212
+ * Divide one value by another.
4213
+ *
4214
+ * @category Math
4215
+ * @returns `a / b`
4216
+ */
4217
+ export declare function div<A extends number, B extends number>(a: A, b: B): Divide<A, B>;
4218
+ /**
4219
+ * Divide one value by the given value.
4220
+ *
4221
+ * @category Math
4222
+ * @returns `(a) => a / b`
4223
+ */
4224
+ export declare function div<B extends number>(b: B): <A extends number>(a: A) => Divide<A, B>;
4225
+ /**
4226
+ * Modulo operator.
4227
+ *
4228
+ * @category Math
4229
+ * @param a - Must be an integer.
4230
+ * @param b - Must be an integer.
4231
+ * @returns `a % b`
4232
+ */
4233
+ export declare function mod<T extends number>(a: OperationIO<T>, b: OperationIO<T>): OperationIO<T>;
4234
+ /**
4235
+ * Modulo operator.
4236
+ *
4237
+ * @category Math
4238
+ * @param b - Must be an integer.
4239
+ * @returns `(a) => a % b`
4240
+ */
4241
+ export declare function mod<T extends number>(b: OperationIO<T>): (a: OperationIO<T>) => OperationIO<T>;
4242
+ /**
4243
+ * Perform mathematic modular arithmetic.
4244
+ *
4245
+ * @category Math
4246
+ * @param a - Must be an integer.
4247
+ * @param b - Must be a positive integer.
4248
+ * @returns An integer between zero (inclusive) and `b` (exclusive).
4249
+ */
4250
+ export declare function modSafe<T extends number>(a: OperationIO<T>, b: OperationIO<T>): OperationIO<T>;
4251
+ /**
4252
+ * Perform mathematic modular arithmetic.
4253
+ *
4254
+ * @category Math
4255
+ * @param b - Must be a positive integer.
4256
+ * @returns A function that takes a integer and returns an integer between zero (inclusive) and `b` (exclusive).
4257
+ */
4258
+ export declare function modSafe<T extends number>(b: OperationIO<T>): (a: OperationIO<T>) => OperationIO<T>;
4259
+ export type PowFunction<E extends number, B extends number> = E extends UnknownUnit ? never : E extends UnknownAbstractUnit ? never : E extends Exponent ? (b: B) => Pow<B, E> : E extends 0.5 ? (b: B) => Root<B, 2> : (b: B) => number;
4260
+ /**
4261
+ * Raise a number to the power of another.
4262
+ *
4263
+ * @category Math
4264
+ * @returns `base ** exponent`
4265
+ */
4266
+ export declare function pow<B extends number, E extends number>(base: B, exponent: E extends UnknownUnit ? never : E extends UnknownAbstractUnit ? never : E): E extends Exponent ? Pow<B, E> : number;
4267
+ /**
4268
+ * Put a number to the power of 1/2.
4269
+ *
4270
+ * @category Math
4271
+ * @returns `base ** 0.5`
4272
+ */
4273
+ export declare function pow<B extends number>(base: B, exponent: 0.5): Root<B, 2>;
4274
+ /**
4275
+ * Put a number to the power of the given value.
4276
+ *
4277
+ * @category Math
4278
+ * @returns `(base) => base ** exponent`
4279
+ */
4280
+ export declare function pow<E extends number>(exponent: E): <B extends number>(base: Parameters<PowFunction<E, B>>[0]) => ReturnType<PowFunction<E, B>>;
4281
+ export type RootFunction<E extends number, B extends number> = E extends UnknownUnit ? never : E extends UnknownAbstractUnit ? never : E extends PosExponent ? (b: B) => Root<B, E> : (b: B) => number;
4282
+ /**
4283
+ * Take the nth root of a number.
4284
+ *
4285
+ * @category Math
4286
+ * @returns `base ** (1 / exponent)`
4287
+ */
4288
+ export declare function root<B extends number, E extends number>(base: B, exponent: E extends UnknownUnit ? never : E extends UnknownAbstractUnit ? never : E): E extends PosExponent ? Root<B, E> : number;
4289
+ /**
4290
+ * Take the nth root of a number.
4291
+ *
4292
+ * @category Math
4293
+ * @returns `(base) => base ** (1 / exponent)`
4294
+ */
4295
+ export declare function root<E extends number>(exponent: E): <B extends number>(base: Parameters<RootFunction<E, B>>[0]) => ReturnType<RootFunction<E, B>>;
4296
+ /**
4297
+ * Take the square root of the given value.
4298
+ *
4299
+ * @category Math
4300
+ * @returns `value ** (1/2)`
4301
+ */
4302
+ export declare function sqrt<T extends number>(value: T): Root<T, 2>;
4303
+ /**
4304
+ * Inverse the given value.
4305
+ *
4306
+ * @category Math
4307
+ * @returns `value ** -1`
4308
+ */
4309
+ export declare function inverse<T extends number>(value: T): Inverse<T>;
4310
+ /**
4311
+ * Returns the negative of the given value.
4312
+ *
4313
+ * @category Math
4314
+ * @returns `-value`
4315
+ */
4316
+ export declare function negate<T extends number>(value: OperationIO<T>): OperationIO<T>;
4317
+ /**
4318
+ * Returns the absolute value of the given value.
4319
+ *
4320
+ * @category Math
4321
+ * @returns `Math.abs(value)`
4322
+ */
4323
+ export declare function abs<T extends number>(value: OperationIO<T>): OperationIO<T>;
4324
+ /**
4325
+ * Returns the greatest integer less than or equal to the given value.
4326
+ *
4327
+ * @category Math
4328
+ * @returns `Math.floor(value)`
4329
+ */
4330
+ export declare function floor<T extends number>(value: OperationIO<T>): OperationIO<T>;
4331
+ /**
4332
+ * Returns the smallest integer greater than or equal the given value.
4333
+ *
4334
+ * @category Math
4335
+ * @returns `Math.ceil(value)`
4336
+ */
4337
+ export declare function ceil<T extends number>(value: OperationIO<T>): OperationIO<T>;
4338
+ /**
4339
+ * Returns the given value rounded to the nearest integer.
4340
+ *
4341
+ * @category Math
4342
+ * @returns `Math.round(value)`
4343
+ */
4344
+ export declare function round<T extends number>(value: OperationIO<T>): OperationIO<T>;
4345
+ /**
4346
+ * Returns the larger value in the given collection.
4347
+ *
4348
+ * @category Math
4349
+ * @returns `Math.max(values)`
4350
+ */
4351
+ export declare function max<T extends number>(values: Iterable<T>): OperationIO<T>;
4352
+ /**
4353
+ * Returns the smallest value in the given collection.
4354
+ *
4355
+ * @category Math
4356
+ * @returns `Math.min(values)`
4357
+ */
4358
+ export declare function min<T extends number>(values: Iterable<T>): OperationIO<T>;
4359
+ /**
4360
+ * Takes the sum of all the values in the given collection.
4361
+ *
4362
+ * @category Math
4363
+ * @returns `Math.sum(values)`
4364
+ */
4365
+ export declare function sum<T extends number>(values: Iterable<T>): OperationIO<T>;
4366
+ /**
4367
+ * Equal: Compare if two values are equal.
4368
+ *
4369
+ * @category Math
4370
+ * @returns `a === b`
4371
+ */
4372
+ export declare function eq<T extends number>(a: OperationIO<T>, b: OperationIO<T>): boolean;
4373
+ /**
4374
+ * Equal: Compare if a value is equal to the given value.
4375
+ *
4376
+ * @category Math
4377
+ * @returns `(a) => a === b`
4378
+ */
4379
+ export declare function eq<T extends number>(b: OperationIO<T>): (a: OperationIO<T>) => boolean;
4380
+ /**
4381
+ * Greater Than: Compare if the first value is greater than the second.
4382
+ *
4383
+ * @category Math
4384
+ * @returns `a > b`
4385
+ */
4386
+ export declare function gt<T extends number>(a: OperationIO<T>, b: OperationIO<T>): boolean;
4387
+ /**
4388
+ * Greater Than: Compare if a value is greater than the given value.
4389
+ *
4390
+ * @category Math
4391
+ * @returns `(a) => a > b`
4392
+ */
4393
+ export declare function gt<T extends number>(b: OperationIO<T>): (a: OperationIO<T>) => boolean;
4394
+ /**
4395
+ * Greater Than or Equal: Compare if the first value is greater than or equal to the second.
4396
+ *
4397
+ * @category Math
4398
+ * @returns `a >= b`
4399
+ */
4400
+ export declare function gte<T extends number>(a: OperationIO<T>, b: OperationIO<T>): boolean;
4401
+ /**
4402
+ * Greater Than or Equal: Compare if a value is greater than or equal to the given value.
4403
+ *
4404
+ * @category Math
4405
+ * @returns `(a) => a >= b`
4406
+ */
4407
+ export declare function gte<T extends number>(b: OperationIO<T>): (a: OperationIO<T>) => boolean;
4408
+ /**
4409
+ * Less Than: Compare if the first value is less than the second.
4410
+ *
4411
+ * @category Math
4412
+ * @returns `a < b`
4413
+ */
4414
+ export declare function lt<T extends number>(a: OperationIO<T>, b: OperationIO<T>): boolean;
4415
+ /**
4416
+ * Less Than: Compare if a value is less than the given value.
4417
+ *
4418
+ * @category Math
4419
+ * @returns `(a) => a < b`
4420
+ */
4421
+ export declare function lt<T extends number>(b: OperationIO<T>): (a: OperationIO<T>) => boolean;
4422
+ /**
4423
+ * Less Than or Equal: Compare if the first value is less than or equal to the second.
4424
+ *
4425
+ * @category Math
4426
+ * @returns `a <= b`
4427
+ */
4428
+ export declare function lte<T extends number>(a: OperationIO<T>, b: OperationIO<T>): boolean;
4429
+ /**
4430
+ * Less Than or Equal: Compare if a value is less than or equal to the given value.
4431
+ *
4432
+ * @category Math
4433
+ * @returns `(a) => a <= b`
4434
+ */
4435
+ export declare function lte<T extends number>(b: OperationIO<T>): (a: OperationIO<T>) => boolean;
4436
+ /**
4437
+ * Returns the sine of a number.
4438
+ *
4439
+ * @category Math
4440
+ * @returns `Math.sin(angle)`
4441
+ */
4442
+ export declare function sin(angle: Radian): Unitless;
4443
+ /**
4444
+ * Returns the cosine of a number.
4445
+ *
4446
+ * @category Math
4447
+ * @returns `Math.cos(angle)`
4448
+ */
4449
+ export declare function cos(angle: Radian): Unitless;
4450
+ /**
4451
+ * Returns the tangent of a number.
4452
+ *
4453
+ * @category Math
4454
+ * @returns `Math.tan(angle)`
4455
+ */
4456
+ export declare function tan(angle: Radian): Unitless;
4457
+ /**
4458
+ * Returns the arcsine of a number.
4459
+ *
4460
+ * @category Math
4461
+ * @returns `Math.asin(value)`
4462
+ */
4463
+ export declare function asin(value: Unitless): Radian;
4464
+ /**
4465
+ * Returns the arc cosine (or inverse cosine) of a number.
4466
+ *
4467
+ * @category Math
4468
+ * @returns `Math.acos(value)`
4469
+ */
4470
+ export declare function acos(value: Unitless): Radian;
4471
+ /**
4472
+ * Returns the arctangent of a number.
4473
+ *
4474
+ * @category Math
4475
+ * @returns `Math.atan(value)`
4476
+ */
4477
+ export declare function atan(value: Unitless): Radian;
4478
+ /**
4479
+ * Returns the angle (in radians) from the X axis to a point.
4480
+ *
4481
+ * @category Math
4482
+ * @param x - A number representing the cartesian x-coordinate.
4483
+ * @param y - A number representing the cartesian y-coordinate.
4484
+ * @returns `Math.atan2(x, y)`
4485
+ */
4486
+ export declare function atan2<T extends number>(x: T, y: T): Radian;
4487
+ /**
4488
+ * Returns the hyperbolic sine of a number.
4489
+ *
4490
+ * @category Math
4491
+ * @returns `Math.sinh(angle)`
4492
+ */
4493
+ export declare function sinh(angle: Radian): Unitless;
4494
+ /**
4495
+ * Returns the hyperbolic cosine of a number.
4496
+ *
4497
+ * @category Math
4498
+ * @returns `Math.cosh(angle)`
4499
+ */
4500
+ export declare function cosh(angle: Radian): Unitless;
4501
+ /**
4502
+ * Returns the hyperbolic tangent of a number.
4503
+ *
4504
+ * @category Math
4505
+ * @returns `Math.tanh(angle)`
4506
+ */
4507
+ export declare function tanh(angle: Radian): Unitless;
4508
+ /**
4509
+ * Returns the inverse hyperbolic sine of a number.
4510
+ *
4511
+ * @category Math
4512
+ * @returns `Math.asinh(value)`
4513
+ */
4514
+ export declare function asinh(value: Unitless): Radian;
4515
+ /**
4516
+ * Returns the inverse hyperbolic cosine of a number.
6
4517
  *
7
- * @deprecated Use {@link Pow} instead.
4518
+ * @category Math
4519
+ * @returns `Math.acosh(value)`
8
4520
  */
9
- type MultiplyUnitExponents<T extends number, E extends Exponent> = Pow<T, E>;
4521
+ export declare function acosh(value: Unitless): Radian;
10
4522
  /**
11
- * Divide the exponent values of a unit by a number.
4523
+ * Returns the inverse hyperbolic tangent of a number.
12
4524
  *
13
- * @deprecated Use {@link Root} instead.
4525
+ * @category Math
4526
+ * @returns `Math.atanh(value)`
14
4527
  */
15
- type DivideUnitExponents<T extends number, E extends Exponent> = Root<T, E>;
4528
+ export declare function atanh(value: Unitless): Radian;
16
4529
 
17
- export { DivideUnitExponents, Exponent, MultiplyUnitExponents, Pow, Root };
4530
+ export {};