@expresscsv/schemas 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,3321 @@
1
+ declare interface BICOptions {
2
+ message?: string;
3
+ }
4
+
5
+ declare type BooleanControlType = 'toggle' | 'checkbox' | 'dropdown';
6
+
7
+ declare const Countries: readonly [{
8
+ readonly name: "Afghanistan";
9
+ readonly alpha2: "AF";
10
+ readonly alpha3: "AFG";
11
+ readonly aliases: readonly ["Afġānistān", "افغانستان"];
12
+ }, {
13
+ readonly name: "Åland Islands";
14
+ readonly alpha2: "AX";
15
+ readonly alpha3: "ALA";
16
+ readonly aliases: readonly ["Ahvenanmaa", "Åland"];
17
+ }, {
18
+ readonly name: "Albania";
19
+ readonly alpha2: "AL";
20
+ readonly alpha3: "ALB";
21
+ readonly aliases: readonly ["Shqipëri", "Shqipëria"];
22
+ }, {
23
+ readonly name: "Algeria";
24
+ readonly alpha2: "DZ";
25
+ readonly alpha3: "DZA";
26
+ readonly aliases: readonly ["الجزائر", "Algérie"];
27
+ }, {
28
+ readonly name: "American Samoa";
29
+ readonly alpha2: "AS";
30
+ readonly alpha3: "ASM";
31
+ readonly aliases: readonly ["Sāmoa Amelika", "Amelika Sāmoa"];
32
+ }, {
33
+ readonly name: "Andorra";
34
+ readonly alpha2: "AD";
35
+ readonly alpha3: "AND";
36
+ readonly aliases: readonly ["Principat d'Andorra"];
37
+ }, {
38
+ readonly name: "Angola";
39
+ readonly alpha2: "AO";
40
+ readonly alpha3: "AGO";
41
+ readonly aliases: readonly ["República de Angola"];
42
+ }, {
43
+ readonly name: "Anguilla";
44
+ readonly alpha2: "AI";
45
+ readonly alpha3: "AIA";
46
+ readonly aliases: readonly [];
47
+ }, {
48
+ readonly name: "Antigua and Barbuda";
49
+ readonly alpha2: "AG";
50
+ readonly alpha3: "ATG";
51
+ readonly aliases: readonly ["Antigua", "Barbuda"];
52
+ }, {
53
+ readonly name: "Argentina";
54
+ readonly alpha2: "AR";
55
+ readonly alpha3: "ARG";
56
+ readonly aliases: readonly ["República Argentina", "Argentine Republic"];
57
+ }, {
58
+ readonly name: "Armenia";
59
+ readonly alpha2: "AM";
60
+ readonly alpha3: "ARM";
61
+ readonly aliases: readonly ["Հայաստան", "Hayastan", "Republic of Armenia"];
62
+ }, {
63
+ readonly name: "Aruba";
64
+ readonly alpha2: "AW";
65
+ readonly alpha3: "ABW";
66
+ readonly aliases: readonly [];
67
+ }, {
68
+ readonly name: "Australia";
69
+ readonly alpha2: "AU";
70
+ readonly alpha3: "AUS";
71
+ readonly aliases: readonly ["Commonwealth of Australia", "Oz"];
72
+ }, {
73
+ readonly name: "Austria";
74
+ readonly alpha2: "AT";
75
+ readonly alpha3: "AUT";
76
+ readonly aliases: readonly ["Österreich"];
77
+ }, {
78
+ readonly name: "Azerbaijan";
79
+ readonly alpha2: "AZ";
80
+ readonly alpha3: "AZE";
81
+ readonly aliases: readonly ["Azərbaycan", "Republic of Azerbaijan"];
82
+ }, {
83
+ readonly name: "Bahamas";
84
+ readonly alpha2: "BS";
85
+ readonly alpha3: "BHS";
86
+ readonly aliases: readonly ["The Bahamas", "Commonwealth of The Bahamas"];
87
+ }, {
88
+ readonly name: "Bahrain";
89
+ readonly alpha2: "BH";
90
+ readonly alpha3: "BHR";
91
+ readonly aliases: readonly ["البحرين", "Kingdom of Bahrain"];
92
+ }, {
93
+ readonly name: "Bangladesh";
94
+ readonly alpha2: "BD";
95
+ readonly alpha3: "BGD";
96
+ readonly aliases: readonly ["বাংলাদেশ", "People's Republic of Bangladesh"];
97
+ }, {
98
+ readonly name: "Barbados";
99
+ readonly alpha2: "BB";
100
+ readonly alpha3: "BRB";
101
+ readonly aliases: readonly [];
102
+ }, {
103
+ readonly name: "Belarus";
104
+ readonly alpha2: "BY";
105
+ readonly alpha3: "BLR";
106
+ readonly aliases: readonly ["Беларусь", "Republic of Belarus", "Belorussia"];
107
+ }, {
108
+ readonly name: "Belgium";
109
+ readonly alpha2: "BE";
110
+ readonly alpha3: "BEL";
111
+ readonly aliases: readonly ["België", "Belgique", "Belgien"];
112
+ }, {
113
+ readonly name: "Belize";
114
+ readonly alpha2: "BZ";
115
+ readonly alpha3: "BLZ";
116
+ readonly aliases: readonly [];
117
+ }, {
118
+ readonly name: "Benin";
119
+ readonly alpha2: "BJ";
120
+ readonly alpha3: "BEN";
121
+ readonly aliases: readonly ["Republic of Benin", "République du Bénin"];
122
+ }, {
123
+ readonly name: "Bermuda";
124
+ readonly alpha2: "BM";
125
+ readonly alpha3: "BMU";
126
+ readonly aliases: readonly [];
127
+ }, {
128
+ readonly name: "Bhutan";
129
+ readonly alpha2: "BT";
130
+ readonly alpha3: "BTN";
131
+ readonly aliases: readonly ["འབྲུག་ཡུལ་", "Druk Yul", "Kingdom of Bhutan"];
132
+ }, {
133
+ readonly name: "Bolivia";
134
+ readonly alpha2: "BO";
135
+ readonly alpha3: "BOL";
136
+ readonly aliases: readonly ["Bolivia", "Estado Plurinacional de Bolivia"];
137
+ }, {
138
+ readonly name: "Bonaire, Sint Eustatius and Saba";
139
+ readonly alpha2: "BQ";
140
+ readonly alpha3: "BES";
141
+ readonly aliases: readonly ["Caribbean Netherlands"];
142
+ }, {
143
+ readonly name: "Bosnia and Herzegovina";
144
+ readonly alpha2: "BA";
145
+ readonly alpha3: "BIH";
146
+ readonly aliases: readonly ["Bosna i Hercegovina"];
147
+ }, {
148
+ readonly name: "Botswana";
149
+ readonly alpha2: "BW";
150
+ readonly alpha3: "BWA";
151
+ readonly aliases: readonly ["Republic of Botswana"];
152
+ }, {
153
+ readonly name: "Brazil";
154
+ readonly alpha2: "BR";
155
+ readonly alpha3: "BRA";
156
+ readonly aliases: readonly ["Brasil", "Federative Republic of Brazil"];
157
+ }, {
158
+ readonly name: "British Indian Ocean Territory";
159
+ readonly alpha2: "IO";
160
+ readonly alpha3: "IOT";
161
+ readonly aliases: readonly [];
162
+ }, {
163
+ readonly name: "Brunei Darussalam";
164
+ readonly alpha2: "BN";
165
+ readonly alpha3: "BRN";
166
+ readonly aliases: readonly ["Brunei"];
167
+ }, {
168
+ readonly name: "Bulgaria";
169
+ readonly alpha2: "BG";
170
+ readonly alpha3: "BGR";
171
+ readonly aliases: readonly ["България", "Republic of Bulgaria"];
172
+ }, {
173
+ readonly name: "Burkina Faso";
174
+ readonly alpha2: "BF";
175
+ readonly alpha3: "BFA";
176
+ readonly aliases: readonly ["Burkina"];
177
+ }, {
178
+ readonly name: "Burundi";
179
+ readonly alpha2: "BI";
180
+ readonly alpha3: "BDI";
181
+ readonly aliases: readonly ["Republic of Burundi", "Republika y'Uburundi"];
182
+ }, {
183
+ readonly name: "Cabo Verde";
184
+ readonly alpha2: "CV";
185
+ readonly alpha3: "CPV";
186
+ readonly aliases: readonly ["Cape Verde"];
187
+ }, {
188
+ readonly name: "Cambodia";
189
+ readonly alpha2: "KH";
190
+ readonly alpha3: "KHM";
191
+ readonly aliases: readonly ["កម្ពុជា", "Kingdom of Cambodia"];
192
+ }, {
193
+ readonly name: "Cameroon";
194
+ readonly alpha2: "CM";
195
+ readonly alpha3: "CMR";
196
+ readonly aliases: readonly ["Cameroun", "Republic of Cameroon"];
197
+ }, {
198
+ readonly name: "Canada";
199
+ readonly alpha2: "CA";
200
+ readonly alpha3: "CAN";
201
+ readonly aliases: readonly ["Kanada", "Canada (French)"];
202
+ }, {
203
+ readonly name: "Cayman Islands";
204
+ readonly alpha2: "KY";
205
+ readonly alpha3: "CYM";
206
+ readonly aliases: readonly [];
207
+ }, {
208
+ readonly name: "Central African Republic";
209
+ readonly alpha2: "CF";
210
+ readonly alpha3: "CAF";
211
+ readonly aliases: readonly ["République centrafricaine"];
212
+ }, {
213
+ readonly name: "Chad";
214
+ readonly alpha2: "TD";
215
+ readonly alpha3: "TCD";
216
+ readonly aliases: readonly ["Tchad", "جمهورية تشاد"];
217
+ }, {
218
+ readonly name: "Chile";
219
+ readonly alpha2: "CL";
220
+ readonly alpha3: "CHL";
221
+ readonly aliases: readonly ["República de Chile"];
222
+ }, {
223
+ readonly name: "China";
224
+ readonly alpha2: "CN";
225
+ readonly alpha3: "CHN";
226
+ readonly aliases: readonly ["中华人民共和国", "中国", "Zhōngguó", "People's Republic of China", "PRC"];
227
+ }, {
228
+ readonly name: "Christmas Island";
229
+ readonly alpha2: "CX";
230
+ readonly alpha3: "CXR";
231
+ readonly aliases: readonly [];
232
+ }, {
233
+ readonly name: "Cocos (Keeling) Islands";
234
+ readonly alpha2: "CC";
235
+ readonly alpha3: "CCK";
236
+ readonly aliases: readonly [];
237
+ }, {
238
+ readonly name: "Colombia";
239
+ readonly alpha2: "CO";
240
+ readonly alpha3: "COL";
241
+ readonly aliases: readonly ["República de Colombia"];
242
+ }, {
243
+ readonly name: "Comoros";
244
+ readonly alpha2: "KM";
245
+ readonly alpha3: "COM";
246
+ readonly aliases: readonly ["جزر القمر", "Union of the Comoros"];
247
+ }, {
248
+ readonly name: "Congo";
249
+ readonly alpha2: "CG";
250
+ readonly alpha3: "COG";
251
+ readonly aliases: readonly ["Republic of the Congo", "Congo-Brazzaville"];
252
+ }, {
253
+ readonly name: "Democratic Republic of the Congo";
254
+ readonly alpha2: "CD";
255
+ readonly alpha3: "COD";
256
+ readonly aliases: readonly ["Democratic Republic of the Congo", "Congo-Kinshasa", "DR Congo", "DRC"];
257
+ }, {
258
+ readonly name: "Cook Islands";
259
+ readonly alpha2: "CK";
260
+ readonly alpha3: "COK";
261
+ readonly aliases: readonly [];
262
+ }, {
263
+ readonly name: "Costa Rica";
264
+ readonly alpha2: "CR";
265
+ readonly alpha3: "CRI";
266
+ readonly aliases: readonly ["República de Costa Rica"];
267
+ }, {
268
+ readonly name: "Côte d'Ivoire";
269
+ readonly alpha2: "CI";
270
+ readonly alpha3: "CIV";
271
+ readonly aliases: readonly ["Ivory Coast", "République de Côte d'Ivoire"];
272
+ }, {
273
+ readonly name: "Croatia";
274
+ readonly alpha2: "HR";
275
+ readonly alpha3: "HRV";
276
+ readonly aliases: readonly ["Hrvatska", "Republic of Croatia"];
277
+ }, {
278
+ readonly name: "Cuba";
279
+ readonly alpha2: "CU";
280
+ readonly alpha3: "CUB";
281
+ readonly aliases: readonly ["República de Cuba"];
282
+ }, {
283
+ readonly name: "Curaçao";
284
+ readonly alpha2: "CW";
285
+ readonly alpha3: "CUW";
286
+ readonly aliases: readonly [];
287
+ }, {
288
+ readonly name: "Cyprus";
289
+ readonly alpha2: "CY";
290
+ readonly alpha3: "CYP";
291
+ readonly aliases: readonly ["Κύπρος", "Kıbrıs"];
292
+ }, {
293
+ readonly name: "Czechia";
294
+ readonly alpha2: "CZ";
295
+ readonly alpha3: "CZE";
296
+ readonly aliases: readonly ["Czech Republic", "Česko"];
297
+ }, {
298
+ readonly name: "Denmark";
299
+ readonly alpha2: "DK";
300
+ readonly alpha3: "DNK";
301
+ readonly aliases: readonly ["Danmark"];
302
+ }, {
303
+ readonly name: "Djibouti";
304
+ readonly alpha2: "DJ";
305
+ readonly alpha3: "DJI";
306
+ readonly aliases: readonly ["جيبوتي", "Djibouti City-State"];
307
+ }, {
308
+ readonly name: "Dominica";
309
+ readonly alpha2: "DM";
310
+ readonly alpha3: "DMA";
311
+ readonly aliases: readonly [];
312
+ }, {
313
+ readonly name: "Dominican Republic";
314
+ readonly alpha2: "DO";
315
+ readonly alpha3: "DOM";
316
+ readonly aliases: readonly ["República Dominicana"];
317
+ }, {
318
+ readonly name: "Ecuador";
319
+ readonly alpha2: "EC";
320
+ readonly alpha3: "ECU";
321
+ readonly aliases: readonly ["República del Ecuador"];
322
+ }, {
323
+ readonly name: "Egypt";
324
+ readonly alpha2: "EG";
325
+ readonly alpha3: "EGY";
326
+ readonly aliases: readonly ["مصر", "Arab Republic of Egypt"];
327
+ }, {
328
+ readonly name: "El Salvador";
329
+ readonly alpha2: "SV";
330
+ readonly alpha3: "SLV";
331
+ readonly aliases: readonly ["República de El Salvador"];
332
+ }, {
333
+ readonly name: "Equatorial Guinea";
334
+ readonly alpha2: "GQ";
335
+ readonly alpha3: "GNQ";
336
+ readonly aliases: readonly ["República de Guinea Ecuatorial", "République de Guinée équatoriale", "República da Guiné Equatorial"];
337
+ }, {
338
+ readonly name: "Eritrea";
339
+ readonly alpha2: "ER";
340
+ readonly alpha3: "ERI";
341
+ readonly aliases: readonly ["State of Eritrea", "ኤርትራ", "إريتريا"];
342
+ }, {
343
+ readonly name: "Estonia";
344
+ readonly alpha2: "EE";
345
+ readonly alpha3: "EST";
346
+ readonly aliases: readonly ["Eesti"];
347
+ }, {
348
+ readonly name: "Eswatini";
349
+ readonly alpha2: "SZ";
350
+ readonly alpha3: "SWZ";
351
+ readonly aliases: readonly ["Swaziland", "Kingdom of Eswatini"];
352
+ }, {
353
+ readonly name: "Ethiopia";
354
+ readonly alpha2: "ET";
355
+ readonly alpha3: "ETH";
356
+ readonly aliases: readonly ["ኢትዮጵያ", "Federal Democratic Republic of Ethiopia"];
357
+ }, {
358
+ readonly name: "Falkland Islands (Malvinas)";
359
+ readonly alpha2: "FK";
360
+ readonly alpha3: "FLK";
361
+ readonly aliases: readonly ["Islas Malvinas"];
362
+ }, {
363
+ readonly name: "Faroe Islands";
364
+ readonly alpha2: "FO";
365
+ readonly alpha3: "FRO";
366
+ readonly aliases: readonly ["Føroyar"];
367
+ }, {
368
+ readonly name: "Fiji";
369
+ readonly alpha2: "FJ";
370
+ readonly alpha3: "FJI";
371
+ readonly aliases: readonly ["Viti", "Fiji Islands"];
372
+ }, {
373
+ readonly name: "Finland";
374
+ readonly alpha2: "FI";
375
+ readonly alpha3: "FIN";
376
+ readonly aliases: readonly ["Suomi"];
377
+ }, {
378
+ readonly name: "France";
379
+ readonly alpha2: "FR";
380
+ readonly alpha3: "FRA";
381
+ readonly aliases: readonly ["République française"];
382
+ }, {
383
+ readonly name: "French Guiana";
384
+ readonly alpha2: "GF";
385
+ readonly alpha3: "GUF";
386
+ readonly aliases: readonly ["Guyane"];
387
+ }, {
388
+ readonly name: "French Polynesia";
389
+ readonly alpha2: "PF";
390
+ readonly alpha3: "PYF";
391
+ readonly aliases: readonly ["Polynésie française"];
392
+ }, {
393
+ readonly name: "Gabon";
394
+ readonly alpha2: "GA";
395
+ readonly alpha3: "GAB";
396
+ readonly aliases: readonly ["République gabonaise"];
397
+ }, {
398
+ readonly name: "Gambia";
399
+ readonly alpha2: "GM";
400
+ readonly alpha3: "GMB";
401
+ readonly aliases: readonly ["Republic of The Gambia"];
402
+ }, {
403
+ readonly name: "Georgia";
404
+ readonly alpha2: "GE";
405
+ readonly alpha3: "GEO";
406
+ readonly aliases: readonly ["საქართველო", "Sakartvelo"];
407
+ }, {
408
+ readonly name: "Germany";
409
+ readonly alpha2: "DE";
410
+ readonly alpha3: "DEU";
411
+ readonly aliases: readonly ["Deutschland", "Federal Republic of Germany"];
412
+ }, {
413
+ readonly name: "Ghana";
414
+ readonly alpha2: "GH";
415
+ readonly alpha3: "GHA";
416
+ readonly aliases: readonly ["Republic of Ghana"];
417
+ }, {
418
+ readonly name: "Gibraltar";
419
+ readonly alpha2: "GI";
420
+ readonly alpha3: "GIB";
421
+ readonly aliases: readonly [""];
422
+ }, {
423
+ readonly name: "Greece";
424
+ readonly alpha2: "GR";
425
+ readonly alpha3: "GRC";
426
+ readonly aliases: readonly ["Ελλάδα", "Hellas", "Hellenic Republic"];
427
+ }, {
428
+ readonly name: "Greenland";
429
+ readonly alpha2: "GL";
430
+ readonly alpha3: "GRL";
431
+ readonly aliases: readonly ["Kalaallit Nunaat"];
432
+ }, {
433
+ readonly name: "Grenada";
434
+ readonly alpha2: "GD";
435
+ readonly alpha3: "GRD";
436
+ readonly aliases: readonly [];
437
+ }, {
438
+ readonly name: "Guadeloupe";
439
+ readonly alpha2: "GP";
440
+ readonly alpha3: "GLP";
441
+ readonly aliases: readonly [];
442
+ }, {
443
+ readonly name: "Guam";
444
+ readonly alpha2: "GU";
445
+ readonly alpha3: "GUM";
446
+ readonly aliases: readonly ["Guåhån"];
447
+ }, {
448
+ readonly name: "Guatemala";
449
+ readonly alpha2: "GT";
450
+ readonly alpha3: "GTM";
451
+ readonly aliases: readonly ["República de Guatemala"];
452
+ }, {
453
+ readonly name: "Guernsey";
454
+ readonly alpha2: "GG";
455
+ readonly alpha3: "GGY";
456
+ readonly aliases: readonly [];
457
+ }, {
458
+ readonly name: "Guinea";
459
+ readonly alpha2: "GN";
460
+ readonly alpha3: "GIN";
461
+ readonly aliases: readonly ["République de Guinée"];
462
+ }, {
463
+ readonly name: "Guinea-Bissau";
464
+ readonly alpha2: "GW";
465
+ readonly alpha3: "GNB";
466
+ readonly aliases: readonly ["República da Guiné-Bissau"];
467
+ }, {
468
+ readonly name: "Guyana";
469
+ readonly alpha2: "GY";
470
+ readonly alpha3: "GUY";
471
+ readonly aliases: readonly ["Co-operative Republic of Guyana"];
472
+ }, {
473
+ readonly name: "Haiti";
474
+ readonly alpha2: "HT";
475
+ readonly alpha3: "HTI";
476
+ readonly aliases: readonly ["République d'Haïti", "Repiblik d Ayiti"];
477
+ }, {
478
+ readonly name: "Holy See";
479
+ readonly alpha2: "VA";
480
+ readonly alpha3: "VAT";
481
+ readonly aliases: readonly ["Vatican City", "Vatican City State", "Santa Sede"];
482
+ }, {
483
+ readonly name: "Honduras";
484
+ readonly alpha2: "HN";
485
+ readonly alpha3: "HND";
486
+ readonly aliases: readonly ["República de Honduras"];
487
+ }, {
488
+ readonly name: "Hong Kong";
489
+ readonly alpha2: "HK";
490
+ readonly alpha3: "HKG";
491
+ readonly aliases: readonly ["香港", "Xianggang", "Hong Kong SAR"];
492
+ }, {
493
+ readonly name: "Hungary";
494
+ readonly alpha2: "HU";
495
+ readonly alpha3: "HUN";
496
+ readonly aliases: readonly ["Magyarország"];
497
+ }, {
498
+ readonly name: "Iceland";
499
+ readonly alpha2: "IS";
500
+ readonly alpha3: "ISL";
501
+ readonly aliases: readonly ["Ísland"];
502
+ }, {
503
+ readonly name: "India";
504
+ readonly alpha2: "IN";
505
+ readonly alpha3: "IND";
506
+ readonly aliases: readonly ["भारत", "Republic of India", "Bharat"];
507
+ }, {
508
+ readonly name: "Indonesia";
509
+ readonly alpha2: "ID";
510
+ readonly alpha3: "IDN";
511
+ readonly aliases: readonly ["Republik Indonesia"];
512
+ }, {
513
+ readonly name: "Iran, Islamic Republic of";
514
+ readonly alpha2: "IR";
515
+ readonly alpha3: "IRN";
516
+ readonly aliases: readonly ["ایران", "Islamic Republic of Iran"];
517
+ }, {
518
+ readonly name: "Iraq";
519
+ readonly alpha2: "IQ";
520
+ readonly alpha3: "IRQ";
521
+ readonly aliases: readonly ["العراق", "Republic of Iraq"];
522
+ }, {
523
+ readonly name: "Ireland";
524
+ readonly alpha2: "IE";
525
+ readonly alpha3: "IRL";
526
+ readonly aliases: readonly ["Éire", "Republic of Ireland"];
527
+ }, {
528
+ readonly name: "Isle of Man";
529
+ readonly alpha2: "IM";
530
+ readonly alpha3: "IMN";
531
+ readonly aliases: readonly ["Mann", "Ellan Vannin"];
532
+ }, {
533
+ readonly name: "Israel";
534
+ readonly alpha2: "IL";
535
+ readonly alpha3: "ISR";
536
+ readonly aliases: readonly ["יִשְׂרָאֵל", "State of Israel", "Medīnat Yisrā'el"];
537
+ }, {
538
+ readonly name: "Italy";
539
+ readonly alpha2: "IT";
540
+ readonly alpha3: "ITA";
541
+ readonly aliases: readonly ["Italia", "Repubblica Italiana"];
542
+ }, {
543
+ readonly name: "Jamaica";
544
+ readonly alpha2: "JM";
545
+ readonly alpha3: "JAM";
546
+ readonly aliases: readonly [];
547
+ }, {
548
+ readonly name: "Japan";
549
+ readonly alpha2: "JP";
550
+ readonly alpha3: "JPN";
551
+ readonly aliases: readonly ["日本", "Nihon", "Nippon"];
552
+ }, {
553
+ readonly name: "Jersey";
554
+ readonly alpha2: "JE";
555
+ readonly alpha3: "JEY";
556
+ readonly aliases: readonly [];
557
+ }, {
558
+ readonly name: "Jordan";
559
+ readonly alpha2: "JO";
560
+ readonly alpha3: "JOR";
561
+ readonly aliases: readonly ["الأردن", "Hashemite Kingdom of Jordan"];
562
+ }, {
563
+ readonly name: "Kazakhstan";
564
+ readonly alpha2: "KZ";
565
+ readonly alpha3: "KAZ";
566
+ readonly aliases: readonly ["Қазақстан", "Republic of Kazakhstan"];
567
+ }, {
568
+ readonly name: "Kenya";
569
+ readonly alpha2: "KE";
570
+ readonly alpha3: "KEN";
571
+ readonly aliases: readonly ["Republic of Kenya"];
572
+ }, {
573
+ readonly name: "Kiribati";
574
+ readonly alpha2: "KI";
575
+ readonly alpha3: "KIR";
576
+ readonly aliases: readonly [];
577
+ }, {
578
+ readonly name: "North Korea";
579
+ readonly alpha2: "KP";
580
+ readonly alpha3: "PRK";
581
+ readonly aliases: readonly ["North Korea", "조선민주주의인민공화국", "Democratic People's Republic of Korea"];
582
+ }, {
583
+ readonly name: "South Korea";
584
+ readonly alpha2: "KR";
585
+ readonly alpha3: "KOR";
586
+ readonly aliases: readonly ["South Korea", "대한민국", "Republic of Korea"];
587
+ }, {
588
+ readonly name: "Kosovo";
589
+ readonly alpha2: "XK";
590
+ readonly alpha3: "XKS";
591
+ readonly aliases: readonly ["Kosova", "Косово", "Republic of Kosovo", "Republika e Kosovës"];
592
+ }, {
593
+ readonly name: "Kuwait";
594
+ readonly alpha2: "KW";
595
+ readonly alpha3: "KWT";
596
+ readonly aliases: readonly ["الكويت", "State of Kuwait"];
597
+ }, {
598
+ readonly name: "Kyrgyzstan";
599
+ readonly alpha2: "KG";
600
+ readonly alpha3: "KGZ";
601
+ readonly aliases: readonly ["Кыргызстан", "Kyrgyz Republic"];
602
+ }, {
603
+ readonly name: "Lao People's Democratic Republic";
604
+ readonly alpha2: "LA";
605
+ readonly alpha3: "LAO";
606
+ readonly aliases: readonly ["Laos", "ສປປລາວ"];
607
+ }, {
608
+ readonly name: "Latvia";
609
+ readonly alpha2: "LV";
610
+ readonly alpha3: "LVA";
611
+ readonly aliases: readonly ["Latvija"];
612
+ }, {
613
+ readonly name: "Lebanon";
614
+ readonly alpha2: "LB";
615
+ readonly alpha3: "LBN";
616
+ readonly aliases: readonly ["لبنان", "Republic of Lebanon"];
617
+ }, {
618
+ readonly name: "Lesotho";
619
+ readonly alpha2: "LS";
620
+ readonly alpha3: "LSO";
621
+ readonly aliases: readonly ["Kingdom of Lesotho"];
622
+ }, {
623
+ readonly name: "Liberia";
624
+ readonly alpha2: "LR";
625
+ readonly alpha3: "LBR";
626
+ readonly aliases: readonly ["Republic of Liberia"];
627
+ }, {
628
+ readonly name: "Libya";
629
+ readonly alpha2: "LY";
630
+ readonly alpha3: "LBY";
631
+ readonly aliases: readonly ["Libyan Arab Jamahiriya"];
632
+ }, {
633
+ readonly name: "Liechtenstein";
634
+ readonly alpha2: "LI";
635
+ readonly alpha3: "LIE";
636
+ readonly aliases: readonly ["Fürstentum Liechtenstein"];
637
+ }, {
638
+ readonly name: "Lithuania";
639
+ readonly alpha2: "LT";
640
+ readonly alpha3: "LTU";
641
+ readonly aliases: readonly ["Lietuva", "Republic of Lithuania"];
642
+ }, {
643
+ readonly name: "Luxembourg";
644
+ readonly alpha2: "LU";
645
+ readonly alpha3: "LUX";
646
+ readonly aliases: readonly ["Lëtzebuerg", "Luxembourg", "Luxemburg"];
647
+ }, {
648
+ readonly name: "Macao";
649
+ readonly alpha2: "MO";
650
+ readonly alpha3: "MAC";
651
+ readonly aliases: readonly ["澳門", "Macao SAR", "Àomén"];
652
+ }, {
653
+ readonly name: "Madagascar";
654
+ readonly alpha2: "MG";
655
+ readonly alpha3: "MDG";
656
+ readonly aliases: readonly ["Repoblikan'i Madagasikara", "République de Madagascar"];
657
+ }, {
658
+ readonly name: "Malawi";
659
+ readonly alpha2: "MW";
660
+ readonly alpha3: "MWI";
661
+ readonly aliases: readonly ["Republic of Malawi"];
662
+ }, {
663
+ readonly name: "Malaysia";
664
+ readonly alpha2: "MY";
665
+ readonly alpha3: "MYS";
666
+ readonly aliases: readonly ["Malaysia", "ماليزيا"];
667
+ }, {
668
+ readonly name: "Maldives";
669
+ readonly alpha2: "MV";
670
+ readonly alpha3: "MDV";
671
+ readonly aliases: readonly ["ދިވެހިރާއްޖޭގެ", "Dhivehi Raajje", "Republic of Maldives"];
672
+ }, {
673
+ readonly name: "Mali";
674
+ readonly alpha2: "ML";
675
+ readonly alpha3: "MLI";
676
+ readonly aliases: readonly ["République du Mali"];
677
+ }, {
678
+ readonly name: "Malta";
679
+ readonly alpha2: "MT";
680
+ readonly alpha3: "MLT";
681
+ readonly aliases: readonly ["Repubblika ta' Malta", "Republic of Malta"];
682
+ }, {
683
+ readonly name: "Marshall Islands";
684
+ readonly alpha2: "MH";
685
+ readonly alpha3: "MHL";
686
+ readonly aliases: readonly ["Aolepān Aorōkin M̧ajeļ", "Republic of the Marshall Islands"];
687
+ }, {
688
+ readonly name: "Martinique";
689
+ readonly alpha2: "MQ";
690
+ readonly alpha3: "MTQ";
691
+ readonly aliases: readonly [];
692
+ }, {
693
+ readonly name: "Mauritania";
694
+ readonly alpha2: "MR";
695
+ readonly alpha3: "MRT";
696
+ readonly aliases: readonly ["موريتانيا", "Islamic Republic of Mauritania"];
697
+ }, {
698
+ readonly name: "Mauritius";
699
+ readonly alpha2: "MU";
700
+ readonly alpha3: "MUS";
701
+ readonly aliases: readonly ["Republic of Mauritius", "République de Maurice"];
702
+ }, {
703
+ readonly name: "Mayotte";
704
+ readonly alpha2: "YT";
705
+ readonly alpha3: "MYT";
706
+ readonly aliases: readonly [];
707
+ }, {
708
+ readonly name: "Mexico";
709
+ readonly alpha2: "MX";
710
+ readonly alpha3: "MEX";
711
+ readonly aliases: readonly ["México", "Estados Unidos Mexicanos"];
712
+ }, {
713
+ readonly name: "Micronesia, Federated States of";
714
+ readonly alpha2: "FM";
715
+ readonly alpha3: "FSM";
716
+ readonly aliases: readonly ["Micronesia", "Federated States of Micronesia"];
717
+ }, {
718
+ readonly name: "Moldova";
719
+ readonly alpha2: "MD";
720
+ readonly alpha3: "MDA";
721
+ readonly aliases: readonly ["Moldova", "Republica Moldova"];
722
+ }, {
723
+ readonly name: "Monaco";
724
+ readonly alpha2: "MC";
725
+ readonly alpha3: "MCO";
726
+ readonly aliases: readonly ["Principauté de Monaco"];
727
+ }, {
728
+ readonly name: "Mongolia";
729
+ readonly alpha2: "MN";
730
+ readonly alpha3: "MNG";
731
+ readonly aliases: readonly ["Монгол улс", "Mongol Uls"];
732
+ }, {
733
+ readonly name: "Montenegro";
734
+ readonly alpha2: "ME";
735
+ readonly alpha3: "MNE";
736
+ readonly aliases: readonly ["Црна Гора", "Crna Gora"];
737
+ }, {
738
+ readonly name: "Montserrat";
739
+ readonly alpha2: "MS";
740
+ readonly alpha3: "MSR";
741
+ readonly aliases: readonly [];
742
+ }, {
743
+ readonly name: "Morocco";
744
+ readonly alpha2: "MA";
745
+ readonly alpha3: "MAR";
746
+ readonly aliases: readonly ["المغرب", "Maroc", "Kingdom of Morocco"];
747
+ }, {
748
+ readonly name: "Mozambique";
749
+ readonly alpha2: "MZ";
750
+ readonly alpha3: "MOZ";
751
+ readonly aliases: readonly ["Moçambique", "Republic of Mozambique"];
752
+ }, {
753
+ readonly name: "Myanmar";
754
+ readonly alpha2: "MM";
755
+ readonly alpha3: "MMR";
756
+ readonly aliases: readonly ["Burma", "မြန်မာ", "Myanma"];
757
+ }, {
758
+ readonly name: "Namibia";
759
+ readonly alpha2: "NA";
760
+ readonly alpha3: "NAM";
761
+ readonly aliases: readonly ["Republic of Namibia"];
762
+ }, {
763
+ readonly name: "Nauru";
764
+ readonly alpha2: "NR";
765
+ readonly alpha3: "NRU";
766
+ readonly aliases: readonly ["Naoero", "Republic of Nauru"];
767
+ }, {
768
+ readonly name: "Nepal";
769
+ readonly alpha2: "NP";
770
+ readonly alpha3: "NPL";
771
+ readonly aliases: readonly ["नेपाल", "Federal Democratic Republic of Nepal"];
772
+ }, {
773
+ readonly name: "Netherlands";
774
+ readonly alpha2: "NL";
775
+ readonly alpha3: "NLD";
776
+ readonly aliases: readonly ["Nederland", "Holland", "Kingdom of the Netherlands"];
777
+ }, {
778
+ readonly name: "New Caledonia";
779
+ readonly alpha2: "NC";
780
+ readonly alpha3: "NCL";
781
+ readonly aliases: readonly ["Nouvelle-Calédonie"];
782
+ }, {
783
+ readonly name: "New Zealand";
784
+ readonly alpha2: "NZ";
785
+ readonly alpha3: "NZL";
786
+ readonly aliases: readonly ["Aotearoa"];
787
+ }, {
788
+ readonly name: "Nicaragua";
789
+ readonly alpha2: "NI";
790
+ readonly alpha3: "NIC";
791
+ readonly aliases: readonly ["República de Nicaragua"];
792
+ }, {
793
+ readonly name: "Niger";
794
+ readonly alpha2: "NE";
795
+ readonly alpha3: "NER";
796
+ readonly aliases: readonly ["République du Niger"];
797
+ }, {
798
+ readonly name: "Nigeria";
799
+ readonly alpha2: "NG";
800
+ readonly alpha3: "NGA";
801
+ readonly aliases: readonly ["Federal Republic of Nigeria"];
802
+ }, {
803
+ readonly name: "Niue";
804
+ readonly alpha2: "NU";
805
+ readonly alpha3: "NIU";
806
+ readonly aliases: readonly [];
807
+ }, {
808
+ readonly name: "Norfolk Island";
809
+ readonly alpha2: "NF";
810
+ readonly alpha3: "NFK";
811
+ readonly aliases: readonly [];
812
+ }, {
813
+ readonly name: "North Macedonia";
814
+ readonly alpha2: "MK";
815
+ readonly alpha3: "MKD";
816
+ readonly aliases: readonly ["Republic of North Macedonia", "Северна Македонија"];
817
+ }, {
818
+ readonly name: "Northern Mariana Islands";
819
+ readonly alpha2: "MP";
820
+ readonly alpha3: "MNP";
821
+ readonly aliases: readonly ["Saipan", "Commonwealth of the Northern Mariana Islands"];
822
+ }, {
823
+ readonly name: "Norway";
824
+ readonly alpha2: "NO";
825
+ readonly alpha3: "NOR";
826
+ readonly aliases: readonly ["Norge", "Noreg", "Norrige"];
827
+ }, {
828
+ readonly name: "Oman";
829
+ readonly alpha2: "OM";
830
+ readonly alpha3: "OMN";
831
+ readonly aliases: readonly ["عمان", "Sultanate of Oman"];
832
+ }, {
833
+ readonly name: "Pakistan";
834
+ readonly alpha2: "PK";
835
+ readonly alpha3: "PAK";
836
+ readonly aliases: readonly ["پاکستان", "Islamic Republic of Pakistan"];
837
+ }, {
838
+ readonly name: "Palau";
839
+ readonly alpha2: "PW";
840
+ readonly alpha3: "PLW";
841
+ readonly aliases: readonly ["Beluu er a Belau", "Republic of Palau"];
842
+ }, {
843
+ readonly name: "Palestine";
844
+ readonly alpha2: "PS";
845
+ readonly alpha3: "PSE";
846
+ readonly aliases: readonly ["فلسطين", "State of Palestine"];
847
+ }, {
848
+ readonly name: "Panama";
849
+ readonly alpha2: "PA";
850
+ readonly alpha3: "PAN";
851
+ readonly aliases: readonly ["República de Panamá"];
852
+ }, {
853
+ readonly name: "Papua New Guinea";
854
+ readonly alpha2: "PG";
855
+ readonly alpha3: "PNG";
856
+ readonly aliases: readonly ["Papua Niugini"];
857
+ }, {
858
+ readonly name: "Paraguay";
859
+ readonly alpha2: "PY";
860
+ readonly alpha3: "PRY";
861
+ readonly aliases: readonly ["República del Paraguay"];
862
+ }, {
863
+ readonly name: "Peru";
864
+ readonly alpha2: "PE";
865
+ readonly alpha3: "PER";
866
+ readonly aliases: readonly ["República del Perú"];
867
+ }, {
868
+ readonly name: "Philippines";
869
+ readonly alpha2: "PH";
870
+ readonly alpha3: "PHL";
871
+ readonly aliases: readonly ["Pilipinas", "Republika ng Pilipinas"];
872
+ }, {
873
+ readonly name: "Poland";
874
+ readonly alpha2: "PL";
875
+ readonly alpha3: "POL";
876
+ readonly aliases: readonly ["Polska", "Republic of Poland"];
877
+ }, {
878
+ readonly name: "Portugal";
879
+ readonly alpha2: "PT";
880
+ readonly alpha3: "PRT";
881
+ readonly aliases: readonly ["República Portuguesa"];
882
+ }, {
883
+ readonly name: "Puerto Rico";
884
+ readonly alpha2: "PR";
885
+ readonly alpha3: "PRI";
886
+ readonly aliases: readonly [];
887
+ }, {
888
+ readonly name: "Qatar";
889
+ readonly alpha2: "QA";
890
+ readonly alpha3: "QAT";
891
+ readonly aliases: readonly ["قطر", "State of Qatar"];
892
+ }, {
893
+ readonly name: "Réunion";
894
+ readonly alpha2: "RE";
895
+ readonly alpha3: "REU";
896
+ readonly aliases: readonly [];
897
+ }, {
898
+ readonly name: "Romania";
899
+ readonly alpha2: "RO";
900
+ readonly alpha3: "ROU";
901
+ readonly aliases: readonly ["România"];
902
+ }, {
903
+ readonly name: "Russian Federation";
904
+ readonly alpha2: "RU";
905
+ readonly alpha3: "RUS";
906
+ readonly aliases: readonly ["Russia", "Российская Федерация"];
907
+ }, {
908
+ readonly name: "Rwanda";
909
+ readonly alpha2: "RW";
910
+ readonly alpha3: "RWA";
911
+ readonly aliases: readonly ["Repubulika y'u Rwanda", "République du Rwanda"];
912
+ }, {
913
+ readonly name: "Saint Barthélemy";
914
+ readonly alpha2: "BL";
915
+ readonly alpha3: "BLM";
916
+ readonly aliases: readonly ["Saint-Barthélemy"];
917
+ }, {
918
+ readonly name: "Saint Helena, Ascension and Tristan da Cunha";
919
+ readonly alpha2: "SH";
920
+ readonly alpha3: "SHN";
921
+ readonly aliases: readonly [];
922
+ }, {
923
+ readonly name: "Saint Kitts and Nevis";
924
+ readonly alpha2: "KN";
925
+ readonly alpha3: "KNA";
926
+ readonly aliases: readonly [];
927
+ }, {
928
+ readonly name: "Saint Lucia";
929
+ readonly alpha2: "LC";
930
+ readonly alpha3: "LCA";
931
+ readonly aliases: readonly [];
932
+ }, {
933
+ readonly name: "Saint Martin (French part)";
934
+ readonly alpha2: "MF";
935
+ readonly alpha3: "MAF";
936
+ readonly aliases: readonly [];
937
+ }, {
938
+ readonly name: "Saint Pierre and Miquelon";
939
+ readonly alpha2: "PM";
940
+ readonly alpha3: "SPM";
941
+ readonly aliases: readonly [];
942
+ }, {
943
+ readonly name: "Saint Vincent and the Grenadines";
944
+ readonly alpha2: "VC";
945
+ readonly alpha3: "VCT";
946
+ readonly aliases: readonly [];
947
+ }, {
948
+ readonly name: "Samoa";
949
+ readonly alpha2: "WS";
950
+ readonly alpha3: "WSM";
951
+ readonly aliases: readonly ["Sāmoa", "Independent State of Samoa"];
952
+ }, {
953
+ readonly name: "San Marino";
954
+ readonly alpha2: "SM";
955
+ readonly alpha3: "SMR";
956
+ readonly aliases: readonly ["Serenissima Repubblica di San Marino"];
957
+ }, {
958
+ readonly name: "Sao Tome and Principe";
959
+ readonly alpha2: "ST";
960
+ readonly alpha3: "STP";
961
+ readonly aliases: readonly ["São Tomé e Príncipe"];
962
+ }, {
963
+ readonly name: "Saudi Arabia";
964
+ readonly alpha2: "SA";
965
+ readonly alpha3: "SAU";
966
+ readonly aliases: readonly ["المملكة العربية السعودية", "Kingdom of Saudi Arabia", "KSA"];
967
+ }, {
968
+ readonly name: "Senegal";
969
+ readonly alpha2: "SN";
970
+ readonly alpha3: "SEN";
971
+ readonly aliases: readonly ["République du Sénégal"];
972
+ }, {
973
+ readonly name: "Serbia";
974
+ readonly alpha2: "RS";
975
+ readonly alpha3: "SRB";
976
+ readonly aliases: readonly ["Србија", "Srbija", "Republic of Serbia"];
977
+ }, {
978
+ readonly name: "Seychelles";
979
+ readonly alpha2: "SC";
980
+ readonly alpha3: "SYC";
981
+ readonly aliases: readonly ["Repiblik Sesel", "République des Seychelles"];
982
+ }, {
983
+ readonly name: "Sierra Leone";
984
+ readonly alpha2: "SL";
985
+ readonly alpha3: "SLE";
986
+ readonly aliases: readonly ["Republic of Sierra Leone"];
987
+ }, {
988
+ readonly name: "Singapore";
989
+ readonly alpha2: "SG";
990
+ readonly alpha3: "SGP";
991
+ readonly aliases: readonly ["新加坡", "Singapura", "Republic of Singapore"];
992
+ }, {
993
+ readonly name: "Sint Maarten (Dutch part)";
994
+ readonly alpha2: "SX";
995
+ readonly alpha3: "SXM";
996
+ readonly aliases: readonly [];
997
+ }, {
998
+ readonly name: "Slovakia";
999
+ readonly alpha2: "SK";
1000
+ readonly alpha3: "SVK";
1001
+ readonly aliases: readonly ["Slovensko", "Slovak Republic"];
1002
+ }, {
1003
+ readonly name: "Slovenia";
1004
+ readonly alpha2: "SI";
1005
+ readonly alpha3: "SVN";
1006
+ readonly aliases: readonly ["Slovenija"];
1007
+ }, {
1008
+ readonly name: "Solomon Islands";
1009
+ readonly alpha2: "SB";
1010
+ readonly alpha3: "SLB";
1011
+ readonly aliases: readonly [];
1012
+ }, {
1013
+ readonly name: "Somalia";
1014
+ readonly alpha2: "SO";
1015
+ readonly alpha3: "SOM";
1016
+ readonly aliases: readonly ["Soomaaliya", "جمهورية الصومال", "Federal Republic of Somalia"];
1017
+ }, {
1018
+ readonly name: "South Africa";
1019
+ readonly alpha2: "ZA";
1020
+ readonly alpha3: "ZAF";
1021
+ readonly aliases: readonly ["RSA", "Republic of South Africa"];
1022
+ }, {
1023
+ readonly name: "South Sudan";
1024
+ readonly alpha2: "SS";
1025
+ readonly alpha3: "SSD";
1026
+ readonly aliases: readonly ["Republic of South Sudan"];
1027
+ }, {
1028
+ readonly name: "Spain";
1029
+ readonly alpha2: "ES";
1030
+ readonly alpha3: "ESP";
1031
+ readonly aliases: readonly ["España", "Reino de España"];
1032
+ }, {
1033
+ readonly name: "Sri Lanka";
1034
+ readonly alpha2: "LK";
1035
+ readonly alpha3: "LKA";
1036
+ readonly aliases: readonly ["ශ්‍රී ලංකාව", "இலங்கை", "Democratic Socialist Republic of Sri Lanka"];
1037
+ }, {
1038
+ readonly name: "Sudan";
1039
+ readonly alpha2: "SD";
1040
+ readonly alpha3: "SDN";
1041
+ readonly aliases: readonly ["السودان", "Republic of the Sudan"];
1042
+ }, {
1043
+ readonly name: "Suriname";
1044
+ readonly alpha2: "SR";
1045
+ readonly alpha3: "SUR";
1046
+ readonly aliases: readonly ["Republiek Suriname"];
1047
+ }, {
1048
+ readonly name: "Svalbard and Jan Mayen";
1049
+ readonly alpha2: "SJ";
1050
+ readonly alpha3: "SJM";
1051
+ readonly aliases: readonly [];
1052
+ }, {
1053
+ readonly name: "Sweden";
1054
+ readonly alpha2: "SE";
1055
+ readonly alpha3: "SWE";
1056
+ readonly aliases: readonly ["Sverige", "Kingdom of Sweden"];
1057
+ }, {
1058
+ readonly name: "Switzerland";
1059
+ readonly alpha2: "CH";
1060
+ readonly alpha3: "CHE";
1061
+ readonly aliases: readonly ["Schweiz", "Suisse", "Svizzera", "Svizra", "Swiss Confederation"];
1062
+ }, {
1063
+ readonly name: "Syrian Arab Republic";
1064
+ readonly alpha2: "SY";
1065
+ readonly alpha3: "SYR";
1066
+ readonly aliases: readonly ["سوريا", "Syria"];
1067
+ }, {
1068
+ readonly name: "Taiwan, Province of China";
1069
+ readonly alpha2: "TW";
1070
+ readonly alpha3: "TWN";
1071
+ readonly aliases: readonly ["台灣", "臺灣", "Taiwan", "Republic of China", "ROC"];
1072
+ }, {
1073
+ readonly name: "Tajikistan";
1074
+ readonly alpha2: "TJ";
1075
+ readonly alpha3: "TJK";
1076
+ readonly aliases: readonly ["Тоҷикистон", "Republic of Tajikistan"];
1077
+ }, {
1078
+ readonly name: "Tanzania, United Republic of";
1079
+ readonly alpha2: "TZ";
1080
+ readonly alpha3: "TZA";
1081
+ readonly aliases: readonly ["Tanzania", "Jamhuri ya Muungano wa Tanzania"];
1082
+ }, {
1083
+ readonly name: "Thailand";
1084
+ readonly alpha2: "TH";
1085
+ readonly alpha3: "THA";
1086
+ readonly aliases: readonly ["ประเทศไทย", "Prathet Thai", "Kingdom of Thailand"];
1087
+ }, {
1088
+ readonly name: "Timor-Leste";
1089
+ readonly alpha2: "TL";
1090
+ readonly alpha3: "TLS";
1091
+ readonly aliases: readonly ["East Timor", "República Democrática de Timor-Leste"];
1092
+ }, {
1093
+ readonly name: "Togo";
1094
+ readonly alpha2: "TG";
1095
+ readonly alpha3: "TGO";
1096
+ readonly aliases: readonly ["République Togolaise"];
1097
+ }, {
1098
+ readonly name: "Tokelau";
1099
+ readonly alpha2: "TK";
1100
+ readonly alpha3: "TKL";
1101
+ readonly aliases: readonly [];
1102
+ }, {
1103
+ readonly name: "Tonga";
1104
+ readonly alpha2: "TO";
1105
+ readonly alpha3: "TON";
1106
+ readonly aliases: readonly ["Puleʻanga Fakatuʻi ʻo Tonga", "Kingdom of Tonga"];
1107
+ }, {
1108
+ readonly name: "Trinidad and Tobago";
1109
+ readonly alpha2: "TT";
1110
+ readonly alpha3: "TTO";
1111
+ readonly aliases: readonly [];
1112
+ }, {
1113
+ readonly name: "Tunisia";
1114
+ readonly alpha2: "TN";
1115
+ readonly alpha3: "TUN";
1116
+ readonly aliases: readonly ["تونس", "Republic of Tunisia"];
1117
+ }, {
1118
+ readonly name: "Türkiye";
1119
+ readonly alpha2: "TR";
1120
+ readonly alpha3: "TUR";
1121
+ readonly aliases: readonly ["Turkey", "Türkiye Cumhuriyeti", "Republic of Türkiye"];
1122
+ }, {
1123
+ readonly name: "Turkmenistan";
1124
+ readonly alpha2: "TM";
1125
+ readonly alpha3: "TKM";
1126
+ readonly aliases: readonly ["Türkmenistan"];
1127
+ }, {
1128
+ readonly name: "Turks and Caicos Islands";
1129
+ readonly alpha2: "TC";
1130
+ readonly alpha3: "TCA";
1131
+ readonly aliases: readonly [];
1132
+ }, {
1133
+ readonly name: "Tuvalu";
1134
+ readonly alpha2: "TV";
1135
+ readonly alpha3: "TUV";
1136
+ readonly aliases: readonly [];
1137
+ }, {
1138
+ readonly name: "Uganda";
1139
+ readonly alpha2: "UG";
1140
+ readonly alpha3: "UGA";
1141
+ readonly aliases: readonly ["Republic of Uganda"];
1142
+ }, {
1143
+ readonly name: "Ukraine";
1144
+ readonly alpha2: "UA";
1145
+ readonly alpha3: "UKR";
1146
+ readonly aliases: readonly ["Україна"];
1147
+ }, {
1148
+ readonly name: "United Arab Emirates";
1149
+ readonly alpha2: "AE";
1150
+ readonly alpha3: "ARE";
1151
+ readonly aliases: readonly ["الإمارات العربية المتحدة", "UAE"];
1152
+ }, {
1153
+ readonly name: "United Kingdom";
1154
+ readonly alpha2: "GB";
1155
+ readonly alpha3: "GBR";
1156
+ readonly aliases: readonly ["United Kingdom", "UK", "Britain", "Great Britain"];
1157
+ }, {
1158
+ readonly name: "United States of America";
1159
+ readonly alpha2: "US";
1160
+ readonly alpha3: "USA";
1161
+ readonly aliases: readonly ["United States", "USA", "America", "US"];
1162
+ }, {
1163
+ readonly name: "Uruguay";
1164
+ readonly alpha2: "UY";
1165
+ readonly alpha3: "URY";
1166
+ readonly aliases: readonly ["República Oriental del Uruguay"];
1167
+ }, {
1168
+ readonly name: "Uzbekistan";
1169
+ readonly alpha2: "UZ";
1170
+ readonly alpha3: "UZB";
1171
+ readonly aliases: readonly ["Oʻzbekiston", "Republic of Uzbekistan"];
1172
+ }, {
1173
+ readonly name: "Vanuatu";
1174
+ readonly alpha2: "VU";
1175
+ readonly alpha3: "VUT";
1176
+ readonly aliases: readonly ["Ripablik blong Vanuatu"];
1177
+ }, {
1178
+ readonly name: "Venezuela";
1179
+ readonly alpha2: "VE";
1180
+ readonly alpha3: "VEN";
1181
+ readonly aliases: readonly ["Venezuela", "República Bolivariana de Venezuela"];
1182
+ }, {
1183
+ readonly name: "Vietnam";
1184
+ readonly alpha2: "VN";
1185
+ readonly alpha3: "VNM";
1186
+ readonly aliases: readonly ["Việt Nam", "Socialist Republic of Vietnam"];
1187
+ }, {
1188
+ readonly name: "Virgin Islands (British)";
1189
+ readonly alpha2: "VG";
1190
+ readonly alpha3: "VGB";
1191
+ readonly aliases: readonly ["British Virgin Islands"];
1192
+ }, {
1193
+ readonly name: "Virgin Islands (U.S.)";
1194
+ readonly alpha2: "VI";
1195
+ readonly alpha3: "VIR";
1196
+ readonly aliases: readonly ["U.S. Virgin Islands"];
1197
+ }, {
1198
+ readonly name: "Wallis and Futuna";
1199
+ readonly alpha2: "WF";
1200
+ readonly alpha3: "WLF";
1201
+ readonly aliases: readonly [];
1202
+ }, {
1203
+ readonly name: "Western Sahara";
1204
+ readonly alpha2: "EH";
1205
+ readonly alpha3: "ESH";
1206
+ readonly aliases: readonly ["الصحراء الغربية", "Sahara Occidental"];
1207
+ }, {
1208
+ readonly name: "Yemen";
1209
+ readonly alpha2: "YE";
1210
+ readonly alpha3: "YEM";
1211
+ readonly aliases: readonly ["اليمن", "Republic of Yemen"];
1212
+ }, {
1213
+ readonly name: "Zambia";
1214
+ readonly alpha2: "ZM";
1215
+ readonly alpha3: "ZMB";
1216
+ readonly aliases: readonly ["Republic of Zambia"];
1217
+ }, {
1218
+ readonly name: "Zimbabwe";
1219
+ readonly alpha2: "ZW";
1220
+ readonly alpha3: "ZWE";
1221
+ readonly aliases: readonly ["Republic of Zimbabwe"];
1222
+ }];
1223
+
1224
+ declare interface CountryOptions {
1225
+ output?: CountryOutput;
1226
+ message?: string;
1227
+ }
1228
+
1229
+ declare type CountryOutput = 'name' | '2-letter' | '3-letter';
1230
+
1231
+ declare type CountryTwoLetterCode = (typeof Countries)[number]['alpha2'];
1232
+
1233
+ /**
1234
+ * ISO 4217 Currency Codes
1235
+ *
1236
+ * This file contains the list of all valid currency codes according to ISO 4217 standard.
1237
+ * Each currency has a 3-letter code, a name, and a numeric code.
1238
+ */
1239
+ declare type CurrencyCode = (typeof CurrencyCodes)[number]['code'];
1240
+
1241
+ declare interface CurrencyCodeOptions {
1242
+ allowedCurrencies?: CurrencyCode[];
1243
+ message?: string;
1244
+ }
1245
+
1246
+ declare const CurrencyCodes: readonly [{
1247
+ readonly code: "AED";
1248
+ readonly name: "United Arab Emirates dirham";
1249
+ readonly numeric: "784";
1250
+ }, {
1251
+ readonly code: "AFN";
1252
+ readonly name: "Afghan afghani";
1253
+ readonly numeric: "971";
1254
+ }, {
1255
+ readonly code: "ALL";
1256
+ readonly name: "Albanian lek";
1257
+ readonly numeric: "008";
1258
+ }, {
1259
+ readonly code: "AMD";
1260
+ readonly name: "Armenian dram";
1261
+ readonly numeric: "051";
1262
+ }, {
1263
+ readonly code: "ANG";
1264
+ readonly name: "Netherlands Antillean guilder";
1265
+ readonly numeric: "532";
1266
+ }, {
1267
+ readonly code: "AOA";
1268
+ readonly name: "Angolan kwanza";
1269
+ readonly numeric: "973";
1270
+ }, {
1271
+ readonly code: "ARS";
1272
+ readonly name: "Argentine peso";
1273
+ readonly numeric: "032";
1274
+ }, {
1275
+ readonly code: "AUD";
1276
+ readonly name: "Australian dollar";
1277
+ readonly numeric: "036";
1278
+ }, {
1279
+ readonly code: "AWG";
1280
+ readonly name: "Aruban florin";
1281
+ readonly numeric: "533";
1282
+ }, {
1283
+ readonly code: "AZN";
1284
+ readonly name: "Azerbaijani manat";
1285
+ readonly numeric: "944";
1286
+ }, {
1287
+ readonly code: "BAM";
1288
+ readonly name: "Bosnia and Herzegovina convertible mark";
1289
+ readonly numeric: "977";
1290
+ }, {
1291
+ readonly code: "BBD";
1292
+ readonly name: "Barbados dollar";
1293
+ readonly numeric: "052";
1294
+ }, {
1295
+ readonly code: "BDT";
1296
+ readonly name: "Bangladeshi taka";
1297
+ readonly numeric: "050";
1298
+ }, {
1299
+ readonly code: "BGN";
1300
+ readonly name: "Bulgarian lev";
1301
+ readonly numeric: "975";
1302
+ }, {
1303
+ readonly code: "BHD";
1304
+ readonly name: "Bahraini dinar";
1305
+ readonly numeric: "048";
1306
+ }, {
1307
+ readonly code: "BIF";
1308
+ readonly name: "Burundian franc";
1309
+ readonly numeric: "108";
1310
+ }, {
1311
+ readonly code: "BMD";
1312
+ readonly name: "Bermudian dollar";
1313
+ readonly numeric: "060";
1314
+ }, {
1315
+ readonly code: "BND";
1316
+ readonly name: "Brunei dollar";
1317
+ readonly numeric: "096";
1318
+ }, {
1319
+ readonly code: "BOB";
1320
+ readonly name: "Boliviano";
1321
+ readonly numeric: "068";
1322
+ }, {
1323
+ readonly code: "BRL";
1324
+ readonly name: "Brazilian real";
1325
+ readonly numeric: "986";
1326
+ }, {
1327
+ readonly code: "BSD";
1328
+ readonly name: "Bahamian dollar";
1329
+ readonly numeric: "044";
1330
+ }, {
1331
+ readonly code: "BTN";
1332
+ readonly name: "Bhutanese ngultrum";
1333
+ readonly numeric: "064";
1334
+ }, {
1335
+ readonly code: "BWP";
1336
+ readonly name: "Botswana pula";
1337
+ readonly numeric: "072";
1338
+ }, {
1339
+ readonly code: "BYN";
1340
+ readonly name: "Belarusian ruble";
1341
+ readonly numeric: "933";
1342
+ }, {
1343
+ readonly code: "BZD";
1344
+ readonly name: "Belize dollar";
1345
+ readonly numeric: "084";
1346
+ }, {
1347
+ readonly code: "CAD";
1348
+ readonly name: "Canadian dollar";
1349
+ readonly numeric: "124";
1350
+ }, {
1351
+ readonly code: "CDF";
1352
+ readonly name: "Congolese franc";
1353
+ readonly numeric: "976";
1354
+ }, {
1355
+ readonly code: "CHF";
1356
+ readonly name: "Swiss franc";
1357
+ readonly numeric: "756";
1358
+ }, {
1359
+ readonly code: "CLP";
1360
+ readonly name: "Chilean peso";
1361
+ readonly numeric: "152";
1362
+ }, {
1363
+ readonly code: "CNY";
1364
+ readonly name: "Chinese yuan";
1365
+ readonly numeric: "156";
1366
+ }, {
1367
+ readonly code: "COP";
1368
+ readonly name: "Colombian peso";
1369
+ readonly numeric: "170";
1370
+ }, {
1371
+ readonly code: "CRC";
1372
+ readonly name: "Costa Rican colon";
1373
+ readonly numeric: "188";
1374
+ }, {
1375
+ readonly code: "CUC";
1376
+ readonly name: "Cuban convertible peso";
1377
+ readonly numeric: "931";
1378
+ }, {
1379
+ readonly code: "CUP";
1380
+ readonly name: "Cuban peso";
1381
+ readonly numeric: "192";
1382
+ }, {
1383
+ readonly code: "CVE";
1384
+ readonly name: "Cape Verdean escudo";
1385
+ readonly numeric: "132";
1386
+ }, {
1387
+ readonly code: "CZK";
1388
+ readonly name: "Czech koruna";
1389
+ readonly numeric: "203";
1390
+ }, {
1391
+ readonly code: "DJF";
1392
+ readonly name: "Djiboutian franc";
1393
+ readonly numeric: "262";
1394
+ }, {
1395
+ readonly code: "DKK";
1396
+ readonly name: "Danish krone";
1397
+ readonly numeric: "208";
1398
+ }, {
1399
+ readonly code: "DOP";
1400
+ readonly name: "Dominican peso";
1401
+ readonly numeric: "214";
1402
+ }, {
1403
+ readonly code: "DZD";
1404
+ readonly name: "Algerian dinar";
1405
+ readonly numeric: "012";
1406
+ }, {
1407
+ readonly code: "EGP";
1408
+ readonly name: "Egyptian pound";
1409
+ readonly numeric: "818";
1410
+ }, {
1411
+ readonly code: "ERN";
1412
+ readonly name: "Eritrean nakfa";
1413
+ readonly numeric: "232";
1414
+ }, {
1415
+ readonly code: "ETB";
1416
+ readonly name: "Ethiopian birr";
1417
+ readonly numeric: "230";
1418
+ }, {
1419
+ readonly code: "EUR";
1420
+ readonly name: "Euro";
1421
+ readonly numeric: "978";
1422
+ }, {
1423
+ readonly code: "FJD";
1424
+ readonly name: "Fiji dollar";
1425
+ readonly numeric: "242";
1426
+ }, {
1427
+ readonly code: "FKP";
1428
+ readonly name: "Falkland Islands pound";
1429
+ readonly numeric: "238";
1430
+ }, {
1431
+ readonly code: "GBP";
1432
+ readonly name: "Pound sterling";
1433
+ readonly numeric: "826";
1434
+ }, {
1435
+ readonly code: "GEL";
1436
+ readonly name: "Georgian lari";
1437
+ readonly numeric: "981";
1438
+ }, {
1439
+ readonly code: "GHS";
1440
+ readonly name: "Ghanaian cedi";
1441
+ readonly numeric: "936";
1442
+ }, {
1443
+ readonly code: "GIP";
1444
+ readonly name: "Gibraltar pound";
1445
+ readonly numeric: "292";
1446
+ }, {
1447
+ readonly code: "GMD";
1448
+ readonly name: "Gambian dalasi";
1449
+ readonly numeric: "270";
1450
+ }, {
1451
+ readonly code: "GNF";
1452
+ readonly name: "Guinean franc";
1453
+ readonly numeric: "324";
1454
+ }, {
1455
+ readonly code: "GTQ";
1456
+ readonly name: "Guatemalan quetzal";
1457
+ readonly numeric: "320";
1458
+ }, {
1459
+ readonly code: "GYD";
1460
+ readonly name: "Guyanese dollar";
1461
+ readonly numeric: "328";
1462
+ }, {
1463
+ readonly code: "HKD";
1464
+ readonly name: "Hong Kong dollar";
1465
+ readonly numeric: "344";
1466
+ }, {
1467
+ readonly code: "HNL";
1468
+ readonly name: "Honduran lempira";
1469
+ readonly numeric: "340";
1470
+ }, {
1471
+ readonly code: "HRK";
1472
+ readonly name: "Croatian kuna";
1473
+ readonly numeric: "191";
1474
+ }, {
1475
+ readonly code: "HTG";
1476
+ readonly name: "Haitian gourde";
1477
+ readonly numeric: "332";
1478
+ }, {
1479
+ readonly code: "HUF";
1480
+ readonly name: "Hungarian forint";
1481
+ readonly numeric: "348";
1482
+ }, {
1483
+ readonly code: "IDR";
1484
+ readonly name: "Indonesian rupiah";
1485
+ readonly numeric: "360";
1486
+ }, {
1487
+ readonly code: "ILS";
1488
+ readonly name: "Israeli new shekel";
1489
+ readonly numeric: "376";
1490
+ }, {
1491
+ readonly code: "INR";
1492
+ readonly name: "Indian rupee";
1493
+ readonly numeric: "356";
1494
+ }, {
1495
+ readonly code: "IQD";
1496
+ readonly name: "Iraqi dinar";
1497
+ readonly numeric: "368";
1498
+ }, {
1499
+ readonly code: "IRR";
1500
+ readonly name: "Iranian rial";
1501
+ readonly numeric: "364";
1502
+ }, {
1503
+ readonly code: "ISK";
1504
+ readonly name: "Icelandic króna";
1505
+ readonly numeric: "352";
1506
+ }, {
1507
+ readonly code: "JMD";
1508
+ readonly name: "Jamaican dollar";
1509
+ readonly numeric: "388";
1510
+ }, {
1511
+ readonly code: "JOD";
1512
+ readonly name: "Jordanian dinar";
1513
+ readonly numeric: "400";
1514
+ }, {
1515
+ readonly code: "JPY";
1516
+ readonly name: "Japanese yen";
1517
+ readonly numeric: "392";
1518
+ }, {
1519
+ readonly code: "KES";
1520
+ readonly name: "Kenyan shilling";
1521
+ readonly numeric: "404";
1522
+ }, {
1523
+ readonly code: "KGS";
1524
+ readonly name: "Kyrgyzstani som";
1525
+ readonly numeric: "417";
1526
+ }, {
1527
+ readonly code: "KHR";
1528
+ readonly name: "Cambodian riel";
1529
+ readonly numeric: "116";
1530
+ }, {
1531
+ readonly code: "KMF";
1532
+ readonly name: "Comoro franc";
1533
+ readonly numeric: "174";
1534
+ }, {
1535
+ readonly code: "KPW";
1536
+ readonly name: "North Korean won";
1537
+ readonly numeric: "408";
1538
+ }, {
1539
+ readonly code: "KRW";
1540
+ readonly name: "South Korean won";
1541
+ readonly numeric: "410";
1542
+ }, {
1543
+ readonly code: "KWD";
1544
+ readonly name: "Kuwaiti dinar";
1545
+ readonly numeric: "414";
1546
+ }, {
1547
+ readonly code: "KYD";
1548
+ readonly name: "Cayman Islands dollar";
1549
+ readonly numeric: "136";
1550
+ }, {
1551
+ readonly code: "KZT";
1552
+ readonly name: "Kazakhstani tenge";
1553
+ readonly numeric: "398";
1554
+ }, {
1555
+ readonly code: "LAK";
1556
+ readonly name: "Lao kip";
1557
+ readonly numeric: "418";
1558
+ }, {
1559
+ readonly code: "LBP";
1560
+ readonly name: "Lebanese pound";
1561
+ readonly numeric: "422";
1562
+ }, {
1563
+ readonly code: "LKR";
1564
+ readonly name: "Sri Lankan rupee";
1565
+ readonly numeric: "144";
1566
+ }, {
1567
+ readonly code: "LRD";
1568
+ readonly name: "Liberian dollar";
1569
+ readonly numeric: "430";
1570
+ }, {
1571
+ readonly code: "LSL";
1572
+ readonly name: "Lesotho loti";
1573
+ readonly numeric: "426";
1574
+ }, {
1575
+ readonly code: "LYD";
1576
+ readonly name: "Libyan dinar";
1577
+ readonly numeric: "434";
1578
+ }, {
1579
+ readonly code: "MAD";
1580
+ readonly name: "Moroccan dirham";
1581
+ readonly numeric: "504";
1582
+ }, {
1583
+ readonly code: "MDL";
1584
+ readonly name: "Moldovan leu";
1585
+ readonly numeric: "498";
1586
+ }, {
1587
+ readonly code: "MGA";
1588
+ readonly name: "Malagasy ariary";
1589
+ readonly numeric: "969";
1590
+ }, {
1591
+ readonly code: "MKD";
1592
+ readonly name: "Macedonian denar";
1593
+ readonly numeric: "807";
1594
+ }, {
1595
+ readonly code: "MMK";
1596
+ readonly name: "Myanmar kyat";
1597
+ readonly numeric: "104";
1598
+ }, {
1599
+ readonly code: "MNT";
1600
+ readonly name: "Mongolian tögrög";
1601
+ readonly numeric: "496";
1602
+ }, {
1603
+ readonly code: "MOP";
1604
+ readonly name: "Macanese pataca";
1605
+ readonly numeric: "446";
1606
+ }, {
1607
+ readonly code: "MRU";
1608
+ readonly name: "Mauritanian ouguiya";
1609
+ readonly numeric: "929";
1610
+ }, {
1611
+ readonly code: "MUR";
1612
+ readonly name: "Mauritian rupee";
1613
+ readonly numeric: "480";
1614
+ }, {
1615
+ readonly code: "MVR";
1616
+ readonly name: "Maldivian rufiyaa";
1617
+ readonly numeric: "462";
1618
+ }, {
1619
+ readonly code: "MWK";
1620
+ readonly name: "Malawian kwacha";
1621
+ readonly numeric: "454";
1622
+ }, {
1623
+ readonly code: "MXN";
1624
+ readonly name: "Mexican peso";
1625
+ readonly numeric: "484";
1626
+ }, {
1627
+ readonly code: "MYR";
1628
+ readonly name: "Malaysian ringgit";
1629
+ readonly numeric: "458";
1630
+ }, {
1631
+ readonly code: "MZN";
1632
+ readonly name: "Mozambican metical";
1633
+ readonly numeric: "943";
1634
+ }, {
1635
+ readonly code: "NAD";
1636
+ readonly name: "Namibian dollar";
1637
+ readonly numeric: "516";
1638
+ }, {
1639
+ readonly code: "NGN";
1640
+ readonly name: "Nigerian naira";
1641
+ readonly numeric: "566";
1642
+ }, {
1643
+ readonly code: "NIO";
1644
+ readonly name: "Nicaraguan córdoba";
1645
+ readonly numeric: "558";
1646
+ }, {
1647
+ readonly code: "NOK";
1648
+ readonly name: "Norwegian krone";
1649
+ readonly numeric: "578";
1650
+ }, {
1651
+ readonly code: "NPR";
1652
+ readonly name: "Nepalese rupee";
1653
+ readonly numeric: "524";
1654
+ }, {
1655
+ readonly code: "NZD";
1656
+ readonly name: "New Zealand dollar";
1657
+ readonly numeric: "554";
1658
+ }, {
1659
+ readonly code: "OMR";
1660
+ readonly name: "Omani rial";
1661
+ readonly numeric: "512";
1662
+ }, {
1663
+ readonly code: "PAB";
1664
+ readonly name: "Panamanian balboa";
1665
+ readonly numeric: "590";
1666
+ }, {
1667
+ readonly code: "PEN";
1668
+ readonly name: "Peruvian sol";
1669
+ readonly numeric: "604";
1670
+ }, {
1671
+ readonly code: "PGK";
1672
+ readonly name: "Papua New Guinean kina";
1673
+ readonly numeric: "598";
1674
+ }, {
1675
+ readonly code: "PHP";
1676
+ readonly name: "Philippine peso";
1677
+ readonly numeric: "608";
1678
+ }, {
1679
+ readonly code: "PKR";
1680
+ readonly name: "Pakistani rupee";
1681
+ readonly numeric: "586";
1682
+ }, {
1683
+ readonly code: "PLN";
1684
+ readonly name: "Polish złoty";
1685
+ readonly numeric: "985";
1686
+ }, {
1687
+ readonly code: "PYG";
1688
+ readonly name: "Paraguayan guaraní";
1689
+ readonly numeric: "600";
1690
+ }, {
1691
+ readonly code: "QAR";
1692
+ readonly name: "Qatari riyal";
1693
+ readonly numeric: "634";
1694
+ }, {
1695
+ readonly code: "RON";
1696
+ readonly name: "Romanian leu";
1697
+ readonly numeric: "946";
1698
+ }, {
1699
+ readonly code: "RSD";
1700
+ readonly name: "Serbian dinar";
1701
+ readonly numeric: "941";
1702
+ }, {
1703
+ readonly code: "RUB";
1704
+ readonly name: "Russian ruble";
1705
+ readonly numeric: "643";
1706
+ }, {
1707
+ readonly code: "RWF";
1708
+ readonly name: "Rwandan franc";
1709
+ readonly numeric: "646";
1710
+ }, {
1711
+ readonly code: "SAR";
1712
+ readonly name: "Saudi riyal";
1713
+ readonly numeric: "682";
1714
+ }, {
1715
+ readonly code: "SBD";
1716
+ readonly name: "Solomon Islands dollar";
1717
+ readonly numeric: "090";
1718
+ }, {
1719
+ readonly code: "SCR";
1720
+ readonly name: "Seychelles rupee";
1721
+ readonly numeric: "690";
1722
+ }, {
1723
+ readonly code: "SDG";
1724
+ readonly name: "Sudanese pound";
1725
+ readonly numeric: "938";
1726
+ }, {
1727
+ readonly code: "SEK";
1728
+ readonly name: "Swedish krona";
1729
+ readonly numeric: "752";
1730
+ }, {
1731
+ readonly code: "SGD";
1732
+ readonly name: "Singapore dollar";
1733
+ readonly numeric: "702";
1734
+ }, {
1735
+ readonly code: "SHP";
1736
+ readonly name: "Saint Helena pound";
1737
+ readonly numeric: "654";
1738
+ }, {
1739
+ readonly code: "SLL";
1740
+ readonly name: "Sierra Leonean leone";
1741
+ readonly numeric: "694";
1742
+ }, {
1743
+ readonly code: "SOS";
1744
+ readonly name: "Somali shilling";
1745
+ readonly numeric: "706";
1746
+ }, {
1747
+ readonly code: "SRD";
1748
+ readonly name: "Surinamese dollar";
1749
+ readonly numeric: "968";
1750
+ }, {
1751
+ readonly code: "SSP";
1752
+ readonly name: "South Sudanese pound";
1753
+ readonly numeric: "728";
1754
+ }, {
1755
+ readonly code: "STN";
1756
+ readonly name: "São Tomé and Príncipe dobra";
1757
+ readonly numeric: "930";
1758
+ }, {
1759
+ readonly code: "SVC";
1760
+ readonly name: "Salvadoran colón";
1761
+ readonly numeric: "222";
1762
+ }, {
1763
+ readonly code: "SYP";
1764
+ readonly name: "Syrian pound";
1765
+ readonly numeric: "760";
1766
+ }, {
1767
+ readonly code: "SZL";
1768
+ readonly name: "Swazi lilangeni";
1769
+ readonly numeric: "748";
1770
+ }, {
1771
+ readonly code: "THB";
1772
+ readonly name: "Thai baht";
1773
+ readonly numeric: "764";
1774
+ }, {
1775
+ readonly code: "TJS";
1776
+ readonly name: "Tajikistani somoni";
1777
+ readonly numeric: "972";
1778
+ }, {
1779
+ readonly code: "TMT";
1780
+ readonly name: "Turkmenistan manat";
1781
+ readonly numeric: "934";
1782
+ }, {
1783
+ readonly code: "TND";
1784
+ readonly name: "Tunisian dinar";
1785
+ readonly numeric: "788";
1786
+ }, {
1787
+ readonly code: "TOP";
1788
+ readonly name: "Tongan paʻanga";
1789
+ readonly numeric: "776";
1790
+ }, {
1791
+ readonly code: "TRY";
1792
+ readonly name: "Turkish lira";
1793
+ readonly numeric: "949";
1794
+ }, {
1795
+ readonly code: "TTD";
1796
+ readonly name: "Trinidad and Tobago dollar";
1797
+ readonly numeric: "780";
1798
+ }, {
1799
+ readonly code: "TWD";
1800
+ readonly name: "New Taiwan dollar";
1801
+ readonly numeric: "901";
1802
+ }, {
1803
+ readonly code: "TZS";
1804
+ readonly name: "Tanzanian shilling";
1805
+ readonly numeric: "834";
1806
+ }, {
1807
+ readonly code: "UAH";
1808
+ readonly name: "Ukrainian hryvnia";
1809
+ readonly numeric: "980";
1810
+ }, {
1811
+ readonly code: "UGX";
1812
+ readonly name: "Ugandan shilling";
1813
+ readonly numeric: "800";
1814
+ }, {
1815
+ readonly code: "USD";
1816
+ readonly name: "United States dollar";
1817
+ readonly numeric: "840";
1818
+ }, {
1819
+ readonly code: "UYU";
1820
+ readonly name: "Uruguayan peso";
1821
+ readonly numeric: "858";
1822
+ }, {
1823
+ readonly code: "UZS";
1824
+ readonly name: "Uzbekistan som";
1825
+ readonly numeric: "860";
1826
+ }, {
1827
+ readonly code: "VES";
1828
+ readonly name: "Venezuelan bolívar soberano";
1829
+ readonly numeric: "928";
1830
+ }, {
1831
+ readonly code: "VND";
1832
+ readonly name: "Vietnamese đồng";
1833
+ readonly numeric: "704";
1834
+ }, {
1835
+ readonly code: "VUV";
1836
+ readonly name: "Vanuatu vatu";
1837
+ readonly numeric: "548";
1838
+ }, {
1839
+ readonly code: "WST";
1840
+ readonly name: "Samoan tala";
1841
+ readonly numeric: "882";
1842
+ }, {
1843
+ readonly code: "XAF";
1844
+ readonly name: "CFA franc BEAC";
1845
+ readonly numeric: "950";
1846
+ }, {
1847
+ readonly code: "XCD";
1848
+ readonly name: "East Caribbean dollar";
1849
+ readonly numeric: "951";
1850
+ }, {
1851
+ readonly code: "XOF";
1852
+ readonly name: "CFA franc BCEAO";
1853
+ readonly numeric: "952";
1854
+ }, {
1855
+ readonly code: "XPF";
1856
+ readonly name: "CFP franc";
1857
+ readonly numeric: "953";
1858
+ }, {
1859
+ readonly code: "YER";
1860
+ readonly name: "Yemeni rial";
1861
+ readonly numeric: "886";
1862
+ }, {
1863
+ readonly code: "ZAR";
1864
+ readonly name: "South African rand";
1865
+ readonly numeric: "710";
1866
+ }, {
1867
+ readonly code: "ZMW";
1868
+ readonly name: "Zambian kwacha";
1869
+ readonly numeric: "967";
1870
+ }, {
1871
+ readonly code: "ZWL";
1872
+ readonly name: "Zimbabwean dollar";
1873
+ readonly numeric: "932";
1874
+ }];
1875
+
1876
+ declare interface DatetimeOptions {
1877
+ message?: string;
1878
+ }
1879
+
1880
+ export declare interface ExBaseDef {
1881
+ typeName: string;
1882
+ }
1883
+
1884
+ /**
1885
+ * Boolean field type that validates true/false values.
1886
+ *
1887
+ * When parsing strings (all comparisons are case-insensitive):
1888
+ * - The following values are considered false:
1889
+ * "" (empty cell), "0", "off", "n", "no", "false", "disabled"
1890
+ * - Cross characters are considered false: "×", "✗", "✘", "x"
1891
+ * - Check characters are considered true: "✓", "✔", "☑", "✅"
1892
+ * - All other string values are considered true
1893
+ *
1894
+ * When parsing numbers:
1895
+ * - 0 is considered false
1896
+ * - All other numbers are considered true
1897
+ */
1898
+ declare class ExBoolean extends PrimitiveExType<boolean, ExBooleanDef> {
1899
+ /**
1900
+ * Factory method to create an ExBoolean validator
1901
+ *
1902
+ * @param options - Configuration options
1903
+ * @param options.control - UI control type to use ('toggle', 'checkbox', 'dropdown')
1904
+ * @param options.message - Optional custom error message for validation failures
1905
+ * @returns A new ExBoolean instance
1906
+ */
1907
+ static create(options?: {
1908
+ control?: BooleanControlType;
1909
+ message?: string;
1910
+ }): ExBoolean;
1911
+ /**
1912
+ * Creates an optional version of this type
1913
+ *
1914
+ * @returns An optional version of this type
1915
+ */
1916
+ optional(): ExOptionalBoolean;
1917
+ }
1918
+
1919
+ declare interface ExBooleanDef extends PrimitiveExBaseDef {
1920
+ typeName: 'ExBoolean';
1921
+ control?: BooleanControlType;
1922
+ message?: string;
1923
+ checks: ValidatorCheck[];
1924
+ }
1925
+
1926
+ declare class ExCurrencyNumber extends ExNumberBase<ExCurrencyNumber> {
1927
+ /**
1928
+ * Creates an optional version of this type
1929
+ *
1930
+ * @returns An optional version of this type
1931
+ */
1932
+ optional(): ExOptionalCurrencyNumber;
1933
+ /**
1934
+ * Updates the currency code for this currency number
1935
+ * This allows chaining multiple currency() calls with "last call wins" behavior
1936
+ *
1937
+ * @param currencyCode - ISO 4217 currency code (e.g., 'USD', 'EUR', 'JPY')
1938
+ * @returns The instance for method chaining
1939
+ */
1940
+ currency(currencyCode: CurrencyCode): ExCurrencyNumber;
1941
+ }
1942
+
1943
+ declare class ExDate extends PrimitiveExType<string, ExDateDef> {
1944
+ /**
1945
+ * Factory method to create an ExDate validator
1946
+ *
1947
+ * @param options - Configuration options
1948
+ * @param options.message - Optional custom error message for validation failures
1949
+ * @returns A new ExDate instance
1950
+ */
1951
+ static create(options?: {
1952
+ message?: string;
1953
+ }): ExDate;
1954
+ /**
1955
+ * Creates an optional version of this type
1956
+ *
1957
+ * @returns An optional version of this type
1958
+ */
1959
+ optional(): ExOptionalDate;
1960
+ /**
1961
+ * Sets a custom output format for the date
1962
+ *
1963
+ * @param template - Format template string for output
1964
+ * @returns The ExDate instance for method chaining
1965
+ */
1966
+ output(template: string): this;
1967
+ }
1968
+
1969
+ declare interface ExDateDef extends PrimitiveExBaseDef {
1970
+ typeName: 'ExDate';
1971
+ message?: string;
1972
+ outputFormat?: string;
1973
+ internalValue?: {
1974
+ year: number;
1975
+ month: number;
1976
+ day: number;
1977
+ };
1978
+ }
1979
+
1980
+ declare class ExDatetime extends PrimitiveExType<string, ExDatetimeDef> {
1981
+ /**
1982
+ * Factory method to create an ExDatetime validator
1983
+ *
1984
+ * @param options - Configuration options
1985
+ * @param options.message - Optional custom error message for validation failures
1986
+ * @returns A new ExDatetime instance
1987
+ */
1988
+ static create(options?: DatetimeOptions): ExDatetime;
1989
+ /**
1990
+ * Creates an optional version of this type
1991
+ *
1992
+ * @returns An optional version of this type
1993
+ */
1994
+ optional(): ExOptionalDatetime;
1995
+ /**
1996
+ * Sets a custom output format for the datetime
1997
+ *
1998
+ * @param template - Format template string for output
1999
+ * @returns The ExDatetime instance for method chaining
2000
+ */
2001
+ output(template: string): this;
2002
+ /**
2003
+ * Allows timezone offsets in the datetime string
2004
+ *
2005
+ * @param options - Configuration options
2006
+ * @param options.message - Custom error message for validation failures
2007
+ * @returns The ExDatetime instance for method chaining
2008
+ */
2009
+ allowOffset(options?: {
2010
+ message?: string;
2011
+ }): this;
2012
+ private _getDatetimeCheck;
2013
+ }
2014
+
2015
+ declare interface ExDatetimeDef extends PrimitiveExBaseDef {
2016
+ typeName: 'ExDatetime';
2017
+ checks: ValidatorCheck[];
2018
+ outputFormat?: string;
2019
+ internalValue?: string;
2020
+ }
2021
+
2022
+ declare class ExMultiselect<TValue extends string | number = string | number> extends PrimitiveExType<TValue[], ExMultiselectDef<TValue>> {
2023
+ /**
2024
+ * Factory method to create an ExMultiselect validator for multiple selection
2025
+ *
2026
+ * @param options - Array of select options with labels and values
2027
+ * @param config - Configuration options
2028
+ * @param config.enforceCaseSensitiveMatch - Whether to enforce case-sensitive matching
2029
+ * @param config.message - Custom error message for validation failures
2030
+ * @returns A new ExMultiselect instance
2031
+ */
2032
+ static create<const T extends readonly (SelectOption & {
2033
+ value: string | number;
2034
+ })[]>(options: T, config?: MultiselectOptions): ExMultiselect<T[number]['value']>;
2035
+ /**
2036
+ * Creates an optional version of this multiselect type
2037
+ *
2038
+ * @returns An optional version of this multiselect type
2039
+ */
2040
+ optional(): ExOptionalMultiselect<TValue>;
2041
+ /**
2042
+ * Sets case sensitive matching for option values
2043
+ *
2044
+ * @param enabled - Whether to enable case-sensitive matching
2045
+ * @returns The ExMultiselect instance for method chaining
2046
+ */
2047
+ caseSensitive(enabled?: boolean): this;
2048
+ /**
2049
+ * Sets minimum number of selections required
2050
+ *
2051
+ * @param min - Minimum number of selections (must be at least 1)
2052
+ * @param message - Custom error message for minimum validation
2053
+ * @returns The ExMultiselect instance for method chaining
2054
+ */
2055
+ min(min: number, message?: string): this;
2056
+ /**
2057
+ * Sets maximum number of selections allowed
2058
+ *
2059
+ * @param max - Maximum number of selections
2060
+ * @param message - Custom error message for maximum validation
2061
+ * @returns The ExMultiselect instance for method chaining
2062
+ */
2063
+ max(max: number, message?: string): this;
2064
+ }
2065
+
2066
+ declare interface ExMultiselectDef<TValue extends string | number = string | number> extends PrimitiveExBaseDef {
2067
+ typeName: 'ExMultiselect';
2068
+ options: SelectOption<TValue>[];
2069
+ config: {
2070
+ enforceCaseSensitiveMatch: boolean;
2071
+ allowCustom?: boolean;
2072
+ };
2073
+ checks: ValidatorCheck[];
2074
+ _value?: TValue[];
2075
+ message?: string;
2076
+ }
2077
+
2078
+ declare class ExNumber extends ExNumberBase<ExNumber> {
2079
+ /**
2080
+ * Factory method to create an ExNumber validator
2081
+ *
2082
+ * @param options - Configuration options
2083
+ * @param options.message - Optional custom error message for validation failures
2084
+ * @returns A new ExNumber instance
2085
+ */
2086
+ static create(options?: {
2087
+ message?: string;
2088
+ }): ExNumber;
2089
+ /**
2090
+ * Creates an optional version of this type
2091
+ *
2092
+ * @returns An optional version of this type
2093
+ */
2094
+ optional(): ExOptionalNumber;
2095
+ /**
2096
+ * Marks the number as a percentage value for presentation purposes.
2097
+ * This flag tells the cell editor to display the number with a percentage symbol.
2098
+ * No input or output transformation is performed - values are stored as-is.
2099
+ *
2100
+ * @returns A specialized percentage number type
2101
+ */
2102
+ percentage(): ExPercentageNumber;
2103
+ /**
2104
+ * Marks the number as a currency value, associating it with a specific currency code
2105
+ * The number will be formatted for the specified currency
2106
+ *
2107
+ * @param currencyCode - ISO 4217 currency code (e.g., 'USD', 'EUR', 'JPY')
2108
+ * @returns A specialized currency number type
2109
+ */
2110
+ currency(currencyCode: CurrencyCode): ExCurrencyNumber;
2111
+ }
2112
+
2113
+ declare abstract class ExNumberBase<T extends ExNumberBase<T>> extends PrimitiveExType<number, ExNumberDef> {
2114
+ /**
2115
+ * Validates that the number is greater than or equal to the specified minimum value
2116
+ *
2117
+ * @param value - Minimum allowed value
2118
+ * @param options - Configuration options
2119
+ * @param options.message - Custom error message for validation failures
2120
+ * @returns The instance for method chaining
2121
+ */
2122
+ min(value: number, options?: {
2123
+ message?: string;
2124
+ }): this;
2125
+ /**
2126
+ * Validates that the number is less than or equal to the specified maximum value
2127
+ *
2128
+ * @param value - Maximum allowed value
2129
+ * @param options - Configuration options
2130
+ * @param options.message - Custom error message for validation failures
2131
+ * @returns The instance for method chaining
2132
+ */
2133
+ max(value: number, options?: {
2134
+ message?: string;
2135
+ }): this;
2136
+ /**
2137
+ * Validates that the number is an integer (no decimal places)
2138
+ *
2139
+ * @param options - Configuration options
2140
+ * @param options.message - Custom error message for validation failures
2141
+ * @returns The instance for method chaining
2142
+ */
2143
+ integer(options?: {
2144
+ message?: string;
2145
+ }): this;
2146
+ /**
2147
+ * Validates that the number is a multiple of the specified value
2148
+ *
2149
+ * @param value - The number that the validated value must be a multiple of
2150
+ * @param options - Configuration options
2151
+ * @param options.message - Custom error message for validation failures
2152
+ * @returns The instance for method chaining
2153
+ */
2154
+ multipleOf(value: number, options?: {
2155
+ message?: string;
2156
+ }): this;
2157
+ }
2158
+
2159
+ declare interface ExNumberDef extends PrimitiveExBaseDef {
2160
+ typeName: 'ExNumber';
2161
+ checks: ValidatorCheck[];
2162
+ isPercentage?: boolean;
2163
+ currencyCode?: CurrencyCode;
2164
+ }
2165
+
2166
+ declare class ExOptional<T extends ExType<unknown, ExBaseDef, unknown>> extends PrimitiveExType<T extends ExType<infer O, ExBaseDef, unknown> ? O | null : never, ExOptionalDef<T>> {
2167
+ /**
2168
+ * Factory method to create an ExOptional wrapper around a type
2169
+ *
2170
+ * @param type - The type to make optional
2171
+ * @param options - Configuration options
2172
+ * @param options.when - Function that determines when the field is allowed to be null/optional
2173
+ * @returns A new ExOptional instance
2174
+ */
2175
+ static create<T extends ExType<unknown, ExBaseDef, unknown>>(type: T, options?: {
2176
+ /**
2177
+ * Function that determines when the field is allowed to be null/optional.
2178
+ *
2179
+ * @param rowData The row data being validated
2180
+ * @returns true if the field can be null, false if the field is required
2181
+ *
2182
+ * For example, if a field should only be required when another field has a specific value:
2183
+ * ```
2184
+ * when: (row) => row.isEmployed === false // Company is optional when not employed
2185
+ * ```
2186
+ */
2187
+ when?: (rowData: Record<string, unknown>) => boolean;
2188
+ }): ExOptional<T>;
2189
+ /**
2190
+ * Unwraps the optional type to get the inner type
2191
+ *
2192
+ * @returns The inner type
2193
+ */
2194
+ unwrap(): T;
2195
+ /**
2196
+ * Creates an optional version of this type (returns self since already optional)
2197
+ *
2198
+ * @returns This instance (self-reference)
2199
+ */
2200
+ optional(): this;
2201
+ /**
2202
+ * Sets a default value to use when the value is null or undefined
2203
+ *
2204
+ * @param defaultValue - The default value or function that returns the default value
2205
+ * @returns The ExOptional instance for method chaining
2206
+ */
2207
+ default<T1 extends T extends ExType<infer O, ExBaseDef, unknown> ? O | null : never>(defaultValue: T1 | (() => T1 | Promise<T1>)): this;
2208
+ }
2209
+
2210
+ /**
2211
+ * Specialized optional wrapper for boolean fields
2212
+ */
2213
+ declare class ExOptionalBoolean extends ExOptional<ExBoolean> {
2214
+ }
2215
+
2216
+ /**
2217
+ * Specialized optional wrapper for currency number fields
2218
+ */
2219
+ declare class ExOptionalCurrencyNumber extends ExOptional<ExCurrencyNumber> {
2220
+ /**
2221
+ * Validates that the number is greater than or equal to the specified minimum value
2222
+ *
2223
+ * @param value - Minimum allowed value
2224
+ * @param options - Configuration options
2225
+ * @param options.message - Custom error message for validation failures
2226
+ * @returns The instance for method chaining
2227
+ */
2228
+ min(value: number, options?: {
2229
+ message?: string;
2230
+ }): this;
2231
+ /**
2232
+ * Validates that the number is less than or equal to the specified maximum value
2233
+ *
2234
+ * @param value - Maximum allowed value
2235
+ * @param options - Configuration options
2236
+ * @param options.message - Custom error message for validation failures
2237
+ * @returns The instance for method chaining
2238
+ */
2239
+ max(value: number, options?: {
2240
+ message?: string;
2241
+ }): this;
2242
+ /**
2243
+ * Validates that the number is an integer (no decimal places)
2244
+ *
2245
+ * @param options - Configuration options
2246
+ * @param options.message - Custom error message for validation failures
2247
+ * @returns The instance for method chaining
2248
+ */
2249
+ integer(options?: {
2250
+ message?: string;
2251
+ }): this;
2252
+ /**
2253
+ * Validates that the number is a multiple of the specified value
2254
+ *
2255
+ * @param value - The number that the validated value must be a multiple of
2256
+ * @param options - Configuration options
2257
+ * @param options.message - Custom error message for validation failures
2258
+ * @returns The instance for method chaining
2259
+ */
2260
+ multipleOf(value: number, options?: {
2261
+ message?: string;
2262
+ }): this;
2263
+ /**
2264
+ * Updates the currency code for this optional currency number
2265
+ * This allows chaining multiple currency() calls with "last call wins" behavior
2266
+ *
2267
+ * @param currencyCode - ISO 4217 currency code (e.g., 'USD', 'EUR', 'JPY')
2268
+ * @returns The instance for method chaining
2269
+ */
2270
+ currency(currencyCode: CurrencyCode): this;
2271
+ }
2272
+
2273
+ /**
2274
+ * Specialized optional wrapper for date fields
2275
+ */
2276
+ declare class ExOptionalDate extends ExOptional<ExDate> {
2277
+ /**
2278
+ * Specifies the output format for the date
2279
+ *
2280
+ * @param template - The format template
2281
+ * @returns The instance for method chaining
2282
+ */
2283
+ output(template: string): this;
2284
+ }
2285
+
2286
+ /**
2287
+ * Specialized optional wrapper for datetime fields
2288
+ */
2289
+ declare class ExOptionalDatetime extends ExOptional<ExDatetime> {
2290
+ /**
2291
+ * Specifies the output format for the datetime
2292
+ *
2293
+ * @param template - The format template
2294
+ * @returns The instance for method chaining
2295
+ */
2296
+ output(template: string): this;
2297
+ }
2298
+
2299
+ declare interface ExOptionalDef<T extends ExType<unknown, ExBaseDef, unknown>> extends PrimitiveExBaseDef {
2300
+ typeName: 'ExOptional';
2301
+ innerType: T;
2302
+ when?: (rowData: Record<string, unknown>) => boolean;
2303
+ checks?: ValidatorCheck[];
2304
+ outputFormat?: string;
2305
+ }
2306
+
2307
+ /**
2308
+ * Specialized optional wrapper for multiselect fields
2309
+ */
2310
+ declare class ExOptionalMultiselect<TValue extends string | number = string | number> extends ExOptional<ExMultiselect<TValue>> {
2311
+ /**
2312
+ * Specifies whether the multiselect options should be case-sensitive
2313
+ *
2314
+ * @param enabled - Whether case sensitivity is enabled
2315
+ * @returns The instance for method chaining
2316
+ */
2317
+ caseSensitive(enabled?: boolean): this;
2318
+ /**
2319
+ * Sets minimum number of selections required
2320
+ *
2321
+ * @param min - Minimum number of selections
2322
+ * @param message - Custom error message for minimum validation
2323
+ * @returns The instance for method chaining
2324
+ */
2325
+ min(min: number, message?: string): this;
2326
+ /**
2327
+ * Sets maximum number of selections allowed
2328
+ *
2329
+ * @param max - Maximum number of selections
2330
+ * @param message - Custom error message for maximum validation
2331
+ * @returns The instance for method chaining
2332
+ */
2333
+ max(max: number, message?: string): this;
2334
+ }
2335
+
2336
+ /**
2337
+ * Specialized optional wrapper for number fields
2338
+ */
2339
+ declare class ExOptionalNumber extends ExOptional<ExNumber> {
2340
+ /**
2341
+ * Validates that the number is greater than or equal to the specified minimum value
2342
+ *
2343
+ * @param value - Minimum allowed value
2344
+ * @param options - Configuration options
2345
+ * @param options.message - Custom error message for validation failures
2346
+ * @returns The instance for method chaining
2347
+ */
2348
+ min(value: number, options?: {
2349
+ message?: string;
2350
+ }): this;
2351
+ /**
2352
+ * Validates that the number is less than or equal to the specified maximum value
2353
+ *
2354
+ * @param value - Maximum allowed value
2355
+ * @param options - Configuration options
2356
+ * @param options.message - Custom error message for validation failures
2357
+ * @returns The instance for method chaining
2358
+ */
2359
+ max(value: number, options?: {
2360
+ message?: string;
2361
+ }): this;
2362
+ /**
2363
+ * Validates that the number is an integer (no decimal places)
2364
+ *
2365
+ * @param options - Configuration options
2366
+ * @param options.message - Custom error message for validation failures
2367
+ * @returns The instance for method chaining
2368
+ */
2369
+ integer(options?: {
2370
+ message?: string;
2371
+ }): this;
2372
+ /**
2373
+ * Validates that the number is a multiple of the specified value
2374
+ *
2375
+ * @param value - The number that the validated value must be a multiple of
2376
+ * @param options - Configuration options
2377
+ * @param options.message - Custom error message for validation failures
2378
+ * @returns The instance for method chaining
2379
+ */
2380
+ multipleOf(value: number, options?: {
2381
+ message?: string;
2382
+ }): this;
2383
+ /**
2384
+ * Marks the number as a percentage value
2385
+ *
2386
+ * @returns A specialized percentage number type that cannot be combined with currency
2387
+ */
2388
+ percentage(): ExOptionalPercentageNumber;
2389
+ /**
2390
+ * Marks the number as a currency value, associating it with a specific currency code
2391
+ *
2392
+ * @param currencyCode - ISO 4217 currency code (e.g., 'USD', 'EUR', 'JPY')
2393
+ * @returns A specialized currency number type that cannot be combined with percentage
2394
+ */
2395
+ currency(currencyCode: CurrencyCode): ExOptionalCurrencyNumber;
2396
+ }
2397
+
2398
+ /**
2399
+ * Specialized optional wrapper for percentage number fields
2400
+ */
2401
+ declare class ExOptionalPercentageNumber extends ExOptional<ExPercentageNumber> {
2402
+ /**
2403
+ * Validates that the number is greater than or equal to the specified minimum value
2404
+ *
2405
+ * @param value - Minimum allowed value
2406
+ * @param options - Configuration options
2407
+ * @param options.message - Custom error message for validation failures
2408
+ * @returns The instance for method chaining
2409
+ */
2410
+ min(value: number, options?: {
2411
+ message?: string;
2412
+ }): this;
2413
+ /**
2414
+ * Validates that the number is less than or equal to the specified maximum value
2415
+ *
2416
+ * @param value - Maximum allowed value
2417
+ * @param options - Configuration options
2418
+ * @param options.message - Custom error message for validation failures
2419
+ * @returns The instance for method chaining
2420
+ */
2421
+ max(value: number, options?: {
2422
+ message?: string;
2423
+ }): this;
2424
+ /**
2425
+ * Validates that the number is an integer (no decimal places)
2426
+ *
2427
+ * @param options - Configuration options
2428
+ * @param options.message - Custom error message for validation failures
2429
+ * @returns The instance for method chaining
2430
+ */
2431
+ integer(options?: {
2432
+ message?: string;
2433
+ }): this;
2434
+ /**
2435
+ * Validates that the number is a multiple of the specified value
2436
+ *
2437
+ * @param value - The number that the validated value must be a multiple of
2438
+ * @param options - Configuration options
2439
+ * @param options.message - Custom error message for validation failures
2440
+ * @returns The instance for method chaining
2441
+ */
2442
+ multipleOf(value: number, options?: {
2443
+ message?: string;
2444
+ }): this;
2445
+ }
2446
+
2447
+ declare type ExOptionalPrimitiveType = ExOptionalString | ExOptionalNumber | ExOptionalCurrencyNumber | ExOptionalPercentageNumber | ExOptionalBoolean | ExOptionalDate | ExOptionalDatetime | ExOptionalTime | ExOptionalSelect<string | number> | ExOptionalMultiselect<string | number>;
2448
+
2449
+ /**
2450
+ * Specialized optional wrapper for select fields
2451
+ */
2452
+ declare class ExOptionalSelect<TValue extends string | number = string | number> extends ExOptional<ExSelect<TValue>> {
2453
+ /**
2454
+ * Specifies whether the select options should be case-sensitive
2455
+ *
2456
+ * @param enabled - Whether case sensitivity is enabled
2457
+ * @returns The instance for method chaining
2458
+ */
2459
+ caseSensitive(enabled?: boolean): this;
2460
+ }
2461
+
2462
+ declare class ExOptionalString extends ExOptional<ExString> {
2463
+ /**
2464
+ * Validates that the string is a valid UUID
2465
+ *
2466
+ * @param options - Configuration options
2467
+ * @param options.version - The specific UUID version to validate against
2468
+ * @param options.message - Custom error message for validation failures
2469
+ * @returns The instance for method chaining
2470
+ */
2471
+ uuid(options?: {
2472
+ version?: UUIDVersion;
2473
+ message?: string;
2474
+ }): this;
2475
+ /**
2476
+ * Validates that the string is a valid IP address
2477
+ *
2478
+ * @param options - Configuration options
2479
+ * @param options.version - Specific IP version to validate against
2480
+ * @param options.message - Custom error message for validation failures
2481
+ * @returns The instance for method chaining
2482
+ */
2483
+ ip(options?: {
2484
+ version?: IPAddressVersion;
2485
+ message?: string;
2486
+ }): this;
2487
+ /**
2488
+ * Validates that the string is a valid URL
2489
+ *
2490
+ * @param options - Configuration options
2491
+ * @returns The instance for method chaining
2492
+ */
2493
+ url(options?: URLOptions): this;
2494
+ /**
2495
+ * Validates that the string is a valid email address
2496
+ *
2497
+ * @param options - Configuration options
2498
+ * @param options.message - Custom error message for validation failures
2499
+ * @returns The instance for method chaining
2500
+ */
2501
+ email(options?: {
2502
+ message?: string;
2503
+ }): this;
2504
+ /**
2505
+ * Validates that the string is a valid phone number
2506
+ *
2507
+ * @param options - Configuration options
2508
+ * @returns The instance for method chaining
2509
+ */
2510
+ phone(options?: PhoneOptions): this;
2511
+ /**
2512
+ * Validates that the string is a valid country code
2513
+ *
2514
+ * @param options - Configuration options
2515
+ * @returns The instance for method chaining
2516
+ */
2517
+ country(options?: CountryOptions): this;
2518
+ /**
2519
+ * Validates that the string does not exceed the specified maximum length
2520
+ *
2521
+ * @param maxLength - Maximum allowed length
2522
+ * @param options - Configuration options
2523
+ * @param options.message - Custom error message for validation failures
2524
+ * @returns The instance for method chaining
2525
+ */
2526
+ max(maxLength: number, options?: {
2527
+ message?: string;
2528
+ }): this;
2529
+ /**
2530
+ * Validates that the string meets or exceeds the specified minimum length
2531
+ *
2532
+ * @param minLength - Minimum allowed length
2533
+ * @param options - Configuration options
2534
+ * @param options.message - Custom error message for validation failures
2535
+ * @returns The instance for method chaining
2536
+ */
2537
+ min(minLength: number, options?: {
2538
+ message?: string;
2539
+ }): this;
2540
+ /**
2541
+ * Validates that the string is exactly the specified length
2542
+ *
2543
+ * @param exactLength - Exact required length
2544
+ * @param options - Configuration options
2545
+ * @param options.message - Custom error message for validation failures
2546
+ * @returns The instance for method chaining
2547
+ */
2548
+ length(exactLength: number, options?: {
2549
+ message?: string;
2550
+ }): this;
2551
+ /**
2552
+ * Validates that the string includes the specified substring
2553
+ *
2554
+ * @param substring - The substring that must be included
2555
+ * @param options - Configuration options
2556
+ * @param options.message - Custom error message for validation failures
2557
+ * @returns The instance for method chaining
2558
+ */
2559
+ includes(substring: string, options?: {
2560
+ message?: string;
2561
+ }): this;
2562
+ /**
2563
+ * Validates that the string starts with the specified prefix
2564
+ *
2565
+ * @param prefix - The required starting prefix
2566
+ * @param options - Configuration options
2567
+ * @param options.message - Custom error message for validation failures
2568
+ * @returns The instance for method chaining
2569
+ */
2570
+ startsWith(prefix: string, options?: {
2571
+ message?: string;
2572
+ }): this;
2573
+ /**
2574
+ * Validates that the string ends with the specified suffix
2575
+ *
2576
+ * @param suffix - The required ending suffix
2577
+ * @param options - Configuration options
2578
+ * @param options.message - Custom error message for validation failures
2579
+ * @returns The instance for method chaining
2580
+ */
2581
+ endsWith(suffix: string, options?: {
2582
+ message?: string;
2583
+ }): this;
2584
+ /**
2585
+ * Validates that the string matches the specified regular expression pattern
2586
+ *
2587
+ * @param pattern - The regex pattern to match against
2588
+ * @param options - Configuration options
2589
+ * @param options.message - Custom error message for validation failures
2590
+ * @returns The instance for method chaining
2591
+ */
2592
+ regex(pattern: RegExp, options?: {
2593
+ message?: string;
2594
+ }): this;
2595
+ /**
2596
+ * Validates that the string contains only alphabetical characters
2597
+ *
2598
+ * @param options - Configuration options
2599
+ * @param options.message - Custom error message for validation failures
2600
+ * @returns The instance for method chaining
2601
+ */
2602
+ alphabetical(options?: {
2603
+ message?: string;
2604
+ }): this;
2605
+ /**
2606
+ * Validates that the string contains only alphanumerical characters
2607
+ *
2608
+ * @param options - Configuration options
2609
+ * @param options.message - Custom error message for validation failures
2610
+ * @returns The instance for method chaining
2611
+ */
2612
+ alphanumerical(options?: {
2613
+ message?: string;
2614
+ }): this;
2615
+ /**
2616
+ * Validates that the string contains only numerical characters
2617
+ *
2618
+ * @param options - Configuration options
2619
+ * @param options.message - Custom error message for validation failures
2620
+ * @returns The instance for method chaining
2621
+ */
2622
+ numerical(options?: {
2623
+ message?: string;
2624
+ }): this;
2625
+ /**
2626
+ * Validates that the string is a valid IBAN (International Bank Account Number)
2627
+ *
2628
+ * @param options - Configuration options
2629
+ * @returns The instance for method chaining
2630
+ */
2631
+ iban(options?: IbanOptions): this;
2632
+ /**
2633
+ * Validates that the string is a valid BIC (Bank Identifier Code)
2634
+ *
2635
+ * @param options - Configuration options
2636
+ * @returns The instance for method chaining
2637
+ */
2638
+ bic(options?: BICOptions): this;
2639
+ /**
2640
+ * Validates that the string is a valid GTIN (Global Trade Item Number)
2641
+ *
2642
+ * @param options - Configuration options
2643
+ * @returns The instance for method chaining
2644
+ */
2645
+ gtin(options?: GTINOptions): this;
2646
+ /**
2647
+ * Validates that the string is a valid currency code
2648
+ *
2649
+ * @param options - Configuration options
2650
+ * @returns The instance for method chaining
2651
+ */
2652
+ currencyCode(options?: CurrencyCodeOptions): this;
2653
+ }
2654
+
2655
+ /**
2656
+ * Specialized optional wrapper for time fields
2657
+ */
2658
+ declare class ExOptionalTime extends ExOptional<ExTime> {
2659
+ /**
2660
+ * Specifies the decimal precision for the time field
2661
+ *
2662
+ * @param precision - The number of decimal places
2663
+ * @param options - Configuration options
2664
+ * @param options.message - Custom error message for validation failures
2665
+ * @returns The instance for method chaining
2666
+ */
2667
+ precision(precision: number, options?: {
2668
+ message?: string;
2669
+ }): this;
2670
+ }
2671
+
2672
+ declare class ExPercentageNumber extends ExNumberBase<ExPercentageNumber> {
2673
+ /**
2674
+ * Creates an optional version of this type
2675
+ *
2676
+ * @returns An optional version of this type
2677
+ */
2678
+ optional(): ExOptionalPercentageNumber;
2679
+ }
2680
+
2681
+ declare type ExPrimitiveType = ExString | ExNumber | ExCurrencyNumber | ExPercentageNumber | ExBoolean | ExDate | ExTime | ExDatetime | ExSelect<string | number> | ExMultiselect<string | number> | ExOptionalPrimitiveType;
2682
+
2683
+ export declare class ExRow<T extends ExRowShape> extends ExType<{
2684
+ [K in keyof T]: T[K] extends ExType<infer O, ExBaseDef, unknown> ? K extends string ? T['optionalColumnConfig'] extends {
2685
+ columns: Array<infer C>;
2686
+ } ? C extends K ? O | null : O : O : O : never;
2687
+ }, ExRowDef<T>> {
2688
+ /**
2689
+ * Factory method to create an ExRow validator for a row of data
2690
+ *
2691
+ * @param shape - Object defining the structure of fields in the row
2692
+ * @returns A new ExRow instance
2693
+ */
2694
+ static create<T extends ExRowShape>(shape: T): ExRow<T>;
2695
+ /**
2696
+ * Specifies columns that can be null/optional with conditional logic
2697
+ *
2698
+ * @param columns - Array of column keys to make optional
2699
+ * @param options - Configuration options
2700
+ * @param options.when - Optional function to determine when columns should be optional
2701
+ * @returns The ExRow instance with optional columns configuration
2702
+ */
2703
+ optionalColumns<K extends keyof T>(columns: K[], options?: {
2704
+ when?: (row: {
2705
+ [P in keyof T]: T[P] extends ExType<infer O, ExBaseDef, unknown> ? O : never;
2706
+ }) => boolean | Promise<boolean>;
2707
+ }): ExRowWithOptionalColumns<T, K>;
2708
+ /**
2709
+ * Specifies unique constraints on columns in the row
2710
+ *
2711
+ * @param columns - Array of column keys or a single column key that form the unique constraint
2712
+ * @param options - Configuration options
2713
+ * @param options.key - Optional function to generate a unique key from column values
2714
+ * @returns The ExRow instance for method chaining
2715
+ */
2716
+ unique<K extends keyof T>(columns: K[] | K, options?: {
2717
+ key?: (values: {
2718
+ [P in K]: T[P] extends ExType<infer O, ExBaseDef, unknown> ? O | null : never;
2719
+ }) => string | Promise<string>;
2720
+ }): this;
2721
+ /**
2722
+ * Adds metadata to the row definition
2723
+ *
2724
+ * @param metadata - Metadata object
2725
+ * @param metadata.description - Optional description of the row
2726
+ * @returns The ExRow instance for method chaining
2727
+ */
2728
+ meta(metadata: {
2729
+ description?: string;
2730
+ }): this;
2731
+ /**
2732
+ * Sets the minimum number of rows required
2733
+ *
2734
+ * @param count - Minimum number of rows (must be a non-negative integer)
2735
+ * @returns The ExRow instance for method chaining
2736
+ */
2737
+ minRows(count: number): this;
2738
+ /**
2739
+ * Sets the maximum number of rows allowed
2740
+ *
2741
+ * @param count - Maximum number of rows (must be a positive integer)
2742
+ * @returns The ExRow instance for method chaining
2743
+ */
2744
+ maxRows(count: number): this;
2745
+ }
2746
+
2747
+ declare interface ExRowDef<T extends ExRowShape> extends ExBaseDef {
2748
+ typeName: 'ExRow';
2749
+ shape: T;
2750
+ meta?: {
2751
+ description?: string;
2752
+ };
2753
+ rowCountConfig?: {
2754
+ minRows?: number;
2755
+ maxRows?: number;
2756
+ };
2757
+ optionalColumnConfig?: {
2758
+ columns: Array<keyof T>;
2759
+ when?: (row: {
2760
+ [K in keyof T]: T[K] extends ExType<infer O, ExBaseDef, unknown> ? O : never;
2761
+ }) => boolean | Promise<boolean>;
2762
+ whenMap?: Record<string, (row: {
2763
+ [K in keyof T]: T[K] extends ExType<infer O, ExBaseDef, unknown> ? O : never;
2764
+ }) => boolean | Promise<boolean>>;
2765
+ };
2766
+ uniqueColumnConfig?: {
2767
+ uniqueConstraints: Array<{
2768
+ id: string;
2769
+ columns: Array<keyof T>;
2770
+ key?: (values: {
2771
+ [K in keyof T]: T[K] extends ExType<infer O, ExBaseDef, unknown> ? O | null : never;
2772
+ }) => string | Promise<string>;
2773
+ }>;
2774
+ };
2775
+ }
2776
+
2777
+ export declare type ExRowShape = Record<string, ExPrimitiveType>;
2778
+
2779
+ export declare type ExRowWithOptionalColumns<T extends ExRowShape, K extends keyof T> = ExType<{
2780
+ [P in keyof T]: P extends K ? T[P] extends ExType<infer O, ExBaseDef, unknown> ? O | null : never : T[P] extends ExType<infer O, ExBaseDef, unknown> ? O : never;
2781
+ }, ExRowDef<T>> & {
2782
+ optionalColumns<J extends keyof T>(columns: J[], options?: {
2783
+ when?: (row: {
2784
+ [P in keyof T]: T[P] extends ExType<infer O, ExBaseDef, unknown> ? O : never;
2785
+ }) => boolean | Promise<boolean>;
2786
+ }): ExRowWithOptionalColumns<T, J | K>;
2787
+ unique<J extends keyof T>(columns: J[] | J, options?: {
2788
+ key?: (values: {
2789
+ [P in J]: T[P] extends ExType<infer O, ExBaseDef, unknown> ? O | null : never;
2790
+ }) => string | Promise<string>;
2791
+ }): ExRowWithOptionalColumns<T, K>;
2792
+ meta(metadata: {
2793
+ description?: string;
2794
+ }): ExRowWithOptionalColumns<T, K>;
2795
+ minRows(count: number): ExRowWithOptionalColumns<T, K>;
2796
+ maxRows(count: number): ExRowWithOptionalColumns<T, K>;
2797
+ };
2798
+
2799
+ declare class ExSelect<TValue extends string | number = string | number> extends PrimitiveExType<TValue, ExSelectDef<TValue>> {
2800
+ /**
2801
+ * Factory method to create an ExSelect validator for single selection
2802
+ *
2803
+ * @param options - Array of select options with labels and values
2804
+ * @param config - Configuration options
2805
+ * @param config.enforceCaseSensitiveMatch - Whether to enforce case-sensitive matching
2806
+ * @param config.allowCustom - When true, allows custom values not in the options list
2807
+ * @param config.message - Custom error message for validation failures
2808
+ * @returns A new ExSelect instance
2809
+ */
2810
+ static create<const T extends readonly (SelectOption & {
2811
+ value: string | number;
2812
+ })[], TAllowCustom extends boolean = false>(options: T, config?: SelectOptions & {
2813
+ allowCustom?: TAllowCustom;
2814
+ }): TAllowCustom extends true ? ExSelect<string | number> : ExSelect<T[number]['value']>;
2815
+ /**
2816
+ * Creates an optional version of this select type
2817
+ *
2818
+ * @returns An optional version of this select type
2819
+ */
2820
+ optional(): ExOptionalSelect<TValue>;
2821
+ /**
2822
+ * Sets case sensitive matching for option values
2823
+ *
2824
+ * @param enabled - Whether to enable case-sensitive matching
2825
+ * @returns The ExSelect instance for method chaining
2826
+ */
2827
+ caseSensitive(enabled?: boolean): this;
2828
+ }
2829
+
2830
+ declare interface ExSelectDef<TValue extends string | number = string | number> extends PrimitiveExBaseDef {
2831
+ typeName: 'ExSelect';
2832
+ options: SelectOption<TValue>[];
2833
+ config: {
2834
+ enforceCaseSensitiveMatch: boolean;
2835
+ allowCustom?: boolean;
2836
+ };
2837
+ checks: ValidatorCheck[];
2838
+ _value?: TValue;
2839
+ message?: string;
2840
+ }
2841
+
2842
+ declare class ExString extends PrimitiveExType<string, ExStringDef> {
2843
+ /**
2844
+ * Factory method to create an ExString validator
2845
+ *
2846
+ * @param options - Configuration options
2847
+ * @param options.message - Optional custom error message for validation failures
2848
+ * @returns A new ExString instance
2849
+ */
2850
+ static create(options?: {
2851
+ message?: string;
2852
+ }): ExString;
2853
+ /**
2854
+ * Creates an optional version of this type
2855
+ *
2856
+ * @returns An optional version of this type
2857
+ */
2858
+ optional(): ExOptionalString;
2859
+ /**
2860
+ * Validates that the string is a valid UUID
2861
+ *
2862
+ * @param options - Configuration options
2863
+ * @param options.version - UUID version to validate against ('v1', 'v4', 'v5', 'all')
2864
+ * @param options.message - Custom error message for validation failures
2865
+ * @returns The ExString instance for method chaining
2866
+ */
2867
+ uuid(options?: {
2868
+ version?: UUIDVersion;
2869
+ message?: string;
2870
+ }): this;
2871
+ /**
2872
+ * Validates that the string is a valid IP address
2873
+ *
2874
+ * @param options - Configuration options
2875
+ * @param options.version - IP version to validate against ('v4', 'v6', 'all')
2876
+ * @param options.message - Custom error message for validation failures
2877
+ * @returns The ExString instance for method chaining
2878
+ */
2879
+ ip(options?: {
2880
+ version?: IPAddressVersion;
2881
+ message?: string;
2882
+ }): this;
2883
+ /**
2884
+ * Validates that the string is a valid URL
2885
+ *
2886
+ * @param options - Configuration options for URL validation
2887
+ * @param options.allowedProtocols - List of allowed protocols
2888
+ * @param options.allowedDomains - List of allowed domains
2889
+ * @param options.allowSubdomains - Whether to allow subdomains
2890
+ * @param options.allowPaths - Whether to allow paths
2891
+ * @param options.allowQueryParams - Whether to allow query parameters
2892
+ * @param options.message - Custom error message
2893
+ * @returns The ExString instance for method chaining
2894
+ */
2895
+ url(options?: URLOptions): this;
2896
+ /**
2897
+ * Validates that the string is a valid email address
2898
+ *
2899
+ * @param options - Configuration options
2900
+ * @param options.message - Custom error message for validation failures
2901
+ * @returns The ExString instance for method chaining
2902
+ */
2903
+ email(options?: {
2904
+ message?: string;
2905
+ }): this;
2906
+ /**
2907
+ * Validates that the string is a valid phone number
2908
+ *
2909
+ * @param options - Configuration options for phone validation
2910
+ * @param options.allowedCountries - Array of ISO 3166-1 alpha-2 country codes (e.g., ["US", "FR"])
2911
+ * @param options.format - The expected input format ("international", "national", or "both")
2912
+ * @param options.output - How the phone number should be normalized ("e164", "formatted", or "digits")
2913
+ * @param options.message - Custom error message
2914
+ * @returns The ExString instance for method chaining
2915
+ */
2916
+ phone(options?: PhoneOptions): this;
2917
+ /**
2918
+ * Validates that the string represents a valid country
2919
+ *
2920
+ * @param options - Configuration options for country validation
2921
+ * @param options.output - The format to output the country ("name", "2-letter", or "3-letter")
2922
+ * @param options.message - Custom error message
2923
+ * @returns The ExString instance for method chaining
2924
+ */
2925
+ country(options?: CountryOptions): this;
2926
+ /**
2927
+ * Validates that the string length is at most maxLength
2928
+ *
2929
+ * @param maxLength - Maximum allowed length
2930
+ * @param options - Configuration options
2931
+ * @param options.message - Custom error message for validation failures
2932
+ * @returns The ExString instance for method chaining
2933
+ */
2934
+ max(maxLength: number, options?: {
2935
+ message?: string;
2936
+ }): this;
2937
+ /**
2938
+ * Validates that the string length is at least minLength
2939
+ *
2940
+ * @param minLength - Minimum allowed length
2941
+ * @param options - Configuration options
2942
+ * @param options.message - Custom error message for validation failures
2943
+ * @returns The ExString instance for method chaining
2944
+ */
2945
+ min(minLength: number, options?: {
2946
+ message?: string;
2947
+ }): this;
2948
+ /**
2949
+ * Validates that the string has exactly the specified length
2950
+ *
2951
+ * @param exactLength - Required exact length
2952
+ * @param options - Configuration options
2953
+ * @param options.message - Custom error message for validation failures
2954
+ * @returns The ExString instance for method chaining
2955
+ */
2956
+ length(exactLength: number, options?: {
2957
+ message?: string;
2958
+ }): this;
2959
+ /**
2960
+ * Validates that the string includes the specified substring
2961
+ *
2962
+ * @param substring - Substring that must be included
2963
+ * @param options - Configuration options
2964
+ * @param options.message - Custom error message for validation failures
2965
+ * @returns The ExString instance for method chaining
2966
+ */
2967
+ includes(substring: string, options?: {
2968
+ message?: string;
2969
+ }): this;
2970
+ /**
2971
+ * Validates that the string starts with the specified prefix
2972
+ *
2973
+ * @param prefix - Required starting prefix
2974
+ * @param options - Configuration options
2975
+ * @param options.message - Custom error message for validation failures
2976
+ * @returns The ExString instance for method chaining
2977
+ */
2978
+ startsWith(prefix: string, options?: {
2979
+ message?: string;
2980
+ }): this;
2981
+ /**
2982
+ * Validates that the string ends with the specified suffix
2983
+ *
2984
+ * @param suffix - Required ending suffix
2985
+ * @param options - Configuration options
2986
+ * @param options.message - Custom error message for validation failures
2987
+ * @returns The ExString instance for method chaining
2988
+ */
2989
+ endsWith(suffix: string, options?: {
2990
+ message?: string;
2991
+ }): this;
2992
+ /**
2993
+ * Validates that the string matches the specified regular expression
2994
+ *
2995
+ * @param pattern - Regular expression pattern to match
2996
+ * @param options - Configuration options
2997
+ * @param options.message - Custom error message for validation failures
2998
+ * @returns The ExString instance for method chaining
2999
+ */
3000
+ regex(pattern: RegExp, options?: {
3001
+ message?: string;
3002
+ }): this;
3003
+ /**
3004
+ * Validates that the string contains only alphabetical characters
3005
+ *
3006
+ * @param options - Configuration options
3007
+ * @param options.message - Custom error message for validation failures
3008
+ * @returns The ExString instance for method chaining
3009
+ */
3010
+ alphabetical(options?: {
3011
+ message?: string;
3012
+ }): this;
3013
+ /**
3014
+ * Validates that the string contains only alphanumeric characters
3015
+ *
3016
+ * @param options - Configuration options
3017
+ * @param options.message - Custom error message for validation failures
3018
+ * @returns The ExString instance for method chaining
3019
+ */
3020
+ alphanumerical(options?: {
3021
+ message?: string;
3022
+ }): this;
3023
+ /**
3024
+ * Validates that the string represents a numeric value
3025
+ *
3026
+ * @param options - Configuration options
3027
+ * @param options.message - Custom error message for validation failures
3028
+ * @returns The ExString instance for method chaining
3029
+ */
3030
+ numerical(options?: {
3031
+ message?: string;
3032
+ }): this;
3033
+ /**
3034
+ * Validates that the string is a valid IBAN (International Bank Account Number)
3035
+ *
3036
+ * @param options - Configuration options for IBAN validation
3037
+ * @param options.allowedCountries - Array of country codes to restrict validation to (e.g., ["DE", "FR"])
3038
+ * @param options.message - Custom error message
3039
+ * @returns The ExString instance for method chaining
3040
+ */
3041
+ iban(options?: IbanOptions): this;
3042
+ /**
3043
+ * Validates that the string is a valid BIC/SWIFT code
3044
+ *
3045
+ * @param options - Configuration options for BIC validation
3046
+ * @param options.message - Custom error message
3047
+ * @returns The ExString instance for method chaining
3048
+ */
3049
+ bic(options?: BICOptions): this;
3050
+ /**
3051
+ * Validates that the string is a valid GTIN (Global Trade Item Number)
3052
+ * Supports GTIN-8, GTIN-12, GTIN-13, or GTIN-14 formats
3053
+ *
3054
+ * @param options - Configuration options for GTIN validation
3055
+ * @param options.message - Custom error message
3056
+ * @returns The ExString instance for method chaining
3057
+ */
3058
+ gtin(options?: GTINOptions): this;
3059
+ /**
3060
+ * Validates that the string is a valid ISO 4217 currency code
3061
+ *
3062
+ * @param options - Configuration options for currency code validation
3063
+ * @param options.allowedCurrencies - Array of specific currency codes to limit validation to
3064
+ * @param options.message - Custom error message
3065
+ * @returns The ExString instance for method chaining
3066
+ */
3067
+ currencyCode(options?: CurrencyCodeOptions): this;
3068
+ }
3069
+
3070
+ declare interface ExStringDef extends PrimitiveExBaseDef {
3071
+ typeName: 'ExString';
3072
+ checks: ValidatorCheck[];
3073
+ }
3074
+
3075
+ declare class ExTime extends PrimitiveExType<string, ExTimeDef> {
3076
+ /**
3077
+ * Factory method to create an ExTime validator
3078
+ *
3079
+ * @param options - Configuration options
3080
+ * @param options.message - Optional custom error message for validation failures
3081
+ * @returns A new ExTime instance
3082
+ */
3083
+ static create(options?: TimeOptions): ExTime;
3084
+ /**
3085
+ * Creates an optional version of this type
3086
+ *
3087
+ * @returns An optional version of this type
3088
+ */
3089
+ optional(): ExOptionalTime;
3090
+ /**
3091
+ * Sets precision for milliseconds in the time
3092
+ *
3093
+ * @param precision - Number of millisecond decimal places
3094
+ * @param options - Configuration options
3095
+ * @param options.message - Custom error message for validation failures
3096
+ * @returns The ExTime instance for method chaining
3097
+ */
3098
+ precision(precision: number, options?: {
3099
+ message?: string;
3100
+ }): this;
3101
+ }
3102
+
3103
+ declare interface ExTimeDef extends PrimitiveExBaseDef {
3104
+ typeName: 'ExTime';
3105
+ precision?: number | null;
3106
+ message?: string;
3107
+ checks: ValidatorCheck[];
3108
+ }
3109
+
3110
+ export declare abstract class ExType<Output, Def extends ExBaseDef, Input = Output> {
3111
+ _def: Def;
3112
+ _output: Output;
3113
+ _input: Input;
3114
+ /**
3115
+ * Creates a new ExType instance
3116
+ *
3117
+ * @param def - Definition object for this type
3118
+ */
3119
+ constructor(def: Def);
3120
+ /**
3121
+ * Protected method to create a validation check
3122
+ *
3123
+ * @param type - Type of check
3124
+ * @param params - Parameters for the check
3125
+ * @param message - Optional error message
3126
+ * @returns A ValidatorCheck object
3127
+ */
3128
+ protected _addCheck(type: string, params?: Record<string, unknown>, message?: string): ValidatorCheck;
3129
+ }
3130
+
3131
+ declare interface GTINOptions {
3132
+ message?: string;
3133
+ }
3134
+
3135
+ declare interface IbanOptions {
3136
+ allowedCountries?: CountryTwoLetterCode[];
3137
+ message?: string;
3138
+ }
3139
+
3140
+ export declare type Infer<T extends ExType<unknown, ExBaseDef, unknown>> = T extends ExType<infer Output, ExBaseDef, unknown> ? Output : never;
3141
+
3142
+ declare type IPAddressVersion = 'v4' | 'v6' | 'all';
3143
+
3144
+ declare interface MultiselectOptions {
3145
+ enforceCaseSensitiveMatch?: boolean;
3146
+ message?: string;
3147
+ }
3148
+
3149
+ declare type PhoneNumberFormat = 'international' | 'national' | 'both';
3150
+
3151
+ declare type PhoneNumberOutput = 'e164' | 'formatted' | 'digits';
3152
+
3153
+ declare interface PhoneOptions {
3154
+ allowedCountries?: CountryTwoLetterCode[];
3155
+ format?: PhoneNumberFormat;
3156
+ output?: PhoneNumberOutput;
3157
+ message?: string;
3158
+ }
3159
+
3160
+ declare interface PrimitiveExBaseDef extends ExBaseDef {
3161
+ columnNameAliases?: string[];
3162
+ description?: string;
3163
+ label?: string;
3164
+ example?: string;
3165
+ message?: string;
3166
+ checks?: ValidatorCheck[];
3167
+ defaultValue?: unknown | (() => unknown);
3168
+ }
3169
+
3170
+ declare abstract class PrimitiveExType<Output, Def extends PrimitiveExBaseDef, Input = Output> extends ExType<Output, Def, Input> {
3171
+ /**
3172
+ * Sets column name aliases for this field
3173
+ *
3174
+ * @param aliases - Array of alternative column names that can map to this field
3175
+ * @returns The type instance for method chaining
3176
+ */
3177
+ columnNameAliases(aliases: string[]): this;
3178
+ /**
3179
+ * Sets a description for this field
3180
+ *
3181
+ * @param text - Description text
3182
+ * @returns The type instance for method chaining
3183
+ */
3184
+ description(text: string): this;
3185
+ /**
3186
+ * Sets a display label for this field
3187
+ *
3188
+ * @param text - Label text
3189
+ * @returns The type instance for method chaining
3190
+ */
3191
+ label(text: string): this;
3192
+ /**
3193
+ * Sets an example value for this field
3194
+ *
3195
+ * @param text - Example text
3196
+ * @returns The type instance for method chaining
3197
+ */
3198
+ example(text: string): this;
3199
+ /**
3200
+ * Adds a custom refinement validator to this field.
3201
+ *
3202
+ * Supports two calling styles:
3203
+ * 1. Boolean validator with optional params:
3204
+ * `.refine((value) => value > 0, { message: 'Must be positive' })`
3205
+ * 2. Object-returning validator (like refineBatch for a single value):
3206
+ * `.refine((value) => ({ valid: value > 0, message: 'Must be positive', suggestedFix: {...} }))`
3207
+ *
3208
+ * @param validator - Function or RegExp that validates the data
3209
+ * @param params - Additional parameters or function that returns parameters (only for boolean validators)
3210
+ * @returns The type instance for method chaining
3211
+ */
3212
+ refine<T extends Output>(validator: ((data: NonNullable<T>) => RefineResultItem | Promise<RefineResultItem> | unknown | Promise<unknown>) | RegExp, params?: RefineParams | ((data: NonNullable<T>) => RefineParams)): this;
3213
+ /**
3214
+ * Adds a batch refinement validator that validates all column values at once
3215
+ *
3216
+ * @param validator - Function that receives all values and returns validation results, or RegExp for per-value validation
3217
+ * @param params - Additional parameters including fallback error message
3218
+ * @returns The type instance for method chaining
3219
+ */
3220
+ refineBatch<T extends Output>(validator: ((data: NonNullable<T>[]) => RefineBatchResultItem[] | Promise<RefineBatchResultItem[]>) | RegExp, params?: RefineParams): this;
3221
+ /**
3222
+ * Protected method to find an existing check by type
3223
+ *
3224
+ * @param type - Type of check to find
3225
+ * @returns Object with the check, its index, and whether it was found
3226
+ */
3227
+ protected _findExistingCheck(type: string): {
3228
+ check: ValidatorCheck | undefined;
3229
+ index: number;
3230
+ found: boolean;
3231
+ };
3232
+ /**
3233
+ * Protected method to replace an existing check or add a new one
3234
+ *
3235
+ * @param check - The check to add or replace with
3236
+ * @param existingIndex - Index of existing check, or -1 if none exists
3237
+ */
3238
+ protected _replaceOrAddCheck(check: ValidatorCheck, existingIndex: number): void;
3239
+ }
3240
+
3241
+ declare type Protocol = 'http' | 'https' | 'ftp' | 'sftp' | 'file' | 'mailto' | 'tel';
3242
+
3243
+ declare type RefineBatchResultItem = {
3244
+ valid: boolean;
3245
+ message?: string;
3246
+ suggestedFix?: {
3247
+ id: string;
3248
+ value: unknown;
3249
+ description: string;
3250
+ };
3251
+ };
3252
+
3253
+ declare type RefineParams = {
3254
+ message?: string;
3255
+ suggestedFix?: {
3256
+ id: string;
3257
+ value: unknown;
3258
+ description: string;
3259
+ };
3260
+ };
3261
+
3262
+ declare type RefineResultItem = {
3263
+ valid: boolean;
3264
+ message?: string;
3265
+ suggestedFix?: {
3266
+ id: string;
3267
+ value: unknown;
3268
+ description: string;
3269
+ };
3270
+ };
3271
+
3272
+ declare interface SelectOption<TValue extends string | number = string | number> {
3273
+ label: string;
3274
+ value: TValue;
3275
+ alsoMatches?: (string | RegExp)[];
3276
+ }
3277
+
3278
+ declare interface SelectOptions {
3279
+ enforceCaseSensitiveMatch?: boolean;
3280
+ allowCustom?: boolean;
3281
+ message?: string;
3282
+ }
3283
+
3284
+ /**
3285
+ * Time validation options
3286
+ */
3287
+ declare interface TimeOptions {
3288
+ message?: string;
3289
+ }
3290
+
3291
+ declare interface URLOptions {
3292
+ allowedProtocols?: Protocol[];
3293
+ allowedDomains?: string[];
3294
+ allowSubdomains?: boolean;
3295
+ allowPaths?: boolean;
3296
+ allowQueryParams?: boolean;
3297
+ message?: string;
3298
+ }
3299
+
3300
+ declare type UUIDVersion = 'v1' | 'v4' | 'v5' | 'all';
3301
+
3302
+ declare interface ValidatorCheck {
3303
+ type: string;
3304
+ params?: Record<string, unknown>;
3305
+ message?: string;
3306
+ }
3307
+
3308
+ export declare const x: {
3309
+ string: typeof ExString.create;
3310
+ number: typeof ExNumber.create;
3311
+ boolean: typeof ExBoolean.create;
3312
+ date: typeof ExDate.create;
3313
+ time: typeof ExTime.create;
3314
+ datetime: typeof ExDatetime.create;
3315
+ row: typeof ExRow.create;
3316
+ select: typeof ExSelect.create;
3317
+ multiselect: typeof ExMultiselect.create;
3318
+ infer: <T extends ExType<unknown, ExBaseDef, unknown>>(_schema: T) => Infer<T>;
3319
+ };
3320
+
3321
+ export { }