@attrx/role-morphic 0.1.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1157 @@
1
+ import { A as AreaUnit, L as LengthUnit, M as MassUnit, V as VolumeUnit, S as SpeedUnit, E as EnergyUnit, P as PowerUnit, b as PressureUnit, F as FrequencyUnit, a as AngleUnit, T as TimeUnit, D as DigitalUnit } from './constants-BZdBwuvJ.js';
2
+ import { T as TemperatureUnit, r as ColorVariant, o as DateVariant } from './types-mbeS1e-k.js';
3
+
4
+ /**
5
+ * Area Role - Convert Pillar
6
+ *
7
+ * Conversão entre unidades de área usando arquitetura hub-and-spoke.
8
+ * Base: square_meter (m²)
9
+ *
10
+ * @example
11
+ * import { convertArea, toBaseArea, fromBaseArea } from '@attrx/role-morphic/area/convert';
12
+ *
13
+ * convertArea('hectare', 'acre', 1); // 2.47105...
14
+ * toBaseArea('hectare', 1); // 10000
15
+ * fromBaseArea('acre', 10000); // 2.47105...
16
+ */
17
+
18
+ type Result$e<T> = {
19
+ ok: true;
20
+ value: T;
21
+ } | {
22
+ ok: false;
23
+ error: string;
24
+ };
25
+ /** Variante base para conversões */
26
+ declare const AREA_BASE: AreaUnit;
27
+ /**
28
+ * Converte valor para a unidade base (square_meter)
29
+ *
30
+ * @param variant - Unidade de origem
31
+ * @param value - Valor a converter
32
+ * @returns Valor em square_meter
33
+ *
34
+ * @example
35
+ * toBaseArea('hectare', 1); // 10000
36
+ * toBaseArea('acre', 1); // 4046.8564224
37
+ */
38
+ declare function toBaseArea(variant: AreaUnit, value: number): number;
39
+ /**
40
+ * Converte valor da unidade base (square_meter) para outra unidade
41
+ *
42
+ * @param variant - Unidade de destino
43
+ * @param baseValue - Valor em square_meter
44
+ * @returns Valor na unidade de destino
45
+ *
46
+ * @example
47
+ * fromBaseArea('hectare', 10000); // 1
48
+ * fromBaseArea('acre', 4046.86); // ~1
49
+ */
50
+ declare function fromBaseArea(variant: AreaUnit, baseValue: number): number;
51
+ /**
52
+ * Converte entre duas unidades de área
53
+ *
54
+ * @param from - Unidade de origem
55
+ * @param to - Unidade de destino
56
+ * @param value - Valor a converter
57
+ * @returns Valor convertido
58
+ *
59
+ * @example
60
+ * convertArea('hectare', 'acre', 1); // 2.47105...
61
+ * convertArea('square_meter', 'hectare', 10000); // 1
62
+ */
63
+ declare function convertArea(from: AreaUnit, to: AreaUnit, value: number): number;
64
+ /**
65
+ * Versão safe de convertArea que retorna Result
66
+ *
67
+ * @example
68
+ * tryConvertArea('hectare', 'acre', 1);
69
+ * // { ok: true, value: 2.47105... }
70
+ *
71
+ * tryConvertArea('invalid', 'acre', 1);
72
+ * // { ok: false, error: 'Unknown area variant: invalid' }
73
+ */
74
+ declare function tryConvertArea(from: AreaUnit, to: AreaUnit, value: number): Result$e<number>;
75
+ /**
76
+ * Verifica se uma variante existe
77
+ */
78
+ declare function hasAreaVariant(variant: string): variant is AreaUnit;
79
+ /**
80
+ * Lista todas as variantes disponíveis
81
+ */
82
+ declare function getAreaVariants(): AreaUnit[];
83
+
84
+ /**
85
+ * Length Role - Convert Pillar
86
+ *
87
+ * Conversão entre unidades de comprimento usando arquitetura hub-and-spoke.
88
+ * Base: meter (m)
89
+ *
90
+ * @example
91
+ * import { convertLength, toBaseLength, fromBaseLength } from '@attrx/role-morphic/length/convert';
92
+ *
93
+ * convertLength('kilometer', 'mile', 1); // 0.621371...
94
+ * toBaseLength('kilometer', 1); // 1000
95
+ * fromBaseLength('mile', 1000); // 0.621371...
96
+ */
97
+
98
+ type Result$d<T> = {
99
+ ok: true;
100
+ value: T;
101
+ } | {
102
+ ok: false;
103
+ error: string;
104
+ };
105
+ /** Variante base para conversões */
106
+ declare const LENGTH_BASE: LengthUnit;
107
+ /**
108
+ * Converte valor para a unidade base (meter)
109
+ *
110
+ * @param variant - Unidade de origem
111
+ * @param value - Valor a converter
112
+ * @returns Valor em meters
113
+ *
114
+ * @example
115
+ * toBaseLength('kilometer', 1); // 1000
116
+ * toBaseLength('mile', 1); // 1609.344
117
+ */
118
+ declare function toBaseLength(variant: LengthUnit, value: number): number;
119
+ /**
120
+ * Converte valor da unidade base (meter) para outra unidade
121
+ *
122
+ * @param variant - Unidade de destino
123
+ * @param baseValue - Valor em meters
124
+ * @returns Valor na unidade de destino
125
+ *
126
+ * @example
127
+ * fromBaseLength('kilometer', 1000); // 1
128
+ * fromBaseLength('mile', 1609.344); // 1
129
+ */
130
+ declare function fromBaseLength(variant: LengthUnit, baseValue: number): number;
131
+ /**
132
+ * Converte entre duas unidades de comprimento
133
+ *
134
+ * @param from - Unidade de origem
135
+ * @param to - Unidade de destino
136
+ * @param value - Valor a converter
137
+ * @returns Valor convertido
138
+ *
139
+ * @example
140
+ * convertLength('kilometer', 'mile', 1); // 0.621371...
141
+ * convertLength('foot', 'meter', 1); // 0.3048
142
+ */
143
+ declare function convertLength(from: LengthUnit, to: LengthUnit, value: number): number;
144
+ /**
145
+ * Versão safe de convertLength que retorna Result
146
+ *
147
+ * @example
148
+ * tryConvertLength('kilometer', 'mile', 1);
149
+ * // { ok: true, value: 0.621371... }
150
+ *
151
+ * tryConvertLength('invalid', 'mile', 1);
152
+ * // { ok: false, error: 'Unknown length variant: invalid' }
153
+ */
154
+ declare function tryConvertLength(from: LengthUnit, to: LengthUnit, value: number): Result$d<number>;
155
+ /**
156
+ * Verifica se uma variante existe
157
+ */
158
+ declare function hasLengthVariant(variant: string): variant is LengthUnit;
159
+ /**
160
+ * Lista todas as variantes disponíveis
161
+ */
162
+ declare function getLengthVariants(): LengthUnit[];
163
+
164
+ /**
165
+ * Mass Role - Convert Pillar
166
+ *
167
+ * Conversão entre unidades de massa usando arquitetura hub-and-spoke.
168
+ * Base: kilogram (kg)
169
+ *
170
+ * @example
171
+ * import { convertMass, toBaseMass, fromBaseMass } from '@attrx/role-morphic/mass/convert';
172
+ *
173
+ * convertMass('kilogram', 'pound', 1); // 2.20462...
174
+ * toBaseMass('pound', 1); // 0.45359237
175
+ * fromBaseMass('pound', 0.45359237); // 1
176
+ */
177
+
178
+ type Result$c<T> = {
179
+ ok: true;
180
+ value: T;
181
+ } | {
182
+ ok: false;
183
+ error: string;
184
+ };
185
+ /** Variante base para conversões */
186
+ declare const MASS_BASE: MassUnit;
187
+ /**
188
+ * Converte valor para a unidade base (kilogram)
189
+ *
190
+ * @param variant - Unidade de origem
191
+ * @param value - Valor a converter
192
+ * @returns Valor em kilogram
193
+ *
194
+ * @example
195
+ * toBaseMass('pound', 1); // 0.45359237
196
+ * toBaseMass('gram', 1000); // 1
197
+ */
198
+ declare function toBaseMass(variant: MassUnit, value: number): number;
199
+ /**
200
+ * Converte valor da unidade base (kilogram) para outra unidade
201
+ *
202
+ * @param variant - Unidade de destino
203
+ * @param baseValue - Valor em kilogram
204
+ * @returns Valor na unidade de destino
205
+ *
206
+ * @example
207
+ * fromBaseMass('pound', 1); // 2.20462...
208
+ * fromBaseMass('gram', 1); // 1000
209
+ */
210
+ declare function fromBaseMass(variant: MassUnit, baseValue: number): number;
211
+ /**
212
+ * Converte entre duas unidades de massa
213
+ *
214
+ * @param from - Unidade de origem
215
+ * @param to - Unidade de destino
216
+ * @param value - Valor a converter
217
+ * @returns Valor convertido
218
+ *
219
+ * @example
220
+ * convertMass('kilogram', 'pound', 1); // 2.20462...
221
+ * convertMass('pound', 'kilogram', 2.2); // ~1
222
+ * convertMass('gram', 'milligram', 1); // 1000
223
+ */
224
+ declare function convertMass(from: MassUnit, to: MassUnit, value: number): number;
225
+ /**
226
+ * Versão safe de convertMass que retorna Result
227
+ *
228
+ * @example
229
+ * tryConvertMass('kilogram', 'pound', 1);
230
+ * // { ok: true, value: 2.20462... }
231
+ *
232
+ * tryConvertMass('invalid', 'pound', 1);
233
+ * // { ok: false, error: 'Unknown mass variant: invalid' }
234
+ */
235
+ declare function tryConvertMass(from: MassUnit, to: MassUnit, value: number): Result$c<number>;
236
+ /**
237
+ * Verifica se uma variante existe
238
+ */
239
+ declare function hasMassVariant(variant: string): variant is MassUnit;
240
+ /**
241
+ * Lista todas as variantes disponíveis
242
+ */
243
+ declare function getMassVariants(): MassUnit[];
244
+
245
+ /**
246
+ * Temperature Role - Convert Pillar
247
+ *
248
+ * Conversão entre unidades de temperatura usando arquitetura hub-and-spoke.
249
+ * Base: celsius (°C)
250
+ *
251
+ * IMPORTANTE: Diferente de outras roles, temperatura usa FÓRMULAS
252
+ * ao invés de fatores multiplicativos (escalas têm offsets diferentes).
253
+ *
254
+ * Fórmulas de conversão:
255
+ * - Celsius ↔ Fahrenheit: °F = °C × 9/5 + 32
256
+ * - Celsius ↔ Kelvin: K = °C + 273.15
257
+ * - Celsius ↔ Rankine: °R = (°C + 273.15) × 9/5
258
+ *
259
+ * @example
260
+ * import { convertTemperature, toBaseTemperature, fromBaseTemperature } from '@attrx/role-morphic/temperature/convert';
261
+ *
262
+ * convertTemperature('celsius', 'fahrenheit', 0); // 32
263
+ * convertTemperature('celsius', 'kelvin', 0); // 273.15
264
+ * toBaseTemperature('fahrenheit', 32); // 0
265
+ * fromBaseTemperature('kelvin', 0); // 273.15
266
+ */
267
+
268
+ type Result$b<T> = {
269
+ ok: true;
270
+ value: T;
271
+ } | {
272
+ ok: false;
273
+ error: string;
274
+ };
275
+ /** Variante base para conversões */
276
+ declare const TEMPERATURE_BASE: TemperatureUnit;
277
+ /**
278
+ * Converte valor para a unidade base (celsius)
279
+ *
280
+ * @param variant - Unidade de origem
281
+ * @param value - Valor a converter
282
+ * @returns Valor em celsius
283
+ *
284
+ * @example
285
+ * toBaseTemperature('fahrenheit', 32); // 0
286
+ * toBaseTemperature('kelvin', 273.15); // 0
287
+ * toBaseTemperature('rankine', 491.67); // 0
288
+ */
289
+ declare function toBaseTemperature(variant: TemperatureUnit, value: number): number;
290
+ /**
291
+ * Converte valor da unidade base (celsius) para outra unidade
292
+ *
293
+ * @param variant - Unidade de destino
294
+ * @param baseValue - Valor em celsius
295
+ * @returns Valor na unidade de destino
296
+ *
297
+ * @example
298
+ * fromBaseTemperature('fahrenheit', 0); // 32
299
+ * fromBaseTemperature('kelvin', 0); // 273.15
300
+ * fromBaseTemperature('rankine', 0); // 491.67
301
+ */
302
+ declare function fromBaseTemperature(variant: TemperatureUnit, baseValue: number): number;
303
+ /**
304
+ * Converte entre duas unidades de temperatura
305
+ *
306
+ * @param from - Unidade de origem
307
+ * @param to - Unidade de destino
308
+ * @param value - Valor a converter
309
+ * @returns Valor convertido
310
+ *
311
+ * @example
312
+ * convertTemperature('celsius', 'fahrenheit', 0); // 32
313
+ * convertTemperature('celsius', 'fahrenheit', 100); // 212
314
+ * convertTemperature('fahrenheit', 'celsius', 32); // 0
315
+ * convertTemperature('celsius', 'kelvin', 0); // 273.15
316
+ * convertTemperature('kelvin', 'rankine', 0); // 0
317
+ */
318
+ declare function convertTemperature(from: TemperatureUnit, to: TemperatureUnit, value: number): number;
319
+ /**
320
+ * Versão safe de convertTemperature que retorna Result
321
+ *
322
+ * @example
323
+ * tryConvertTemperature('celsius', 'fahrenheit', 0);
324
+ * // { ok: true, value: 32 }
325
+ *
326
+ * tryConvertTemperature('invalid', 'fahrenheit', 0);
327
+ * // { ok: false, error: 'Unknown temperature variant: invalid' }
328
+ */
329
+ declare function tryConvertTemperature(from: TemperatureUnit, to: TemperatureUnit, value: number): Result$b<number>;
330
+ /**
331
+ * Verifica se uma variante existe
332
+ */
333
+ declare function hasTemperatureVariant(variant: string): variant is TemperatureUnit;
334
+ /**
335
+ * Lista todas as variantes disponíveis
336
+ */
337
+ declare function getTemperatureVariants(): TemperatureUnit[];
338
+
339
+ /**
340
+ * Volume Role - Convert Pillar
341
+ *
342
+ * Conversão entre unidades de volume usando arquitetura hub-and-spoke.
343
+ * Base: liter (L)
344
+ *
345
+ * @example
346
+ * import { convertVolume, toBaseVolume, fromBaseVolume } from '@attrx/role-morphic/volume/convert';
347
+ *
348
+ * convertVolume('gallon_us', 'liter', 1); // 3.785411784
349
+ * toBaseVolume('milliliter', 500); // 0.5
350
+ * fromBaseVolume('gallon_us', 3.785411784); // 1
351
+ */
352
+
353
+ type Result$a<T> = {
354
+ ok: true;
355
+ value: T;
356
+ } | {
357
+ ok: false;
358
+ error: string;
359
+ };
360
+ /** Variante base para conversões */
361
+ declare const VOLUME_BASE: VolumeUnit;
362
+ /**
363
+ * Converte valor para a unidade base (liter)
364
+ *
365
+ * @param variant - Unidade de origem
366
+ * @param value - Valor a converter
367
+ * @returns Valor em liter
368
+ *
369
+ * @example
370
+ * toBaseVolume('milliliter', 500); // 0.5
371
+ * toBaseVolume('gallon_us', 1); // 3.785411784
372
+ */
373
+ declare function toBaseVolume(variant: VolumeUnit, value: number): number;
374
+ /**
375
+ * Converte valor da unidade base (liter) para outra unidade
376
+ *
377
+ * @param variant - Unidade de destino
378
+ * @param baseValue - Valor em liter
379
+ * @returns Valor na unidade de destino
380
+ *
381
+ * @example
382
+ * fromBaseVolume('milliliter', 0.5); // 500
383
+ * fromBaseVolume('gallon_us', 3.785411784); // 1
384
+ */
385
+ declare function fromBaseVolume(variant: VolumeUnit, baseValue: number): number;
386
+ /**
387
+ * Converte entre duas unidades de volume
388
+ *
389
+ * @param from - Unidade de origem
390
+ * @param to - Unidade de destino
391
+ * @param value - Valor a converter
392
+ * @returns Valor convertido
393
+ *
394
+ * @example
395
+ * convertVolume('gallon_us', 'liter', 1); // 3.785411784
396
+ * convertVolume('milliliter', 'liter', 500); // 0.5
397
+ * convertVolume('cup_us', 'tablespoon_us', 1); // 16
398
+ */
399
+ declare function convertVolume(from: VolumeUnit, to: VolumeUnit, value: number): number;
400
+ /**
401
+ * Versão safe de convertVolume que retorna Result
402
+ *
403
+ * @example
404
+ * tryConvertVolume('gallon_us', 'liter', 1);
405
+ * // { ok: true, value: 3.785411784 }
406
+ *
407
+ * tryConvertVolume('invalid', 'liter', 1);
408
+ * // { ok: false, error: 'Unknown volume variant: invalid' }
409
+ */
410
+ declare function tryConvertVolume(from: VolumeUnit, to: VolumeUnit, value: number): Result$a<number>;
411
+ /**
412
+ * Verifica se uma variante existe
413
+ */
414
+ declare function hasVolumeVariant(variant: string): variant is VolumeUnit;
415
+ /**
416
+ * Lista todas as variantes disponíveis
417
+ */
418
+ declare function getVolumeVariants(): VolumeUnit[];
419
+
420
+ /**
421
+ * Speed Role - Convert Pillar
422
+ *
423
+ * Conversão entre unidades de velocidade usando arquitetura hub-and-spoke.
424
+ * Base: meter_per_second (m/s)
425
+ *
426
+ * @example
427
+ * import { convertSpeed, toBaseSpeed, fromBaseSpeed } from '@attrx/role-morphic/speed/convert';
428
+ *
429
+ * convertSpeed('kilometer_per_hour', 'mile_per_hour', 100); // 62.1371...
430
+ * toBaseSpeed('kilometer_per_hour', 100); // 27.7778...
431
+ * fromBaseSpeed('mile_per_hour', 27.7778); // ~62.14
432
+ */
433
+
434
+ type Result$9<T> = {
435
+ ok: true;
436
+ value: T;
437
+ } | {
438
+ ok: false;
439
+ error: string;
440
+ };
441
+ /** Variante base para conversões */
442
+ declare const SPEED_BASE: SpeedUnit;
443
+ /**
444
+ * Converte valor para a unidade base (meter_per_second)
445
+ *
446
+ * @param variant - Unidade de origem
447
+ * @param value - Valor a converter
448
+ * @returns Valor em meter_per_second
449
+ *
450
+ * @example
451
+ * toBaseSpeed('kilometer_per_hour', 100); // 27.7778...
452
+ * toBaseSpeed('mile_per_hour', 60); // 26.8224
453
+ */
454
+ declare function toBaseSpeed(variant: SpeedUnit, value: number): number;
455
+ /**
456
+ * Converte valor da unidade base (meter_per_second) para outra unidade
457
+ *
458
+ * @param variant - Unidade de destino
459
+ * @param baseValue - Valor em meter_per_second
460
+ * @returns Valor na unidade de destino
461
+ *
462
+ * @example
463
+ * fromBaseSpeed('kilometer_per_hour', 27.7778); // ~100
464
+ * fromBaseSpeed('mile_per_hour', 26.8224); // ~60
465
+ */
466
+ declare function fromBaseSpeed(variant: SpeedUnit, baseValue: number): number;
467
+ /**
468
+ * Converte entre duas unidades de velocidade
469
+ *
470
+ * @param from - Unidade de origem
471
+ * @param to - Unidade de destino
472
+ * @param value - Valor a converter
473
+ * @returns Valor convertido
474
+ *
475
+ * @example
476
+ * convertSpeed('kilometer_per_hour', 'mile_per_hour', 100); // 62.1371...
477
+ * convertSpeed('knot', 'kilometer_per_hour', 1); // 1.852
478
+ * convertSpeed('mach', 'kilometer_per_hour', 1); // 1225.044
479
+ */
480
+ declare function convertSpeed(from: SpeedUnit, to: SpeedUnit, value: number): number;
481
+ /**
482
+ * Versão safe de convertSpeed que retorna Result
483
+ *
484
+ * @example
485
+ * tryConvertSpeed('kilometer_per_hour', 'mile_per_hour', 100);
486
+ * // { ok: true, value: 62.1371... }
487
+ *
488
+ * tryConvertSpeed('invalid', 'mile_per_hour', 100);
489
+ * // { ok: false, error: 'Unknown speed variant: invalid' }
490
+ */
491
+ declare function tryConvertSpeed(from: SpeedUnit, to: SpeedUnit, value: number): Result$9<number>;
492
+ /**
493
+ * Verifica se uma variante existe
494
+ */
495
+ declare function hasSpeedVariant(variant: string): variant is SpeedUnit;
496
+ /**
497
+ * Lista todas as variantes disponíveis
498
+ */
499
+ declare function getSpeedVariants(): SpeedUnit[];
500
+
501
+ /**
502
+ * Energy Role - Convert Pillar
503
+ *
504
+ * Conversão entre unidades de energia usando arquitetura hub-and-spoke.
505
+ * Base: joule (J)
506
+ *
507
+ * @example
508
+ * import { convertEnergy, toBaseEnergy, fromBaseEnergy } from '@attrx/role-morphic/energy/convert';
509
+ *
510
+ * convertEnergy('kilocalorie', 'kilojoule', 1); // 4.1868
511
+ * toBaseEnergy('kilowatt_hour', 1); // 3600000
512
+ * fromBaseEnergy('btu', 1055.06); // ~1
513
+ */
514
+
515
+ type Result$8<T> = {
516
+ ok: true;
517
+ value: T;
518
+ } | {
519
+ ok: false;
520
+ error: string;
521
+ };
522
+ /** Variante base para conversões */
523
+ declare const ENERGY_BASE: EnergyUnit;
524
+ /**
525
+ * Converte valor para a unidade base (joule)
526
+ *
527
+ * @param variant - Unidade de origem
528
+ * @param value - Valor a converter
529
+ * @returns Valor em joule
530
+ *
531
+ * @example
532
+ * toBaseEnergy('kilowatt_hour', 1); // 3600000
533
+ * toBaseEnergy('kilocalorie', 1); // 4186.8
534
+ */
535
+ declare function toBaseEnergy(variant: EnergyUnit, value: number): number;
536
+ /**
537
+ * Converte valor da unidade base (joule) para outra unidade
538
+ *
539
+ * @param variant - Unidade de destino
540
+ * @param baseValue - Valor em joule
541
+ * @returns Valor na unidade de destino
542
+ *
543
+ * @example
544
+ * fromBaseEnergy('kilowatt_hour', 3600000); // 1
545
+ * fromBaseEnergy('kilocalorie', 4186.8); // 1
546
+ */
547
+ declare function fromBaseEnergy(variant: EnergyUnit, baseValue: number): number;
548
+ /**
549
+ * Converte entre duas unidades de energia
550
+ *
551
+ * @param from - Unidade de origem
552
+ * @param to - Unidade de destino
553
+ * @param value - Valor a converter
554
+ * @returns Valor convertido
555
+ *
556
+ * @example
557
+ * convertEnergy('kilocalorie', 'kilojoule', 1); // 4.1868
558
+ * convertEnergy('kilowatt_hour', 'megajoule', 1); // 3.6
559
+ * convertEnergy('btu', 'joule', 1); // 1055.056...
560
+ */
561
+ declare function convertEnergy(from: EnergyUnit, to: EnergyUnit, value: number): number;
562
+ /**
563
+ * Versão safe de convertEnergy que retorna Result
564
+ *
565
+ * @example
566
+ * tryConvertEnergy('kilocalorie', 'kilojoule', 1);
567
+ * // { ok: true, value: 4.1868 }
568
+ *
569
+ * tryConvertEnergy('invalid', 'joule', 1);
570
+ * // { ok: false, error: 'Unknown energy variant: invalid' }
571
+ */
572
+ declare function tryConvertEnergy(from: EnergyUnit, to: EnergyUnit, value: number): Result$8<number>;
573
+ /**
574
+ * Verifica se uma variante existe
575
+ */
576
+ declare function hasEnergyVariant(variant: string): variant is EnergyUnit;
577
+ /**
578
+ * Lista todas as variantes disponíveis
579
+ */
580
+ declare function getEnergyVariants(): EnergyUnit[];
581
+
582
+ /**
583
+ * Power Role - Convert Pillar
584
+ *
585
+ * Conversão entre unidades de potência usando hub-and-spoke (via watt).
586
+ *
587
+ * @example
588
+ * import { convertPower, toBasePower, fromBasePower } from '@attrx/role-morphic/power/convert';
589
+ *
590
+ * convertPower('horsepower_mechanical', 'kilowatt', 1); // 0.7457
591
+ * toBasePower('kilowatt', 2.5); // 2500 (watts)
592
+ * fromBasePower('kilowatt', 2500); // 2.5
593
+ */
594
+
595
+ type Result$7<T> = {
596
+ ok: true;
597
+ value: T;
598
+ } | {
599
+ ok: false;
600
+ error: string;
601
+ };
602
+ /** Unidade base para conversões (hub) */
603
+ declare const POWER_BASE: PowerUnit;
604
+ /**
605
+ * Converte valor para a unidade base (watt)
606
+ *
607
+ * @param variant - Unidade de origem
608
+ * @param value - Valor a converter
609
+ * @returns Valor em watts
610
+ *
611
+ * @example
612
+ * toBasePower('kilowatt', 2.5); // 2500
613
+ * toBasePower('horsepower_mechanical', 1); // 745.7
614
+ */
615
+ declare function toBasePower(variant: PowerUnit, value: number): number;
616
+ /**
617
+ * Converte valor da unidade base (watt) para outra unidade
618
+ *
619
+ * @param variant - Unidade de destino
620
+ * @param baseValue - Valor em watts
621
+ * @returns Valor na unidade de destino
622
+ *
623
+ * @example
624
+ * fromBasePower('kilowatt', 2500); // 2.5
625
+ * fromBasePower('watt', 100); // 100
626
+ */
627
+ declare function fromBasePower(variant: PowerUnit, baseValue: number): number;
628
+ /**
629
+ * Converte entre duas unidades de potência
630
+ *
631
+ * @param from - Unidade de origem
632
+ * @param to - Unidade de destino
633
+ * @param value - Valor a converter
634
+ * @returns Valor convertido
635
+ *
636
+ * @example
637
+ * convertPower('horsepower_mechanical', 'kilowatt', 1); // 0.7457
638
+ * convertPower('kilowatt', 'watt', 2.5); // 2500
639
+ */
640
+ declare function convertPower(from: PowerUnit, to: PowerUnit, value: number): number;
641
+ /**
642
+ * Versão safe de convertPower que retorna Result
643
+ *
644
+ * @example
645
+ * tryConvertPower('kilowatt', 'watt', 1); // { ok: true, value: 1000 }
646
+ * tryConvertPower('invalid', 'watt', 1); // { ok: false, error: '...' }
647
+ */
648
+ declare function tryConvertPower(from: PowerUnit, to: PowerUnit, value: number): Result$7<number>;
649
+ /**
650
+ * Verifica se uma variante existe
651
+ *
652
+ * @example
653
+ * hasPowerVariant('kilowatt'); // true
654
+ * hasPowerVariant('invalid'); // false
655
+ */
656
+ declare function hasPowerVariant(variant: string): variant is PowerUnit;
657
+ /**
658
+ * Retorna lista de todas as variantes disponíveis
659
+ *
660
+ * @example
661
+ * getPowerVariants(); // ['gigawatt', 'megawatt', 'kilowatt', ...]
662
+ */
663
+ declare function getPowerVariants(): PowerUnit[];
664
+
665
+ /**
666
+ * Pressure Role - Convert Pillar
667
+ *
668
+ * Conversão entre unidades de pressão usando hub-and-spoke (via pascal).
669
+ *
670
+ * @example
671
+ * import { convertPressure, toBasePressure, fromBasePressure } from '@attrx/role-morphic/pressure/convert';
672
+ *
673
+ * convertPressure('bar', 'pascal', 1); // 100000
674
+ * toBasePressure('bar', 2.5); // 250000 (pascals)
675
+ * fromBasePressure('bar', 250000); // 2.5
676
+ */
677
+
678
+ type Result$6<T> = {
679
+ ok: true;
680
+ value: T;
681
+ } | {
682
+ ok: false;
683
+ error: string;
684
+ };
685
+ /** Unidade base para conversões (hub) */
686
+ declare const PRESSURE_BASE: PressureUnit;
687
+ /**
688
+ * Converte valor para a unidade base (pascal)
689
+ *
690
+ * @param variant - Unidade de origem
691
+ * @param value - Valor a converter
692
+ * @returns Valor em pascals
693
+ *
694
+ * @example
695
+ * toBasePressure('bar', 2.5); // 250000
696
+ * toBasePressure('atmosphere', 1); // 101325
697
+ */
698
+ declare function toBasePressure(variant: PressureUnit, value: number): number;
699
+ /**
700
+ * Converte valor da unidade base (pascal) para outra unidade
701
+ *
702
+ * @param variant - Unidade de destino
703
+ * @param baseValue - Valor em pascals
704
+ * @returns Valor na unidade de destino
705
+ *
706
+ * @example
707
+ * fromBasePressure('bar', 250000); // 2.5
708
+ * fromBasePressure('atmosphere', 101325); // 1
709
+ */
710
+ declare function fromBasePressure(variant: PressureUnit, baseValue: number): number;
711
+ /**
712
+ * Converte entre duas unidades de pressão
713
+ *
714
+ * @param from - Unidade de origem
715
+ * @param to - Unidade de destino
716
+ * @param value - Valor a converter
717
+ * @returns Valor convertido
718
+ *
719
+ * @example
720
+ * convertPressure('bar', 'pascal', 1); // 100000
721
+ * convertPressure('atmosphere', 'psi', 1); // 14.696
722
+ */
723
+ declare function convertPressure(from: PressureUnit, to: PressureUnit, value: number): number;
724
+ /**
725
+ * Versão safe de convertPressure que retorna Result
726
+ *
727
+ * @example
728
+ * tryConvertPressure('bar', 'pascal', 1); // { ok: true, value: 100000 }
729
+ * tryConvertPressure('invalid', 'pascal', 1); // { ok: false, error: '...' }
730
+ */
731
+ declare function tryConvertPressure(from: PressureUnit, to: PressureUnit, value: number): Result$6<number>;
732
+ /**
733
+ * Verifica se uma variante existe
734
+ *
735
+ * @example
736
+ * hasPressureVariant('bar'); // true
737
+ * hasPressureVariant('invalid'); // false
738
+ */
739
+ declare function hasPressureVariant(variant: string): variant is PressureUnit;
740
+ /**
741
+ * Retorna lista de todas as variantes disponíveis
742
+ *
743
+ * @example
744
+ * getPressureVariants(); // ['megapascal', 'kilopascal', 'hectopascal', ...]
745
+ */
746
+ declare function getPressureVariants(): PressureUnit[];
747
+
748
+ /**
749
+ * Frequency Role - Convert Pillar
750
+ *
751
+ * Conversão entre unidades de frequência usando hub-and-spoke (via hertz).
752
+ *
753
+ * @example
754
+ * import { convertFrequency, toBaseFrequency, fromBaseFrequency } from '@attrx/role-morphic/frequency/convert';
755
+ *
756
+ * convertFrequency('megahertz', 'hertz', 1); // 1000000
757
+ * toBaseFrequency('megahertz', 2.4); // 2400000 (hertz)
758
+ * fromBaseFrequency('megahertz', 2400000); // 2.4
759
+ */
760
+
761
+ type Result$5<T> = {
762
+ ok: true;
763
+ value: T;
764
+ } | {
765
+ ok: false;
766
+ error: string;
767
+ };
768
+ /** Unidade base para conversões (hub) */
769
+ declare const FREQUENCY_BASE: FrequencyUnit;
770
+ /**
771
+ * Converte valor para a unidade base (hertz)
772
+ *
773
+ * @param variant - Unidade de origem
774
+ * @param value - Valor a converter
775
+ * @returns Valor em hertz
776
+ *
777
+ * @example
778
+ * toBaseFrequency('megahertz', 2.4); // 2400000
779
+ * toBaseFrequency('rpm', 60); // 1
780
+ */
781
+ declare function toBaseFrequency(variant: FrequencyUnit, value: number): number;
782
+ /**
783
+ * Converte valor da unidade base (hertz) para outra unidade
784
+ *
785
+ * @param variant - Unidade de destino
786
+ * @param baseValue - Valor em hertz
787
+ * @returns Valor na unidade de destino
788
+ *
789
+ * @example
790
+ * fromBaseFrequency('megahertz', 2400000); // 2.4
791
+ * fromBaseFrequency('rpm', 1); // 60
792
+ */
793
+ declare function fromBaseFrequency(variant: FrequencyUnit, baseValue: number): number;
794
+ /**
795
+ * Converte entre duas unidades de frequência
796
+ *
797
+ * @param from - Unidade de origem
798
+ * @param to - Unidade de destino
799
+ * @param value - Valor a converter
800
+ * @returns Valor convertido
801
+ *
802
+ * @example
803
+ * convertFrequency('megahertz', 'hertz', 1); // 1000000
804
+ * convertFrequency('rpm', 'hertz', 60); // 1
805
+ */
806
+ declare function convertFrequency(from: FrequencyUnit, to: FrequencyUnit, value: number): number;
807
+ /**
808
+ * Versão safe de convertFrequency que retorna Result
809
+ *
810
+ * @example
811
+ * tryConvertFrequency('megahertz', 'hertz', 1); // { ok: true, value: 1000000 }
812
+ * tryConvertFrequency('invalid', 'hertz', 1); // { ok: false, error: '...' }
813
+ */
814
+ declare function tryConvertFrequency(from: FrequencyUnit, to: FrequencyUnit, value: number): Result$5<number>;
815
+ /**
816
+ * Verifica se uma variante existe
817
+ *
818
+ * @example
819
+ * hasFrequencyVariant('hertz'); // true
820
+ * hasFrequencyVariant('invalid'); // false
821
+ */
822
+ declare function hasFrequencyVariant(variant: string): variant is FrequencyUnit;
823
+ /**
824
+ * Retorna lista de todas as variantes disponíveis
825
+ *
826
+ * @example
827
+ * getFrequencyVariants(); // ['terahertz', 'gigahertz', 'megahertz', ...]
828
+ */
829
+ declare function getFrequencyVariants(): FrequencyUnit[];
830
+
831
+ /**
832
+ * Angle Role - Convert Pillar
833
+ *
834
+ * Conversão entre unidades de ângulo usando hub-and-spoke (via degree).
835
+ *
836
+ * @example
837
+ * import { convertAngle, toBaseAngle, fromBaseAngle } from '@attrx/role-morphic/angle/convert';
838
+ *
839
+ * convertAngle('degree', 'radian', 180); // π ≈ 3.14159
840
+ * toBaseAngle('turn', 1); // 360 (degrees)
841
+ * fromBaseAngle('radian', 180); // π ≈ 3.14159
842
+ */
843
+
844
+ type Result$4<T> = {
845
+ ok: true;
846
+ value: T;
847
+ } | {
848
+ ok: false;
849
+ error: string;
850
+ };
851
+ /** Unidade base para conversões (hub) */
852
+ declare const ANGLE_BASE: AngleUnit;
853
+ /**
854
+ * Converte valor para a unidade base (degree)
855
+ *
856
+ * @param variant - Unidade de origem
857
+ * @param value - Valor a converter
858
+ * @returns Valor em degrees
859
+ *
860
+ * @example
861
+ * toBaseAngle('turn', 1); // 360
862
+ * toBaseAngle('radian', Math.PI); // 180
863
+ */
864
+ declare function toBaseAngle(variant: AngleUnit, value: number): number;
865
+ /**
866
+ * Converte valor da unidade base (degree) para outra unidade
867
+ *
868
+ * @param variant - Unidade de destino
869
+ * @param baseValue - Valor em degrees
870
+ * @returns Valor na unidade de destino
871
+ *
872
+ * @example
873
+ * fromBaseAngle('radian', 180); // π ≈ 3.14159
874
+ * fromBaseAngle('turn', 360); // 1
875
+ */
876
+ declare function fromBaseAngle(variant: AngleUnit, baseValue: number): number;
877
+ /**
878
+ * Converte entre duas unidades de ângulo
879
+ *
880
+ * @param from - Unidade de origem
881
+ * @param to - Unidade de destino
882
+ * @param value - Valor a converter
883
+ * @returns Valor convertido
884
+ *
885
+ * @example
886
+ * convertAngle('degree', 'radian', 180); // π ≈ 3.14159
887
+ * convertAngle('turn', 'degree', 1); // 360
888
+ */
889
+ declare function convertAngle(from: AngleUnit, to: AngleUnit, value: number): number;
890
+ /**
891
+ * Versão safe de convertAngle que retorna Result
892
+ *
893
+ * @example
894
+ * tryConvertAngle('degree', 'radian', 180); // { ok: true, value: π }
895
+ * tryConvertAngle('invalid', 'radian', 180); // { ok: false, error: '...' }
896
+ */
897
+ declare function tryConvertAngle(from: AngleUnit, to: AngleUnit, value: number): Result$4<number>;
898
+ /**
899
+ * Verifica se uma variante existe
900
+ *
901
+ * @example
902
+ * hasAngleVariant('degree'); // true
903
+ * hasAngleVariant('invalid'); // false
904
+ */
905
+ declare function hasAngleVariant(variant: string): variant is AngleUnit;
906
+ /**
907
+ * Retorna lista de todas as variantes disponíveis
908
+ *
909
+ * @example
910
+ * getAngleVariants(); // ['turn', 'degree', 'arcminute', ...]
911
+ */
912
+ declare function getAngleVariants(): AngleUnit[];
913
+
914
+ /**
915
+ * Time Role - Convert Pillar
916
+ *
917
+ * Conversão entre unidades de tempo usando hub-and-spoke (via second).
918
+ *
919
+ * @example
920
+ * import { convertTime, toBaseTime, fromBaseTime } from '@attrx/role-morphic/time/convert';
921
+ *
922
+ * convertTime('hour', 'minute', 1); // 60
923
+ * toBaseTime('minute', 5); // 300 (seconds)
924
+ * fromBaseTime('hour', 3600); // 1
925
+ */
926
+
927
+ type Result$3<T> = {
928
+ ok: true;
929
+ value: T;
930
+ } | {
931
+ ok: false;
932
+ error: string;
933
+ };
934
+ /** Unidade base para conversões (hub) */
935
+ declare const TIME_BASE: TimeUnit;
936
+ /**
937
+ * Converte valor para a unidade base (second)
938
+ *
939
+ * @param variant - Unidade de origem
940
+ * @param value - Valor a converter
941
+ * @returns Valor em seconds
942
+ *
943
+ * @example
944
+ * toBaseTime('minute', 5); // 300
945
+ * toBaseTime('hour', 1); // 3600
946
+ */
947
+ declare function toBaseTime(variant: TimeUnit, value: number): number;
948
+ /**
949
+ * Converte valor da unidade base (second) para outra unidade
950
+ *
951
+ * @param variant - Unidade de destino
952
+ * @param baseValue - Valor em seconds
953
+ * @returns Valor na unidade de destino
954
+ *
955
+ * @example
956
+ * fromBaseTime('minute', 300); // 5
957
+ * fromBaseTime('hour', 3600); // 1
958
+ */
959
+ declare function fromBaseTime(variant: TimeUnit, baseValue: number): number;
960
+ /**
961
+ * Converte entre duas unidades de tempo
962
+ *
963
+ * @param from - Unidade de origem
964
+ * @param to - Unidade de destino
965
+ * @param value - Valor a converter
966
+ * @returns Valor convertido
967
+ *
968
+ * @example
969
+ * convertTime('hour', 'minute', 1); // 60
970
+ * convertTime('day', 'hour', 1); // 24
971
+ */
972
+ declare function convertTime(from: TimeUnit, to: TimeUnit, value: number): number;
973
+ /**
974
+ * Versão safe de convertTime que retorna Result
975
+ *
976
+ * @example
977
+ * tryConvertTime('hour', 'minute', 1); // { ok: true, value: 60 }
978
+ * tryConvertTime('invalid', 'minute', 1); // { ok: false, error: '...' }
979
+ */
980
+ declare function tryConvertTime(from: TimeUnit, to: TimeUnit, value: number): Result$3<number>;
981
+ /**
982
+ * Verifica se uma variante existe
983
+ *
984
+ * @example
985
+ * hasTimeVariant('second'); // true
986
+ * hasTimeVariant('invalid'); // false
987
+ */
988
+ declare function hasTimeVariant(variant: string): variant is TimeUnit;
989
+ /**
990
+ * Retorna lista de todas as variantes disponíveis
991
+ *
992
+ * @example
993
+ * getTimeVariants(); // ['nanosecond', 'microsecond', 'millisecond', ...]
994
+ */
995
+ declare function getTimeVariants(): TimeUnit[];
996
+
997
+ /**
998
+ * Digital Role - Convert Pillar
999
+ *
1000
+ * Conversão entre unidades de armazenamento digital usando hub-and-spoke (via byte).
1001
+ *
1002
+ * @example
1003
+ * import { convertDigital, toBaseDigital, fromBaseDigital } from '@attrx/role-morphic/digital/convert';
1004
+ *
1005
+ * convertDigital('kilobyte', 'byte', 1); // 1000
1006
+ * convertDigital('kibibyte', 'byte', 1); // 1024
1007
+ * toBaseDigital('megabyte', 1); // 1000000 (bytes)
1008
+ * fromBaseDigital('mebibyte', 1048576); // 1
1009
+ */
1010
+
1011
+ type Result$2<T> = {
1012
+ ok: true;
1013
+ value: T;
1014
+ } | {
1015
+ ok: false;
1016
+ error: string;
1017
+ };
1018
+ /** Unidade base para conversões (hub) */
1019
+ declare const DIGITAL_BASE: DigitalUnit;
1020
+ /**
1021
+ * Converte valor para a unidade base (byte)
1022
+ *
1023
+ * @param variant - Unidade de origem
1024
+ * @param value - Valor a converter
1025
+ * @returns Valor em bytes
1026
+ *
1027
+ * @example
1028
+ * toBaseDigital('kilobyte', 1); // 1000
1029
+ * toBaseDigital('kibibyte', 1); // 1024
1030
+ */
1031
+ declare function toBaseDigital(variant: DigitalUnit, value: number): number;
1032
+ /**
1033
+ * Converte valor da unidade base (byte) para outra unidade
1034
+ *
1035
+ * @param variant - Unidade de destino
1036
+ * @param baseValue - Valor em bytes
1037
+ * @returns Valor na unidade de destino
1038
+ *
1039
+ * @example
1040
+ * fromBaseDigital('kilobyte', 1000); // 1
1041
+ * fromBaseDigital('kibibyte', 1024); // 1
1042
+ */
1043
+ declare function fromBaseDigital(variant: DigitalUnit, baseValue: number): number;
1044
+ /**
1045
+ * Converte entre duas unidades de armazenamento digital
1046
+ *
1047
+ * @param from - Unidade de origem
1048
+ * @param to - Unidade de destino
1049
+ * @param value - Valor a converter
1050
+ * @returns Valor convertido
1051
+ *
1052
+ * @example
1053
+ * convertDigital('kilobyte', 'byte', 1); // 1000
1054
+ * convertDigital('kibibyte', 'byte', 1); // 1024
1055
+ * convertDigital('gigabyte', 'gibibyte', 1); // ~0.931
1056
+ */
1057
+ declare function convertDigital(from: DigitalUnit, to: DigitalUnit, value: number): number;
1058
+ /**
1059
+ * Versão safe de convertDigital que retorna Result
1060
+ *
1061
+ * @example
1062
+ * tryConvertDigital('kilobyte', 'byte', 1); // { ok: true, value: 1000 }
1063
+ * tryConvertDigital('invalid', 'byte', 1); // { ok: false, error: '...' }
1064
+ */
1065
+ declare function tryConvertDigital(from: DigitalUnit, to: DigitalUnit, value: number): Result$2<number>;
1066
+ /**
1067
+ * Verifica se uma variante existe
1068
+ *
1069
+ * @example
1070
+ * hasDigitalVariant('byte'); // true
1071
+ * hasDigitalVariant('invalid'); // false
1072
+ */
1073
+ declare function hasDigitalVariant(variant: string): variant is DigitalUnit;
1074
+ /**
1075
+ * Retorna lista de todas as variantes disponíveis
1076
+ *
1077
+ * @example
1078
+ * getDigitalVariants(); // ['bit', 'byte', 'kibibyte', ...]
1079
+ */
1080
+ declare function getDigitalVariants(): DigitalUnit[];
1081
+
1082
+ /**
1083
+ * Color Role - Convert Pillar
1084
+ *
1085
+ * Conversão entre variantes de cor usando hub-and-spoke (via rgb_object/RGBA).
1086
+ *
1087
+ * @example
1088
+ * import { convertColor, hexToRgba, rgbaToHex } from '@attrx/role-morphic/color/convert';
1089
+ *
1090
+ * convertColor('hex', 'rgb_object', '#ff0000'); // { r: 255, g: 0, b: 0, a: 1 }
1091
+ * convertColor('rgb_object', 'hsl_string', { r: 255, g: 0, b: 0 }); // "hsl(0, 100%, 50%)"
1092
+ */
1093
+
1094
+ type Result$1<T> = {
1095
+ ok: true;
1096
+ value: T;
1097
+ } | {
1098
+ ok: false;
1099
+ error: string;
1100
+ };
1101
+ /**
1102
+ * Converte entre duas variantes de cor
1103
+ *
1104
+ * @param from - Variante de origem
1105
+ * @param to - Variante de destino
1106
+ * @param value - Valor a converter
1107
+ * @returns Valor convertido
1108
+ *
1109
+ * @example
1110
+ * convertColor('hex', 'rgb_object', '#ff0000');
1111
+ * // { r: 255, g: 0, b: 0 }
1112
+ */
1113
+ declare function convertColor<TFrom = unknown, TTo = unknown>(from: ColorVariant, to: ColorVariant, value: TFrom): TTo;
1114
+ /**
1115
+ * Versão safe de convertColor que retorna Result
1116
+ */
1117
+ declare function tryConvertColor<TFrom = unknown, TTo = unknown>(from: ColorVariant, to: ColorVariant, value: TFrom): Result$1<TTo>;
1118
+
1119
+ /**
1120
+ * Date Role - Convert Pillar
1121
+ *
1122
+ * Conversão entre variantes de data usando hub-and-spoke (via timestamp).
1123
+ *
1124
+ * @example
1125
+ * import { convertDate, isoToTimestamp, epochToIso } from '@attrx/role-morphic/date/convert';
1126
+ *
1127
+ * convertDate('iso', 'epoch', '2024-12-05T19:30:00.000Z'); // 1733425800
1128
+ * convertDate('epoch', 'iso', 1733425800); // '2024-12-05T19:30:00.000Z'
1129
+ * isoToTimestamp('2024-12-05T19:30:00.000Z'); // 1733425800000
1130
+ */
1131
+
1132
+ type Result<T> = {
1133
+ ok: true;
1134
+ value: T;
1135
+ } | {
1136
+ ok: false;
1137
+ error: string;
1138
+ };
1139
+ /**
1140
+ * Converte entre duas variantes de data
1141
+ *
1142
+ * @param from - Variante de origem
1143
+ * @param to - Variante de destino
1144
+ * @param value - Valor a converter
1145
+ * @returns Valor convertido
1146
+ *
1147
+ * @example
1148
+ * convertDate('iso', 'epoch', '2024-12-05T19:30:00.000Z'); // 1733425800
1149
+ * convertDate('epoch', 'iso', 1733425800); // '2024-12-05T19:30:00.000Z'
1150
+ */
1151
+ declare function convertDate<TFrom = unknown, TTo = unknown>(from: DateVariant, to: DateVariant, value: TFrom): TTo;
1152
+ /**
1153
+ * Versão safe de convertDate que retorna Result
1154
+ */
1155
+ declare function tryConvertDate<TFrom = unknown, TTo = unknown>(from: DateVariant, to: DateVariant, value: TFrom): Result<TTo>;
1156
+
1157
+ export { ANGLE_BASE, AREA_BASE, DIGITAL_BASE, ENERGY_BASE, FREQUENCY_BASE, LENGTH_BASE, MASS_BASE, POWER_BASE, PRESSURE_BASE, SPEED_BASE, TEMPERATURE_BASE, TIME_BASE, VOLUME_BASE, convertAngle, convertArea, convertColor, convertDate, convertDigital, convertEnergy, convertFrequency, convertLength, convertMass, convertPower, convertPressure, convertSpeed, convertTemperature, convertTime, convertVolume, fromBaseAngle, fromBaseArea, fromBaseDigital, fromBaseEnergy, fromBaseFrequency, fromBaseLength, fromBaseMass, fromBasePower, fromBasePressure, fromBaseSpeed, fromBaseTemperature, fromBaseTime, fromBaseVolume, getAngleVariants, getAreaVariants, getDigitalVariants, getEnergyVariants, getFrequencyVariants, getLengthVariants, getMassVariants, getPowerVariants, getPressureVariants, getSpeedVariants, getTemperatureVariants, getTimeVariants, getVolumeVariants, hasAngleVariant, hasAreaVariant, hasDigitalVariant, hasEnergyVariant, hasFrequencyVariant, hasLengthVariant, hasMassVariant, hasPowerVariant, hasPressureVariant, hasSpeedVariant, hasTemperatureVariant, hasTimeVariant, hasVolumeVariant, toBaseAngle, toBaseArea, toBaseDigital, toBaseEnergy, toBaseFrequency, toBaseLength, toBaseMass, toBasePower, toBasePressure, toBaseSpeed, toBaseTemperature, toBaseTime, toBaseVolume, tryConvertAngle, tryConvertArea, tryConvertColor, tryConvertDate, tryConvertDigital, tryConvertEnergy, tryConvertFrequency, tryConvertLength, tryConvertMass, tryConvertPower, tryConvertPressure, tryConvertSpeed, tryConvertTemperature, tryConvertTime, tryConvertVolume };