files
   1| 
   2| 
   3| 
   4| 
   5| 
   6| 
   7| 
   8| 
   9| 
  10| 
  11| 
  12| 
  13| 
  14| 
  15| 
  16| 
  17| 
  18| 
  19| 
  20| 
  21| 
  22| 
  23| 
  24| 
  25| 
  26| 
  27| 
  28| 
  29| 
  30| 
  31| 
  32| 
  33| 
  34| 
  35| 
  36| 
  37| 
  38| 
  39| 
  40| 
  41| 
  42| 
  43| 
  44| 
  45| 
  46| 
  47| 
  48| 
  49| 
  50| 
  51| 
  52| 
  53| 
  54| 
  55| 
  56| 
  57| 
  58| 
  59| 
  60| 
  61| 
  62| 
  63| 
  64| 
  65| 
  66| 
  67| 
  68| 
  69| 
  70| 
  71| 
  72| 
  73| 
  74| 
  75| 
  76| 
  77| 
  78| 
  79| 
  80| 
  81| 
  82| 
  83| 
  84| 
  85| 
  86| 
  87| 
  88| 
  89| 
  90| 
  91| 
  92| 
  93| 
  94| 
  95| 
  96| 
  97| 
  98| 
  99| 
 100| 
 101| 
 102| 
 103| 
 104| 
 105| 
 106| 
 107| 
 108| 
 109| 
 110| 
 111| 
 112| 
 113| 
 114| 
 115| 
 116| 
 117| 
 118| 
 119| 
 120| 
 121| 
 122| 
 123| 
 124| 
 125| 
 126| 
 127| 
 128| 
 129| 
 130| 
 131| 
 132| 
 133| 
 134| 
 135| 
 136| 
 137| 
 138| 
 139| 
 140| 
 141| 
 142| 
 143| 
 144| 
 145| 
 146| 
 147| 
 148| 
 149| 
 150| 
 151| 
 152| 
 153| 
 154| 
 155| 
 156| 
 157| 
 158| 
 159| 
 160| 
 161| 
 162| 
 163| 
 164| 
 165| 
 166| 
 167| 
 168| 
 169| 
 170| 
 171| 
 172| 
 173| 
 174| 
 175| 
 176| 
 177| 
 178| 
 179| 
 180| 
 181| 
 182| 
 183| 
 184| 
 185| 
 186| 
 187| 
 188| 
 189| 
 190| 
 191| 
 192| 
 193| 
 194| 
 195| 
 196| 
 197| 
 198| 
 199| 
 200| 
 201| 
 202| 
 203| 
 204| 
 205| 
 206| 
 207| 
 208| 
 209| 
 210| 
 211| 
 212| 
 213| 
 214| 
 215| 
 216| 
 217| 
 218| 
 219| 
 220| 
 221| 
 222| 
 223| 
 224| 
 225| 
 226| 
 227| 
 228| 
 229| 
 230| 
 231| 
 232| 
 233| 
 234| 
 235| 
 236| 
 237| 
 238| 
 239| 
 240| 
 241| 
 242| 
 243| 
 244| 
 245| 
 246| 
 247| 
 248| 
 249| 
 250| 
 251| 
 252| 
 253| 
 254| 
 255| 
 256| 
 257| 
 258| 
 259| 
 260| 
 261| 
 262| 
 263| 
 264| 
 265| 
 266| 
 267| 
 268| 
 269| 
 270| 
 271| 
 272| 
 273| 
 274| 
 275| 
 276| 
 277| 
 278| 
 279| 
 280| 
 281| 
 282| 
 283| 
 284| 
 285| 
 286| 
 287| 
 288| 
 289| 
 290| 
 291| 
 292| 
 293| 
 294| 
 295| 
 296| 
 297| 
 298| 
 299| 
 300| 
 301| 
 302| 
 303| 
 304| 
 305| 
 306| 
 307| 
 308| 
 309| 
 310| 
 311| 
 312| 
 313| 
 314| 
 315| 
 316| 
 317| 
 318| 
 319| 
 320| 
 321| 
 322| 
 323| 
 324| 
 325| 
 326| 
 327| 
 328| 
 329| 
 330| 
 331| 
 332| 
 333| 
 334| 
 335| 
 336| 
 337| 
 338| 
 339| 
 340| 
 341| 
 342| 
 343| 
 344| 
 345| 
 346| 
 347| 
 348| 
 349| 
 350| 
 351| 
 352| 
 353| 
 354| 
 355| 
 356| 
 357| 
 358| 
 359| 
 360| 
 361| 
 362| 
 363| 
 364| 
 365| 
 366| 
 367| 
 368| 
 369| 
 370| 
 371| 
 372| 
 373| 
 374| 
 375| 
 376| 
 377| 
 378| 
 379| 
 380| 
 381| 
 382| 
 383| 
 384| 
 385| 
 386| 
 387| 
 388| 
 389| 
 390| 
 391| 
 392| 
 393| 
 394| 
 395| 
 396| 
 397| 
 398| 
 399| 
 400| 
 401| 
 402| 
 403| 
 404| 
 405| 
 406| 
 407| 
 408| 
 409| 
 410| 
 411| 
 412| 
 413| 
 414| 
 415| 
 416| 
 417| 
 418| 
 419| 
 420| 
 421| 
 422| 
 423| 
 424| 
 425| 
 426| 
 427| 
 428| 
 429| 
 430| 
 431| 
 432| 
 433| 
 434| 
 435| 
 436| 
 437| 
 438| 
 439| 
 440| 
 441| 
 442| 
 443| 
 444| 
 445| 
 446| 
 447| 
 448| 
 449| 
 450| 
 451| 
 452| 
 453| 
 454| 
 455| 
 456| 
 457| 
 458| 
 459| 
 460| 
 461| 
 462| 
 463| 
 464| 
 465| 
 466| 
 467| 
 468| 
 469| 
 470| 
 471| 
 472| 
 473| 
 474| 
 475| 
 476| 
 477| 
 478| 
 479| 
 480| 
 481| 
 482| 
 483| 
 484| 
 485| 
 486| 
 487| 
 488| 
 489| 
 490| 
 491| 
 492| 
 493| 
 494| 
 495| 
 496| 
 497| 
 498| 
 499| 
 500| 
 501| 
 502| 
 503| 
 504| 
 505| 
 506| 
 507| 
 508| 
 509| 
 510| 
 511| 
 512| 
 513| 
 514| 
 515| 
 516| 
 517| 
 518| 
 519| 
 520| 
 521| 
 522| 
 523| 
 524| 
 525| 
 526| 
 527| 
 528| 
 529| 
 530| 
 531| 
 532| 
 533| 
 534| 
 535| 
 536| 
 537| 
 538| 
 539| 
 540| 
 541| 
 542| 
 543| 
 544| 
 545| 
 546| 
 547| 
 548| 
 549| 
 550| 
 551| 
 552| 
 553| 
 554| 
 555| 
 556| 
 557| 
 558| 
 559| 
 560| 
 561| 
 562| 
 563| 
 564| 
 565| 
 566| 
 567| 
 568| 
 569| 
 570| 
 571| 
 572| 
 573| 
 574| 
 575| 
 576| 
 577| 
 578| 
 579| 
 580| 
 581| 
 582| 
 583| 
 584| 
 585| 
 586| 
 587| 
 588| 
 589| 
 590| 
 591| 
 592| 
 593| 
 594| 
 595| 
 596| 
 597| 
 598| 
 599| 
 600| 
 601| 
 602| 
 603| 
 604| 
 605| 
 606| 
 607| 
 608| 
 609| 
 610| 
 611| 
 612| 
 613| 
 614| 
 615| 
 616| 
 617| 
 618| 
 619| 
 620| 
 621| 
 622| 
 623| 
 624| 
 625| 
 626| 
 627| 
 628| 
 629| 
 630| 
 631| 
 632| 
 633| 
 634| 
 635| 
 636| 
 637| 
 638| 
 639| 
 640| 
 641| 
 642| 
 643| 
 644| 
 645| 
 646| 
 647| 
 648| 
 649| 
 650| 
 651| 
 652| 
 653| 
 654| 
 655| 
 656| 
 657| 
 658| 
 659| 
 660| 
 661| 
 662| 
 663| 
 664| 
 665| 
 666| 
 667| 
 668| 
 669| 
 670| 
 671| 
 672| 
 673| 
 674| 
 675| 
 676| 
 677| 
 678| 
 679| 
 680| 
 681| 
 682| 
 683| 
 684| 
 685| 
 686| 
 687| 
 688| 
 689| 
 690| 
 691| 
 692| 
 693| 
 694| 
 695| 
 696| 
 697| 
 698| 
 699| 
 700| 
 701| 
 702| 
 703| 
 704| 
 705| 
 706| 
 707| 
 708| 
 709| 
 710| 
 711| 
 712| 
 713| 
 714| 
 715| 
 716| 
 717| 
 718| 
 719| 
 720| 
 721| 
 722| 
 723| 
 724| 
 725| 
 726| 
 727| 
 728| 
 729| 
 730| 
 731| 
 732| 
 733| 
 734| 
 735| 
 736| 
 737| 
 738| 
 739| 
 740| 
 741| 
 742| 
 743| 
 744| 
 745| 
 746| 
 747| 
 748| 
 749| 
 750| 
 751| 
 752| 
 753| 
 754| 
 755| 
 756| 
 757| 
 758| 
 759| 
 760| 
 761| 
 762| 
 763| 
 764| 
 765| 
 766| 
 767| 
 768| 
 769| 
 770| 
 771| 
 772| 
 773| 
 774| 
 775| 
 776| 
 777| 
 778| 
 779| 
 780| 
 781| 
 782| 
 783| 
 784| 
 785| 
 786| 
 787| 
 788| 
 789| 
 790| 
 791| 
 792| 
 793| 
 794| 
 795| 
 796| 
 797| 
 798| 
 799| 
 800| 
 801| 
 802| 
 803| 
 804| 
 805| 
 806| 
 807| 
 808| 
 809| 
 810| 
 811| 
 812| 
 813| 
 814| 
 815| 
 816| 
 817| 
 818| 
 819| 
 820| 
 821| 
 822| 
 823| 
 824| 
 825| 
 826| 
 827| 
 828| 
 829| 
 830| 
 831| 
 832| 
 833| 
 834| 
 835| 
 836| 
 837| 
 838| 
 839| 
 840| 
 841| 
 842| 
 843| 
 844| 
 845| 
 846| 
 847| 
 848| 
 849| 
 850| 
 851| 
 852| 
 853| 
 854| 
 855| 
 856| 
 857| 
 858| 
 859| 
 860| 
 861| 
 862| 
 863| 
 864| 
 865| 
 866| 
 867| 
 868| 
 869| 
 870| 
 871| 
 872| 
 873| 
 874| 
 875| 
 876| 
 877| 
 878| 
 879| 
 880| 
 881| 
 882| 
 883| 
 884| 
 885| 
 886| 
 887| 
 888| 
 889| 
 890| 
 891| 
 892| 
 893| 
 894| 
 895| 
 896| 
 897| 
 898| 
 899| 
 900| 
 901| 
 902| 
 903| 
 904| 
 905| 
 906| 
 907| 
 908| 
 909| 
 910| 
 911| 
 912| 
 913| 
 914| 
 915| 
 916| 
 917| 
 918| 
 919| 
 920| 
 921| 
 922| 
 923| 
 924| 
 925| 
 926| 
 927| 
 928| 
 929| 
 930| 
 931| 
 932| 
 933| 
 934| 
 935| 
 936| 
 937| 
 938| 
 939| 
 940| 
 941| 
 942| 
 943| 
 944| 
 945| 
 946| 
 947| 
 948| 
 949| 
 950| 
 951| 
 952| 
 953| 
 954| 
 955| 
 956| 
 957| 
 958| 
 959| 
 960| 
 961| 
 962| 
 963| 
 964| 
 965| 
 966| 
 967| 
 968| 
 969| 
 970| 
 971| 
 972| 
 973| 
 974| 
 975| 
 976| 
 977| 
 978| 
 979| 
 980| 
 981| 
 982| 
 983| 
 984| 
 985| 
 986| 
 987| 
 988| 
 989| 
 990| 
 991| 
 992| 
 993| 
 994| 
 995| 
 996| 
 997| 
 998| 
 999| 
1000| 
1001| 
1002| 
1003| 
1004| 
1005| 
1006| 
1007| 
1008| 
1009| 
1010| 
1011| 
1012| 
1013| 
1014| 
1015| 
1016| 
1017| 
1018| 
1019| 
1020| 
1021| 
1022| 
1023| 
1024| 
1025| 
1026| 
1027| 
1028| 
1029| 
1030| 
1031| 
1032| 
1033| 
1034| 
1035| 
1036| 
1037| 
1038| 
1039| 
1040| 
1041| 
1042| 
1043| 
1044| 
1045| 
1046| 
1047| 
1048| 
1049| 
1050| 
1051| 
1052| 
1053| 
1054| 
1055| 
1056| 
1057| 
1058| 
1059| 
1060| 
1061| 
1062| 
1063| 
1064| 
1065| 
1066| 
1067| 
1068| 
1069| 
1070| 
1071| 
1072| 
1073| 
1074| 
1075| 
1076| 
1077| 
1078| 
1079| 
1080| 
1081| 
1082| 
1083| 
1084| 
1085| 
1086| 
1087| 
1088| 
1089| 
1090| 
1091| 
1092| 
1093| 
1094| 
1095| 
1096| 
1097| 
1098| 
1099| 
1100| 
1101| 
1102| 
1103| 
1104| 
1105| 
1106| 
1107| 
1108| 
1109| 
1110| 
1111| 
1112| 
1113| 
1114| 
1115| 
1116| 
1117| 
1118| 
1119| 
1120| 
1121| 
1122| 
1123| 
1124| 
1125| 
1126| 
1127| 
1128| 
1129| 
1130| 
1131| 
1132| 
1133| 
1134| 
1135| 
1136| 
1137| 
1138| 
1139| 
1140| 
1141| 
1142| 
1143| 
1144| 
1145| 
1146| 
1147| 
1148| 
1149| 
1150| 
1151| 
1152| 
1153| 
1154| 
1155| 
1156| 
1157| 
1158| 
1159| 
1160| 
1161| 
1162| 
1163| 
1164| 
1165| 
1166| 
1167| 
1168| 
1169| 
1170| 
1171| 
1172| 
1173| 
1174| 
1175| 
1176| 
1177| 
1178| 
1179| 
1180| 
1181| 
1182| 
1183| 
1184| 
1185| 
1186| 
1187| 
1188| 
1189| 
1190| 
1191| 
1192| 
1193| 
1194| 
1195| 
1196| 
1197| 
1198| 
1199| 
1200| 
1201| 
1202| 
1203| 
1204| 
1205| 
1206| 
1207| 
1208| 
1209| 
1210| 
1211| 
1212| 
1213| 
1214| 
1215| 
1216| 
1217| 
1218| 
1219| 
1220| 
1221| 
1222| 
1223| 
1224| 
1225| 
1226| 
1227| 
1228| 
1229| 
1230| 
1231| 
1232| 
1233| 
1234| 
1235| 
1236| 
1237| 
1238| 
1239| 
1240| 
1241| 
1242| 
1243| 
1244| 
1245| 
1246| 
1247| 
1248| 
1249| 
1250| 
1251| 
1252| 
1253| 
1254| 
1255| 
1256| 
1257| 
1258| 
1259| 
1260| 
1261| 
1262| 
1263| 
1264| 
1265| 
1266| 
1267| 
1268| 
1269| 
1270| 
1271| 
1272| 
1273| 
1274| 
1275| 
1276| 
1277| 
1278| 
1279| 
1280| 
1281| 
1282| 
1283| 
1284| 
1285| 
1286| 
1287| 
1288| 
1289| 
1290| 
1291| 
1292| 
1293| 
1294| 
1295| 
1296| 
1297| 
1298| 
1299| 
1300| 
1301| 
1302| 
1303| 
1304| 
1305| 
1306| 
1307| 
1308| 
1309| 
1310| 
1311| 
1312| 
1313| 
1314| 
1315| 
1316| 
1317| 
1318| 
1319| 
1320| 
1321| 
1322| 
1323| 
1324| 
1325| 
1326| 
1327| 
1328| 
1329| 
1330| 
1331| 
1332| 
1333| 
1334| 
1335| 
1336| 
1337| 
1338| 
1339| 
1340| 
1341| 
1342| 
1343| 
1344| 
1345| 
1346| 
1347| 
1348| 
1349| 
1350| 
1351| 
1352| 
1353| 
1354| 
1355| 
1356| 
1357| 
1358| 
1359| 
1360| 
1361| 
1362| 
1363| 
1364| 
1365| 
1366| 
1367| 
1368| 
1369| 
1370| 
1371| 
1372| 
1373| 
1374| 
1375| 
1376| 
1377| 
1378| 
1379| 
1380| 
1381| 
1382| 
1383| 
1384| 
1385| 
1386| 
1387| 
1388| 
1389| 
1390| 
1391| 
1392| 
1393| 
1394| 
1395| 
1396| 
1397| 
1398| 
1399| 
1400| 
1401| 
1402| 
1403| 
1404| 
1405| 
1406| 
1407| 
1408| 
1409| 
1410| 
1411| 
1412| 
1413| 
1414| 
1415| 
1416| 
1417| 
1418| 
1419| 
1420| 
1421| 
1422| 
1423| 
1424| 
1425| 
1426| 
1427| 
1428| 
1429| 
1430| 
1431| 
1432| 
1433| 
1434| 
1435| 
1436| 
1437| 
1438| 
1439| 
1440| 
1441| 
1442| 
1443| 
1444| 
1445| 
1446| 
1447| 
1448| 
1449| 
1450| 
1451| 
1452| 
1453| 
1454| 
1455| 
1456| 
1457| 
1458| 
1459| 
1460| 
1461| 
1462| 
1463| 
1464| 
1465| 
1466| 
1467| 
1468| 
1469| 
1470| 
1471| 
1472| 
1473| 
1474| 
1475| 
1476| 
1477| 
1478| 

    
declare module 'process' {
    import * as tty from 'node:tty';
    import { Worker } from 'node:worker_threads';
    global {
        var process: NodeJS.Process;
        namespace NodeJS {
            // this namespace merge is here because these are specifically used
            // as the type for process.stdin, process.stdout, and process.stderr.
            // they can't live in tty.d.ts because we need to disambiguate the imported name.
            interface ReadStream extends tty.ReadStream {}
            interface WriteStream extends tty.WriteStream {}
            interface MemoryUsageFn {
                /**
                 * The `process.memoryUsage()` method iterate over each page to gather informations about memory
                 * usage which can be slow depending on the program memory allocations.
                 */
                (): MemoryUsage;
                /**
                 * method returns an integer representing the Resident Set Size (RSS) in bytes.
                 */
                rss(): number;
            }
            interface MemoryUsage {
                rss: number;
                heapTotal: number;
                heapUsed: number;
                external: number;
                arrayBuffers: number;
            }
            interface CpuUsage {
                user: number;
                system: number;
            }
            interface ProcessRelease {
                name: string;
                sourceUrl?: string | undefined;
                headersUrl?: string | undefined;
                libUrl?: string | undefined;
                lts?: string | undefined;
            }
            interface ProcessVersions extends Dict<string> {
                http_parser: string;
                node: string;
                v8: string;
                ares: string;
                uv: string;
                zlib: string;
                modules: string;
                openssl: string;
            }
            type Platform = 'aix' | 'android' | 'darwin' | 'freebsd' | 'haiku' | 'linux' | 'openbsd' | 'sunos' | 'win32' | 'cygwin' | 'netbsd';
            type Signals =
                | 'SIGABRT'
                | 'SIGALRM'
                | 'SIGBUS'
                | 'SIGCHLD'
                | 'SIGCONT'
                | 'SIGFPE'
                | 'SIGHUP'
                | 'SIGILL'
                | 'SIGINT'
                | 'SIGIO'
                | 'SIGIOT'
                | 'SIGKILL'
                | 'SIGPIPE'
                | 'SIGPOLL'
                | 'SIGPROF'
                | 'SIGPWR'
                | 'SIGQUIT'
                | 'SIGSEGV'
                | 'SIGSTKFLT'
                | 'SIGSTOP'
                | 'SIGSYS'
                | 'SIGTERM'
                | 'SIGTRAP'
                | 'SIGTSTP'
                | 'SIGTTIN'
                | 'SIGTTOU'
                | 'SIGUNUSED'
                | 'SIGURG'
                | 'SIGUSR1'
                | 'SIGUSR2'
                | 'SIGVTALRM'
                | 'SIGWINCH'
                | 'SIGXCPU'
                | 'SIGXFSZ'
                | 'SIGBREAK'
                | 'SIGLOST'
                | 'SIGINFO';
            type UncaughtExceptionOrigin = 'uncaughtException' | 'unhandledRejection';
            type MultipleResolveType = 'resolve' | 'reject';
            type BeforeExitListener = (code: number) => void;
            type DisconnectListener = () => void;
            type ExitListener = (code: number) => void;
            type RejectionHandledListener = (promise: Promise<unknown>) => void;
            type UncaughtExceptionListener = (error: Error, origin: UncaughtExceptionOrigin) => void;
            type UnhandledRejectionListener = (reason: {} | null | undefined, promise: Promise<unknown>) => void;
            type WarningListener = (warning: Error) => void;
            type MessageListener = (message: unknown, sendHandle: unknown) => void;
            type SignalsListener = (signal: Signals) => void;
            type MultipleResolveListener = (type: MultipleResolveType, promise: Promise<unknown>, value: unknown) => void;
            type WorkerListener = (worker: Worker) => void;
            interface Socket extends ReadWriteStream {
                isTTY?: true | undefined;
            }
            // Alias for compatibility
            interface ProcessEnv extends Dict<string> {
                /**
                 * Can be used to change the default timezone at runtime
                 */
                TZ?: string;
            }
            interface HRTime {
                (time?: [number, number]): [number, number];
                bigint(): bigint;
            }
            interface ProcessReport {
                /**
                 * Directory where the report is written.
                 * working directory of the Node.js process.
                 * @default '' indicating that reports are written to the current
                 */
                directory: string;
                /**
                 * Filename where the report is written.
                 * The default value is the empty string.
                 * @default '' the output filename will be comprised of a timestamp,
                 * PID, and sequence number.
                 */
                filename: string;
                /**
                 * Returns a JSON-formatted diagnostic report for the running process.
                 * The report's JavaScript stack trace is taken from err, if present.
                 */
                getReport(err?: Error): string;
                /**
                 * If true, a diagnostic report is generated on fatal errors,
                 * such as out of memory errors or failed C++ assertions.
                 * @default false
                 */
                reportOnFatalError: boolean;
                /**
                 * If true, a diagnostic report is generated when the process
                 * receives the signal specified by process.report.signal.
                 * @defaul false
                 */
                reportOnSignal: boolean;
                /**
                 * If true, a diagnostic report is generated on uncaught exception.
                 * @default false
                 */
                reportOnUncaughtException: boolean;
                /**
                 * The signal used to trigger the creation of a diagnostic report.
                 * @default 'SIGUSR2'
                 */
                signal: Signals;
                /**
                 * Writes a diagnostic report to a file. If filename is not provided, the default filename
                 * includes the date, time, PID, and a sequence number.
                 * The report's JavaScript stack trace is taken from err, if present.
                 *
                 * @param fileName Name of the file where the report is written.
                 * This should be a relative path, that will be appended to the directory specified in
                 * `process.report.directory`, or the current working directory of the Node.js process,
                 * if unspecified.
                 * @param error A custom error used for reporting the JavaScript stack.
                 * @return Filename of the generated report.
                 */
                writeReport(fileName?: string): string;
                writeReport(error?: Error): string;
                writeReport(fileName?: string, err?: Error): string;
            }
            interface ResourceUsage {
                fsRead: number;
                fsWrite: number;
                involuntaryContextSwitches: number;
                ipcReceived: number;
                ipcSent: number;
                majorPageFault: number;
                maxRSS: number;
                minorPageFault: number;
                sharedMemorySize: number;
                signalsCount: number;
                swappedOut: number;
                systemCPUTime: number;
                unsharedDataSize: number;
                unsharedStackSize: number;
                userCPUTime: number;
                voluntaryContextSwitches: number;
            }
            interface EmitWarningOptions {
                /**
                 * When `warning` is a `string`, `type` is the name to use for the _type_ of warning being emitted.
                 *
                 * @default 'Warning'
                 */
                type?: string | undefined;
                /**
                 * A unique identifier for the warning instance being emitted.
                 */
                code?: string | undefined;
                /**
                 * When `warning` is a `string`, `ctor` is an optional function used to limit the generated stack trace.
                 *
                 * @default process.emitWarning
                 */
                ctor?: Function | undefined;
                /**
                 * Additional text to include with the error.
                 */
                detail?: string | undefined;
            }
            interface ProcessConfig {
                readonly target_defaults: {
                    readonly cflags: any[];
                    readonly default_configuration: string;
                    readonly defines: string[];
                    readonly include_dirs: string[];
                    readonly libraries: string[];
                };
                readonly variables: {
                    readonly clang: number;
                    readonly host_arch: string;
                    readonly node_install_npm: boolean;
                    readonly node_install_waf: boolean;
                    readonly node_prefix: string;
                    readonly node_shared_openssl: boolean;
                    readonly node_shared_v8: boolean;
                    readonly node_shared_zlib: boolean;
                    readonly node_use_dtrace: boolean;
                    readonly node_use_etw: boolean;
                    readonly node_use_openssl: boolean;
                    readonly target_arch: string;
                    readonly v8_no_strict_aliasing: number;
                    readonly v8_use_snapshot: boolean;
                    readonly visibility: string;
                };
            }
            interface Process extends EventEmitter {
                /**
                 * The `process.stdout` property returns a stream connected to`stdout` (fd `1`). It is a `net.Socket` (which is a `Duplex` stream) unless fd `1` refers to a file, in which case it is
                 * a `Writable` stream.
                 *
                 * For example, to copy `process.stdin` to `process.stdout`:
                 *
                 * ```js
                 * import { stdin, stdout } from 'process';
                 *
                 * stdin.pipe(stdout);
                 * ```
                 *
                 * `process.stdout` differs from other Node.js streams in important ways. See `note on process I/O` for more information.
                 */
                stdout: WriteStream & {
                    fd: 1;
                };
                /**
                 * The `process.stderr` property returns a stream connected to`stderr` (fd `2`). It is a `net.Socket` (which is a `Duplex` stream) unless fd `2` refers to a file, in which case it is
                 * a `Writable` stream.
                 *
                 * `process.stderr` differs from other Node.js streams in important ways. See `note on process I/O` for more information.
                 */
                stderr: WriteStream & {
                    fd: 2;
                };
                /**
                 * The `process.stdin` property returns a stream connected to`stdin` (fd `0`). It is a `net.Socket` (which is a `Duplex` stream) unless fd `0` refers to a file, in which case it is
                 * a `Readable` stream.
                 *
                 * For details of how to read from `stdin` see `readable.read()`.
                 *
                 * As a `Duplex` stream, `process.stdin` can also be used in "old" mode that
                 * is compatible with scripts written for Node.js prior to v0.10\.
                 * For more information see `Stream compatibility`.
                 *
                 * In "old" streams mode the `stdin` stream is paused by default, so one
                 * must call `process.stdin.resume()` to read from it. Note also that calling`process.stdin.resume()` itself would switch stream to "old" mode.
                 */
                stdin: ReadStream & {
                    fd: 0;
                };
                openStdin(): Socket;
                /**
                 * The `process.argv` property returns an array containing the command-line
                 * arguments passed when the Node.js process was launched. The first element will
                 * be {@link execPath}. See `process.argv0` if access to the original value
                 * of `argv[0]` is needed. The second element will be the path to the JavaScript
                 * file being executed. The remaining elements will be any additional command-line
                 * arguments.
                 *
                 * For example, assuming the following script for `process-args.js`:
                 *
                 * ```js
                 * import { argv } from 'process';
                 *
                 * // print process.argv
                 * argv.forEach((val, index) => {
                 *   console.log(`${index}: ${val}`);
                 * });
                 * ```
                 *
                 * Launching the Node.js process as:
                 *
                 * ```console
                 * $ node process-args.js one two=three four
                 * ```
                 *
                 * Would generate the output:
                 *
                 * ```text
                 * 0: /usr/local/bin/node
                 * 1: /Users/mjr/work/node/process-args.js
                 * 2: one
                 * 3: two=three
                 * 4: four
                 * ```
                 * @since v0.1.27
                 */
                argv: string[];
                /**
                 * The `process.argv0` property stores a read-only copy of the original value of`argv[0]` passed when Node.js starts.
                 *
                 * ```console
                 * $ bash -c 'exec -a customArgv0 ./node'
                 * > process.argv[0]
                 * '/Volumes/code/external/node/out/Release/node'
                 * > process.argv0
                 * 'customArgv0'
                 * ```
                 * @since v6.4.0
                 */
                argv0: string;
                /**
                 * The `process.execArgv` property returns the set of Node.js-specific command-line
                 * options passed when the Node.js process was launched. These options do not
                 * appear in the array returned by the {@link argv} property, and do not
                 * include the Node.js executable, the name of the script, or any options following
                 * the script name. These options are useful in order to spawn child processes with
                 * the same execution environment as the parent.
                 *
                 * ```console
                 * $ node --harmony script.js --version
                 * ```
                 *
                 * Results in `process.execArgv`:
                 *
                 * ```js
                 * ['--harmony']
                 * ```
                 *
                 * And `process.argv`:
                 *
                 * ```js
                 * ['/usr/local/bin/node', 'script.js', '--version']
                 * ```
                 *
                 * Refer to `Worker constructor` for the detailed behavior of worker
                 * threads with this property.
                 * @since v0.7.7
                 */
                execArgv: string[];
                /**
                 * The `process.execPath` property returns the absolute pathname of the executable
                 * that started the Node.js process. Symbolic links, if any, are resolved.
                 *
                 * ```js
                 * '/usr/local/bin/node'
                 * ```
                 * @since v0.1.100
                 */
                execPath: string;
                /**
                 * The `process.abort()` method causes the Node.js process to exit immediately and
                 * generate a core file.
                 *
                 * This feature is not available in `Worker` threads.
                 * @since v0.7.0
                 */
                abort(): never;
                /**
                 * The `process.chdir()` method changes the current working directory of the
                 * Node.js process or throws an exception if doing so fails (for instance, if
                 * the specified `directory` does not exist).
                 *
                 * ```js
                 * import { chdir, cwd } from 'process';
                 *
                 * console.log(`Starting directory: ${cwd()}`);
                 * try {
                 *   chdir('/tmp');
                 *   console.log(`New directory: ${cwd()}`);
                 * } catch (err) {
                 *   console.error(`chdir: ${err}`);
                 * }
                 * ```
                 *
                 * This feature is not available in `Worker` threads.
                 * @since v0.1.17
                 */
                chdir(directory: string): void;
                /**
                 * The `process.cwd()` method returns the current working directory of the Node.js
                 * process.
                 *
                 * ```js
                 * import { cwd } from 'process';
                 *
                 * console.log(`Current directory: ${cwd()}`);
                 * ```
                 * @since v0.1.8
                 */
                cwd(): string;
                /**
                 * The port used by the Node.js debugger when enabled.
                 *
                 * ```js
                 * import process from 'process';
                 *
                 * process.debugPort = 5858;
                 * ```
                 * @since v0.7.2
                 */
                debugPort: number;
                /**
                 * The `process.emitWarning()` method can be used to emit custom or application
                 * specific process warnings. These can be listened for by adding a handler to the `'warning'` event.
                 *
                 * ```js
                 * import { emitWarning } from 'process';
                 *
                 * // Emit a warning with a code and additional detail.
                 * emitWarning('Something happened!', {
                 *   code: 'MY_WARNING',
                 *   detail: 'This is some additional information'
                 * });
                 * // Emits:
                 * // (node:56338) [MY_WARNING] Warning: Something happened!
                 * // This is some additional information
                 * ```
                 *
                 * In this example, an `Error` object is generated internally by`process.emitWarning()` and passed through to the `'warning'` handler.
                 *
                 * ```js
                 * import process from 'process';
                 *
                 * process.on('warning', (warning) => {
                 *   console.warn(warning.name);    // 'Warning'
                 *   console.warn(warning.message); // 'Something happened!'
                 *   console.warn(warning.code);    // 'MY_WARNING'
                 *   console.warn(warning.stack);   // Stack trace
                 *   console.warn(warning.detail);  // 'This is some additional information'
                 * });
                 * ```
                 *
                 * If `warning` is passed as an `Error` object, the `options` argument is ignored.
                 * @since v8.0.0
                 * @param warning The warning to emit.
                 */
                emitWarning(warning: string | Error, ctor?: Function): void;
                emitWarning(warning: string | Error, type?: string, ctor?: Function): void;
                emitWarning(warning: string | Error, type?: string, code?: string, ctor?: Function): void;
                emitWarning(warning: string | Error, options?: EmitWarningOptions): void;
                /**
                 * The `process.env` property returns an object containing the user environment.
                 * See [`environ(7)`](http://man7.org/linux/man-pages/man7/environ.7.html).
                 *
                 * An example of this object looks like:
                 *
                 * ```js
                 * {
                 *   TERM: 'xterm-256color',
                 *   SHELL: '/usr/local/bin/bash',
                 *   USER: 'maciej',
                 *   PATH: '~/.bin/:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin',
                 *   PWD: '/Users/maciej',
                 *   EDITOR: 'vim',
                 *   SHLVL: '1',
                 *   HOME: '/Users/maciej',
                 *   LOGNAME: 'maciej',
                 *   _: '/usr/local/bin/node'
                 * }
                 * ```
                 *
                 * It is possible to modify this object, but such modifications will not be
                 * reflected outside the Node.js process, or (unless explicitly requested)
                 * to other `Worker` threads.
                 * In other words, the following example would not work:
                 *
                 * ```console
                 * $ node -e 'process.env.foo = "bar"' &#x26;&#x26; echo $foo
                 * ```
                 *
                 * While the following will:
                 *
                 * ```js
                 * import { env } from 'process';
                 *
                 * env.foo = 'bar';
                 * console.log(env.foo);
                 * ```
                 *
                 * Assigning a property on `process.env` will implicitly convert the value
                 * to a string. **This behavior is deprecated.** Future versions of Node.js may
                 * throw an error when the value is not a string, number, or boolean.
                 *
                 * ```js
                 * import { env } from 'process';
                 *
                 * env.test = null;
                 * console.log(env.test);
                 * // => 'null'
                 * env.test = undefined;
                 * console.log(env.test);
                 * // => 'undefined'
                 * ```
                 *
                 * Use `delete` to delete a property from `process.env`.
                 *
                 * ```js
                 * import { env } from 'process';
                 *
                 * env.TEST = 1;
                 * delete env.TEST;
                 * console.log(env.TEST);
                 * // => undefined
                 * ```
                 *
                 * On Windows operating systems, environment variables are case-insensitive.
                 *
                 * ```js
                 * import { env } from 'process';
                 *
                 * env.TEST = 1;
                 * console.log(env.test);
                 * // => 1
                 * ```
                 *
                 * Unless explicitly specified when creating a `Worker` instance,
                 * each `Worker` thread has its own copy of `process.env`, based on its
                 * parent thread’s `process.env`, or whatever was specified as the `env` option
                 * to the `Worker` constructor. Changes to `process.env` will not be visible
                 * across `Worker` threads, and only the main thread can make changes that
                 * are visible to the operating system or to native add-ons.
                 * @since v0.1.27
                 */
                env: ProcessEnv;
                /**
                 * The `process.exit()` method instructs Node.js to terminate the process
                 * synchronously with an exit status of `code`. If `code` is omitted, exit uses
                 * either the 'success' code `0` or the value of `process.exitCode` if it has been
                 * set. Node.js will not terminate until all the `'exit'` event listeners are
                 * called.
                 *
                 * To exit with a 'failure' code:
                 *
                 * ```js
                 * import { exit } from 'process';
                 *
                 * exit(1);
                 * ```
                 *
                 * The shell that executed Node.js should see the exit code as `1`.
                 *
                 * Calling `process.exit()` will force the process to exit as quickly as possible
                 * even if there are still asynchronous operations pending that have not yet
                 * completed fully, including I/O operations to `process.stdout` and`process.stderr`.
                 *
                 * In most situations, it is not actually necessary to call `process.exit()`explicitly. The Node.js process will exit on its own _if there is no additional_
                 * _work pending_ in the event loop. The `process.exitCode` property can be set to
                 * tell the process which exit code to use when the process exits gracefully.
                 *
                 * For instance, the following example illustrates a _misuse_ of the`process.exit()` method that could lead to data printed to stdout being
                 * truncated and lost:
                 *
                 * ```js
                 * import { exit } from 'process';
                 *
                 * // This is an example of what *not* to do:
                 * if (someConditionNotMet()) {
                 *   printUsageToStdout();
                 *   exit(1);
                 * }
                 * ```
                 *
                 * The reason this is problematic is because writes to `process.stdout` in Node.js
                 * are sometimes _asynchronous_ and may occur over multiple ticks of the Node.js
                 * event loop. Calling `process.exit()`, however, forces the process to exit_before_ those additional writes to `stdout` can be performed.
                 *
                 * Rather than calling `process.exit()` directly, the code _should_ set the`process.exitCode` and allow the process to exit naturally by avoiding
                 * scheduling any additional work for the event loop:
                 *
                 * ```js
                 * import process from 'process';
                 *
                 * // How to properly set the exit code while letting
                 * // the process exit gracefully.
                 * if (someConditionNotMet()) {
                 *   printUsageToStdout();
                 *   process.exitCode = 1;
                 * }
                 * ```
                 *
                 * If it is necessary to terminate the Node.js process due to an error condition,
                 * throwing an _uncaught_ error and allowing the process to terminate accordingly
                 * is safer than calling `process.exit()`.
                 *
                 * In `Worker` threads, this function stops the current thread rather
                 * than the current process.
                 * @since v0.1.13
                 * @param [code=0] The exit code.
                 */
                exit(code?: number): never;
                /**
                 * A number which will be the process exit code, when the process either
                 * exits gracefully, or is exited via {@link exit} without specifying
                 * a code.
                 *
                 * Specifying a code to {@link exit} will override any
                 * previous setting of `process.exitCode`.
                 * @since v0.11.8
                 */
                exitCode?: number | undefined;
                /**
                 * The `process.getgid()` method returns the numerical group identity of the
                 * process. (See [`getgid(2)`](http://man7.org/linux/man-pages/man2/getgid.2.html).)
                 *
                 * ```js
                 * import process from 'process';
                 *
                 * if (process.getgid) {
                 *   console.log(`Current gid: ${process.getgid()}`);
                 * }
                 * ```
                 *
                 * This function is only available on POSIX platforms (i.e. not Windows or
                 * Android).
                 * @since v0.1.31
                 */
                getgid(): number;
                /**
                 * The `process.setgid()` method sets the group identity of the process. (See[`setgid(2)`](http://man7.org/linux/man-pages/man2/setgid.2.html).) The `id` can be passed as either a
                 * numeric ID or a group name
                 * string. If a group name is specified, this method blocks while resolving the
                 * associated numeric ID.
                 *
                 * ```js
                 * import process from 'process';
                 *
                 * if (process.getgid &#x26;&#x26; process.setgid) {
                 *   console.log(`Current gid: ${process.getgid()}`);
                 *   try {
                 *     process.setgid(501);
                 *     console.log(`New gid: ${process.getgid()}`);
                 *   } catch (err) {
                 *     console.log(`Failed to set gid: ${err}`);
                 *   }
                 * }
                 * ```
                 *
                 * This function is only available on POSIX platforms (i.e. not Windows or
                 * Android).
                 * This feature is not available in `Worker` threads.
                 * @since v0.1.31
                 * @param id The group name or ID
                 */
                setgid(id: number | string): void;
                /**
                 * The `process.getuid()` method returns the numeric user identity of the process.
                 * (See [`getuid(2)`](http://man7.org/linux/man-pages/man2/getuid.2.html).)
                 *
                 * ```js
                 * import process from 'process';
                 *
                 * if (process.getuid) {
                 *   console.log(`Current uid: ${process.getuid()}`);
                 * }
                 * ```
                 *
                 * This function is only available on POSIX platforms (i.e. not Windows or
                 * Android).
                 * @since v0.1.28
                 */
                getuid(): number;
                /**
                 * The `process.setuid(id)` method sets the user identity of the process. (See[`setuid(2)`](http://man7.org/linux/man-pages/man2/setuid.2.html).) The `id` can be passed as either a
                 * numeric ID or a username string.
                 * If a username is specified, the method blocks while resolving the associated
                 * numeric ID.
                 *
                 * ```js
                 * import process from 'process';
                 *
                 * if (process.getuid &#x26;&#x26; process.setuid) {
                 *   console.log(`Current uid: ${process.getuid()}`);
                 *   try {
                 *     process.setuid(501);
                 *     console.log(`New uid: ${process.getuid()}`);
                 *   } catch (err) {
                 *     console.log(`Failed to set uid: ${err}`);
                 *   }
                 * }
                 * ```
                 *
                 * This function is only available on POSIX platforms (i.e. not Windows or
                 * Android).
                 * This feature is not available in `Worker` threads.
                 * @since v0.1.28
                 */
                setuid(id: number | string): void;
                /**
                 * The `process.geteuid()` method returns the numerical effective user identity of
                 * the process. (See [`geteuid(2)`](http://man7.org/linux/man-pages/man2/geteuid.2.html).)
                 *
                 * ```js
                 * import process from 'process';
                 *
                 * if (process.geteuid) {
                 *   console.log(`Current uid: ${process.geteuid()}`);
                 * }
                 * ```
                 *
                 * This function is only available on POSIX platforms (i.e. not Windows or
                 * Android).
                 * @since v2.0.0
                 */
                geteuid(): number;
                /**
                 * The `process.seteuid()` method sets the effective user identity of the process.
                 * (See [`seteuid(2)`](http://man7.org/linux/man-pages/man2/seteuid.2.html).) The `id` can be passed as either a numeric ID or a username
                 * string. If a username is specified, the method blocks while resolving the
                 * associated numeric ID.
                 *
                 * ```js
                 * import process from 'process';
                 *
                 * if (process.geteuid &#x26;&#x26; process.seteuid) {
                 *   console.log(`Current uid: ${process.geteuid()}`);
                 *   try {
                 *     process.seteuid(501);
                 *     console.log(`New uid: ${process.geteuid()}`);
                 *   } catch (err) {
                 *     console.log(`Failed to set uid: ${err}`);
                 *   }
                 * }
                 * ```
                 *
                 * This function is only available on POSIX platforms (i.e. not Windows or
                 * Android).
                 * This feature is not available in `Worker` threads.
                 * @since v2.0.0
                 * @param id A user name or ID
                 */
                seteuid(id: number | string): void;
                /**
                 * The `process.getegid()` method returns the numerical effective group identity
                 * of the Node.js process. (See [`getegid(2)`](http://man7.org/linux/man-pages/man2/getegid.2.html).)
                 *
                 * ```js
                 * import process from 'process';
                 *
                 * if (process.getegid) {
                 *   console.log(`Current gid: ${process.getegid()}`);
                 * }
                 * ```
                 *
                 * This function is only available on POSIX platforms (i.e. not Windows or
                 * Android).
                 * @since v2.0.0
                 */
                getegid(): number;
                /**
                 * The `process.setegid()` method sets the effective group identity of the process.
                 * (See [`setegid(2)`](http://man7.org/linux/man-pages/man2/setegid.2.html).) The `id` can be passed as either a numeric ID or a group
                 * name string. If a group name is specified, this method blocks while resolving
                 * the associated a numeric ID.
                 *
                 * ```js
                 * import process from 'process';
                 *
                 * if (process.getegid &#x26;&#x26; process.setegid) {
                 *   console.log(`Current gid: ${process.getegid()}`);
                 *   try {
                 *     process.setegid(501);
                 *     console.log(`New gid: ${process.getegid()}`);
                 *   } catch (err) {
                 *     console.log(`Failed to set gid: ${err}`);
                 *   }
                 * }
                 * ```
                 *
                 * This function is only available on POSIX platforms (i.e. not Windows or
                 * Android).
                 * This feature is not available in `Worker` threads.
                 * @since v2.0.0
                 * @param id A group name or ID
                 */
                setegid(id: number | string): void;
                /**
                 * The `process.getgroups()` method returns an array with the supplementary group
                 * IDs. POSIX leaves it unspecified if the effective group ID is included but
                 * Node.js ensures it always is.
                 *
                 * ```js
                 * import process from 'process';
                 *
                 * if (process.getgroups) {
                 *   console.log(process.getgroups()); // [ 16, 21, 297 ]
                 * }
                 * ```
                 *
                 * This function is only available on POSIX platforms (i.e. not Windows or
                 * Android).
                 * @since v0.9.4
                 */
                getgroups(): number[];
                /**
                 * The `process.setgroups()` method sets the supplementary group IDs for the
                 * Node.js process. This is a privileged operation that requires the Node.js
                 * process to have `root` or the `CAP_SETGID` capability.
                 *
                 * The `groups` array can contain numeric group IDs, group names, or both.
                 *
                 * ```js
                 * import process from 'process';
                 *
                 * if (process.getgroups &#x26;&#x26; process.setgroups) {
                 *   try {
                 *     process.setgroups([501]);
                 *     console.log(process.getgroups()); // new groups
                 *   } catch (err) {
                 *     console.log(`Failed to set groups: ${err}`);
                 *   }
                 * }
                 * ```
                 *
                 * This function is only available on POSIX platforms (i.e. not Windows or
                 * Android).
                 * This feature is not available in `Worker` threads.
                 * @since v0.9.4
                 */
                setgroups(groups: ReadonlyArray<string | number>): void;
                /**
                 * The `process.setUncaughtExceptionCaptureCallback()` function sets a function
                 * that will be invoked when an uncaught exception occurs, which will receive the
                 * exception value itself as its first argument.
                 *
                 * If such a function is set, the `'uncaughtException'` event will
                 * not be emitted. If `--abort-on-uncaught-exception` was passed from the
                 * command line or set through `v8.setFlagsFromString()`, the process will
                 * not abort. Actions configured to take place on exceptions such as report
                 * generations will be affected too
                 *
                 * To unset the capture function,`process.setUncaughtExceptionCaptureCallback(null)` may be used. Calling this
                 * method with a non-`null` argument while another capture function is set will
                 * throw an error.
                 *
                 * Using this function is mutually exclusive with using the deprecated `domain` built-in module.
                 * @since v9.3.0
                 */
                setUncaughtExceptionCaptureCallback(cb: ((err: Error) => void) | null): void;
                /**
                 * Indicates whether a callback has been set using {@link setUncaughtExceptionCaptureCallback}.
                 * @since v9.3.0
                 */
                hasUncaughtExceptionCaptureCallback(): boolean;
                /**
                 * The `process.version` property contains the Node.js version string.
                 *
                 * ```js
                 * import { version } from 'process';
                 *
                 * console.log(`Version: ${version}`);
                 * // Version: v14.8.0
                 * ```
                 *
                 * To get the version string without the prepended _v_, use`process.versions.node`.
                 * @since v0.1.3
                 */
                readonly version: string;
                /**
                 * The `process.versions` property returns an object listing the version strings of
                 * Node.js and its dependencies. `process.versions.modules` indicates the current
                 * ABI version, which is increased whenever a C++ API changes. Node.js will refuse
                 * to load modules that were compiled against a different module ABI version.
                 *
                 * ```js
                 * import { versions } from 'process';
                 *
                 * console.log(versions);
                 * ```
                 *
                 * Will generate an object similar to:
                 *
                 * ```console
                 * { node: '11.13.0',
                 *   v8: '7.0.276.38-node.18',
                 *   uv: '1.27.0',
                 *   zlib: '1.2.11',
                 *   brotli: '1.0.7',
                 *   ares: '1.15.0',
                 *   modules: '67',
                 *   nghttp2: '1.34.0',
                 *   napi: '4',
                 *   llhttp: '1.1.1',
                 *   openssl: '1.1.1b',
                 *   cldr: '34.0',
                 *   icu: '63.1',
                 *   tz: '2018e',
                 *   unicode: '11.0' }
                 * ```
                 * @since v0.2.0
                 */
                readonly versions: ProcessVersions;
                /**
                 * The `process.config` property returns an `Object` containing the JavaScript
                 * representation of the configure options used to compile the current Node.js
                 * executable. This is the same as the `config.gypi` file that was produced when
                 * running the `./configure` script.
                 *
                 * An example of the possible output looks like:
                 *
                 * ```js
                 * {
                 *   target_defaults:
                 *    { cflags: [],
                 *      default_configuration: 'Release',
                 *      defines: [],
                 *      include_dirs: [],
                 *      libraries: [] },
                 *   variables:
                 *    {
                 *      host_arch: 'x64',
                 *      napi_build_version: 5,
                 *      node_install_npm: 'true',
                 *      node_prefix: '',
                 *      node_shared_cares: 'false',
                 *      node_shared_http_parser: 'false',
                 *      node_shared_libuv: 'false',
                 *      node_shared_zlib: 'false',
                 *      node_use_dtrace: 'false',
                 *      node_use_openssl: 'true',
                 *      node_shared_openssl: 'false',
                 *      strict_aliasing: 'true',
                 *      target_arch: 'x64',
                 *      v8_use_snapshot: 1
                 *    }
                 * }
                 * ```
                 *
                 * The `process.config` property is **not** read-only and there are existing
                 * modules in the ecosystem that are known to extend, modify, or entirely replace
                 * the value of `process.config`.
                 *
                 * Modifying the `process.config` property, or any child-property of the`process.config` object has been deprecated. The `process.config` will be made
                 * read-only in a future release.
                 * @since v0.7.7
                 */
                readonly config: ProcessConfig;
                /**
                 * The `process.kill()` method sends the `signal` to the process identified by`pid`.
                 *
                 * Signal names are strings such as `'SIGINT'` or `'SIGHUP'`. See `Signal Events` and [`kill(2)`](http://man7.org/linux/man-pages/man2/kill.2.html) for more information.
                 *
                 * This method will throw an error if the target `pid` does not exist. As a special
                 * case, a signal of `0` can be used to test for the existence of a process.
                 * Windows platforms will throw an error if the `pid` is used to kill a process
                 * group.
                 *
                 * Even though the name of this function is `process.kill()`, it is really just a
                 * signal sender, like the `kill` system call. The signal sent may do something
                 * other than kill the target process.
                 *
                 * ```js
                 * import process, { kill } from 'process';
                 *
                 * process.on('SIGHUP', () => {
                 *   console.log('Got SIGHUP signal.');
                 * });
                 *
                 * setTimeout(() => {
                 *   console.log('Exiting.');
                 *   process.exit(0);
                 * }, 100);
                 *
                 * kill(process.pid, 'SIGHUP');
                 * ```
                 *
                 * When `SIGUSR1` is received by a Node.js process, Node.js will start the
                 * debugger. See `Signal Events`.
                 * @since v0.0.6
                 * @param pid A process ID
                 * @param [signal='SIGTERM'] The signal to send, either as a string or number.
                 */
                kill(pid: number, signal?: string | number): true;
                /**
                 * The `process.pid` property returns the PID of the process.
                 *
                 * ```js
                 * import { pid } from 'process';
                 *
                 * console.log(`This process is pid ${pid}`);
                 * ```
                 * @since v0.1.15
                 */
                readonly pid: number;
                /**
                 * The `process.ppid` property returns the PID of the parent of the
                 * current process.
                 *
                 * ```js
                 * import { ppid } from 'process';
                 *
                 * console.log(`The parent process is pid ${ppid}`);
                 * ```
                 * @since v9.2.0, v8.10.0, v6.13.0
                 */
                readonly ppid: number;
                /**
                 * The `process.title` property returns the current process title (i.e. returns
                 * the current value of `ps`). Assigning a new value to `process.title` modifies
                 * the current value of `ps`.
                 *
                 * When a new value is assigned, different platforms will impose different maximum
                 * length restrictions on the title. Usually such restrictions are quite limited.
                 * For instance, on Linux and macOS, `process.title` is limited to the size of the
                 * binary name plus the length of the command-line arguments because setting the`process.title` overwrites the `argv` memory of the process. Node.js v0.8
                 * allowed for longer process title strings by also overwriting the `environ`memory but that was potentially insecure and confusing in some (rather obscure)
                 * cases.
                 *
                 * Assigning a value to `process.title` might not result in an accurate label
                 * within process manager applications such as macOS Activity Monitor or Windows
                 * Services Manager.
                 * @since v0.1.104
                 */
                title: string;
                /**
                 * The operating system CPU architecture for which the Node.js binary was compiled.
                 * Possible values are: `'arm'`, `'arm64'`, `'ia32'`, `'mips'`,`'mipsel'`, `'ppc'`,`'ppc64'`, `'s390'`, `'s390x'`, `'x32'`, and `'x64'`.
                 *
                 * ```js
                 * import { arch } from 'process';
                 *
                 * console.log(`This processor architecture is ${arch}`);
                 * ```
                 * @since v0.5.0
                 */
                readonly arch: string;
                /**
                 * The `process.platform` property returns a string identifying the operating
                 * system platform on which the Node.js process is running.
                 *
                 * Currently possible values are:
                 *
                 * * `'aix'`
                 * * `'darwin'`
                 * * `'freebsd'`
                 * * `'linux'`
                 * * `'openbsd'`
                 * * `'sunos'`
                 * * `'win32'`
                 *
                 * ```js
                 * import { platform } from 'process';
                 *
                 * console.log(`This platform is ${platform}`);
                 * ```
                 *
                 * The value `'android'` may also be returned if the Node.js is built on the
                 * Android operating system. However, Android support in Node.js[is experimental](https://github.com/nodejs/node/blob/HEAD/BUILDING.md#androidandroid-based-devices-eg-firefox-os).
                 * @since v0.1.16
                 */
                readonly platform: Platform;
                /**
                 * The `process.mainModule` property provides an alternative way of retrieving `require.main`. The difference is that if the main module changes at
                 * runtime, `require.main` may still refer to the original main module in
                 * modules that were required before the change occurred. Generally, it's
                 * safe to assume that the two refer to the same module.
                 *
                 * As with `require.main`, `process.mainModule` will be `undefined` if there
                 * is no entry script.
                 * @since v0.1.17
                 * @deprecated Since v14.0.0 - Use `main` instead.
                 */
                mainModule?: Module | undefined;
                memoryUsage: MemoryUsageFn;
                /**
                 * The `process.cpuUsage()` method returns the user and system CPU time usage of
                 * the current process, in an object with properties `user` and `system`, whose
                 * values are microsecond values (millionth of a second). These values measure time
                 * spent in user and system code respectively, and may end up being greater than
                 * actual elapsed time if multiple CPU cores are performing work for this process.
                 *
                 * The result of a previous call to `process.cpuUsage()` can be passed as the
                 * argument to the function, to get a diff reading.
                 *
                 * ```js
                 * import { cpuUsage } from 'process';
                 *
                 * const startUsage = cpuUsage();
                 * // { user: 38579, system: 6986 }
                 *
                 * // spin the CPU for 500 milliseconds
                 * const now = Date.now();
                 * while (Date.now() - now < 500);
                 *
                 * console.log(cpuUsage(startUsage));
                 * // { user: 514883, system: 11226 }
                 * ```
                 * @since v6.1.0
                 * @param previousValue A previous return value from calling `process.cpuUsage()`
                 */
                cpuUsage(previousValue?: CpuUsage): CpuUsage;
                /**
                 * `process.nextTick()` adds `callback` to the "next tick queue". This queue is
                 * fully drained after the current operation on the JavaScript stack runs to
                 * completion and before the event loop is allowed to continue. It's possible to
                 * create an infinite loop if one were to recursively call `process.nextTick()`.
                 * See the [Event Loop](https://nodejs.org/en/docs/guides/event-loop-timers-and-nexttick/#process-nexttick) guide for more background.
                 *
                 * ```js
                 * import { nextTick } from 'process';
                 *
                 * console.log('start');
                 * nextTick(() => {
                 *   console.log('nextTick callback');
                 * });
                 * console.log('scheduled');
                 * // Output:
                 * // start
                 * // scheduled
                 * // nextTick callback
                 * ```
                 *
                 * This is important when developing APIs in order to give users the opportunity
                 * to assign event handlers _after_ an object has been constructed but before any
                 * I/O has occurred:
                 *
                 * ```js
                 * import { nextTick } from 'process';
                 *
                 * function MyThing(options) {
                 *   this.setupOptions(options);
                 *
                 *   nextTick(() => {
                 *     this.startDoingStuff();
                 *   });
                 * }
                 *
                 * const thing = new MyThing();
                 * thing.getReadyForStuff();
                 *
                 * // thing.startDoingStuff() gets called now, not before.
                 * ```
                 *
                 * It is very important for APIs to be either 100% synchronous or 100%
                 * asynchronous. Consider this example:
                 *
                 * ```js
                 * // WARNING!  DO NOT USE!  BAD UNSAFE HAZARD!
                 * function maybeSync(arg, cb) {
                 *   if (arg) {
                 *     cb();
                 *     return;
                 *   }
                 *
                 *   fs.stat('file', cb);
                 * }
                 * ```
                 *
                 * This API is hazardous because in the following case:
                 *
                 * ```js
                 * const maybeTrue = Math.random() > 0.5;
                 *
                 * maybeSync(maybeTrue, () => {
                 *   foo();
                 * });
                 *
                 * bar();
                 * ```
                 *
                 * It is not clear whether `foo()` or `bar()` will be called first.
                 *
                 * The following approach is much better:
                 *
                 * ```js
                 * import { nextTick } from 'process';
                 *
                 * function definitelyAsync(arg, cb) {
                 *   if (arg) {
                 *     nextTick(cb);
                 *     return;
                 *   }
                 *
                 *   fs.stat('file', cb);
                 * }
                 * ```
                 * @since v0.1.26
                 * @param args Additional arguments to pass when invoking the `callback`
                 */
                nextTick(callback: Function, ...args: any[]): void;
                /**
                 * The `process.release` property returns an `Object` containing metadata related
                 * to the current release, including URLs for the source tarball and headers-only
                 * tarball.
                 *
                 * `process.release` contains the following properties:
                 *
                 * ```js
                 * {
                 *   name: 'node',
                 *   lts: 'Erbium',
                 *   sourceUrl: 'https://nodejs.org/download/release/v12.18.1/node-v12.18.1.tar.gz',
                 *   headersUrl: 'https://nodejs.org/download/release/v12.18.1/node-v12.18.1-headers.tar.gz',
                 *   libUrl: 'https://nodejs.org/download/release/v12.18.1/win-x64/node.lib'
                 * }
                 * ```
                 *
                 * In custom builds from non-release versions of the source tree, only the`name` property may be present. The additional properties should not be
                 * relied upon to exist.
                 * @since v3.0.0
                 */
                readonly release: ProcessRelease;
                features: {
                    inspector: boolean;
                    debug: boolean;
                    uv: boolean;
                    ipv6: boolean;
                    tls_alpn: boolean;
                    tls_sni: boolean;
                    tls_ocsp: boolean;
                    tls: boolean;
                };
                /**
                 * `process.umask()` returns the Node.js process's file mode creation mask. Child
                 * processes inherit the mask from the parent process.
                 * @since v0.1.19
                 * @deprecated Calling `process.umask()` with no argument causes the process-wide umask to be written twice. This introduces a race condition between threads, and is a potential   *
                 * security vulnerability. There is no safe, cross-platform alternative API.
                 */
                umask(): number;
                /**
                 * Can only be set if not in worker thread.
                 */
                umask(mask: string | number): number;
                /**
                 * The `process.uptime()` method returns the number of seconds the current Node.js
                 * process has been running.
                 *
                 * The return value includes fractions of a second. Use `Math.floor()` to get whole
                 * seconds.
                 * @since v0.5.0
                 */
                uptime(): number;
                hrtime: HRTime;
                /**
                 * If Node.js is spawned with an IPC channel, the `process.send()` method can be
                 * used to send messages to the parent process. Messages will be received as a `'message'` event on the parent's `ChildProcess` object.
                 *
                 * If Node.js was not spawned with an IPC channel, `process.send` will be`undefined`.
                 *
                 * The message goes through serialization and parsing. The resulting message might
                 * not be the same as what is originally sent.
                 * @since v0.5.9
                 * @param options used to parameterize the sending of certain types of handles.`options` supports the following properties:
                 */
                send?(
                    message: any,
                    sendHandle?: any,
                    options?: {
                        swallowErrors?: boolean | undefined;
                    },
                    callback?: (error: Error | null) => void
                ): boolean;
                /**
                 * If the Node.js process is spawned with an IPC channel (see the `Child Process` and `Cluster` documentation), the `process.disconnect()` method will close the
                 * IPC channel to the parent process, allowing the child process to exit gracefully
                 * once there are no other connections keeping it alive.
                 *
                 * The effect of calling `process.disconnect()` is the same as calling `ChildProcess.disconnect()` from the parent process.
                 *
                 * If the Node.js process was not spawned with an IPC channel,`process.disconnect()` will be `undefined`.
                 * @since v0.7.2
                 */
                disconnect(): void;
                /**
                 * If the Node.js process is spawned with an IPC channel (see the `Child Process` and `Cluster` documentation), the `process.connected` property will return`true` so long as the IPC
                 * channel is connected and will return `false` after`process.disconnect()` is called.
                 *
                 * Once `process.connected` is `false`, it is no longer possible to send messages
                 * over the IPC channel using `process.send()`.
                 * @since v0.7.2
                 */
                connected: boolean;
                /**
                 * The `process.allowedNodeEnvironmentFlags` property is a special,
                 * read-only `Set` of flags allowable within the `NODE_OPTIONS` environment variable.
                 *
                 * `process.allowedNodeEnvironmentFlags` extends `Set`, but overrides`Set.prototype.has` to recognize several different possible flag
                 * representations. `process.allowedNodeEnvironmentFlags.has()` will
                 * return `true` in the following cases:
                 *
                 * * Flags may omit leading single (`-`) or double (`--`) dashes; e.g.,`inspect-brk` for `--inspect-brk`, or `r` for `-r`.
                 * * Flags passed through to V8 (as listed in `--v8-options`) may replace
                 * one or more _non-leading_ dashes for an underscore, or vice-versa;
                 * e.g., `--perf_basic_prof`, `--perf-basic-prof`, `--perf_basic-prof`,
                 * etc.
                 * * Flags may contain one or more equals (`=`) characters; all
                 * characters after and including the first equals will be ignored;
                 * e.g., `--stack-trace-limit=100`.
                 * * Flags _must_ be allowable within `NODE_OPTIONS`.
                 *
                 * When iterating over `process.allowedNodeEnvironmentFlags`, flags will
                 * appear only _once_; each will begin with one or more dashes. Flags
                 * passed through to V8 will contain underscores instead of non-leading
                 * dashes:
                 *
                 * ```js
                 * import { allowedNodeEnvironmentFlags } from 'process';
                 *
                 * allowedNodeEnvironmentFlags.forEach((flag) => {
                 *   // -r
                 *   // --inspect-brk
                 *   // --abort_on_uncaught_exception
                 *   // ...
                 * });
                 * ```
                 *
                 * The methods `add()`, `clear()`, and `delete()` of`process.allowedNodeEnvironmentFlags` do nothing, and will fail
                 * silently.
                 *
                 * If Node.js was compiled _without_ `NODE_OPTIONS` support (shown in {@link config}), `process.allowedNodeEnvironmentFlags` will
                 * contain what _would have_ been allowable.
                 * @since v10.10.0
                 */
                allowedNodeEnvironmentFlags: ReadonlySet<string>;
                /**
                 * `process.report` is an object whose methods are used to generate diagnostic
                 * reports for the current process. Additional documentation is available in the `report documentation`.
                 * @since v11.8.0
                 */
                report?: ProcessReport | undefined;
                /**
                 * ```js
                 * import { resourceUsage } from 'process';
                 *
                 * console.log(resourceUsage());
                 * /*
                 *   Will output:
                 *   {
                 *     userCPUTime: 82872,
                 *     systemCPUTime: 4143,
                 *     maxRSS: 33164,
                 *     sharedMemorySize: 0,
                 *     unsharedDataSize: 0,
                 *     unsharedStackSize: 0,
                 *     minorPageFault: 2469,
                 *     majorPageFault: 0,
                 *     swappedOut: 0,
                 *     fsRead: 0,
                 *     fsWrite: 8,
                 *     ipcSent: 0,
                 *     ipcReceived: 0,
                 *     signalsCount: 0,
                 *     voluntaryContextSwitches: 79,
                 *     involuntaryContextSwitches: 1
                 *   }
                 *
                 * ```
                 * @since v12.6.0
                 * @return the resource usage for the current process. All of these values come from the `uv_getrusage` call which returns a [`uv_rusage_t` struct][uv_rusage_t].
                 */
                resourceUsage(): ResourceUsage;
                /**
                 * The `process.traceDeprecation` property indicates whether the`--trace-deprecation` flag is set on the current Node.js process. See the
                 * documentation for the `'warning' event` and the `emitWarning() method` for more information about this
                 * flag's behavior.
                 * @since v0.8.0
                 */
                traceDeprecation: boolean;
                /* EventEmitter */
                addListener(event: 'beforeExit', listener: BeforeExitListener): this;
                addListener(event: 'disconnect', listener: DisconnectListener): this;
                addListener(event: 'exit', listener: ExitListener): this;
                addListener(event: 'rejectionHandled', listener: RejectionHandledListener): this;
                addListener(event: 'uncaughtException', listener: UncaughtExceptionListener): this;
                addListener(event: 'uncaughtExceptionMonitor', listener: UncaughtExceptionListener): this;
                addListener(event: 'unhandledRejection', listener: UnhandledRejectionListener): this;
                addListener(event: 'warning', listener: WarningListener): this;
                addListener(event: 'message', listener: MessageListener): this;
                addListener(event: Signals, listener: SignalsListener): this;
                addListener(event: 'multipleResolves', listener: MultipleResolveListener): this;
                addListener(event: 'worker', listener: WorkerListener): this;
                emit(event: 'beforeExit', code: number): boolean;
                emit(event: 'disconnect'): boolean;
                emit(event: 'exit', code: number): boolean;
                emit(event: 'rejectionHandled', promise: Promise<unknown>): boolean;
                emit(event: 'uncaughtException', error: Error): boolean;
                emit(event: 'uncaughtExceptionMonitor', error: Error): boolean;
                emit(event: 'unhandledRejection', reason: unknown, promise: Promise<unknown>): boolean;
                emit(event: 'warning', warning: Error): boolean;
                emit(event: 'message', message: unknown, sendHandle: unknown): this;
                emit(event: Signals, signal: Signals): boolean;
                emit(event: 'multipleResolves', type: MultipleResolveType, promise: Promise<unknown>, value: unknown): this;
                emit(event: 'worker', listener: WorkerListener): this;
                on(event: 'beforeExit', listener: BeforeExitListener): this;
                on(event: 'disconnect', listener: DisconnectListener): this;
                on(event: 'exit', listener: ExitListener): this;
                on(event: 'rejectionHandled', listener: RejectionHandledListener): this;
                on(event: 'uncaughtException', listener: UncaughtExceptionListener): this;
                on(event: 'uncaughtExceptionMonitor', listener: UncaughtExceptionListener): this;
                on(event: 'unhandledRejection', listener: UnhandledRejectionListener): this;
                on(event: 'warning', listener: WarningListener): this;
                on(event: 'message', listener: MessageListener): this;
                on(event: Signals, listener: SignalsListener): this;
                on(event: 'multipleResolves', listener: MultipleResolveListener): this;
                on(event: 'worker', listener: WorkerListener): this;
                on(event: string | symbol, listener: (...args: any[]) => void): this;
                once(event: 'beforeExit', listener: BeforeExitListener): this;
                once(event: 'disconnect', listener: DisconnectListener): this;
                once(event: 'exit', listener: ExitListener): this;
                once(event: 'rejectionHandled', listener: RejectionHandledListener): this;
                once(event: 'uncaughtException', listener: UncaughtExceptionListener): this;
                once(event: 'uncaughtExceptionMonitor', listener: UncaughtExceptionListener): this;
                once(event: 'unhandledRejection', listener: UnhandledRejectionListener): this;
                once(event: 'warning', listener: WarningListener): this;
                once(event: 'message', listener: MessageListener): this;
                once(event: Signals, listener: SignalsListener): this;
                once(event: 'multipleResolves', listener: MultipleResolveListener): this;
                once(event: 'worker', listener: WorkerListener): this;
                once(event: string | symbol, listener: (...args: any[]) => void): this;
                prependListener(event: 'beforeExit', listener: BeforeExitListener): this;
                prependListener(event: 'disconnect', listener: DisconnectListener): this;
                prependListener(event: 'exit', listener: ExitListener): this;
                prependListener(event: 'rejectionHandled', listener: RejectionHandledListener): this;
                prependListener(event: 'uncaughtException', listener: UncaughtExceptionListener): this;
                prependListener(event: 'uncaughtExceptionMonitor', listener: UncaughtExceptionListener): this;
                prependListener(event: 'unhandledRejection', listener: UnhandledRejectionListener): this;
                prependListener(event: 'warning', listener: WarningListener): this;
                prependListener(event: 'message', listener: MessageListener): this;
                prependListener(event: Signals, listener: SignalsListener): this;
                prependListener(event: 'multipleResolves', listener: MultipleResolveListener): this;
                prependListener(event: 'worker', listener: WorkerListener): this;
                prependOnceListener(event: 'beforeExit', listener: BeforeExitListener): this;
                prependOnceListener(event: 'disconnect', listener: DisconnectListener): this;
                prependOnceListener(event: 'exit', listener: ExitListener): this;
                prependOnceListener(event: 'rejectionHandled', listener: RejectionHandledListener): this;
                prependOnceListener(event: 'uncaughtException', listener: UncaughtExceptionListener): this;
                prependOnceListener(event: 'uncaughtExceptionMonitor', listener: UncaughtExceptionListener): this;
                prependOnceListener(event: 'unhandledRejection', listener: UnhandledRejectionListener): this;
                prependOnceListener(event: 'warning', listener: WarningListener): this;
                prependOnceListener(event: 'message', listener: MessageListener): this;
                prependOnceListener(event: Signals, listener: SignalsListener): this;
                prependOnceListener(event: 'multipleResolves', listener: MultipleResolveListener): this;
                prependOnceListener(event: 'worker', listener: WorkerListener): this;
                listeners(event: 'beforeExit'): BeforeExitListener[];
                listeners(event: 'disconnect'): DisconnectListener[];
                listeners(event: 'exit'): ExitListener[];
                listeners(event: 'rejectionHandled'): RejectionHandledListener[];
                listeners(event: 'uncaughtException'): UncaughtExceptionListener[];
                listeners(event: 'uncaughtExceptionMonitor'): UncaughtExceptionListener[];
                listeners(event: 'unhandledRejection'): UnhandledRejectionListener[];
                listeners(event: 'warning'): WarningListener[];
                listeners(event: 'message'): MessageListener[];
                listeners(event: Signals): SignalsListener[];
                listeners(event: 'multipleResolves'): MultipleResolveListener[];
                listeners(event: 'worker'): WorkerListener[];
            }
        }
    }
    export = process;
}
declare module 'node:process' {
    import process = require('process');
    export = process;
}