diff --git a/intern.json b/intern.json index d23928b..f55673a 100644 --- a/intern.json +++ b/intern.json @@ -1,7 +1,7 @@ { "capabilities": { "project": "Dojo 2", - "name": "@dojo/widgets", + "name": "@dojo/web-editor", "browserstack.debug": false }, @@ -58,6 +58,7 @@ "coverage": [ "./dev/src/*.js", "./dev/src/support/**/*.js", + "./dev/src/widgets/**/*.js", "!./dev/src/support/worker-proxy.js", "!./dev/src/support/providers/xhr.js" ], diff --git a/package-lock.json b/package-lock.json index 5815691..b1bb713 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2667,13 +2667,15 @@ "dependencies": { "abbrev": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", + "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=", "dev": true, "optional": true }, "ajv": { "version": "4.11.8", - "bundled": true, + "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", + "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", "dev": true, "optional": true, "requires": { @@ -2683,18 +2685,21 @@ }, "ansi-regex": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true }, "aproba": { "version": "1.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.1.tgz", + "integrity": "sha1-ldNgDwdxCqDpKYxyatXs8urLq6s=", "dev": true, "optional": true }, "are-we-there-yet": { "version": "1.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", + "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", "dev": true, "optional": true, "requires": { @@ -2704,42 +2709,49 @@ }, "asn1": { "version": "0.2.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", "dev": true, "optional": true }, "assert-plus": { "version": "0.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", "dev": true, "optional": true }, "asynckit": { "version": "0.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", "dev": true, "optional": true }, "aws-sign2": { "version": "0.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", "dev": true, "optional": true }, "aws4": { "version": "1.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", + "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", "dev": true, "optional": true }, "balanced-match": { "version": "0.4.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", "dev": true }, "bcrypt-pbkdf": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", "dev": true, "optional": true, "requires": { @@ -2748,7 +2760,8 @@ }, "block-stream": { "version": "0.0.9", - "bundled": true, + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", "dev": true, "requires": { "inherits": "2.0.3" @@ -2756,7 +2769,8 @@ }, "boom": { "version": "2.10.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", "dev": true, "requires": { "hoek": "2.16.3" @@ -2764,7 +2778,8 @@ }, "brace-expansion": { "version": "1.1.7", - "bundled": true, + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz", + "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=", "dev": true, "requires": { "balanced-match": "0.4.2", @@ -2773,29 +2788,34 @@ }, "buffer-shims": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", + "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=", "dev": true }, "caseless": { "version": "0.12.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", "dev": true, "optional": true }, "co": { "version": "4.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", "dev": true, "optional": true }, "code-point-at": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true }, "combined-stream": { "version": "1.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", "dev": true, "requires": { "delayed-stream": "1.0.0" @@ -2803,22 +2823,26 @@ }, "concat-map": { "version": "0.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, "console-control-strings": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", "dev": true }, "core-util-is": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, "cryptiles": { "version": "2.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", "dev": true, "requires": { "boom": "2.10.1" @@ -2826,7 +2850,8 @@ }, "dashdash": { "version": "1.14.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "dev": true, "optional": true, "requires": { @@ -2835,7 +2860,8 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "dev": true, "optional": true } @@ -2843,7 +2869,8 @@ }, "debug": { "version": "2.6.8", - "bundled": true, + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", + "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", "dev": true, "optional": true, "requires": { @@ -2852,30 +2879,35 @@ }, "deep-extend": { "version": "0.4.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", + "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=", "dev": true, "optional": true }, "delayed-stream": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", "dev": true }, "delegates": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", "dev": true, "optional": true }, "detect-libc": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.2.tgz", + "integrity": "sha1-ca1dIEvxempsqPRQxhRUBm70YeE=", "dev": true, "optional": true }, "ecc-jsbn": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", "dev": true, "optional": true, "requires": { @@ -2884,24 +2916,28 @@ }, "extend": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", "dev": true, "optional": true }, "extsprintf": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", + "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=", "dev": true }, "forever-agent": { "version": "0.6.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", "dev": true, "optional": true }, "form-data": { "version": "2.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", "dev": true, "optional": true, "requires": { @@ -2912,12 +2948,14 @@ }, "fs.realpath": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, "fstream": { "version": "1.0.11", - "bundled": true, + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", + "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", "dev": true, "requires": { "graceful-fs": "4.1.11", @@ -2928,7 +2966,8 @@ }, "fstream-ignore": { "version": "1.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz", + "integrity": "sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=", "dev": true, "optional": true, "requires": { @@ -2939,7 +2978,8 @@ }, "gauge": { "version": "2.7.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "dev": true, "optional": true, "requires": { @@ -2955,7 +2995,8 @@ }, "getpass": { "version": "0.1.7", - "bundled": true, + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "dev": true, "optional": true, "requires": { @@ -2964,7 +3005,8 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "dev": true, "optional": true } @@ -2972,7 +3014,8 @@ }, "glob": { "version": "7.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { "fs.realpath": "1.0.0", @@ -2985,18 +3028,21 @@ }, "graceful-fs": { "version": "4.1.11", - "bundled": true, + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", "dev": true }, "har-schema": { "version": "1.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", + "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", "dev": true, "optional": true }, "har-validator": { "version": "4.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", + "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", "dev": true, "optional": true, "requires": { @@ -3006,13 +3052,15 @@ }, "has-unicode": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", "dev": true, "optional": true }, "hawk": { "version": "3.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", "dev": true, "requires": { "boom": "2.10.1", @@ -3023,12 +3071,14 @@ }, "hoek": { "version": "2.16.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", "dev": true }, "http-signature": { "version": "1.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", "dev": true, "optional": true, "requires": { @@ -3039,7 +3089,8 @@ }, "inflight": { "version": "1.0.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { "once": "1.4.0", @@ -3048,18 +3099,21 @@ }, "inherits": { "version": "2.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true }, "ini": { "version": "1.3.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", + "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", "dev": true, "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { "number-is-nan": "1.0.1" @@ -3067,24 +3121,28 @@ }, "is-typedarray": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true, "optional": true }, "isarray": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, "isstream": { "version": "0.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", "dev": true, "optional": true }, "jodid25519": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", + "integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc=", "dev": true, "optional": true, "requires": { @@ -3093,19 +3151,22 @@ }, "jsbn": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", "dev": true, "optional": true }, "json-schema": { "version": "0.2.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", "dev": true, "optional": true }, "json-stable-stringify": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", "dev": true, "optional": true, "requires": { @@ -3114,19 +3175,22 @@ }, "json-stringify-safe": { "version": "5.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", "dev": true, "optional": true }, "jsonify": { "version": "0.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", "dev": true, "optional": true }, "jsprim": { "version": "1.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", + "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=", "dev": true, "optional": true, "requires": { @@ -3138,7 +3202,8 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "dev": true, "optional": true } @@ -3146,12 +3211,14 @@ }, "mime-db": { "version": "1.27.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz", + "integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE=", "dev": true }, "mime-types": { "version": "2.1.15", - "bundled": true, + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", + "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=", "dev": true, "requires": { "mime-db": "1.27.0" @@ -3159,7 +3226,8 @@ }, "minimatch": { "version": "3.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { "brace-expansion": "1.1.7" @@ -3167,12 +3235,14 @@ }, "minimist": { "version": "0.0.8", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "dev": true }, "mkdirp": { "version": "0.5.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "dev": true, "requires": { "minimist": "0.0.8" @@ -3180,13 +3250,15 @@ }, "ms": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true, "optional": true }, "node-pre-gyp": { "version": "0.6.39", - "bundled": true, + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz", + "integrity": "sha512-OsJV74qxnvz/AMGgcfZoDaeDXKD3oY3QVIbBmwszTFkRisTSXbMQyn4UWzUMOtA5SVhrBZOTp0wcoSBgfMfMmQ==", "dev": true, "optional": true, "requires": { @@ -3205,7 +3277,8 @@ }, "nopt": { "version": "4.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", "dev": true, "optional": true, "requires": { @@ -3215,7 +3288,8 @@ }, "npmlog": { "version": "4.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.0.tgz", + "integrity": "sha512-ocolIkZYZt8UveuiDS0yAkkIjid1o7lPG8cYm05yNYzBn8ykQtaiPMEGp8fY9tKdDgm8okpdKzkvu1y9hUYugA==", "dev": true, "optional": true, "requires": { @@ -3227,24 +3301,28 @@ }, "number-is-nan": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true }, "oauth-sign": { "version": "0.8.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", "dev": true, "optional": true }, "object-assign": { "version": "4.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true, "optional": true }, "once": { "version": "1.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { "wrappy": "1.0.2" @@ -3252,19 +3330,22 @@ }, "os-homedir": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "dev": true, "optional": true }, "os-tmpdir": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true, "optional": true }, "osenv": { "version": "0.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", + "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", "dev": true, "optional": true, "requires": { @@ -3274,35 +3355,41 @@ }, "path-is-absolute": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, "performance-now": { "version": "0.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", + "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", "dev": true, "optional": true }, "process-nextick-args": { "version": "1.0.7", - "bundled": true, + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", "dev": true }, "punycode": { "version": "1.4.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", "dev": true, "optional": true }, "qs": { "version": "6.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", + "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", "dev": true, "optional": true }, "rc": { "version": "1.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz", + "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=", "dev": true, "optional": true, "requires": { @@ -3314,7 +3401,8 @@ "dependencies": { "minimist": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true, "optional": true } @@ -3322,7 +3410,8 @@ }, "readable-stream": { "version": "2.2.9", - "bundled": true, + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", + "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=", "dev": true, "requires": { "buffer-shims": "1.0.0", @@ -3336,7 +3425,8 @@ }, "request": { "version": "2.81.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", + "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", "dev": true, "optional": true, "requires": { @@ -3366,7 +3456,8 @@ }, "rimraf": { "version": "2.6.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", + "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", "dev": true, "requires": { "glob": "7.1.2" @@ -3374,30 +3465,35 @@ }, "safe-buffer": { "version": "5.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", + "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=", "dev": true }, "semver": { "version": "5.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", "dev": true, "optional": true }, "set-blocking": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true, "optional": true }, "signal-exit": { "version": "3.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true, "optional": true }, "sntp": { "version": "1.0.9", - "bundled": true, + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", "dev": true, "requires": { "hoek": "2.16.3" @@ -3405,7 +3501,8 @@ }, "sshpk": { "version": "1.13.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.0.tgz", + "integrity": "sha1-/yo+T9BEl1Vf7Zezmg/YL6+zozw=", "dev": true, "optional": true, "requires": { @@ -3422,7 +3519,8 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "dev": true, "optional": true } @@ -3430,7 +3528,8 @@ }, "string-width": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { "code-point-at": "1.1.0", @@ -3440,7 +3539,8 @@ }, "string_decoder": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz", + "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=", "dev": true, "requires": { "safe-buffer": "5.0.1" @@ -3448,13 +3548,15 @@ }, "stringstream": { "version": "0.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", "dev": true, "optional": true }, "strip-ansi": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { "ansi-regex": "2.1.1" @@ -3462,13 +3564,15 @@ }, "strip-json-comments": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true, "optional": true }, "tar": { "version": "2.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", "dev": true, "requires": { "block-stream": "0.0.9", @@ -3478,7 +3582,8 @@ }, "tar-pack": { "version": "3.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.4.0.tgz", + "integrity": "sha1-I74tf2cagzk3bL2wuP4/3r8xeYQ=", "dev": true, "optional": true, "requires": { @@ -3494,7 +3599,8 @@ }, "tough-cookie": { "version": "2.3.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", + "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", "dev": true, "optional": true, "requires": { @@ -3503,7 +3609,8 @@ }, "tunnel-agent": { "version": "0.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "dev": true, "optional": true, "requires": { @@ -3512,30 +3619,35 @@ }, "tweetnacl": { "version": "0.14.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", "dev": true, "optional": true }, "uid-number": { "version": "0.0.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", + "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=", "dev": true, "optional": true }, "util-deprecate": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true }, "uuid": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", + "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=", "dev": true, "optional": true }, "verror": { "version": "1.3.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", + "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=", "dev": true, "optional": true, "requires": { @@ -3544,7 +3656,8 @@ }, "wide-align": { "version": "1.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", + "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", "dev": true, "optional": true, "requires": { @@ -3553,7 +3666,8 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true } } diff --git a/package.json b/package.json index 5b62a23..a106e4a 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,7 @@ "@dojo/i18n": "~0.2.0", "@dojo/interfaces": "~0.1.0", "@dojo/test-extras": "~0.2.1", + "@types/chai": "4.0.6", "@types/glob": "^5.0.33", "@types/grunt": "^0.4.22", "@types/jsdom": "^11.0.2", diff --git a/projects/live-editor.project.json b/projects/live-editor.project.json new file mode 100644 index 0000000..536d37f --- /dev/null +++ b/projects/live-editor.project.json @@ -0,0 +1,1289 @@ +{ + "dependencies": { + "production": { + "@dojo/core": "~0.2.1", + "@dojo/has": "~0.1.0", + "@dojo/routing": "~0.2.0", + "@dojo/shim": "~0.2.2", + "@dojo/stores": "~0.1.0", + "@dojo/widget-core": "~0.3.0", + "@dojo/widgets": "~0.2.2", + "@dojo/i18n": "~0.2.0", + "intersection-observer": "^0.4.2", + "pepjs": "^0.4.2", + "tslib": "^1.7.1", + "web-animations-js": "^2.3.1", + "globalize": "1.3.0", + "cldrjs": "^0.4.6" + }, + "development": { + "@dojo/cli-export-project": "~0.1.0", + "@dojo/interfaces": "~0.1.0", + "@dojo/loader": "~0.1.1", + "@types/node": "^6.0.46", + "typescript": "~2.4.1", + "chalk": "^1.1.3", + "glob": "^7.1.1", + "pkg-dir": "^1.0.0", + "resolve-cwd": "^1.0.0", + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0", + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0", + "find-up": "^1.0.0", + "resolve-from": "^2.0.0", + "ansi-regex": "^2.0.0", + "wrappy": "1", + "brace-expansion": "^1.1.7", + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0", + "balanced-match": "^1.0.0", + "concat-map": "0.0.1", + "pinkie": "^2.0.0" + } + }, + "environmentFiles": [ + { + "name": "lib.es5.d.ts", + "text": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved. \nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0 \n \nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, \nMERCHANTABLITY OR NON-INFRINGEMENT. \n \nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// \n\n\n/////////////////////////////\n/// ECMAScript APIs\n/////////////////////////////\n\ndeclare const NaN: number;\ndeclare const Infinity: number;\n\n/**\n * Evaluates JavaScript code and executes it.\n * @param x A String value that contains valid JavaScript code.\n */\ndeclare function eval(x: string): any;\n\n/**\n * Converts A string to an integer.\n * @param s A string to convert into a number.\n * @param radix A value between 2 and 36 that specifies the base of the number in numString.\n * If this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\n * All other strings are considered decimal.\n */\ndeclare function parseInt(s: string, radix?: number): number;\n\n/**\n * Converts a string to a floating-point number.\n * @param string A string that contains a floating-point number.\n */\ndeclare function parseFloat(string: string): number;\n\n/**\n * Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).\n * @param number A numeric value.\n */\ndeclare function isNaN(number: number): boolean;\n\n/**\n * Determines whether a supplied number is finite.\n * @param number Any numeric value.\n */\ndeclare function isFinite(number: number): boolean;\n\n/**\n * Gets the unencoded version of an encoded Uniform Resource Identifier (URI).\n * @param encodedURI A value representing an encoded URI.\n */\ndeclare function decodeURI(encodedURI: string): string;\n\n/**\n * Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).\n * @param encodedURIComponent A value representing an encoded URI component.\n */\ndeclare function decodeURIComponent(encodedURIComponent: string): string;\n\n/**\n * Encodes a text string as a valid Uniform Resource Identifier (URI)\n * @param uri A value representing an encoded URI.\n */\ndeclare function encodeURI(uri: string): string;\n\n/**\n * Encodes a text string as a valid component of a Uniform Resource Identifier (URI).\n * @param uriComponent A value representing an encoded URI component.\n */\ndeclare function encodeURIComponent(uriComponent: string): string;\n\ninterface PropertyDescriptor {\n configurable?: boolean;\n enumerable?: boolean;\n value?: any;\n writable?: boolean;\n get?(): any;\n set?(v: any): void;\n}\n\ninterface PropertyDescriptorMap {\n [s: string]: PropertyDescriptor;\n}\n\ninterface Object {\n /** The initial value of Object.prototype.constructor is the standard built-in Object constructor. */\n constructor: Function;\n\n /** Returns a string representation of an object. */\n toString(): string;\n\n /** Returns a date converted to a string using the current locale. */\n toLocaleString(): string;\n\n /** Returns the primitive value of the specified object. */\n valueOf(): Object;\n\n /**\n * Determines whether an object has a property with the specified name.\n * @param v A property name.\n */\n hasOwnProperty(v: string): boolean;\n\n /**\n * Determines whether an object exists in another object's prototype chain.\n * @param v Another object whose prototype chain is to be checked.\n */\n isPrototypeOf(v: Object): boolean;\n\n /**\n * Determines whether a specified property is enumerable.\n * @param v A property name.\n */\n propertyIsEnumerable(v: string): boolean;\n}\n\ninterface ObjectConstructor {\n new(value?: any): Object;\n (): any;\n (value: any): any;\n\n /** A reference to the prototype for a class of objects. */\n readonly prototype: Object;\n\n /**\n * Returns the prototype of an object.\n * @param o The object that references the prototype.\n */\n getPrototypeOf(o: any): any;\n\n /**\n * Gets the own property descriptor of the specified object.\n * An own property descriptor is one that is defined directly on the object and is not inherited from the object's prototype.\n * @param o Object that contains the property.\n * @param p Name of the property.\n */\n getOwnPropertyDescriptor(o: any, p: string): PropertyDescriptor;\n\n /**\n * Returns the names of the own properties of an object. The own properties of an object are those that are defined directly\n * on that object, and are not inherited from the object's prototype. The properties of an object include both fields (objects) and functions.\n * @param o Object that contains the own properties.\n */\n getOwnPropertyNames(o: any): string[];\n\n /**\n * Creates an object that has the specified prototype or that has null prototype.\n * @param o Object to use as a prototype. May be null.\n */\n create(o: object | null): any;\n\n /**\n * Creates an object that has the specified prototype, and that optionally contains specified properties.\n * @param o Object to use as a prototype. May be null\n * @param properties JavaScript object that contains one or more property descriptors.\n */\n create(o: object | null, properties: PropertyDescriptorMap & ThisType): any;\n\n /**\n * Adds a property to an object, or modifies attributes of an existing property.\n * @param o Object on which to add or modify the property. This can be a native JavaScript object (that is, a user-defined object or a built in object) or a DOM object.\n * @param p The property name.\n * @param attributes Descriptor for the property. It can be for a data property or an accessor property.\n */\n defineProperty(o: any, p: string, attributes: PropertyDescriptor & ThisType): any;\n\n /**\n * Adds one or more properties to an object, and/or modifies attributes of existing properties.\n * @param o Object on which to add or modify the properties. This can be a native JavaScript object or a DOM object.\n * @param properties JavaScript object that contains one or more descriptor objects. Each descriptor object describes a data property or an accessor property.\n */\n defineProperties(o: any, properties: PropertyDescriptorMap & ThisType): any;\n\n /**\n * Prevents the modification of attributes of existing properties, and prevents the addition of new properties.\n * @param o Object on which to lock the attributes.\n */\n seal(o: T): T;\n\n /**\n * Prevents the modification of existing property attributes and values, and prevents the addition of new properties.\n * @param o Object on which to lock the attributes.\n */\n freeze(a: T[]): ReadonlyArray;\n\n /**\n * Prevents the modification of existing property attributes and values, and prevents the addition of new properties.\n * @param o Object on which to lock the attributes.\n */\n freeze(f: T): T;\n\n /**\n * Prevents the modification of existing property attributes and values, and prevents the addition of new properties.\n * @param o Object on which to lock the attributes.\n */\n freeze(o: T): Readonly;\n\n /**\n * Prevents the addition of new properties to an object.\n * @param o Object to make non-extensible.\n */\n preventExtensions(o: T): T;\n\n /**\n * Returns true if existing property attributes cannot be modified in an object and new properties cannot be added to the object.\n * @param o Object to test.\n */\n isSealed(o: any): boolean;\n\n /**\n * Returns true if existing property attributes and values cannot be modified in an object, and new properties cannot be added to the object.\n * @param o Object to test.\n */\n isFrozen(o: any): boolean;\n\n /**\n * Returns a value that indicates whether new properties can be added to an object.\n * @param o Object to test.\n */\n isExtensible(o: any): boolean;\n\n /**\n * Returns the names of the enumerable properties and methods of an object.\n * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.\n */\n keys(o: any): string[];\n}\n\n/**\n * Provides functionality common to all JavaScript objects.\n */\ndeclare const Object: ObjectConstructor;\n\n/**\n * Creates a new function.\n */\ninterface Function {\n /**\n * Calls the function, substituting the specified object for the this value of the function, and the specified array for the arguments of the function.\n * @param thisArg The object to be used as the this object.\n * @param argArray A set of arguments to be passed to the function.\n */\n apply(this: Function, thisArg: any, argArray?: any): any;\n\n /**\n * Calls a method of an object, substituting another object for the current object.\n * @param thisArg The object to be used as the current object.\n * @param argArray A list of arguments to be passed to the method.\n */\n call(this: Function, thisArg: any, ...argArray: any[]): any;\n\n /**\n * For a given function, creates a bound function that has the same body as the original function.\n * The this object of the bound function is associated with the specified object, and has the specified initial parameters.\n * @param thisArg An object to which the this keyword can refer inside the new function.\n * @param argArray A list of arguments to be passed to the new function.\n */\n bind(this: Function, thisArg: any, ...argArray: any[]): any;\n\n /** Returns a string representation of a function. */\n toString(): string;\n\n prototype: any;\n readonly length: number;\n\n // Non-standard extensions\n arguments: any;\n caller: Function;\n}\n\ninterface FunctionConstructor {\n /**\n * Creates a new function.\n * @param args A list of arguments the function accepts.\n */\n new(...args: string[]): Function;\n (...args: string[]): Function;\n readonly prototype: Function;\n}\n\ndeclare const Function: FunctionConstructor;\n\ninterface IArguments {\n [index: number]: any;\n length: number;\n callee: Function;\n}\n\ninterface String {\n /** Returns a string representation of a string. */\n toString(): string;\n\n /**\n * Returns the character at the specified index.\n * @param pos The zero-based index of the desired character.\n */\n charAt(pos: number): string;\n\n /**\n * Returns the Unicode value of the character at the specified location.\n * @param index The zero-based index of the desired character. If there is no character at the specified index, NaN is returned.\n */\n charCodeAt(index: number): number;\n\n /**\n * Returns a string that contains the concatenation of two or more strings.\n * @param strings The strings to append to the end of the string.\n */\n concat(...strings: string[]): string;\n\n /**\n * Returns the position of the first occurrence of a substring.\n * @param searchString The substring to search for in the string\n * @param position The index at which to begin searching the String object. If omitted, search starts at the beginning of the string.\n */\n indexOf(searchString: string, position?: number): number;\n\n /**\n * Returns the last occurrence of a substring in the string.\n * @param searchString The substring to search for.\n * @param position The index at which to begin searching. If omitted, the search begins at the end of the string.\n */\n lastIndexOf(searchString: string, position?: number): number;\n\n /**\n * Determines whether two strings are equivalent in the current locale.\n * @param that String to compare to target string\n */\n localeCompare(that: string): number;\n\n /**\n * Matches a string with a regular expression, and returns an array containing the results of that search.\n * @param regexp A variable name or string literal containing the regular expression pattern and flags.\n */\n match(regexp: string | RegExp): RegExpMatchArray | null;\n\n /**\n * Replaces text in a string, using a regular expression or search string.\n * @param searchValue A string to search for.\n * @param replaceValue A string containing the text to replace for every successful match of searchValue in this string.\n */\n replace(searchValue: string | RegExp, replaceValue: string): string;\n\n /**\n * Replaces text in a string, using a regular expression or search string.\n * @param searchValue A string to search for.\n * @param replacer A function that returns the replacement text.\n */\n replace(searchValue: string | RegExp, replacer: (substring: string, ...args: any[]) => string): string;\n\n /**\n * Finds the first substring match in a regular expression search.\n * @param regexp The regular expression pattern and applicable flags.\n */\n search(regexp: string | RegExp): number;\n\n /**\n * Returns a section of a string.\n * @param start The index to the beginning of the specified portion of stringObj.\n * @param end The index to the end of the specified portion of stringObj. The substring includes the characters up to, but not including, the character indicated by end.\n * If this value is not specified, the substring continues to the end of stringObj.\n */\n slice(start?: number, end?: number): string;\n\n /**\n * Split a string into substrings using the specified separator and return them as an array.\n * @param separator A string that identifies character or characters to use in separating the string. If omitted, a single-element array containing the entire string is returned.\n * @param limit A value used to limit the number of elements returned in the array.\n */\n split(separator: string | RegExp, limit?: number): string[];\n\n /**\n * Returns the substring at the specified location within a String object.\n * @param start The zero-based index number indicating the beginning of the substring.\n * @param end Zero-based index number indicating the end of the substring. The substring includes the characters up to, but not including, the character indicated by end.\n * If end is omitted, the characters from start through the end of the original string are returned.\n */\n substring(start: number, end?: number): string;\n\n /** Converts all the alphabetic characters in a string to lowercase. */\n toLowerCase(): string;\n\n /** Converts all alphabetic characters to lowercase, taking into account the host environment's current locale. */\n toLocaleLowerCase(): string;\n\n /** Converts all the alphabetic characters in a string to uppercase. */\n toUpperCase(): string;\n\n /** Returns a string where all alphabetic characters have been converted to uppercase, taking into account the host environment's current locale. */\n toLocaleUpperCase(): string;\n\n /** Removes the leading and trailing white space and line terminator characters from a string. */\n trim(): string;\n\n /** Returns the length of a String object. */\n readonly length: number;\n\n // IE extensions\n /**\n * Gets a substring beginning at the specified location and having the specified length.\n * @param from The starting position of the desired substring. The index of the first character in the string is zero.\n * @param length The number of characters to include in the returned substring.\n */\n substr(from: number, length?: number): string;\n\n /** Returns the primitive value of the specified object. */\n valueOf(): string;\n\n readonly [index: number]: string;\n}\n\ninterface StringConstructor {\n new(value?: any): String;\n (value?: any): string;\n readonly prototype: String;\n fromCharCode(...codes: number[]): string;\n}\n\n/**\n * Allows manipulation and formatting of text strings and determination and location of substrings within strings.\n */\ndeclare const String: StringConstructor;\n\ninterface Boolean {\n /** Returns the primitive value of the specified object. */\n valueOf(): boolean;\n}\n\ninterface BooleanConstructor {\n new(value?: any): Boolean;\n (value?: any): boolean;\n readonly prototype: Boolean;\n}\n\ndeclare const Boolean: BooleanConstructor;\n\ninterface Number {\n /**\n * Returns a string representation of an object.\n * @param radix Specifies a radix for converting numeric values to strings. This value is only used for numbers.\n */\n toString(radix?: number): string;\n\n /**\n * Returns a string representing a number in fixed-point notation.\n * @param fractionDigits Number of digits after the decimal point. Must be in the range 0 - 20, inclusive.\n */\n toFixed(fractionDigits?: number): string;\n\n /**\n * Returns a string containing a number represented in exponential notation.\n * @param fractionDigits Number of digits after the decimal point. Must be in the range 0 - 20, inclusive.\n */\n toExponential(fractionDigits?: number): string;\n\n /**\n * Returns a string containing a number represented either in exponential or fixed-point notation with a specified number of digits.\n * @param precision Number of significant digits. Must be in the range 1 - 21, inclusive.\n */\n toPrecision(precision?: number): string;\n\n /** Returns the primitive value of the specified object. */\n valueOf(): number;\n}\n\ninterface NumberConstructor {\n new(value?: any): Number;\n (value?: any): number;\n readonly prototype: Number;\n\n /** The largest number that can be represented in JavaScript. Equal to approximately 1.79E+308. */\n readonly MAX_VALUE: number;\n\n /** The closest number to zero that can be represented in JavaScript. Equal to approximately 5.00E-324. */\n readonly MIN_VALUE: number;\n\n /**\n * A value that is not a number.\n * In equality comparisons, NaN does not equal any value, including itself. To test whether a value is equivalent to NaN, use the isNaN function.\n */\n readonly NaN: number;\n\n /**\n * A value that is less than the largest negative number that can be represented in JavaScript.\n * JavaScript displays NEGATIVE_INFINITY values as -infinity.\n */\n readonly NEGATIVE_INFINITY: number;\n\n /**\n * A value greater than the largest number that can be represented in JavaScript.\n * JavaScript displays POSITIVE_INFINITY values as infinity.\n */\n readonly POSITIVE_INFINITY: number;\n}\n\n/** An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers. */\ndeclare const Number: NumberConstructor;\n\ninterface TemplateStringsArray extends ReadonlyArray {\n readonly raw: ReadonlyArray;\n}\n\ninterface Math {\n /** The mathematical constant e. This is Euler's number, the base of natural logarithms. */\n readonly E: number;\n /** The natural logarithm of 10. */\n readonly LN10: number;\n /** The natural logarithm of 2. */\n readonly LN2: number;\n /** The base-2 logarithm of e. */\n readonly LOG2E: number;\n /** The base-10 logarithm of e. */\n readonly LOG10E: number;\n /** Pi. This is the ratio of the circumference of a circle to its diameter. */\n readonly PI: number;\n /** The square root of 0.5, or, equivalently, one divided by the square root of 2. */\n readonly SQRT1_2: number;\n /** The square root of 2. */\n readonly SQRT2: number;\n /**\n * Returns the absolute value of a number (the value without regard to whether it is positive or negative).\n * For example, the absolute value of -5 is the same as the absolute value of 5.\n * @param x A numeric expression for which the absolute value is needed.\n */\n abs(x: number): number;\n /**\n * Returns the arc cosine (or inverse cosine) of a number.\n * @param x A numeric expression.\n */\n acos(x: number): number;\n /**\n * Returns the arcsine of a number.\n * @param x A numeric expression.\n */\n asin(x: number): number;\n /**\n * Returns the arctangent of a number.\n * @param x A numeric expression for which the arctangent is needed.\n */\n atan(x: number): number;\n /**\n * Returns the angle (in radians) from the X axis to a point.\n * @param y A numeric expression representing the cartesian y-coordinate.\n * @param x A numeric expression representing the cartesian x-coordinate.\n */\n atan2(y: number, x: number): number;\n /**\n * Returns the smallest number greater than or equal to its numeric argument.\n * @param x A numeric expression.\n */\n ceil(x: number): number;\n /**\n * Returns the cosine of a number.\n * @param x A numeric expression that contains an angle measured in radians.\n */\n cos(x: number): number;\n /**\n * Returns e (the base of natural logarithms) raised to a power.\n * @param x A numeric expression representing the power of e.\n */\n exp(x: number): number;\n /**\n * Returns the greatest number less than or equal to its numeric argument.\n * @param x A numeric expression.\n */\n floor(x: number): number;\n /**\n * Returns the natural logarithm (base e) of a number.\n * @param x A numeric expression.\n */\n log(x: number): number;\n /**\n * Returns the larger of a set of supplied numeric expressions.\n * @param values Numeric expressions to be evaluated.\n */\n max(...values: number[]): number;\n /**\n * Returns the smaller of a set of supplied numeric expressions.\n * @param values Numeric expressions to be evaluated.\n */\n min(...values: number[]): number;\n /**\n * Returns the value of a base expression taken to a specified power.\n * @param x The base value of the expression.\n * @param y The exponent value of the expression.\n */\n pow(x: number, y: number): number;\n /** Returns a pseudorandom number between 0 and 1. */\n random(): number;\n /**\n * Returns a supplied numeric expression rounded to the nearest number.\n * @param x The value to be rounded to the nearest number.\n */\n round(x: number): number;\n /**\n * Returns the sine of a number.\n * @param x A numeric expression that contains an angle measured in radians.\n */\n sin(x: number): number;\n /**\n * Returns the square root of a number.\n * @param x A numeric expression.\n */\n sqrt(x: number): number;\n /**\n * Returns the tangent of a number.\n * @param x A numeric expression that contains an angle measured in radians.\n */\n tan(x: number): number;\n}\n/** An intrinsic object that provides basic mathematics functionality and constants. */\ndeclare const Math: Math;\n\n/** Enables basic storage and retrieval of dates and times. */\ninterface Date {\n /** Returns a string representation of a date. The format of the string depends on the locale. */\n toString(): string;\n /** Returns a date as a string value. */\n toDateString(): string;\n /** Returns a time as a string value. */\n toTimeString(): string;\n /** Returns a value as a string value appropriate to the host environment's current locale. */\n toLocaleString(): string;\n /** Returns a date as a string value appropriate to the host environment's current locale. */\n toLocaleDateString(): string;\n /** Returns a time as a string value appropriate to the host environment's current locale. */\n toLocaleTimeString(): string;\n /** Returns the stored time value in milliseconds since midnight, January 1, 1970 UTC. */\n valueOf(): number;\n /** Gets the time value in milliseconds. */\n getTime(): number;\n /** Gets the year, using local time. */\n getFullYear(): number;\n /** Gets the year using Universal Coordinated Time (UTC). */\n getUTCFullYear(): number;\n /** Gets the month, using local time. */\n getMonth(): number;\n /** Gets the month of a Date object using Universal Coordinated Time (UTC). */\n getUTCMonth(): number;\n /** Gets the day-of-the-month, using local time. */\n getDate(): number;\n /** Gets the day-of-the-month, using Universal Coordinated Time (UTC). */\n getUTCDate(): number;\n /** Gets the day of the week, using local time. */\n getDay(): number;\n /** Gets the day of the week using Universal Coordinated Time (UTC). */\n getUTCDay(): number;\n /** Gets the hours in a date, using local time. */\n getHours(): number;\n /** Gets the hours value in a Date object using Universal Coordinated Time (UTC). */\n getUTCHours(): number;\n /** Gets the minutes of a Date object, using local time. */\n getMinutes(): number;\n /** Gets the minutes of a Date object using Universal Coordinated Time (UTC). */\n getUTCMinutes(): number;\n /** Gets the seconds of a Date object, using local time. */\n getSeconds(): number;\n /** Gets the seconds of a Date object using Universal Coordinated Time (UTC). */\n getUTCSeconds(): number;\n /** Gets the milliseconds of a Date, using local time. */\n getMilliseconds(): number;\n /** Gets the milliseconds of a Date object using Universal Coordinated Time (UTC). */\n getUTCMilliseconds(): number;\n /** Gets the difference in minutes between the time on the local computer and Universal Coordinated Time (UTC). */\n getTimezoneOffset(): number;\n /**\n * Sets the date and time value in the Date object.\n * @param time A numeric value representing the number of elapsed milliseconds since midnight, January 1, 1970 GMT.\n */\n setTime(time: number): number;\n /**\n * Sets the milliseconds value in the Date object using local time.\n * @param ms A numeric value equal to the millisecond value.\n */\n setMilliseconds(ms: number): number;\n /**\n * Sets the milliseconds value in the Date object using Universal Coordinated Time (UTC).\n * @param ms A numeric value equal to the millisecond value.\n */\n setUTCMilliseconds(ms: number): number;\n\n /**\n * Sets the seconds value in the Date object using local time.\n * @param sec A numeric value equal to the seconds value.\n * @param ms A numeric value equal to the milliseconds value.\n */\n setSeconds(sec: number, ms?: number): number;\n /**\n * Sets the seconds value in the Date object using Universal Coordinated Time (UTC).\n * @param sec A numeric value equal to the seconds value.\n * @param ms A numeric value equal to the milliseconds value.\n */\n setUTCSeconds(sec: number, ms?: number): number;\n /**\n * Sets the minutes value in the Date object using local time.\n * @param min A numeric value equal to the minutes value.\n * @param sec A numeric value equal to the seconds value.\n * @param ms A numeric value equal to the milliseconds value.\n */\n setMinutes(min: number, sec?: number, ms?: number): number;\n /**\n * Sets the minutes value in the Date object using Universal Coordinated Time (UTC).\n * @param min A numeric value equal to the minutes value.\n * @param sec A numeric value equal to the seconds value.\n * @param ms A numeric value equal to the milliseconds value.\n */\n setUTCMinutes(min: number, sec?: number, ms?: number): number;\n /**\n * Sets the hour value in the Date object using local time.\n * @param hours A numeric value equal to the hours value.\n * @param min A numeric value equal to the minutes value.\n * @param sec A numeric value equal to the seconds value.\n * @param ms A numeric value equal to the milliseconds value.\n */\n setHours(hours: number, min?: number, sec?: number, ms?: number): number;\n /**\n * Sets the hours value in the Date object using Universal Coordinated Time (UTC).\n * @param hours A numeric value equal to the hours value.\n * @param min A numeric value equal to the minutes value.\n * @param sec A numeric value equal to the seconds value.\n * @param ms A numeric value equal to the milliseconds value.\n */\n setUTCHours(hours: number, min?: number, sec?: number, ms?: number): number;\n /**\n * Sets the numeric day-of-the-month value of the Date object using local time.\n * @param date A numeric value equal to the day of the month.\n */\n setDate(date: number): number;\n /**\n * Sets the numeric day of the month in the Date object using Universal Coordinated Time (UTC).\n * @param date A numeric value equal to the day of the month.\n */\n setUTCDate(date: number): number;\n /**\n * Sets the month value in the Date object using local time.\n * @param month A numeric value equal to the month. The value for January is 0, and other month values follow consecutively.\n * @param date A numeric value representing the day of the month. If this value is not supplied, the value from a call to the getDate method is used.\n */\n setMonth(month: number, date?: number): number;\n /**\n * Sets the month value in the Date object using Universal Coordinated Time (UTC).\n * @param month A numeric value equal to the month. The value for January is 0, and other month values follow consecutively.\n * @param date A numeric value representing the day of the month. If it is not supplied, the value from a call to the getUTCDate method is used.\n */\n setUTCMonth(month: number, date?: number): number;\n /**\n * Sets the year of the Date object using local time.\n * @param year A numeric value for the year.\n * @param month A zero-based numeric value for the month (0 for January, 11 for December). Must be specified if numDate is specified.\n * @param date A numeric value equal for the day of the month.\n */\n setFullYear(year: number, month?: number, date?: number): number;\n /**\n * Sets the year value in the Date object using Universal Coordinated Time (UTC).\n * @param year A numeric value equal to the year.\n * @param month A numeric value equal to the month. The value for January is 0, and other month values follow consecutively. Must be supplied if numDate is supplied.\n * @param date A numeric value equal to the day of the month.\n */\n setUTCFullYear(year: number, month?: number, date?: number): number;\n /** Returns a date converted to a string using Universal Coordinated Time (UTC). */\n toUTCString(): string;\n /** Returns a date as a string value in ISO format. */\n toISOString(): string;\n /** Used by the JSON.stringify method to enable the transformation of an object's data for JavaScript Object Notation (JSON) serialization. */\n toJSON(key?: any): string;\n}\n\ninterface DateConstructor {\n new(): Date;\n new(value: number): Date;\n new(value: string): Date;\n new(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date;\n (): string;\n readonly prototype: Date;\n /**\n * Parses a string containing a date, and returns the number of milliseconds between that date and midnight, January 1, 1970.\n * @param s A date string\n */\n parse(s: string): number;\n /**\n * Returns the number of milliseconds between midnight, January 1, 1970 Universal Coordinated Time (UTC) (or GMT) and the specified date.\n * @param year The full year designation is required for cross-century date accuracy. If year is between 0 and 99 is used, then year is assumed to be 1900 + year.\n * @param month The month as an number between 0 and 11 (January to December).\n * @param date The date as an number between 1 and 31.\n * @param hours Must be supplied if minutes is supplied. An number from 0 to 23 (midnight to 11pm) that specifies the hour.\n * @param minutes Must be supplied if seconds is supplied. An number from 0 to 59 that specifies the minutes.\n * @param seconds Must be supplied if milliseconds is supplied. An number from 0 to 59 that specifies the seconds.\n * @param ms An number from 0 to 999 that specifies the milliseconds.\n */\n UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number;\n now(): number;\n}\n\ndeclare const Date: DateConstructor;\n\ninterface RegExpMatchArray extends Array {\n index?: number;\n input?: string;\n}\n\ninterface RegExpExecArray extends Array {\n index: number;\n input: string;\n}\n\ninterface RegExp {\n /**\n * Executes a search on a string using a regular expression pattern, and returns an array containing the results of that search.\n * @param string The String object or string literal on which to perform the search.\n */\n exec(string: string): RegExpExecArray | null;\n\n /**\n * Returns a Boolean value that indicates whether or not a pattern exists in a searched string.\n * @param string String on which to perform the search.\n */\n test(string: string): boolean;\n\n /** Returns a copy of the text of the regular expression pattern. Read-only. The regExp argument is a Regular expression object. It can be a variable name or a literal. */\n readonly source: string;\n\n /** Returns a Boolean value indicating the state of the global flag (g) used with a regular expression. Default is false. Read-only. */\n readonly global: boolean;\n\n /** Returns a Boolean value indicating the state of the ignoreCase flag (i) used with a regular expression. Default is false. Read-only. */\n readonly ignoreCase: boolean;\n\n /** Returns a Boolean value indicating the state of the multiline flag (m) used with a regular expression. Default is false. Read-only. */\n readonly multiline: boolean;\n\n lastIndex: number;\n\n // Non-standard extensions\n compile(): this;\n}\n\ninterface RegExpConstructor {\n new(pattern: RegExp | string): RegExp;\n new(pattern: string, flags?: string): RegExp;\n (pattern: RegExp | string): RegExp;\n (pattern: string, flags?: string): RegExp;\n readonly prototype: RegExp;\n\n // Non-standard extensions\n $1: string;\n $2: string;\n $3: string;\n $4: string;\n $5: string;\n $6: string;\n $7: string;\n $8: string;\n $9: string;\n lastMatch: string;\n}\n\ndeclare const RegExp: RegExpConstructor;\n\ninterface Error {\n name: string;\n message: string;\n stack?: string;\n}\n\ninterface ErrorConstructor {\n new(message?: string): Error;\n (message?: string): Error;\n readonly prototype: Error;\n}\n\ndeclare const Error: ErrorConstructor;\n\ninterface EvalError extends Error {\n}\n\ninterface EvalErrorConstructor {\n new(message?: string): EvalError;\n (message?: string): EvalError;\n readonly prototype: EvalError;\n}\n\ndeclare const EvalError: EvalErrorConstructor;\n\ninterface RangeError extends Error {\n}\n\ninterface RangeErrorConstructor {\n new(message?: string): RangeError;\n (message?: string): RangeError;\n readonly prototype: RangeError;\n}\n\ndeclare const RangeError: RangeErrorConstructor;\n\ninterface ReferenceError extends Error {\n}\n\ninterface ReferenceErrorConstructor {\n new(message?: string): ReferenceError;\n (message?: string): ReferenceError;\n readonly prototype: ReferenceError;\n}\n\ndeclare const ReferenceError: ReferenceErrorConstructor;\n\ninterface SyntaxError extends Error {\n}\n\ninterface SyntaxErrorConstructor {\n new(message?: string): SyntaxError;\n (message?: string): SyntaxError;\n readonly prototype: SyntaxError;\n}\n\ndeclare const SyntaxError: SyntaxErrorConstructor;\n\ninterface TypeError extends Error {\n}\n\ninterface TypeErrorConstructor {\n new(message?: string): TypeError;\n (message?: string): TypeError;\n readonly prototype: TypeError;\n}\n\ndeclare const TypeError: TypeErrorConstructor;\n\ninterface URIError extends Error {\n}\n\ninterface URIErrorConstructor {\n new(message?: string): URIError;\n (message?: string): URIError;\n readonly prototype: URIError;\n}\n\ndeclare const URIError: URIErrorConstructor;\n\ninterface JSON {\n /**\n * Converts a JavaScript Object Notation (JSON) string into an object.\n * @param text A valid JSON string.\n * @param reviver A function that transforms the results. This function is called for each member of the object.\n * If a member contains nested objects, the nested objects are transformed before the parent object is.\n */\n parse(text: string, reviver?: (key: any, value: any) => any): any;\n /**\n * Converts a JavaScript value to a JavaScript Object Notation (JSON) string.\n * @param value A JavaScript value, usually an object or array, to be converted.\n * @param replacer A function that transforms the results.\n * @param space Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read.\n */\n stringify(value: any, replacer?: (key: string, value: any) => any, space?: string | number): string;\n /**\n * Converts a JavaScript value to a JavaScript Object Notation (JSON) string.\n * @param value A JavaScript value, usually an object or array, to be converted.\n * @param replacer An array of strings and numbers that acts as a approved list for selecting the object properties that will be stringified.\n * @param space Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read.\n */\n stringify(value: any, replacer?: (number | string)[] | null, space?: string | number): string;\n}\n\n/**\n * An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.\n */\ndeclare const JSON: JSON;\n\n\n/////////////////////////////\n/// ECMAScript Array API (specially handled by compiler)\n/////////////////////////////\n\ninterface ReadonlyArray {\n /**\n * Gets the length of the array. This is a number one higher than the highest element defined in an array.\n */\n readonly length: number;\n /**\n * Returns a string representation of an array.\n */\n toString(): string;\n /**\n * Returns a string representation of an array. The elements are converted to string using thier toLocalString methods.\n */\n toLocaleString(): string;\n /**\n * Combines two or more arrays.\n * @param items Additional items to add to the end of array1.\n */\n concat(...items: T[][]): T[];\n /**\n * Combines two or more arrays.\n * @param items Additional items to add to the end of array1.\n */\n concat(...items: (T | T[])[]): T[];\n /**\n * Adds all the elements of an array separated by the specified separator string.\n * @param separator A string used to separate one element of an array from the next in the resulting String. If omitted, the array elements are separated with a comma.\n */\n join(separator?: string): string;\n /**\n * Returns a section of an array.\n * @param start The beginning of the specified portion of the array.\n * @param end The end of the specified portion of the array.\n */\n slice(start?: number, end?: number): T[];\n /**\n * Returns the index of the first occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at index 0.\n */\n indexOf(searchElement: T, fromIndex?: number): number;\n /**\n * Returns the index of the last occurrence of a specified value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at the last index in the array.\n */\n lastIndexOf(searchElement: T, fromIndex?: number): number;\n /**\n * Determines whether all the members of an array satisfy the specified test.\n * @param callbackfn A function that accepts up to three arguments. The every method calls the callbackfn function for each element in array1 until the callbackfn returns false, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\n */\n every(callbackfn: (value: T, index: number, array: ReadonlyArray) => boolean, thisArg?: any): boolean;\n /**\n * Determines whether the specified callback function returns true for any element of an array.\n * @param callbackfn A function that accepts up to three arguments. The some method calls the callbackfn function for each element in array1 until the callbackfn returns true, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\n */\n some(callbackfn: (value: T, index: number, array: ReadonlyArray) => boolean, thisArg?: any): boolean;\n /**\n * Performs the specified action for each element in an array.\n * @param callbackfn A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\n */\n forEach(callbackfn: (value: T, index: number, array: ReadonlyArray) => void, thisArg?: any): void;\n /**\n * Calls a defined callback function on each element of an array, and returns an array that contains the results.\n * @param callbackfn A function that accepts up to three arguments. The map method calls the callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\n */\n map(callbackfn: (value: T, index: number, array: ReadonlyArray) => U, thisArg?: any): U[];\n /**\n * Returns the elements of an array that meet the condition specified in a callback function.\n * @param callbackfn A function that accepts up to three arguments. The filter method calls the callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\n */\n filter(callbackfn: (value: T, index: number, array: ReadonlyArray) => value is S, thisArg?: any): S[];\n /**\n * Returns the elements of an array that meet the condition specified in a callback function.\n * @param callbackfn A function that accepts up to three arguments. The filter method calls the callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\n */\n filter(callbackfn: (value: T, index: number, array: ReadonlyArray) => any, thisArg?: any): T[];\n /**\n * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\n */\n reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: ReadonlyArray) => T, initialValue?: T): T;\n /**\n * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\n */\n reduce(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: ReadonlyArray) => U, initialValue: U): U;\n /**\n * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: ReadonlyArray) => T, initialValue?: T): T;\n /**\n * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: ReadonlyArray) => U, initialValue: U): U;\n\n readonly [n: number]: T;\n}\n\ninterface Array {\n /**\n * Gets or sets the length of the array. This is a number one higher than the highest element defined in an array.\n */\n length: number;\n /**\n * Returns a string representation of an array.\n */\n toString(): string;\n /**\n * Returns a string representation of an array. The elements are converted to string using thier toLocalString methods.\n */\n toLocaleString(): string;\n /**\n * Appends new elements to an array, and returns the new length of the array.\n * @param items New elements of the Array.\n */\n push(...items: T[]): number;\n /**\n * Removes the last element from an array and returns it.\n */\n pop(): T | undefined;\n /**\n * Combines two or more arrays.\n * @param items Additional items to add to the end of array1.\n */\n concat(...items: T[][]): T[];\n /**\n * Combines two or more arrays.\n * @param items Additional items to add to the end of array1.\n */\n concat(...items: (T | T[])[]): T[];\n /**\n * Adds all the elements of an array separated by the specified separator string.\n * @param separator A string used to separate one element of an array from the next in the resulting String. If omitted, the array elements are separated with a comma.\n */\n join(separator?: string): string;\n /**\n * Reverses the elements in an Array.\n */\n reverse(): T[];\n /**\n * Removes the first element from an array and returns it.\n */\n shift(): T | undefined;\n /**\n * Returns a section of an array.\n * @param start The beginning of the specified portion of the array.\n * @param end The end of the specified portion of the array.\n */\n slice(start?: number, end?: number): T[];\n /**\n * Sorts an array.\n * @param compareFn The name of the function used to determine the order of the elements. If omitted, the elements are sorted in ascending, ASCII character order.\n */\n sort(compareFn?: (a: T, b: T) => number): this;\n /**\n * Removes elements from an array and, if necessary, inserts new elements in their place, returning the deleted elements.\n * @param start The zero-based location in the array from which to start removing elements.\n * @param deleteCount The number of elements to remove.\n */\n splice(start: number, deleteCount?: number): T[];\n /**\n * Removes elements from an array and, if necessary, inserts new elements in their place, returning the deleted elements.\n * @param start The zero-based location in the array from which to start removing elements.\n * @param deleteCount The number of elements to remove.\n * @param items Elements to insert into the array in place of the deleted elements.\n */\n splice(start: number, deleteCount: number, ...items: T[]): T[];\n /**\n * Inserts new elements at the start of an array.\n * @param items Elements to insert at the start of the Array.\n */\n unshift(...items: T[]): number;\n /**\n * Returns the index of the first occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at index 0.\n */\n indexOf(searchElement: T, fromIndex?: number): number;\n /**\n * Returns the index of the last occurrence of a specified value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at the last index in the array.\n */\n lastIndexOf(searchElement: T, fromIndex?: number): number;\n /**\n * Determines whether all the members of an array satisfy the specified test.\n * @param callbackfn A function that accepts up to three arguments. The every method calls the callbackfn function for each element in array1 until the callbackfn returns false, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\n */\n every(callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any): boolean;\n /**\n * Determines whether the specified callback function returns true for any element of an array.\n * @param callbackfn A function that accepts up to three arguments. The some method calls the callbackfn function for each element in array1 until the callbackfn returns true, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\n */\n some(callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any): boolean;\n /**\n * Performs the specified action for each element in an array.\n * @param callbackfn A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\n */\n forEach(callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any): void;\n /**\n * Calls a defined callback function on each element of an array, and returns an array that contains the results.\n * @param callbackfn A function that accepts up to three arguments. The map method calls the callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\n */\n map(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[];\n /**\n * Returns the elements of an array that meet the condition specified in a callback function.\n * @param callbackfn A function that accepts up to three arguments. The filter method calls the callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\n */\n filter(callbackfn: (value: T, index: number, array: T[]) => value is S, thisArg?: any): S[];\n /**\n * Returns the elements of an array that meet the condition specified in a callback function.\n * @param callbackfn A function that accepts up to three arguments. The filter method calls the callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\n */\n filter(callbackfn: (value: T, index: number, array: T[]) => any, thisArg?: any): T[];\n /**\n * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\n */\n reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue?: T): T;\n /**\n * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\n */\n reduce(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U;\n /**\n * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue?: T): T;\n /**\n * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U;\n\n [n: number]: T;\n}\n\ninterface ArrayConstructor {\n new(arrayLength?: number): any[];\n new (arrayLength: number): T[];\n new (...items: T[]): T[];\n (arrayLength?: number): any[];\n (arrayLength: number): T[];\n (...items: T[]): T[];\n isArray(arg: any): arg is Array;\n readonly prototype: Array;\n}\n\ndeclare const Array: ArrayConstructor;\n\ninterface TypedPropertyDescriptor {\n enumerable?: boolean;\n configurable?: boolean;\n writable?: boolean;\n value?: T;\n get?: () => T;\n set?: (value: T) => void;\n}\n\ndeclare type ClassDecorator = (target: TFunction) => TFunction | void;\ndeclare type PropertyDecorator = (target: Object, propertyKey: string | symbol) => void;\ndeclare type MethodDecorator = (target: Object, propertyKey: string | symbol, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor | void;\ndeclare type ParameterDecorator = (target: Object, propertyKey: string | symbol, parameterIndex: number) => void;\n\ndeclare type PromiseConstructorLike = new (executor: (resolve: (value?: T | PromiseLike) => void, reject: (reason?: any) => void) => void) => PromiseLike;\n\ninterface PromiseLike {\n /**\n * Attaches callbacks for the resolution and/or rejection of the Promise.\n * @param onfulfilled The callback to execute when the Promise is resolved.\n * @param onrejected The callback to execute when the Promise is rejected.\n * @returns A Promise for the completion of which ever callback is executed.\n */\n then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): PromiseLike;\n}\n\n/**\n * Represents the completion of an asynchronous operation\n */\ninterface Promise {\n /**\n * Attaches callbacks for the resolution and/or rejection of the Promise.\n * @param onfulfilled The callback to execute when the Promise is resolved.\n * @param onrejected The callback to execute when the Promise is rejected.\n * @returns A Promise for the completion of which ever callback is executed.\n */\n then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): Promise;\n\n /**\n * Attaches a callback for only the rejection of the Promise.\n * @param onrejected The callback to execute when the Promise is rejected.\n * @returns A Promise for the completion of the callback.\n */\n catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): Promise;\n}\n\ninterface ArrayLike {\n readonly length: number;\n readonly [n: number]: T;\n}\n\n/**\n * Make all properties in T optional\n */\ntype Partial = {\n [P in keyof T]?: T[P];\n};\n\n/**\n * Make all properties in T readonly\n */\ntype Readonly = {\n readonly [P in keyof T]: T[P];\n};\n\n/**\n * From T pick a set of properties K\n */\ntype Pick = {\n [P in K]: T[P];\n};\n\n/**\n * Construct a type with a set of properties K of type T\n */\ntype Record = {\n [P in K]: T;\n};\n\n/**\n * Marker for contextual 'this' type\n */\ninterface ThisType { }\n\n/**\n * Represents a raw buffer of binary data, which is used to store data for the\n * different typed arrays. ArrayBuffers cannot be read from or written to directly,\n * but can be passed to a typed array or DataView Object to interpret the raw\n * buffer as needed.\n */\ninterface ArrayBuffer {\n /**\n * Read-only. The length of the ArrayBuffer (in bytes).\n */\n readonly byteLength: number;\n\n /**\n * Returns a section of an ArrayBuffer.\n */\n slice(begin: number, end?: number): ArrayBuffer;\n}\n\n/**\n * Allowed ArrayBuffer types for the buffer of an ArrayBufferView and related Typed Arrays.\n */\ninterface ArrayBufferTypes {\n ArrayBuffer: ArrayBuffer;\n}\ntype ArrayBufferLike = ArrayBufferTypes[keyof ArrayBufferTypes];\n\ninterface ArrayBufferConstructor {\n readonly prototype: ArrayBuffer;\n new(byteLength: number): ArrayBuffer;\n isView(arg: any): arg is ArrayBufferView;\n}\ndeclare const ArrayBuffer: ArrayBufferConstructor;\n\ninterface ArrayBufferView {\n /**\n * The ArrayBuffer instance referenced by the array.\n */\n buffer: ArrayBufferLike;\n\n /**\n * The length in bytes of the array.\n */\n byteLength: number;\n\n /**\n * The offset in bytes of the array.\n */\n byteOffset: number;\n}\n\ninterface DataView {\n readonly buffer: ArrayBuffer;\n readonly byteLength: number;\n readonly byteOffset: number;\n /**\n * Gets the Float32 value at the specified byte offset from the start of the view. There is\n * no alignment constraint; multi-byte values may be fetched from any offset.\n * @param byteOffset The place in the buffer at which the value should be retrieved.\n */\n getFloat32(byteOffset: number, littleEndian?: boolean): number;\n\n /**\n * Gets the Float64 value at the specified byte offset from the start of the view. There is\n * no alignment constraint; multi-byte values may be fetched from any offset.\n * @param byteOffset The place in the buffer at which the value should be retrieved.\n */\n getFloat64(byteOffset: number, littleEndian?: boolean): number;\n\n /**\n * Gets the Int8 value at the specified byte offset from the start of the view. There is\n * no alignment constraint; multi-byte values may be fetched from any offset.\n * @param byteOffset The place in the buffer at which the value should be retrieved.\n */\n getInt8(byteOffset: number): number;\n\n /**\n * Gets the Int16 value at the specified byte offset from the start of the view. There is\n * no alignment constraint; multi-byte values may be fetched from any offset.\n * @param byteOffset The place in the buffer at which the value should be retrieved.\n */\n getInt16(byteOffset: number, littleEndian?: boolean): number;\n /**\n * Gets the Int32 value at the specified byte offset from the start of the view. There is\n * no alignment constraint; multi-byte values may be fetched from any offset.\n * @param byteOffset The place in the buffer at which the value should be retrieved.\n */\n getInt32(byteOffset: number, littleEndian?: boolean): number;\n\n /**\n * Gets the Uint8 value at the specified byte offset from the start of the view. There is\n * no alignment constraint; multi-byte values may be fetched from any offset.\n * @param byteOffset The place in the buffer at which the value should be retrieved.\n */\n getUint8(byteOffset: number): number;\n\n /**\n * Gets the Uint16 value at the specified byte offset from the start of the view. There is\n * no alignment constraint; multi-byte values may be fetched from any offset.\n * @param byteOffset The place in the buffer at which the value should be retrieved.\n */\n getUint16(byteOffset: number, littleEndian?: boolean): number;\n\n /**\n * Gets the Uint32 value at the specified byte offset from the start of the view. There is\n * no alignment constraint; multi-byte values may be fetched from any offset.\n * @param byteOffset The place in the buffer at which the value should be retrieved.\n */\n getUint32(byteOffset: number, littleEndian?: boolean): number;\n\n /**\n * Stores an Float32 value at the specified byte offset from the start of the view.\n * @param byteOffset The place in the buffer at which the value should be set.\n * @param value The value to set.\n * @param littleEndian If false or undefined, a big-endian value should be written,\n * otherwise a little-endian value should be written.\n */\n setFloat32(byteOffset: number, value: number, littleEndian?: boolean): void;\n\n /**\n * Stores an Float64 value at the specified byte offset from the start of the view.\n * @param byteOffset The place in the buffer at which the value should be set.\n * @param value The value to set.\n * @param littleEndian If false or undefined, a big-endian value should be written,\n * otherwise a little-endian value should be written.\n */\n setFloat64(byteOffset: number, value: number, littleEndian?: boolean): void;\n\n /**\n * Stores an Int8 value at the specified byte offset from the start of the view.\n * @param byteOffset The place in the buffer at which the value should be set.\n * @param value The value to set.\n */\n setInt8(byteOffset: number, value: number): void;\n\n /**\n * Stores an Int16 value at the specified byte offset from the start of the view.\n * @param byteOffset The place in the buffer at which the value should be set.\n * @param value The value to set.\n * @param littleEndian If false or undefined, a big-endian value should be written,\n * otherwise a little-endian value should be written.\n */\n setInt16(byteOffset: number, value: number, littleEndian?: boolean): void;\n\n /**\n * Stores an Int32 value at the specified byte offset from the start of the view.\n * @param byteOffset The place in the buffer at which the value should be set.\n * @param value The value to set.\n * @param littleEndian If false or undefined, a big-endian value should be written,\n * otherwise a little-endian value should be written.\n */\n setInt32(byteOffset: number, value: number, littleEndian?: boolean): void;\n\n /**\n * Stores an Uint8 value at the specified byte offset from the start of the view.\n * @param byteOffset The place in the buffer at which the value should be set.\n * @param value The value to set.\n */\n setUint8(byteOffset: number, value: number): void;\n\n /**\n * Stores an Uint16 value at the specified byte offset from the start of the view.\n * @param byteOffset The place in the buffer at which the value should be set.\n * @param value The value to set.\n * @param littleEndian If false or undefined, a big-endian value should be written,\n * otherwise a little-endian value should be written.\n */\n setUint16(byteOffset: number, value: number, littleEndian?: boolean): void;\n\n /**\n * Stores an Uint32 value at the specified byte offset from the start of the view.\n * @param byteOffset The place in the buffer at which the value should be set.\n * @param value The value to set.\n * @param littleEndian If false or undefined, a big-endian value should be written,\n * otherwise a little-endian value should be written.\n */\n setUint32(byteOffset: number, value: number, littleEndian?: boolean): void;\n}\n\ninterface DataViewConstructor {\n new(buffer: ArrayBufferLike, byteOffset?: number, byteLength?: number): DataView;\n}\ndeclare const DataView: DataViewConstructor;\n\n/**\n * A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\n * number of bytes could not be allocated an exception is raised.\n */\ninterface Int8Array {\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * The ArrayBuffer instance referenced by the array.\n */\n readonly buffer: ArrayBufferLike;\n\n /**\n * The length in bytes of the array.\n */\n readonly byteLength: number;\n\n /**\n * The offset in bytes of the array.\n */\n readonly byteOffset: number;\n\n /**\n * Returns the this object after copying a section of the array identified by start and end\n * to the same array starting at position target\n * @param target If target is negative, it is treated as length+target where length is the\n * length of the array.\n * @param start If start is negative, it is treated as length+start. If end is negative, it\n * is treated as length+end.\n * @param end If not specified, length of the this object is used as its default value.\n */\n copyWithin(target: number, start: number, end?: number): this;\n\n /**\n * Determines whether all the members of an array satisfy the specified test.\n * @param callbackfn A function that accepts up to three arguments. The every method calls\n * the callbackfn function for each element in array1 until the callbackfn returns false,\n * or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n every(callbackfn: (value: number, index: number, array: Int8Array) => boolean, thisArg?: any): boolean;\n\n /**\n * Returns the this object after filling the section identified by start and end with value\n * @param value value to fill array section with\n * @param start index to start filling the array at. If start is negative, it is treated as\n * length+start where length is the length of the array.\n * @param end index to stop filling the array at. If end is negative, it is treated as\n * length+end.\n */\n fill(value: number, start?: number, end?: number): this;\n\n /**\n * Returns the elements of an array that meet the condition specified in a callback function.\n * @param callbackfn A function that accepts up to three arguments. The filter method calls\n * the callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n filter(callbackfn: (value: number, index: number, array: Int8Array) => any, thisArg?: any): Int8Array;\n\n /**\n * Returns the value of the first element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found, find\n * immediately returns that element value. Otherwise, find returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n find(predicate: (value: number, index: number, obj: Array) => boolean, thisArg?: any): number | undefined;\n\n /**\n * Returns the index of the first element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findIndex(predicate: (value: number, index: number, obj: Array) => boolean, thisArg?: any): number;\n\n /**\n * Performs the specified action for each element in an array.\n * @param callbackfn A function that accepts up to three arguments. forEach calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n forEach(callbackfn: (value: number, index: number, array: Int8Array) => void, thisArg?: any): void;\n\n /**\n * Returns the index of the first occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n indexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * Adds all the elements of an array separated by the specified separator string.\n * @param separator A string used to separate one element of an array from the next in the\n * resulting String. If omitted, the array elements are separated with a comma.\n */\n join(separator?: string): string;\n\n /**\n * Returns the index of the last occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n lastIndexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * The length of the array.\n */\n readonly length: number;\n\n /**\n * Calls a defined callback function on each element of an array, and returns an array that\n * contains the results.\n * @param callbackfn A function that accepts up to three arguments. The map method calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n map(callbackfn: (this: void, value: number, index: number, array: Int8Array) => number, thisArg?: any): Int8Array;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int8Array) => number, initialValue?: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int8Array) => U, initialValue: U): U;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an\n * argument instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int8Array) => number, initialValue?: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int8Array) => U, initialValue: U): U;\n\n /**\n * Reverses the elements in an Array.\n */\n reverse(): Int8Array;\n\n /**\n * Sets a value or an array of values.\n * @param array A typed or untyped array of values to set.\n * @param offset The index in the current array at which the values are to be written.\n */\n set(array: ArrayLike, offset?: number): void;\n\n /**\n * Returns a section of an array.\n * @param start The beginning of the specified portion of the array.\n * @param end The end of the specified portion of the array.\n */\n slice(start?: number, end?: number): Int8Array;\n\n /**\n * Determines whether the specified callback function returns true for any element of an array.\n * @param callbackfn A function that accepts up to three arguments. The some method calls the\n * callbackfn function for each element in array1 until the callbackfn returns true, or until\n * the end of the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n some(callbackfn: (value: number, index: number, array: Int8Array) => boolean, thisArg?: any): boolean;\n\n /**\n * Sorts an array.\n * @param compareFn The name of the function used to determine the order of the elements. If\n * omitted, the elements are sorted in ascending, ASCII character order.\n */\n sort(compareFn?: (a: number, b: number) => number): this;\n\n /**\n * Gets a new Int8Array view of the ArrayBuffer store for this array, referencing the elements\n * at begin, inclusive, up to end, exclusive.\n * @param begin The index of the beginning of the array.\n * @param end The index of the end of the array.\n */\n subarray(begin: number, end?: number): Int8Array;\n\n /**\n * Converts a number to a string by using the current locale.\n */\n toLocaleString(): string;\n\n /**\n * Returns a string representation of an array.\n */\n toString(): string;\n\n [index: number]: number;\n}\ninterface Int8ArrayConstructor {\n readonly prototype: Int8Array;\n new(length: number): Int8Array;\n new(array: ArrayLike): Int8Array;\n new(buffer: ArrayBufferLike, byteOffset?: number, length?: number): Int8Array;\n\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * Returns a new array from a set of elements.\n * @param items A set of elements to include in the new array object.\n */\n of(...items: number[]): Int8Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like or iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(arrayLike: ArrayLike, mapfn?: (v: number, k: number) => number, thisArg?: any): Int8Array;\n\n\n}\ndeclare const Int8Array: Int8ArrayConstructor;\n\n/**\n * A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\n * requested number of bytes could not be allocated an exception is raised.\n */\ninterface Uint8Array {\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * The ArrayBuffer instance referenced by the array.\n */\n readonly buffer: ArrayBufferLike;\n\n /**\n * The length in bytes of the array.\n */\n readonly byteLength: number;\n\n /**\n * The offset in bytes of the array.\n */\n readonly byteOffset: number;\n\n /**\n * Returns the this object after copying a section of the array identified by start and end\n * to the same array starting at position target\n * @param target If target is negative, it is treated as length+target where length is the\n * length of the array.\n * @param start If start is negative, it is treated as length+start. If end is negative, it\n * is treated as length+end.\n * @param end If not specified, length of the this object is used as its default value.\n */\n copyWithin(target: number, start: number, end?: number): this;\n\n /**\n * Determines whether all the members of an array satisfy the specified test.\n * @param callbackfn A function that accepts up to three arguments. The every method calls\n * the callbackfn function for each element in array1 until the callbackfn returns false,\n * or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n every(callbackfn: (value: number, index: number, array: Uint8Array) => boolean, thisArg?: any): boolean;\n\n /**\n * Returns the this object after filling the section identified by start and end with value\n * @param value value to fill array section with\n * @param start index to start filling the array at. If start is negative, it is treated as\n * length+start where length is the length of the array.\n * @param end index to stop filling the array at. If end is negative, it is treated as\n * length+end.\n */\n fill(value: number, start?: number, end?: number): this;\n\n /**\n * Returns the elements of an array that meet the condition specified in a callback function.\n * @param callbackfn A function that accepts up to three arguments. The filter method calls\n * the callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n filter(callbackfn: (value: number, index: number, array: Uint8Array) => any, thisArg?: any): Uint8Array;\n\n /**\n * Returns the value of the first element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found, find\n * immediately returns that element value. Otherwise, find returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n find(predicate: (value: number, index: number, obj: Array) => boolean, thisArg?: any): number | undefined;\n\n /**\n * Returns the index of the first element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findIndex(predicate: (value: number, index: number, obj: Array) => boolean, thisArg?: any): number;\n\n /**\n * Performs the specified action for each element in an array.\n * @param callbackfn A function that accepts up to three arguments. forEach calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n forEach(callbackfn: (value: number, index: number, array: Uint8Array) => void, thisArg?: any): void;\n\n /**\n * Returns the index of the first occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n indexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * Adds all the elements of an array separated by the specified separator string.\n * @param separator A string used to separate one element of an array from the next in the\n * resulting String. If omitted, the array elements are separated with a comma.\n */\n join(separator?: string): string;\n\n /**\n * Returns the index of the last occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n lastIndexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * The length of the array.\n */\n readonly length: number;\n\n /**\n * Calls a defined callback function on each element of an array, and returns an array that\n * contains the results.\n * @param callbackfn A function that accepts up to three arguments. The map method calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n map(callbackfn: (this: void, value: number, index: number, array: Uint8Array) => number, thisArg?: any): Uint8Array;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number, initialValue?: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8Array) => U, initialValue: U): U;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an\n * argument instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number, initialValue?: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8Array) => U, initialValue: U): U;\n\n /**\n * Reverses the elements in an Array.\n */\n reverse(): Uint8Array;\n\n /**\n * Sets a value or an array of values.\n * @param array A typed or untyped array of values to set.\n * @param offset The index in the current array at which the values are to be written.\n */\n set(array: ArrayLike, offset?: number): void;\n\n /**\n * Returns a section of an array.\n * @param start The beginning of the specified portion of the array.\n * @param end The end of the specified portion of the array.\n */\n slice(start?: number, end?: number): Uint8Array;\n\n /**\n * Determines whether the specified callback function returns true for any element of an array.\n * @param callbackfn A function that accepts up to three arguments. The some method calls the\n * callbackfn function for each element in array1 until the callbackfn returns true, or until\n * the end of the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n some(callbackfn: (value: number, index: number, array: Uint8Array) => boolean, thisArg?: any): boolean;\n\n /**\n * Sorts an array.\n * @param compareFn The name of the function used to determine the order of the elements. If\n * omitted, the elements are sorted in ascending, ASCII character order.\n */\n sort(compareFn?: (a: number, b: number) => number): this;\n\n /**\n * Gets a new Uint8Array view of the ArrayBuffer store for this array, referencing the elements\n * at begin, inclusive, up to end, exclusive.\n * @param begin The index of the beginning of the array.\n * @param end The index of the end of the array.\n */\n subarray(begin: number, end?: number): Uint8Array;\n\n /**\n * Converts a number to a string by using the current locale.\n */\n toLocaleString(): string;\n\n /**\n * Returns a string representation of an array.\n */\n toString(): string;\n\n [index: number]: number;\n}\n\ninterface Uint8ArrayConstructor {\n readonly prototype: Uint8Array;\n new(length: number): Uint8Array;\n new(array: ArrayLike): Uint8Array;\n new(buffer: ArrayBufferLike, byteOffset?: number, length?: number): Uint8Array;\n\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * Returns a new array from a set of elements.\n * @param items A set of elements to include in the new array object.\n */\n of(...items: number[]): Uint8Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like or iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(arrayLike: ArrayLike, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8Array;\n\n}\ndeclare const Uint8Array: Uint8ArrayConstructor;\n\n/**\n * A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\n * If the requested number of bytes could not be allocated an exception is raised.\n */\ninterface Uint8ClampedArray {\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * The ArrayBuffer instance referenced by the array.\n */\n readonly buffer: ArrayBufferLike;\n\n /**\n * The length in bytes of the array.\n */\n readonly byteLength: number;\n\n /**\n * The offset in bytes of the array.\n */\n readonly byteOffset: number;\n\n /**\n * Returns the this object after copying a section of the array identified by start and end\n * to the same array starting at position target\n * @param target If target is negative, it is treated as length+target where length is the\n * length of the array.\n * @param start If start is negative, it is treated as length+start. If end is negative, it\n * is treated as length+end.\n * @param end If not specified, length of the this object is used as its default value.\n */\n copyWithin(target: number, start: number, end?: number): this;\n\n /**\n * Determines whether all the members of an array satisfy the specified test.\n * @param callbackfn A function that accepts up to three arguments. The every method calls\n * the callbackfn function for each element in array1 until the callbackfn returns false,\n * or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n every(callbackfn: (value: number, index: number, array: Uint8ClampedArray) => boolean, thisArg?: any): boolean;\n\n /**\n * Returns the this object after filling the section identified by start and end with value\n * @param value value to fill array section with\n * @param start index to start filling the array at. If start is negative, it is treated as\n * length+start where length is the length of the array.\n * @param end index to stop filling the array at. If end is negative, it is treated as\n * length+end.\n */\n fill(value: number, start?: number, end?: number): this;\n\n /**\n * Returns the elements of an array that meet the condition specified in a callback function.\n * @param callbackfn A function that accepts up to three arguments. The filter method calls\n * the callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n filter(callbackfn: (value: number, index: number, array: Uint8ClampedArray) => any, thisArg?: any): Uint8ClampedArray;\n\n /**\n * Returns the value of the first element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found, find\n * immediately returns that element value. Otherwise, find returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n find(predicate: (value: number, index: number, obj: Array) => boolean, thisArg?: any): number | undefined;\n\n /**\n * Returns the index of the first element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findIndex(predicate: (value: number, index: number, obj: Array) => boolean, thisArg?: any): number;\n\n /**\n * Performs the specified action for each element in an array.\n * @param callbackfn A function that accepts up to three arguments. forEach calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n forEach(callbackfn: (value: number, index: number, array: Uint8ClampedArray) => void, thisArg?: any): void;\n\n /**\n * Returns the index of the first occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n indexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * Adds all the elements of an array separated by the specified separator string.\n * @param separator A string used to separate one element of an array from the next in the\n * resulting String. If omitted, the array elements are separated with a comma.\n */\n join(separator?: string): string;\n\n /**\n * Returns the index of the last occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n lastIndexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * The length of the array.\n */\n readonly length: number;\n\n /**\n * Calls a defined callback function on each element of an array, and returns an array that\n * contains the results.\n * @param callbackfn A function that accepts up to three arguments. The map method calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n map(callbackfn: (this: void, value: number, index: number, array: Uint8ClampedArray) => number, thisArg?: any): Uint8ClampedArray;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number, initialValue?: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => U, initialValue: U): U;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an\n * argument instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number, initialValue?: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => U, initialValue: U): U;\n\n /**\n * Reverses the elements in an Array.\n */\n reverse(): Uint8ClampedArray;\n\n /**\n * Sets a value or an array of values.\n * @param array A typed or untyped array of values to set.\n * @param offset The index in the current array at which the values are to be written.\n */\n set(array: ArrayLike, offset?: number): void;\n\n /**\n * Returns a section of an array.\n * @param start The beginning of the specified portion of the array.\n * @param end The end of the specified portion of the array.\n */\n slice(start?: number, end?: number): Uint8ClampedArray;\n\n /**\n * Determines whether the specified callback function returns true for any element of an array.\n * @param callbackfn A function that accepts up to three arguments. The some method calls the\n * callbackfn function for each element in array1 until the callbackfn returns true, or until\n * the end of the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n some(callbackfn: (value: number, index: number, array: Uint8ClampedArray) => boolean, thisArg?: any): boolean;\n\n /**\n * Sorts an array.\n * @param compareFn The name of the function used to determine the order of the elements. If\n * omitted, the elements are sorted in ascending, ASCII character order.\n */\n sort(compareFn?: (a: number, b: number) => number): this;\n\n /**\n * Gets a new Uint8ClampedArray view of the ArrayBuffer store for this array, referencing the elements\n * at begin, inclusive, up to end, exclusive.\n * @param begin The index of the beginning of the array.\n * @param end The index of the end of the array.\n */\n subarray(begin: number, end?: number): Uint8ClampedArray;\n\n /**\n * Converts a number to a string by using the current locale.\n */\n toLocaleString(): string;\n\n /**\n * Returns a string representation of an array.\n */\n toString(): string;\n\n [index: number]: number;\n}\n\ninterface Uint8ClampedArrayConstructor {\n readonly prototype: Uint8ClampedArray;\n new(length: number): Uint8ClampedArray;\n new(array: ArrayLike): Uint8ClampedArray;\n new(buffer: ArrayBufferLike, byteOffset?: number, length?: number): Uint8ClampedArray;\n\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * Returns a new array from a set of elements.\n * @param items A set of elements to include in the new array object.\n */\n of(...items: number[]): Uint8ClampedArray;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like or iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(arrayLike: ArrayLike, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8ClampedArray;\n}\ndeclare const Uint8ClampedArray: Uint8ClampedArrayConstructor;\n\n/**\n * A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\n * requested number of bytes could not be allocated an exception is raised.\n */\ninterface Int16Array {\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * The ArrayBuffer instance referenced by the array.\n */\n readonly buffer: ArrayBufferLike;\n\n /**\n * The length in bytes of the array.\n */\n readonly byteLength: number;\n\n /**\n * The offset in bytes of the array.\n */\n readonly byteOffset: number;\n\n /**\n * Returns the this object after copying a section of the array identified by start and end\n * to the same array starting at position target\n * @param target If target is negative, it is treated as length+target where length is the\n * length of the array.\n * @param start If start is negative, it is treated as length+start. If end is negative, it\n * is treated as length+end.\n * @param end If not specified, length of the this object is used as its default value.\n */\n copyWithin(target: number, start: number, end?: number): this;\n\n /**\n * Determines whether all the members of an array satisfy the specified test.\n * @param callbackfn A function that accepts up to three arguments. The every method calls\n * the callbackfn function for each element in array1 until the callbackfn returns false,\n * or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n every(callbackfn: (value: number, index: number, array: Int16Array) => boolean, thisArg?: any): boolean;\n\n /**\n * Returns the this object after filling the section identified by start and end with value\n * @param value value to fill array section with\n * @param start index to start filling the array at. If start is negative, it is treated as\n * length+start where length is the length of the array.\n * @param end index to stop filling the array at. If end is negative, it is treated as\n * length+end.\n */\n fill(value: number, start?: number, end?: number): this;\n\n /**\n * Returns the elements of an array that meet the condition specified in a callback function.\n * @param callbackfn A function that accepts up to three arguments. The filter method calls\n * the callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n filter(callbackfn: (this: void, value: number, index: number, array: Int16Array) => any, thisArg?: any): Int16Array;\n\n /**\n * Returns the value of the first element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found, find\n * immediately returns that element value. Otherwise, find returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n find(predicate: (value: number, index: number, obj: Array) => boolean, thisArg?: any): number | undefined;\n\n /**\n * Returns the index of the first element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findIndex(predicate: (value: number, index: number, obj: Array) => boolean, thisArg?: any): number;\n\n /**\n * Performs the specified action for each element in an array.\n * @param callbackfn A function that accepts up to three arguments. forEach calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n forEach(callbackfn: (value: number, index: number, array: Int16Array) => void, thisArg?: any): void;\n /**\n * Returns the index of the first occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n indexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * Adds all the elements of an array separated by the specified separator string.\n * @param separator A string used to separate one element of an array from the next in the\n * resulting String. If omitted, the array elements are separated with a comma.\n */\n join(separator?: string): string;\n\n /**\n * Returns the index of the last occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n lastIndexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * The length of the array.\n */\n readonly length: number;\n\n /**\n * Calls a defined callback function on each element of an array, and returns an array that\n * contains the results.\n * @param callbackfn A function that accepts up to three arguments. The map method calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n map(callbackfn: (this: void, value: number, index: number, array: Int16Array) => number, thisArg?: any): Int16Array;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int16Array) => number, initialValue?: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int16Array) => U, initialValue: U): U;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an\n * argument instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int16Array) => number, initialValue?: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int16Array) => U, initialValue: U): U;\n\n /**\n * Reverses the elements in an Array.\n */\n reverse(): Int16Array;\n\n /**\n * Sets a value or an array of values.\n * @param array A typed or untyped array of values to set.\n * @param offset The index in the current array at which the values are to be written.\n */\n set(array: ArrayLike, offset?: number): void;\n\n /**\n * Returns a section of an array.\n * @param start The beginning of the specified portion of the array.\n * @param end The end of the specified portion of the array.\n */\n slice(start?: number, end?: number): Int16Array;\n\n /**\n * Determines whether the specified callback function returns true for any element of an array.\n * @param callbackfn A function that accepts up to three arguments. The some method calls the\n * callbackfn function for each element in array1 until the callbackfn returns true, or until\n * the end of the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n some(callbackfn: (value: number, index: number, array: Int16Array) => boolean, thisArg?: any): boolean;\n\n /**\n * Sorts an array.\n * @param compareFn The name of the function used to determine the order of the elements. If\n * omitted, the elements are sorted in ascending, ASCII character order.\n */\n sort(compareFn?: (a: number, b: number) => number): this;\n\n /**\n * Gets a new Int16Array view of the ArrayBuffer store for this array, referencing the elements\n * at begin, inclusive, up to end, exclusive.\n * @param begin The index of the beginning of the array.\n * @param end The index of the end of the array.\n */\n subarray(begin: number, end?: number): Int16Array;\n\n /**\n * Converts a number to a string by using the current locale.\n */\n toLocaleString(): string;\n\n /**\n * Returns a string representation of an array.\n */\n toString(): string;\n\n [index: number]: number;\n}\n\ninterface Int16ArrayConstructor {\n readonly prototype: Int16Array;\n new(length: number): Int16Array;\n new(array: ArrayLike): Int16Array;\n new(buffer: ArrayBufferLike, byteOffset?: number, length?: number): Int16Array;\n\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * Returns a new array from a set of elements.\n * @param items A set of elements to include in the new array object.\n */\n of(...items: number[]): Int16Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like or iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(arrayLike: ArrayLike, mapfn?: (v: number, k: number) => number, thisArg?: any): Int16Array;\n\n\n}\ndeclare const Int16Array: Int16ArrayConstructor;\n\n/**\n * A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\n * requested number of bytes could not be allocated an exception is raised.\n */\ninterface Uint16Array {\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * The ArrayBuffer instance referenced by the array.\n */\n readonly buffer: ArrayBufferLike;\n\n /**\n * The length in bytes of the array.\n */\n readonly byteLength: number;\n\n /**\n * The offset in bytes of the array.\n */\n readonly byteOffset: number;\n\n /**\n * Returns the this object after copying a section of the array identified by start and end\n * to the same array starting at position target\n * @param target If target is negative, it is treated as length+target where length is the\n * length of the array.\n * @param start If start is negative, it is treated as length+start. If end is negative, it\n * is treated as length+end.\n * @param end If not specified, length of the this object is used as its default value.\n */\n copyWithin(target: number, start: number, end?: number): this;\n\n /**\n * Determines whether all the members of an array satisfy the specified test.\n * @param callbackfn A function that accepts up to three arguments. The every method calls\n * the callbackfn function for each element in array1 until the callbackfn returns false,\n * or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n every(callbackfn: (value: number, index: number, array: Uint16Array) => boolean, thisArg?: any): boolean;\n\n /**\n * Returns the this object after filling the section identified by start and end with value\n * @param value value to fill array section with\n * @param start index to start filling the array at. If start is negative, it is treated as\n * length+start where length is the length of the array.\n * @param end index to stop filling the array at. If end is negative, it is treated as\n * length+end.\n */\n fill(value: number, start?: number, end?: number): this;\n\n /**\n * Returns the elements of an array that meet the condition specified in a callback function.\n * @param callbackfn A function that accepts up to three arguments. The filter method calls\n * the callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n filter(callbackfn: (value: number, index: number, array: Uint16Array) => any, thisArg?: any): Uint16Array;\n\n /**\n * Returns the value of the first element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found, find\n * immediately returns that element value. Otherwise, find returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n find(predicate: (value: number, index: number, obj: Array) => boolean, thisArg?: any): number | undefined;\n\n /**\n * Returns the index of the first element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findIndex(predicate: (value: number, index: number, obj: Array) => boolean, thisArg?: any): number;\n\n /**\n * Performs the specified action for each element in an array.\n * @param callbackfn A function that accepts up to three arguments. forEach calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n forEach(callbackfn: (value: number, index: number, array: Uint16Array) => void, thisArg?: any): void;\n\n /**\n * Returns the index of the first occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n indexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * Adds all the elements of an array separated by the specified separator string.\n * @param separator A string used to separate one element of an array from the next in the\n * resulting String. If omitted, the array elements are separated with a comma.\n */\n join(separator?: string): string;\n\n /**\n * Returns the index of the last occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n lastIndexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * The length of the array.\n */\n readonly length: number;\n\n /**\n * Calls a defined callback function on each element of an array, and returns an array that\n * contains the results.\n * @param callbackfn A function that accepts up to three arguments. The map method calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n map(callbackfn: (this: void, value: number, index: number, array: Uint16Array) => number, thisArg?: any): Uint16Array;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint16Array) => number, initialValue?: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint16Array) => U, initialValue: U): U;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an\n * argument instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint16Array) => number, initialValue?: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint16Array) => U, initialValue: U): U;\n\n /**\n * Reverses the elements in an Array.\n */\n reverse(): Uint16Array;\n\n /**\n * Sets a value or an array of values.\n * @param array A typed or untyped array of values to set.\n * @param offset The index in the current array at which the values are to be written.\n */\n set(array: ArrayLike, offset?: number): void;\n\n /**\n * Returns a section of an array.\n * @param start The beginning of the specified portion of the array.\n * @param end The end of the specified portion of the array.\n */\n slice(start?: number, end?: number): Uint16Array;\n\n /**\n * Determines whether the specified callback function returns true for any element of an array.\n * @param callbackfn A function that accepts up to three arguments. The some method calls the\n * callbackfn function for each element in array1 until the callbackfn returns true, or until\n * the end of the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n some(callbackfn: (value: number, index: number, array: Uint16Array) => boolean, thisArg?: any): boolean;\n\n /**\n * Sorts an array.\n * @param compareFn The name of the function used to determine the order of the elements. If\n * omitted, the elements are sorted in ascending, ASCII character order.\n */\n sort(compareFn?: (a: number, b: number) => number): this;\n\n /**\n * Gets a new Uint16Array view of the ArrayBuffer store for this array, referencing the elements\n * at begin, inclusive, up to end, exclusive.\n * @param begin The index of the beginning of the array.\n * @param end The index of the end of the array.\n */\n subarray(begin: number, end?: number): Uint16Array;\n\n /**\n * Converts a number to a string by using the current locale.\n */\n toLocaleString(): string;\n\n /**\n * Returns a string representation of an array.\n */\n toString(): string;\n\n [index: number]: number;\n}\n\ninterface Uint16ArrayConstructor {\n readonly prototype: Uint16Array;\n new(length: number): Uint16Array;\n new(array: ArrayLike): Uint16Array;\n new(buffer: ArrayBufferLike, byteOffset?: number, length?: number): Uint16Array;\n\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * Returns a new array from a set of elements.\n * @param items A set of elements to include in the new array object.\n */\n of(...items: number[]): Uint16Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like or iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(arrayLike: ArrayLike, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint16Array;\n\n\n}\ndeclare const Uint16Array: Uint16ArrayConstructor;\n/**\n * A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\n * requested number of bytes could not be allocated an exception is raised.\n */\ninterface Int32Array {\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * The ArrayBuffer instance referenced by the array.\n */\n readonly buffer: ArrayBufferLike;\n\n /**\n * The length in bytes of the array.\n */\n readonly byteLength: number;\n\n /**\n * The offset in bytes of the array.\n */\n readonly byteOffset: number;\n\n /**\n * Returns the this object after copying a section of the array identified by start and end\n * to the same array starting at position target\n * @param target If target is negative, it is treated as length+target where length is the\n * length of the array.\n * @param start If start is negative, it is treated as length+start. If end is negative, it\n * is treated as length+end.\n * @param end If not specified, length of the this object is used as its default value.\n */\n copyWithin(target: number, start: number, end?: number): this;\n\n /**\n * Determines whether all the members of an array satisfy the specified test.\n * @param callbackfn A function that accepts up to three arguments. The every method calls\n * the callbackfn function for each element in array1 until the callbackfn returns false,\n * or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n every(callbackfn: (value: number, index: number, array: Int32Array) => boolean, thisArg?: any): boolean;\n\n /**\n * Returns the this object after filling the section identified by start and end with value\n * @param value value to fill array section with\n * @param start index to start filling the array at. If start is negative, it is treated as\n * length+start where length is the length of the array.\n * @param end index to stop filling the array at. If end is negative, it is treated as\n * length+end.\n */\n fill(value: number, start?: number, end?: number): this;\n\n /**\n * Returns the elements of an array that meet the condition specified in a callback function.\n * @param callbackfn A function that accepts up to three arguments. The filter method calls\n * the callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n filter(callbackfn: (value: number, index: number, array: Int32Array) => any, thisArg?: any): Int32Array;\n\n /**\n * Returns the value of the first element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found, find\n * immediately returns that element value. Otherwise, find returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n find(predicate: (value: number, index: number, obj: Array) => boolean, thisArg?: any): number | undefined;\n\n /**\n * Returns the index of the first element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findIndex(predicate: (value: number, index: number, obj: Array) => boolean, thisArg?: any): number;\n\n /**\n * Performs the specified action for each element in an array.\n * @param callbackfn A function that accepts up to three arguments. forEach calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n forEach(callbackfn: (value: number, index: number, array: Int32Array) => void, thisArg?: any): void;\n\n /**\n * Returns the index of the first occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n indexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * Adds all the elements of an array separated by the specified separator string.\n * @param separator A string used to separate one element of an array from the next in the\n * resulting String. If omitted, the array elements are separated with a comma.\n */\n join(separator?: string): string;\n\n /**\n * Returns the index of the last occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n lastIndexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * The length of the array.\n */\n readonly length: number;\n\n /**\n * Calls a defined callback function on each element of an array, and returns an array that\n * contains the results.\n * @param callbackfn A function that accepts up to three arguments. The map method calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n map(callbackfn: (value: number, index: number, array: Int32Array) => number, thisArg?: any): Int32Array;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int32Array) => number, initialValue?: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int32Array) => U, initialValue: U): U;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an\n * argument instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int32Array) => number, initialValue?: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int32Array) => U, initialValue: U): U;\n\n /**\n * Reverses the elements in an Array.\n */\n reverse(): Int32Array;\n\n /**\n * Sets a value or an array of values.\n * @param array A typed or untyped array of values to set.\n * @param offset The index in the current array at which the values are to be written.\n */\n set(array: ArrayLike, offset?: number): void;\n\n /**\n * Returns a section of an array.\n * @param start The beginning of the specified portion of the array.\n * @param end The end of the specified portion of the array.\n */\n slice(start?: number, end?: number): Int32Array;\n\n /**\n * Determines whether the specified callback function returns true for any element of an array.\n * @param callbackfn A function that accepts up to three arguments. The some method calls the\n * callbackfn function for each element in array1 until the callbackfn returns true, or until\n * the end of the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n some(callbackfn: (value: number, index: number, array: Int32Array) => boolean, thisArg?: any): boolean;\n\n /**\n * Sorts an array.\n * @param compareFn The name of the function used to determine the order of the elements. If\n * omitted, the elements are sorted in ascending, ASCII character order.\n */\n sort(compareFn?: (a: number, b: number) => number): this;\n\n /**\n * Gets a new Int32Array view of the ArrayBuffer store for this array, referencing the elements\n * at begin, inclusive, up to end, exclusive.\n * @param begin The index of the beginning of the array.\n * @param end The index of the end of the array.\n */\n subarray(begin: number, end?: number): Int32Array;\n\n /**\n * Converts a number to a string by using the current locale.\n */\n toLocaleString(): string;\n\n /**\n * Returns a string representation of an array.\n */\n toString(): string;\n\n [index: number]: number;\n}\n\ninterface Int32ArrayConstructor {\n readonly prototype: Int32Array;\n new(length: number): Int32Array;\n new(array: ArrayLike): Int32Array;\n new(buffer: ArrayBufferLike, byteOffset?: number, length?: number): Int32Array;\n\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * Returns a new array from a set of elements.\n * @param items A set of elements to include in the new array object.\n */\n of(...items: number[]): Int32Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like or iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(arrayLike: ArrayLike, mapfn?: (v: number, k: number) => number, thisArg?: any): Int32Array;\n\n}\ndeclare const Int32Array: Int32ArrayConstructor;\n\n/**\n * A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\n * requested number of bytes could not be allocated an exception is raised.\n */\ninterface Uint32Array {\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * The ArrayBuffer instance referenced by the array.\n */\n readonly buffer: ArrayBufferLike;\n\n /**\n * The length in bytes of the array.\n */\n readonly byteLength: number;\n\n /**\n * The offset in bytes of the array.\n */\n readonly byteOffset: number;\n\n /**\n * Returns the this object after copying a section of the array identified by start and end\n * to the same array starting at position target\n * @param target If target is negative, it is treated as length+target where length is the\n * length of the array.\n * @param start If start is negative, it is treated as length+start. If end is negative, it\n * is treated as length+end.\n * @param end If not specified, length of the this object is used as its default value.\n */\n copyWithin(target: number, start: number, end?: number): this;\n\n /**\n * Determines whether all the members of an array satisfy the specified test.\n * @param callbackfn A function that accepts up to three arguments. The every method calls\n * the callbackfn function for each element in array1 until the callbackfn returns false,\n * or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n every(callbackfn: (value: number, index: number, array: Uint32Array) => boolean, thisArg?: any): boolean;\n\n /**\n * Returns the this object after filling the section identified by start and end with value\n * @param value value to fill array section with\n * @param start index to start filling the array at. If start is negative, it is treated as\n * length+start where length is the length of the array.\n * @param end index to stop filling the array at. If end is negative, it is treated as\n * length+end.\n */\n fill(value: number, start?: number, end?: number): this;\n\n /**\n * Returns the elements of an array that meet the condition specified in a callback function.\n * @param callbackfn A function that accepts up to three arguments. The filter method calls\n * the callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n filter(callbackfn: (value: number, index: number, array: Uint32Array) => any, thisArg?: any): Uint32Array;\n\n /**\n * Returns the value of the first element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found, find\n * immediately returns that element value. Otherwise, find returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n find(predicate: (value: number, index: number, obj: Array) => boolean, thisArg?: any): number | undefined;\n\n /**\n * Returns the index of the first element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findIndex(predicate: (value: number, index: number, obj: Array) => boolean, thisArg?: any): number;\n\n /**\n * Performs the specified action for each element in an array.\n * @param callbackfn A function that accepts up to three arguments. forEach calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n forEach(callbackfn: (value: number, index: number, array: Uint32Array) => void, thisArg?: any): void;\n /**\n * Returns the index of the first occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n indexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * Adds all the elements of an array separated by the specified separator string.\n * @param separator A string used to separate one element of an array from the next in the\n * resulting String. If omitted, the array elements are separated with a comma.\n */\n join(separator?: string): string;\n\n /**\n * Returns the index of the last occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n lastIndexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * The length of the array.\n */\n readonly length: number;\n\n /**\n * Calls a defined callback function on each element of an array, and returns an array that\n * contains the results.\n * @param callbackfn A function that accepts up to three arguments. The map method calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n map(callbackfn: (this: void, value: number, index: number, array: Uint32Array) => number, thisArg?: any): Uint32Array;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint32Array) => number, initialValue?: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint32Array) => U, initialValue: U): U;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an\n * argument instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint32Array) => number, initialValue?: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint32Array) => U, initialValue: U): U;\n\n /**\n * Reverses the elements in an Array.\n */\n reverse(): Uint32Array;\n\n /**\n * Sets a value or an array of values.\n * @param array A typed or untyped array of values to set.\n * @param offset The index in the current array at which the values are to be written.\n */\n set(array: ArrayLike, offset?: number): void;\n\n /**\n * Returns a section of an array.\n * @param start The beginning of the specified portion of the array.\n * @param end The end of the specified portion of the array.\n */\n slice(start?: number, end?: number): Uint32Array;\n\n /**\n * Determines whether the specified callback function returns true for any element of an array.\n * @param callbackfn A function that accepts up to three arguments. The some method calls the\n * callbackfn function for each element in array1 until the callbackfn returns true, or until\n * the end of the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n some(callbackfn: (value: number, index: number, array: Uint32Array) => boolean, thisArg?: any): boolean;\n\n /**\n * Sorts an array.\n * @param compareFn The name of the function used to determine the order of the elements. If\n * omitted, the elements are sorted in ascending, ASCII character order.\n */\n sort(compareFn?: (a: number, b: number) => number): this;\n\n /**\n * Gets a new Uint32Array view of the ArrayBuffer store for this array, referencing the elements\n * at begin, inclusive, up to end, exclusive.\n * @param begin The index of the beginning of the array.\n * @param end The index of the end of the array.\n */\n subarray(begin: number, end?: number): Uint32Array;\n\n /**\n * Converts a number to a string by using the current locale.\n */\n toLocaleString(): string;\n\n /**\n * Returns a string representation of an array.\n */\n toString(): string;\n\n [index: number]: number;\n}\n\ninterface Uint32ArrayConstructor {\n readonly prototype: Uint32Array;\n new(length: number): Uint32Array;\n new(array: ArrayLike): Uint32Array;\n new(buffer: ArrayBufferLike, byteOffset?: number, length?: number): Uint32Array;\n\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * Returns a new array from a set of elements.\n * @param items A set of elements to include in the new array object.\n */\n of(...items: number[]): Uint32Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like or iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(arrayLike: ArrayLike, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint32Array;\n\n}\ndeclare const Uint32Array: Uint32ArrayConstructor;\n\n/**\n * A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\n * of bytes could not be allocated an exception is raised.\n */\ninterface Float32Array {\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * The ArrayBuffer instance referenced by the array.\n */\n readonly buffer: ArrayBufferLike;\n\n /**\n * The length in bytes of the array.\n */\n readonly byteLength: number;\n\n /**\n * The offset in bytes of the array.\n */\n readonly byteOffset: number;\n\n /**\n * Returns the this object after copying a section of the array identified by start and end\n * to the same array starting at position target\n * @param target If target is negative, it is treated as length+target where length is the\n * length of the array.\n * @param start If start is negative, it is treated as length+start. If end is negative, it\n * is treated as length+end.\n * @param end If not specified, length of the this object is used as its default value.\n */\n copyWithin(target: number, start: number, end?: number): this;\n\n /**\n * Determines whether all the members of an array satisfy the specified test.\n * @param callbackfn A function that accepts up to three arguments. The every method calls\n * the callbackfn function for each element in array1 until the callbackfn returns false,\n * or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n every(callbackfn: (value: number, index: number, array: Float32Array) => boolean, thisArg?: any): boolean;\n\n /**\n * Returns the this object after filling the section identified by start and end with value\n * @param value value to fill array section with\n * @param start index to start filling the array at. If start is negative, it is treated as\n * length+start where length is the length of the array.\n * @param end index to stop filling the array at. If end is negative, it is treated as\n * length+end.\n */\n fill(value: number, start?: number, end?: number): this;\n\n /**\n * Returns the elements of an array that meet the condition specified in a callback function.\n * @param callbackfn A function that accepts up to three arguments. The filter method calls\n * the callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n filter(callbackfn: (value: number, index: number, array: Float32Array) => any, thisArg?: any): Float32Array;\n\n /**\n * Returns the value of the first element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found, find\n * immediately returns that element value. Otherwise, find returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n find(predicate: (value: number, index: number, obj: Array) => boolean, thisArg?: any): number | undefined;\n\n /**\n * Returns the index of the first element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findIndex(predicate: (value: number, index: number, obj: Array) => boolean, thisArg?: any): number;\n\n /**\n * Performs the specified action for each element in an array.\n * @param callbackfn A function that accepts up to three arguments. forEach calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n forEach(callbackfn: (value: number, index: number, array: Float32Array) => void, thisArg?: any): void;\n\n /**\n * Returns the index of the first occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n indexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * Adds all the elements of an array separated by the specified separator string.\n * @param separator A string used to separate one element of an array from the next in the\n * resulting String. If omitted, the array elements are separated with a comma.\n */\n join(separator?: string): string;\n\n /**\n * Returns the index of the last occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n lastIndexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * The length of the array.\n */\n readonly length: number;\n\n /**\n * Calls a defined callback function on each element of an array, and returns an array that\n * contains the results.\n * @param callbackfn A function that accepts up to three arguments. The map method calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n map(callbackfn: (this: void, value: number, index: number, array: Float32Array) => number, thisArg?: any): Float32Array;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number, initialValue?: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float32Array) => U, initialValue: U): U;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an\n * argument instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number, initialValue?: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float32Array) => U, initialValue: U): U;\n\n /**\n * Reverses the elements in an Array.\n */\n reverse(): Float32Array;\n\n /**\n * Sets a value or an array of values.\n * @param array A typed or untyped array of values to set.\n * @param offset The index in the current array at which the values are to be written.\n */\n set(array: ArrayLike, offset?: number): void;\n\n /**\n * Returns a section of an array.\n * @param start The beginning of the specified portion of the array.\n * @param end The end of the specified portion of the array.\n */\n slice(start?: number, end?: number): Float32Array;\n\n /**\n * Determines whether the specified callback function returns true for any element of an array.\n * @param callbackfn A function that accepts up to three arguments. The some method calls the\n * callbackfn function for each element in array1 until the callbackfn returns true, or until\n * the end of the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n some(callbackfn: (value: number, index: number, array: Float32Array) => boolean, thisArg?: any): boolean;\n\n /**\n * Sorts an array.\n * @param compareFn The name of the function used to determine the order of the elements. If\n * omitted, the elements are sorted in ascending, ASCII character order.\n */\n sort(compareFn?: (a: number, b: number) => number): this;\n\n /**\n * Gets a new Float32Array view of the ArrayBuffer store for this array, referencing the elements\n * at begin, inclusive, up to end, exclusive.\n * @param begin The index of the beginning of the array.\n * @param end The index of the end of the array.\n */\n subarray(begin: number, end?: number): Float32Array;\n\n /**\n * Converts a number to a string by using the current locale.\n */\n toLocaleString(): string;\n\n /**\n * Returns a string representation of an array.\n */\n toString(): string;\n\n [index: number]: number;\n}\n\ninterface Float32ArrayConstructor {\n readonly prototype: Float32Array;\n new(length: number): Float32Array;\n new(array: ArrayLike): Float32Array;\n new(buffer: ArrayBufferLike, byteOffset?: number, length?: number): Float32Array;\n\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * Returns a new array from a set of elements.\n * @param items A set of elements to include in the new array object.\n */\n of(...items: number[]): Float32Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like or iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(arrayLike: ArrayLike, mapfn?: (v: number, k: number) => number, thisArg?: any): Float32Array;\n\n\n}\ndeclare const Float32Array: Float32ArrayConstructor;\n\n/**\n * A typed array of 64-bit float values. The contents are initialized to 0. If the requested\n * number of bytes could not be allocated an exception is raised.\n */\ninterface Float64Array {\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * The ArrayBuffer instance referenced by the array.\n */\n readonly buffer: ArrayBufferLike;\n\n /**\n * The length in bytes of the array.\n */\n readonly byteLength: number;\n\n /**\n * The offset in bytes of the array.\n */\n readonly byteOffset: number;\n\n /**\n * Returns the this object after copying a section of the array identified by start and end\n * to the same array starting at position target\n * @param target If target is negative, it is treated as length+target where length is the\n * length of the array.\n * @param start If start is negative, it is treated as length+start. If end is negative, it\n * is treated as length+end.\n * @param end If not specified, length of the this object is used as its default value.\n */\n copyWithin(target: number, start: number, end?: number): this;\n\n /**\n * Determines whether all the members of an array satisfy the specified test.\n * @param callbackfn A function that accepts up to three arguments. The every method calls\n * the callbackfn function for each element in array1 until the callbackfn returns false,\n * or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n every(callbackfn: (value: number, index: number, array: Float64Array) => boolean, thisArg?: any): boolean;\n\n /**\n * Returns the this object after filling the section identified by start and end with value\n * @param value value to fill array section with\n * @param start index to start filling the array at. If start is negative, it is treated as\n * length+start where length is the length of the array.\n * @param end index to stop filling the array at. If end is negative, it is treated as\n * length+end.\n */\n fill(value: number, start?: number, end?: number): this;\n\n /**\n * Returns the elements of an array that meet the condition specified in a callback function.\n * @param callbackfn A function that accepts up to three arguments. The filter method calls\n * the callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n filter(callbackfn: (value: number, index: number, array: Float64Array) => any, thisArg?: any): Float64Array;\n\n /**\n * Returns the value of the first element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found, find\n * immediately returns that element value. Otherwise, find returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n find(predicate: (value: number, index: number, obj: Array) => boolean, thisArg?: any): number | undefined;\n\n /**\n * Returns the index of the first element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findIndex(predicate: (value: number, index: number, obj: Array) => boolean, thisArg?: any): number;\n\n /**\n * Performs the specified action for each element in an array.\n * @param callbackfn A function that accepts up to three arguments. forEach calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n forEach(callbackfn: (value: number, index: number, array: Float64Array) => void, thisArg?: any): void;\n\n /**\n * Returns the index of the first occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n indexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * Adds all the elements of an array separated by the specified separator string.\n * @param separator A string used to separate one element of an array from the next in the\n * resulting String. If omitted, the array elements are separated with a comma.\n */\n join(separator?: string): string;\n\n /**\n * Returns the index of the last occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n lastIndexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * The length of the array.\n */\n readonly length: number;\n\n /**\n * Calls a defined callback function on each element of an array, and returns an array that\n * contains the results.\n * @param callbackfn A function that accepts up to three arguments. The map method calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n map(callbackfn: (this: void, value: number, index: number, array: Float64Array) => number, thisArg?: any): Float64Array;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float64Array) => number, initialValue?: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float64Array) => U, initialValue: U): U;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an\n * argument instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float64Array) => number, initialValue?: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float64Array) => U, initialValue: U): U;\n\n /**\n * Reverses the elements in an Array.\n */\n reverse(): Float64Array;\n\n /**\n * Sets a value or an array of values.\n * @param array A typed or untyped array of values to set.\n * @param offset The index in the current array at which the values are to be written.\n */\n set(array: ArrayLike, offset?: number): void;\n\n /**\n * Returns a section of an array.\n * @param start The beginning of the specified portion of the array.\n * @param end The end of the specified portion of the array.\n */\n slice(start?: number, end?: number): Float64Array;\n\n /**\n * Determines whether the specified callback function returns true for any element of an array.\n * @param callbackfn A function that accepts up to three arguments. The some method calls the\n * callbackfn function for each element in array1 until the callbackfn returns true, or until\n * the end of the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n some(callbackfn: (value: number, index: number, array: Float64Array) => boolean, thisArg?: any): boolean;\n\n /**\n * Sorts an array.\n * @param compareFn The name of the function used to determine the order of the elements. If\n * omitted, the elements are sorted in ascending, ASCII character order.\n */\n sort(compareFn?: (a: number, b: number) => number): this;\n\n /**\n * Gets a new Float64Array view of the ArrayBuffer store for this array, referencing the elements\n * at begin, inclusive, up to end, exclusive.\n * @param begin The index of the beginning of the array.\n * @param end The index of the end of the array.\n */\n subarray(begin: number, end?: number): Float64Array;\n\n /**\n * Converts a number to a string by using the current locale.\n */\n toLocaleString(): string;\n\n /**\n * Returns a string representation of an array.\n */\n toString(): string;\n\n [index: number]: number;\n}\n\ninterface Float64ArrayConstructor {\n readonly prototype: Float64Array;\n new(length: number): Float64Array;\n new(array: ArrayLike): Float64Array;\n new(buffer: ArrayBufferLike, byteOffset?: number, length?: number): Float64Array;\n\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * Returns a new array from a set of elements.\n * @param items A set of elements to include in the new array object.\n */\n of(...items: number[]): Float64Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like or iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(arrayLike: ArrayLike, mapfn?: (v: number, k: number) => number, thisArg?: any): Float64Array;\n\n}\ndeclare const Float64Array: Float64ArrayConstructor;\n\n/////////////////////////////\n/// ECMAScript Internationalization API\n/////////////////////////////\n\ndeclare namespace Intl {\n interface CollatorOptions {\n usage?: string;\n localeMatcher?: string;\n numeric?: boolean;\n caseFirst?: string;\n sensitivity?: string;\n ignorePunctuation?: boolean;\n }\n\n interface ResolvedCollatorOptions {\n locale: string;\n usage: string;\n sensitivity: string;\n ignorePunctuation: boolean;\n collation: string;\n caseFirst: string;\n numeric: boolean;\n }\n\n interface Collator {\n compare(x: string, y: string): number;\n resolvedOptions(): ResolvedCollatorOptions;\n }\n var Collator: {\n new(locales?: string | string[], options?: CollatorOptions): Collator;\n (locales?: string | string[], options?: CollatorOptions): Collator;\n supportedLocalesOf(locales: string | string[], options?: CollatorOptions): string[];\n };\n\n interface NumberFormatOptions {\n localeMatcher?: string;\n style?: string;\n currency?: string;\n currencyDisplay?: string;\n useGrouping?: boolean;\n minimumIntegerDigits?: number;\n minimumFractionDigits?: number;\n maximumFractionDigits?: number;\n minimumSignificantDigits?: number;\n maximumSignificantDigits?: number;\n }\n\n interface ResolvedNumberFormatOptions {\n locale: string;\n numberingSystem: string;\n style: string;\n currency?: string;\n currencyDisplay?: string;\n minimumIntegerDigits: number;\n minimumFractionDigits: number;\n maximumFractionDigits: number;\n minimumSignificantDigits?: number;\n maximumSignificantDigits?: number;\n useGrouping: boolean;\n }\n\n interface NumberFormat {\n format(value: number): string;\n resolvedOptions(): ResolvedNumberFormatOptions;\n }\n var NumberFormat: {\n new(locales?: string | string[], options?: NumberFormatOptions): NumberFormat;\n (locales?: string | string[], options?: NumberFormatOptions): NumberFormat;\n supportedLocalesOf(locales: string | string[], options?: NumberFormatOptions): string[];\n };\n\n interface DateTimeFormatOptions {\n localeMatcher?: string;\n weekday?: string;\n era?: string;\n year?: string;\n month?: string;\n day?: string;\n hour?: string;\n minute?: string;\n second?: string;\n timeZoneName?: string;\n formatMatcher?: string;\n hour12?: boolean;\n timeZone?: string;\n }\n\n interface ResolvedDateTimeFormatOptions {\n locale: string;\n calendar: string;\n numberingSystem: string;\n timeZone: string;\n hour12?: boolean;\n weekday?: string;\n era?: string;\n year?: string;\n month?: string;\n day?: string;\n hour?: string;\n minute?: string;\n second?: string;\n timeZoneName?: string;\n }\n\n interface DateTimeFormat {\n format(date?: Date | number): string;\n resolvedOptions(): ResolvedDateTimeFormatOptions;\n }\n var DateTimeFormat: {\n new(locales?: string | string[], options?: DateTimeFormatOptions): DateTimeFormat;\n (locales?: string | string[], options?: DateTimeFormatOptions): DateTimeFormat;\n supportedLocalesOf(locales: string | string[], options?: DateTimeFormatOptions): string[];\n };\n}\n\ninterface String {\n /**\n * Determines whether two strings are equivalent in the current or specified locale.\n * @param that String to compare to target string\n * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used. This parameter must conform to BCP 47 standards; see the Intl.Collator object for details.\n * @param options An object that contains one or more properties that specify comparison options. see the Intl.Collator object for details.\n */\n localeCompare(that: string, locales?: string | string[], options?: Intl.CollatorOptions): number;\n}\n\ninterface Number {\n /**\n * Converts a number to a string by using the current or specified locale.\n * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.\n * @param options An object that contains one or more properties that specify comparison options.\n */\n toLocaleString(locales?: string | string[], options?: Intl.NumberFormatOptions): string;\n}\n\ninterface Date {\n /**\n * Converts a date and time to a string by using the current or specified locale.\n * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.\n * @param options An object that contains one or more properties that specify comparison options.\n */\n toLocaleString(locales?: string | string[], options?: Intl.DateTimeFormatOptions): string;\n /**\n * Converts a date to a string by using the current or specified locale.\n * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.\n * @param options An object that contains one or more properties that specify comparison options.\n */\n toLocaleDateString(locales?: string | string[], options?: Intl.DateTimeFormatOptions): string;\n\n /**\n * Converts a time to a string by using the current or specified locale.\n * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.\n * @param options An object that contains one or more properties that specify comparison options.\n */\n toLocaleTimeString(locales?: string | string[], options?: Intl.DateTimeFormatOptions): string;\n}\n", + "type": 3 + }, + { + "name": "lib.es2015.promise.d.ts", + "text": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved. \nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0 \n \nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, \nMERCHANTABLITY OR NON-INFRINGEMENT. \n \nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// \n\n\ninterface PromiseConstructor {\n /**\n * A reference to the prototype.\n */\n readonly prototype: Promise;\n\n /**\n * Creates a new Promise.\n * @param executor A callback used to initialize the promise. This callback is passed two arguments:\n * a resolve callback used resolve the promise with a value or the result of another promise,\n * and a reject callback used to reject the promise with a provided reason or error.\n */\n new (executor: (resolve: (value?: T | PromiseLike) => void, reject: (reason?: any) => void) => void): Promise;\n\n /**\n * Creates a Promise that is resolved with an array of results when all of the provided Promises\n * resolve, or rejected when any Promise is rejected.\n * @param values An array of Promises.\n * @returns A new Promise.\n */\n all(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike , T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike, T9 | PromiseLike, T10 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>;\n\n /**\n * Creates a Promise that is resolved with an array of results when all of the provided Promises\n * resolve, or rejected when any Promise is rejected.\n * @param values An array of Promises.\n * @returns A new Promise.\n */\n all(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike , T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike, T9 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>;\n\n /**\n * Creates a Promise that is resolved with an array of results when all of the provided Promises\n * resolve, or rejected when any Promise is rejected.\n * @param values An array of Promises.\n * @returns A new Promise.\n */\n all(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike , T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8]>;\n\n /**\n * Creates a Promise that is resolved with an array of results when all of the provided Promises\n * resolve, or rejected when any Promise is rejected.\n * @param values An array of Promises.\n * @returns A new Promise.\n */\n all(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike , T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7]>;\n\n /**\n * Creates a Promise that is resolved with an array of results when all of the provided Promises\n * resolve, or rejected when any Promise is rejected.\n * @param values An array of Promises.\n * @returns A new Promise.\n */\n all(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike , T5 | PromiseLike, T6 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6]>;\n\n /**\n * Creates a Promise that is resolved with an array of results when all of the provided Promises\n * resolve, or rejected when any Promise is rejected.\n * @param values An array of Promises.\n * @returns A new Promise.\n */\n all(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike , T5 | PromiseLike]): Promise<[T1, T2, T3, T4, T5]>;\n\n /**\n * Creates a Promise that is resolved with an array of results when all of the provided Promises\n * resolve, or rejected when any Promise is rejected.\n * @param values An array of Promises.\n * @returns A new Promise.\n */\n all(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike ]): Promise<[T1, T2, T3, T4]>;\n\n /**\n * Creates a Promise that is resolved with an array of results when all of the provided Promises\n * resolve, or rejected when any Promise is rejected.\n * @param values An array of Promises.\n * @returns A new Promise.\n */\n all(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike]): Promise<[T1, T2, T3]>;\n\n /**\n * Creates a Promise that is resolved with an array of results when all of the provided Promises\n * resolve, or rejected when any Promise is rejected.\n * @param values An array of Promises.\n * @returns A new Promise.\n */\n all(values: [T1 | PromiseLike, T2 | PromiseLike]): Promise<[T1, T2]>;\n\n /**\n * Creates a Promise that is resolved with an array of results when all of the provided Promises\n * resolve, or rejected when any Promise is rejected.\n * @param values An array of Promises.\n * @returns A new Promise.\n */\n all(values: (T | PromiseLike)[]): Promise;\n\n /**\n * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved\n * or rejected.\n * @param values An array of Promises.\n * @returns A new Promise.\n */\n race(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike, T9 | PromiseLike, T10 | PromiseLike]): Promise;\n\n /**\n * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved\n * or rejected.\n * @param values An array of Promises.\n * @returns A new Promise.\n */\n race(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike, T9 | PromiseLike]): Promise;\n\n /**\n * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved\n * or rejected.\n * @param values An array of Promises.\n * @returns A new Promise.\n */\n race(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike]): Promise;\n\n /**\n * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved\n * or rejected.\n * @param values An array of Promises.\n * @returns A new Promise.\n */\n race(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike]): Promise;\n\n /**\n * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved\n * or rejected.\n * @param values An array of Promises.\n * @returns A new Promise.\n */\n race(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike]): Promise;\n\n /**\n * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved\n * or rejected.\n * @param values An array of Promises.\n * @returns A new Promise.\n */\n race(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike]): Promise;\n\n /**\n * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved\n * or rejected.\n * @param values An array of Promises.\n * @returns A new Promise.\n */\n race(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike]): Promise;\n\n /**\n * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved\n * or rejected.\n * @param values An array of Promises.\n * @returns A new Promise.\n */\n race(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike]): Promise;\n\n /**\n * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved\n * or rejected.\n * @param values An array of Promises.\n * @returns A new Promise.\n */\n race(values: [T1 | PromiseLike, T2 | PromiseLike]): Promise;\n\n /**\n * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved\n * or rejected.\n * @param values An array of Promises.\n * @returns A new Promise.\n */\n race(values: (T | PromiseLike)[]): Promise;\n\n /**\n * Creates a new rejected promise for the provided reason.\n * @param reason The reason the promise was rejected.\n * @returns A new rejected Promise.\n */\n reject(reason: any): Promise;\n\n /**\n * Creates a new rejected promise for the provided reason.\n * @param reason The reason the promise was rejected.\n * @returns A new rejected Promise.\n */\n reject(reason: any): Promise;\n\n /**\n * Creates a new resolved promise for the provided value.\n * @param value A promise.\n * @returns A promise whose internal state matches the provided promise.\n */\n resolve(value: T | PromiseLike): Promise;\n\n /**\n * Creates a new resolved promise .\n * @returns A resolved promise.\n */\n resolve(): Promise;\n}\n\ndeclare var Promise: PromiseConstructor;", + "type": 3 + }, + { + "name": "lib.es2015.symbol.d.ts", + "text": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved. \nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0 \n \nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, \nMERCHANTABLITY OR NON-INFRINGEMENT. \n \nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// \n\n\ninterface Symbol {\n /** Returns a string representation of an object. */\n toString(): string;\n\n /** Returns the primitive value of the specified object. */\n valueOf(): symbol;\n}\n\ninterface SymbolConstructor {\n /**\n * A reference to the prototype.\n */\n readonly prototype: Symbol;\n\n /**\n * Returns a new unique Symbol value.\n * @param description Description of the new Symbol object.\n */\n (description?: string | number): symbol;\n\n /**\n * Returns a Symbol object from the global symbol registry matching the given key if found.\n * Otherwise, returns a new symbol with this key.\n * @param key key to search for.\n */\n for(key: string): symbol;\n\n /**\n * Returns a key from the global symbol registry matching the given Symbol if found.\n * Otherwise, returns a undefined.\n * @param sym Symbol to find the key for.\n */\n keyFor(sym: symbol): string | undefined;\n}\n\ndeclare var Symbol: SymbolConstructor;", + "type": 3 + }, + { + "name": "lib.es2015.iterable.d.ts", + "text": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved. \nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0 \n \nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, \nMERCHANTABLITY OR NON-INFRINGEMENT. \n \nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// \n\n\n/// \n\ninterface SymbolConstructor {\n /**\n * A method that returns the default iterator for an object. Called by the semantics of the\n * for-of statement.\n */\n readonly iterator: symbol;\n}\n\ninterface IteratorResult {\n done: boolean;\n value: T;\n}\n\ninterface Iterator {\n next(value?: any): IteratorResult;\n return?(value?: any): IteratorResult;\n throw?(e?: any): IteratorResult;\n}\n\ninterface Iterable {\n [Symbol.iterator](): Iterator;\n}\n\ninterface IterableIterator extends Iterator {\n [Symbol.iterator](): IterableIterator;\n}\n\ninterface Array {\n /** Iterator */\n [Symbol.iterator](): IterableIterator;\n\n /**\n * Returns an iterable of key, value pairs for every entry in the array\n */\n entries(): IterableIterator<[number, T]>;\n\n /**\n * Returns an iterable of keys in the array\n */\n keys(): IterableIterator;\n\n /**\n * Returns an iterable of values in the array\n */\n values(): IterableIterator;\n}\n\ninterface ArrayConstructor {\n /**\n * Creates an array from an iterable object.\n * @param iterable An iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(iterable: Iterable, mapfn: (this: void, v: T, k: number) => U): Array;\n from(iterable: Iterable, mapfn: (this: void, v: T, k: number) => U, thisArg: undefined): Array;\n from(iterable: Iterable, mapfn: (this: Z, v: T, k: number) => U, thisArg: Z): Array;\n\n /**\n * Creates an array from an iterable object.\n * @param iterable An iterable object to convert to an array.\n */\n from(iterable: Iterable): Array;\n}\n\ninterface ReadonlyArray {\n /** Iterator of values in the array. */\n [Symbol.iterator](): IterableIterator;\n\n /**\n * Returns an iterable of key, value pairs for every entry in the array\n */\n entries(): IterableIterator<[number, T]>;\n\n /**\n * Returns an iterable of keys in the array\n */\n keys(): IterableIterator;\n\n /**\n * Returns an iterable of values in the array\n */\n values(): IterableIterator;\n}\n\ninterface IArguments {\n /** Iterator */\n [Symbol.iterator](): IterableIterator;\n}\n\ninterface Map {\n /** Returns an iterable of entries in the map. */\n [Symbol.iterator](): IterableIterator<[K, V]>;\n\n /**\n * Returns an iterable of key, value pairs for every entry in the map.\n */\n entries(): IterableIterator<[K, V]>;\n\n /**\n * Returns an iterable of keys in the map\n */\n keys(): IterableIterator;\n\n /**\n * Returns an iterable of values in the map\n */\n values(): IterableIterator;\n}\n\ninterface ReadonlyMap {\n /** Returns an iterable of entries in the map. */\n [Symbol.iterator](): IterableIterator<[K, V]>;\n\n /**\n * Returns an iterable of key, value pairs for every entry in the map.\n */\n entries(): IterableIterator<[K, V]>;\n\n /**\n * Returns an iterable of keys in the map\n */\n keys(): IterableIterator;\n\n /**\n * Returns an iterable of values in the map\n */\n values(): IterableIterator;\n}\n\ninterface MapConstructor {\n new (iterable: Iterable<[K, V]>): Map;\n}\n\ninterface WeakMap { }\n\ninterface WeakMapConstructor {\n new (iterable: Iterable<[K, V]>): WeakMap;\n}\n\ninterface Set {\n /** Iterates over values in the set. */\n [Symbol.iterator](): IterableIterator;\n /**\n * Returns an iterable of [v,v] pairs for every value `v` in the set.\n */\n entries(): IterableIterator<[T, T]>;\n /**\n * Despite its name, returns an iterable of the values in the set,\n */\n keys(): IterableIterator;\n\n /**\n * Returns an iterable of values in the set.\n */\n values(): IterableIterator;\n}\n\ninterface ReadonlySet {\n /** Iterates over values in the set. */\n [Symbol.iterator](): IterableIterator;\n\n /**\n * Returns an iterable of [v,v] pairs for every value `v` in the set.\n */\n entries(): IterableIterator<[T, T]>;\n\n /**\n * Despite its name, returns an iterable of the values in the set,\n */\n keys(): IterableIterator;\n\n /**\n * Returns an iterable of values in the set.\n */\n values(): IterableIterator;\n}\n\ninterface SetConstructor {\n new (iterable: Iterable): Set;\n}\n\ninterface WeakSet { }\n\ninterface WeakSetConstructor {\n new (iterable: Iterable): WeakSet;\n}\n\ninterface Promise { }\n\ninterface PromiseConstructor {\n /**\n * Creates a Promise that is resolved with an array of results when all of the provided Promises\n * resolve, or rejected when any Promise is rejected.\n * @param values An array of Promises.\n * @returns A new Promise.\n */\n all(values: Iterable>): Promise;\n\n /**\n * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved\n * or rejected.\n * @param values An array of Promises.\n * @returns A new Promise.\n */\n race(values: Iterable>): Promise;\n}\n\ndeclare namespace Reflect {\n function enumerate(target: object): IterableIterator;\n}\n\ninterface String {\n /** Iterator */\n [Symbol.iterator](): IterableIterator;\n}\n\n/**\n * A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\n * number of bytes could not be allocated an exception is raised.\n */\ninterface Int8Array {\n [Symbol.iterator](): IterableIterator;\n /**\n * Returns an array of key, value pairs for every entry in the array\n */\n entries(): IterableIterator<[number, number]>;\n /**\n * Returns an list of keys in the array\n */\n keys(): IterableIterator;\n /**\n * Returns an list of values in the array\n */\n values(): IterableIterator;\n}\n\ninterface Int8ArrayConstructor {\n new (elements: Iterable): Int8Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like or iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(arrayLike: Iterable, mapfn: (this: void, v: number, k: number) => number): Int8Array;\n from(arrayLike: Iterable, mapfn: (this: void, v: number, k: number) => number, thisArg: undefined): Int8Array;\n from(arrayLike: Iterable, mapfn: (this: Z, v: number, k: number) => number, thisArg: Z): Int8Array;\n\n from(arrayLike: Iterable): Int8Array;\n}\n\n/**\n * A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\n * requested number of bytes could not be allocated an exception is raised.\n */\ninterface Uint8Array {\n [Symbol.iterator](): IterableIterator;\n /**\n * Returns an array of key, value pairs for every entry in the array\n */\n entries(): IterableIterator<[number, number]>;\n /**\n * Returns an list of keys in the array\n */\n keys(): IterableIterator;\n /**\n * Returns an list of values in the array\n */\n values(): IterableIterator;\n}\n\ninterface Uint8ArrayConstructor {\n new (elements: Iterable): Uint8Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like or iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(arrayLike: Iterable, mapfn: (this: void, v: number, k: number) => number): Uint8Array;\n from(arrayLike: Iterable, mapfn: (this: void, v: number, k: number) => number, thisArg: undefined): Uint8Array;\n from(arrayLike: Iterable, mapfn: (this: Z, v: number, k: number) => number, thisArg: Z): Uint8Array;\n\n from(arrayLike: Iterable): Uint8Array;\n}\n\n/**\n * A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\n * If the requested number of bytes could not be allocated an exception is raised.\n */\ninterface Uint8ClampedArray {\n [Symbol.iterator](): IterableIterator;\n /**\n * Returns an array of key, value pairs for every entry in the array\n */\n entries(): IterableIterator<[number, number]>;\n\n /**\n * Returns an list of keys in the array\n */\n keys(): IterableIterator;\n\n /**\n * Returns an list of values in the array\n */\n values(): IterableIterator;\n}\n\ninterface Uint8ClampedArrayConstructor {\n new (elements: Iterable): Uint8ClampedArray;\n\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like or iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(arrayLike: Iterable, mapfn: (this: void, v: number, k: number) => number): Uint8ClampedArray;\n from(arrayLike: Iterable, mapfn: (this: void, v: number, k: number) => number, thisArg: undefined): Uint8ClampedArray;\n from(arrayLike: Iterable, mapfn: (this: Z, v: number, k: number) => number, thisArg: Z): Uint8ClampedArray;\n\n from(arrayLike: Iterable): Uint8ClampedArray;\n}\n\n/**\n * A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\n * requested number of bytes could not be allocated an exception is raised.\n */\ninterface Int16Array {\n [Symbol.iterator](): IterableIterator;\n /**\n * Returns an array of key, value pairs for every entry in the array\n */\n entries(): IterableIterator<[number, number]>;\n\n /**\n * Returns an list of keys in the array\n */\n keys(): IterableIterator;\n\n /**\n * Returns an list of values in the array\n */\n values(): IterableIterator;\n}\n\ninterface Int16ArrayConstructor {\n new (elements: Iterable): Int16Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like or iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(arrayLike: Iterable, mapfn: (this: void, v: number, k: number) => number): Int16Array;\n from(arrayLike: Iterable, mapfn: (this: void, v: number, k: number) => number, thisArg: undefined): Int16Array;\n from(arrayLike: Iterable, mapfn: (this: Z, v: number, k: number) => number, thisArg: Z): Int16Array;\n\n from(arrayLike: Iterable): Int16Array;\n}\n\n/**\n * A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\n * requested number of bytes could not be allocated an exception is raised.\n */\ninterface Uint16Array {\n [Symbol.iterator](): IterableIterator;\n /**\n * Returns an array of key, value pairs for every entry in the array\n */\n entries(): IterableIterator<[number, number]>;\n /**\n * Returns an list of keys in the array\n */\n keys(): IterableIterator;\n /**\n * Returns an list of values in the array\n */\n values(): IterableIterator;\n}\n\ninterface Uint16ArrayConstructor {\n new (elements: Iterable): Uint16Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like or iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(arrayLike: Iterable, mapfn: (this: void, v: number, k: number) => number): Uint16Array;\n from(arrayLike: Iterable, mapfn: (this: void, v: number, k: number) => number, thisArg: undefined): Uint16Array;\n from(arrayLike: Iterable, mapfn: (this: Z, v: number, k: number) => number, thisArg: Z): Uint16Array;\n\n from(arrayLike: Iterable): Uint16Array;\n}\n\n/**\n * A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\n * requested number of bytes could not be allocated an exception is raised.\n */\ninterface Int32Array {\n [Symbol.iterator](): IterableIterator;\n /**\n * Returns an array of key, value pairs for every entry in the array\n */\n entries(): IterableIterator<[number, number]>;\n /**\n * Returns an list of keys in the array\n */\n keys(): IterableIterator;\n /**\n * Returns an list of values in the array\n */\n values(): IterableIterator;\n}\n\ninterface Int32ArrayConstructor {\n new (elements: Iterable): Int32Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like or iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(arrayLike: Iterable, mapfn: (this: void, v: number, k: number) => number): Int32Array;\n from(arrayLike: Iterable, mapfn: (this: void, v: number, k: number) => number, thisArg: undefined): Int32Array;\n from(arrayLike: Iterable, mapfn: (this: Z, v: number, k: number) => number, thisArg: Z): Int32Array;\n\n from(arrayLike: Iterable): Int32Array;\n}\n\n/**\n * A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\n * requested number of bytes could not be allocated an exception is raised.\n */\ninterface Uint32Array {\n [Symbol.iterator](): IterableIterator;\n /**\n * Returns an array of key, value pairs for every entry in the array\n */\n entries(): IterableIterator<[number, number]>;\n /**\n * Returns an list of keys in the array\n */\n keys(): IterableIterator;\n /**\n * Returns an list of values in the array\n */\n values(): IterableIterator;\n}\n\ninterface Uint32ArrayConstructor {\n new (elements: Iterable): Uint32Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like or iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(arrayLike: Iterable, mapfn: (this: void, v: number, k: number) => number): Uint32Array;\n from(arrayLike: Iterable, mapfn: (this: void, v: number, k: number) => number, thisArg: undefined): Uint32Array;\n from(arrayLike: Iterable, mapfn: (this: Z, v: number, k: number) => number, thisArg: Z): Uint32Array;\n\n from(arrayLike: Iterable): Uint32Array;\n}\n\n/**\n * A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\n * of bytes could not be allocated an exception is raised.\n */\ninterface Float32Array {\n [Symbol.iterator](): IterableIterator;\n /**\n * Returns an array of key, value pairs for every entry in the array\n */\n entries(): IterableIterator<[number, number]>;\n /**\n * Returns an list of keys in the array\n */\n keys(): IterableIterator;\n /**\n * Returns an list of values in the array\n */\n values(): IterableIterator;\n}\n\ninterface Float32ArrayConstructor {\n new (elements: Iterable): Float32Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like or iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(arrayLike: Iterable, mapfn: (this: void, v: number, k: number) => number): Float32Array;\n from(arrayLike: Iterable, mapfn: (this: void, v: number, k: number) => number, thisArg: undefined): Float32Array;\n from(arrayLike: Iterable, mapfn: (this: Z, v: number, k: number) => number, thisArg: Z): Float32Array;\n\n from(arrayLike: Iterable): Float32Array;\n}\n\n/**\n * A typed array of 64-bit float values. The contents are initialized to 0. If the requested\n * number of bytes could not be allocated an exception is raised.\n */\ninterface Float64Array {\n [Symbol.iterator](): IterableIterator;\n /**\n * Returns an array of key, value pairs for every entry in the array\n */\n entries(): IterableIterator<[number, number]>;\n /**\n * Returns an list of keys in the array\n */\n keys(): IterableIterator;\n /**\n * Returns an list of values in the array\n */\n values(): IterableIterator;\n}\n\ninterface Float64ArrayConstructor {\n new (elements: Iterable): Float64Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like or iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(arrayLike: Iterable, mapfn: (this: void, v: number, k: number) => number): Float64Array;\n from(arrayLike: Iterable, mapfn: (this: void, v: number, k: number) => number, thisArg: undefined): Float64Array;\n from(arrayLike: Iterable, mapfn: (this: Z, v: number, k: number) => number, thisArg: Z): Float64Array;\n\n from(arrayLike: Iterable): Float64Array;\n}\n", + "type": 3 + }, + { + "name": "lib.es2015.symbol.wellknown.d.ts", + "text": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved. \nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0 \n \nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, \nMERCHANTABLITY OR NON-INFRINGEMENT. \n \nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// \n\n\n/// \n\ninterface SymbolConstructor {\n /**\n * A method that determines if a constructor object recognizes an object as one of the\n * constructor’s instances. Called by the semantics of the instanceof operator.\n */\n readonly hasInstance: symbol;\n\n /**\n * A Boolean value that if true indicates that an object should flatten to its array elements\n * by Array.prototype.concat.\n */\n readonly isConcatSpreadable: symbol;\n\n /**\n * A regular expression method that matches the regular expression against a string. Called\n * by the String.prototype.match method.\n */\n readonly match: symbol;\n\n /**\n * A regular expression method that replaces matched substrings of a string. Called by the\n * String.prototype.replace method.\n */\n readonly replace: symbol;\n\n /**\n * A regular expression method that returns the index within a string that matches the\n * regular expression. Called by the String.prototype.search method.\n */\n readonly search: symbol;\n\n /**\n * A function valued property that is the constructor function that is used to create\n * derived objects.\n */\n readonly species: symbol;\n\n /**\n * A regular expression method that splits a string at the indices that match the regular\n * expression. Called by the String.prototype.split method.\n */\n readonly split: symbol;\n\n /**\n * A method that converts an object to a corresponding primitive value.\n * Called by the ToPrimitive abstract operation.\n */\n readonly toPrimitive: symbol;\n\n /**\n * A String value that is used in the creation of the default string description of an object.\n * Called by the built-in method Object.prototype.toString.\n */\n readonly toStringTag: symbol;\n\n /**\n * An Object whose own property names are property names that are excluded from the 'with'\n * environment bindings of the associated objects.\n */\n readonly unscopables: symbol;\n}\n\ninterface Symbol {\n readonly [Symbol.toStringTag]: \"Symbol\";\n}\n\ninterface Array {\n /**\n * Returns an object whose properties have the value 'true'\n * when they will be absent when used in a 'with' statement.\n */\n [Symbol.unscopables](): {\n copyWithin: boolean;\n entries: boolean;\n fill: boolean;\n find: boolean;\n findIndex: boolean;\n keys: boolean;\n values: boolean;\n };\n}\n\ninterface Date {\n /**\n * Converts a Date object to a string.\n */\n [Symbol.toPrimitive](hint: \"default\"): string;\n /**\n * Converts a Date object to a string.\n */\n [Symbol.toPrimitive](hint: \"string\"): string;\n /**\n * Converts a Date object to a number.\n */\n [Symbol.toPrimitive](hint: \"number\"): number;\n /**\n * Converts a Date object to a string or number.\n *\n * @param hint The strings \"number\", \"string\", or \"default\" to specify what primitive to return.\n *\n * @throws {TypeError} If 'hint' was given something other than \"number\", \"string\", or \"default\".\n * @returns A number if 'hint' was \"number\", a string if 'hint' was \"string\" or \"default\".\n */\n [Symbol.toPrimitive](hint: string): string | number;\n}\n\ninterface Map {\n readonly [Symbol.toStringTag]: \"Map\";\n}\n\ninterface WeakMap{\n readonly [Symbol.toStringTag]: \"WeakMap\";\n}\n\ninterface Set {\n readonly [Symbol.toStringTag]: \"Set\";\n}\n\ninterface WeakSet {\n readonly [Symbol.toStringTag]: \"WeakSet\";\n}\n\ninterface JSON {\n readonly [Symbol.toStringTag]: \"JSON\";\n}\n\ninterface Function {\n /**\n * Determines whether the given value inherits from this function if this function was used\n * as a constructor function.\n *\n * A constructor function can control which objects are recognized as its instances by\n * 'instanceof' by overriding this method.\n */\n [Symbol.hasInstance](value: any): boolean;\n}\n\ninterface GeneratorFunction {\n readonly [Symbol.toStringTag]: \"GeneratorFunction\";\n}\n\ninterface Math {\n readonly [Symbol.toStringTag]: \"Math\";\n}\n\ninterface Promise {\n readonly [Symbol.toStringTag]: \"Promise\";\n}\n\ninterface PromiseConstructor {\n readonly [Symbol.species]: Function;\n}\n\ninterface RegExp {\n /**\n * Matches a string with this regular expression, and returns an array containing the results of\n * that search.\n * @param string A string to search within.\n */\n [Symbol.match](string: string): RegExpMatchArray | null;\n\n /**\n * Replaces text in a string, using this regular expression.\n * @param string A String object or string literal whose contents matching against\n * this regular expression will be replaced\n * @param replaceValue A String object or string literal containing the text to replace for every\n * successful match of this regular expression.\n */\n [Symbol.replace](string: string, replaceValue: string): string;\n\n /**\n * Replaces text in a string, using this regular expression.\n * @param string A String object or string literal whose contents matching against\n * this regular expression will be replaced\n * @param replacer A function that returns the replacement text.\n */\n [Symbol.replace](string: string, replacer: (substring: string, ...args: any[]) => string): string;\n\n /**\n * Finds the position beginning first substring match in a regular expression search\n * using this regular expression.\n *\n * @param string The string to search within.\n */\n [Symbol.search](string: string): number;\n\n /**\n * Returns an array of substrings that were delimited by strings in the original input that\n * match against this regular expression.\n *\n * If the regular expression contains capturing parentheses, then each time this\n * regular expression matches, the results (including any undefined results) of the\n * capturing parentheses are spliced.\n *\n * @param string string value to split\n * @param limit if not undefined, the output array is truncated so that it contains no more\n * than 'limit' elements.\n */\n [Symbol.split](string: string, limit?: number): string[];\n}\n\ninterface RegExpConstructor {\n [Symbol.species](): RegExpConstructor;\n}\n\ninterface String {\n /**\n * Matches a string an object that supports being matched against, and returns an array containing the results of that search.\n * @param matcher An object that supports being matched against.\n */\n match(matcher: { [Symbol.match](string: string): RegExpMatchArray | null; }): RegExpMatchArray | null;\n\n /**\n * Replaces text in a string, using an object that supports replacement within a string.\n * @param searchValue A object can search for and replace matches within a string.\n * @param replaceValue A string containing the text to replace for every successful match of searchValue in this string.\n */\n replace(searchValue: { [Symbol.replace](string: string, replaceValue: string): string; }, replaceValue: string): string;\n\n /**\n * Replaces text in a string, using an object that supports replacement within a string.\n * @param searchValue A object can search for and replace matches within a string.\n * @param replacer A function that returns the replacement text.\n */\n replace(searchValue: { [Symbol.replace](string: string, replacer: (substring: string, ...args: any[]) => string): string; }, replacer: (substring: string, ...args: any[]) => string): string;\n\n /**\n * Finds the first substring match in a regular expression search.\n * @param searcher An object which supports searching within a string.\n */\n search(searcher: { [Symbol.search](string: string): number; }): number;\n\n /**\n * Split a string into substrings using the specified separator and return them as an array.\n * @param splitter An object that can split a string.\n * @param limit A value used to limit the number of elements returned in the array.\n */\n split(splitter: { [Symbol.split](string: string, limit?: number): string[]; }, limit?: number): string[];\n}\n\n/**\n * Represents a raw buffer of binary data, which is used to store data for the\n * different typed arrays. ArrayBuffers cannot be read from or written to directly,\n * but can be passed to a typed array or DataView Object to interpret the raw\n * buffer as needed.\n */\ninterface ArrayBuffer {\n readonly [Symbol.toStringTag]: \"ArrayBuffer\";\n}\n\ninterface DataView {\n readonly [Symbol.toStringTag]: \"DataView\";\n}\n\n/**\n * A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\n * number of bytes could not be allocated an exception is raised.\n */\ninterface Int8Array {\n readonly [Symbol.toStringTag]: \"Int8Array\";\n}\n\n/**\n * A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\n * requested number of bytes could not be allocated an exception is raised.\n */\ninterface Uint8Array {\n readonly [Symbol.toStringTag]: \"UInt8Array\";\n}\n\n/**\n * A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\n * If the requested number of bytes could not be allocated an exception is raised.\n */\ninterface Uint8ClampedArray {\n readonly [Symbol.toStringTag]: \"Uint8ClampedArray\";\n}\n\n/**\n * A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\n * requested number of bytes could not be allocated an exception is raised.\n */\ninterface Int16Array {\n readonly [Symbol.toStringTag]: \"Int16Array\";\n}\n\n/**\n * A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\n * requested number of bytes could not be allocated an exception is raised.\n */\ninterface Uint16Array {\n readonly [Symbol.toStringTag]: \"Uint16Array\";\n}\n\n/**\n * A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\n * requested number of bytes could not be allocated an exception is raised.\n */\ninterface Int32Array {\n readonly [Symbol.toStringTag]: \"Int32Array\";\n}\n\n/**\n * A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\n * requested number of bytes could not be allocated an exception is raised.\n */\ninterface Uint32Array {\n readonly [Symbol.toStringTag]: \"Uint32Array\";\n}\n\n/**\n * A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\n * of bytes could not be allocated an exception is raised.\n */\ninterface Float32Array {\n readonly [Symbol.toStringTag]: \"Float32Array\";\n}\n\n/**\n * A typed array of 64-bit float values. The contents are initialized to 0. If the requested\n * number of bytes could not be allocated an exception is raised.\n */\ninterface Float64Array {\n readonly [Symbol.toStringTag]: \"Float64Array\";\n}\n", + "type": 3 + }, + { + "name": "lib.dom.d.ts", + "text": "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved. \nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0 \n \nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, \nMERCHANTABLITY OR NON-INFRINGEMENT. \n \nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// \n\n\n\n/////////////////////////////\n/// DOM APIs\n/////////////////////////////\n\ninterface Account {\n displayName?: string;\n id?: string;\n imageURL?: string;\n name?: string;\n rpDisplayName?: string;\n}\n\ninterface Algorithm {\n name: string;\n}\n\ninterface AnimationEventInit extends EventInit {\n animationName?: string;\n elapsedTime?: number;\n}\n\ninterface AssertionOptions {\n allowList?: ScopedCredentialDescriptor[];\n extensions?: WebAuthnExtensions;\n rpId?: USVString;\n timeoutSeconds?: number;\n}\n\ninterface CacheQueryOptions {\n cacheName?: string;\n ignoreMethod?: boolean;\n ignoreSearch?: boolean;\n ignoreVary?: boolean;\n}\n\ninterface ClientData {\n challenge?: string;\n extensions?: WebAuthnExtensions;\n hashAlg?: string | Algorithm;\n origin?: string;\n rpId?: string;\n tokenBinding?: string;\n}\n\ninterface CloseEventInit extends EventInit {\n code?: number;\n reason?: string;\n wasClean?: boolean;\n}\n\ninterface CompositionEventInit extends UIEventInit {\n data?: string;\n}\n\ninterface ConfirmSiteSpecificExceptionsInformation extends ExceptionInformation {\n arrayOfDomainStrings?: string[];\n}\n\ninterface ConstrainBooleanParameters {\n exact?: boolean;\n ideal?: boolean;\n}\n\ninterface ConstrainDOMStringParameters {\n exact?: string | string[];\n ideal?: string | string[];\n}\n\ninterface ConstrainDoubleRange extends DoubleRange {\n exact?: number;\n ideal?: number;\n}\n\ninterface ConstrainLongRange extends LongRange {\n exact?: number;\n ideal?: number;\n}\n\ninterface ConstrainVideoFacingModeParameters {\n exact?: VideoFacingModeEnum | VideoFacingModeEnum[];\n ideal?: VideoFacingModeEnum | VideoFacingModeEnum[];\n}\n\ninterface CustomEventInit extends EventInit {\n detail?: any;\n}\n\ninterface DeviceAccelerationDict {\n x?: number;\n y?: number;\n z?: number;\n}\n\ninterface DeviceLightEventInit extends EventInit {\n value?: number;\n}\n\ninterface DeviceMotionEventInit extends EventInit {\n acceleration?: DeviceAccelerationDict;\n accelerationIncludingGravity?: DeviceAccelerationDict;\n interval?: number;\n rotationRate?: DeviceRotationRateDict;\n}\n\ninterface DeviceOrientationEventInit extends EventInit {\n absolute?: boolean;\n alpha?: number;\n beta?: number;\n gamma?: number;\n}\n\ninterface DeviceRotationRateDict {\n alpha?: number;\n beta?: number;\n gamma?: number;\n}\n\ninterface DOMRectInit {\n height?: any;\n width?: any;\n x?: any;\n y?: any;\n}\n\ninterface DoubleRange {\n max?: number;\n min?: number;\n}\n\ninterface ErrorEventInit extends EventInit {\n colno?: number;\n error?: any;\n filename?: string;\n lineno?: number;\n message?: string;\n}\n\ninterface EventInit {\n scoped?: boolean;\n bubbles?: boolean;\n cancelable?: boolean;\n}\n\ninterface EventModifierInit extends UIEventInit {\n altKey?: boolean;\n ctrlKey?: boolean;\n metaKey?: boolean;\n modifierAltGraph?: boolean;\n modifierCapsLock?: boolean;\n modifierFn?: boolean;\n modifierFnLock?: boolean;\n modifierHyper?: boolean;\n modifierNumLock?: boolean;\n modifierOS?: boolean;\n modifierScrollLock?: boolean;\n modifierSuper?: boolean;\n modifierSymbol?: boolean;\n modifierSymbolLock?: boolean;\n shiftKey?: boolean;\n}\n\ninterface ExceptionInformation {\n domain?: string;\n}\n\ninterface FocusEventInit extends UIEventInit {\n relatedTarget?: EventTarget;\n}\n\ninterface FocusNavigationEventInit extends EventInit {\n navigationReason?: string;\n originHeight?: number;\n originLeft?: number;\n originTop?: number;\n originWidth?: number;\n}\n\ninterface FocusNavigationOrigin {\n originHeight?: number;\n originLeft?: number;\n originTop?: number;\n originWidth?: number;\n}\n\ninterface GamepadEventInit extends EventInit {\n gamepad?: Gamepad;\n}\n\ninterface GetNotificationOptions {\n tag?: string;\n}\n\ninterface HashChangeEventInit extends EventInit {\n newURL?: string;\n oldURL?: string;\n}\n\ninterface IDBIndexParameters {\n multiEntry?: boolean;\n unique?: boolean;\n}\n\ninterface IDBObjectStoreParameters {\n autoIncrement?: boolean;\n keyPath?: IDBKeyPath;\n}\n\ninterface IntersectionObserverEntryInit {\n boundingClientRect?: DOMRectInit;\n intersectionRect?: DOMRectInit;\n rootBounds?: DOMRectInit;\n target?: Element;\n time?: number;\n}\n\ninterface IntersectionObserverInit {\n root?: Element;\n rootMargin?: string;\n threshold?: number | number[];\n}\n\ninterface KeyAlgorithm {\n name?: string;\n}\n\ninterface KeyboardEventInit extends EventModifierInit {\n code?: string;\n key?: string;\n location?: number;\n repeat?: boolean;\n}\n\ninterface LongRange {\n max?: number;\n min?: number;\n}\n\ninterface MediaEncryptedEventInit extends EventInit {\n initData?: ArrayBuffer;\n initDataType?: string;\n}\n\ninterface MediaKeyMessageEventInit extends EventInit {\n message?: ArrayBuffer;\n messageType?: MediaKeyMessageType;\n}\n\ninterface MediaKeySystemConfiguration {\n audioCapabilities?: MediaKeySystemMediaCapability[];\n distinctiveIdentifier?: MediaKeysRequirement;\n initDataTypes?: string[];\n persistentState?: MediaKeysRequirement;\n videoCapabilities?: MediaKeySystemMediaCapability[];\n}\n\ninterface MediaKeySystemMediaCapability {\n contentType?: string;\n robustness?: string;\n}\n\ninterface MediaStreamConstraints {\n audio?: boolean | MediaTrackConstraints;\n video?: boolean | MediaTrackConstraints;\n}\n\ninterface MediaStreamErrorEventInit extends EventInit {\n error?: MediaStreamError;\n}\n\ninterface MediaStreamEventInit extends EventInit {\n stream?: MediaStream;\n}\n\ninterface MediaStreamTrackEventInit extends EventInit {\n track?: MediaStreamTrack;\n}\n\ninterface MediaTrackCapabilities {\n aspectRatio?: number | DoubleRange;\n deviceId?: string;\n echoCancellation?: boolean[];\n facingMode?: string;\n frameRate?: number | DoubleRange;\n groupId?: string;\n height?: number | LongRange;\n sampleRate?: number | LongRange;\n sampleSize?: number | LongRange;\n volume?: number | DoubleRange;\n width?: number | LongRange;\n}\n\ninterface MediaTrackConstraints extends MediaTrackConstraintSet {\n advanced?: MediaTrackConstraintSet[];\n}\n\ninterface MediaTrackConstraintSet {\n aspectRatio?: number | ConstrainDoubleRange;\n deviceId?: string | string[] | ConstrainDOMStringParameters;\n echoCancelation?: boolean | ConstrainBooleanParameters;\n facingMode?: string | string[] | ConstrainDOMStringParameters;\n frameRate?: number | ConstrainDoubleRange;\n groupId?: string | string[] | ConstrainDOMStringParameters;\n height?: number | ConstrainLongRange;\n sampleRate?: number | ConstrainLongRange;\n sampleSize?: number | ConstrainLongRange;\n volume?: number | ConstrainDoubleRange;\n width?: number | ConstrainLongRange;\n}\n\ninterface MediaTrackSettings {\n aspectRatio?: number;\n deviceId?: string;\n echoCancellation?: boolean;\n facingMode?: string;\n frameRate?: number;\n groupId?: string;\n height?: number;\n sampleRate?: number;\n sampleSize?: number;\n volume?: number;\n width?: number;\n}\n\ninterface MediaTrackSupportedConstraints {\n aspectRatio?: boolean;\n deviceId?: boolean;\n echoCancellation?: boolean;\n facingMode?: boolean;\n frameRate?: boolean;\n groupId?: boolean;\n height?: boolean;\n sampleRate?: boolean;\n sampleSize?: boolean;\n volume?: boolean;\n width?: boolean;\n}\n\ninterface MessageEventInit extends EventInit {\n lastEventId?: string;\n channel?: string;\n data?: any;\n origin?: string;\n ports?: MessagePort[];\n source?: Window;\n}\n\ninterface MouseEventInit extends EventModifierInit {\n button?: number;\n buttons?: number;\n clientX?: number;\n clientY?: number;\n relatedTarget?: EventTarget;\n screenX?: number;\n screenY?: number;\n}\n\ninterface MSAccountInfo {\n accountImageUri?: string;\n accountName?: string;\n rpDisplayName?: string;\n userDisplayName?: string;\n userId?: string;\n}\n\ninterface MSAudioLocalClientEvent extends MSLocalClientEventBase {\n cpuInsufficientEventRatio?: number;\n deviceCaptureNotFunctioningEventRatio?: number;\n deviceClippingEventRatio?: number;\n deviceEchoEventRatio?: number;\n deviceGlitchesEventRatio?: number;\n deviceHalfDuplexAECEventRatio?: number;\n deviceHowlingEventCount?: number;\n deviceLowSNREventRatio?: number;\n deviceLowSpeechLevelEventRatio?: number;\n deviceMultipleEndpointsEventCount?: number;\n deviceNearEndToEchoRatioEventRatio?: number;\n deviceRenderMuteEventRatio?: number;\n deviceRenderNotFunctioningEventRatio?: number;\n deviceRenderZeroVolumeEventRatio?: number;\n networkDelayEventRatio?: number;\n networkSendQualityEventRatio?: number;\n}\n\ninterface MSAudioRecvPayload extends MSPayloadBase {\n burstLossLength1?: number;\n burstLossLength2?: number;\n burstLossLength3?: number;\n burstLossLength4?: number;\n burstLossLength5?: number;\n burstLossLength6?: number;\n burstLossLength7?: number;\n burstLossLength8OrHigher?: number;\n fecRecvDistance1?: number;\n fecRecvDistance2?: number;\n fecRecvDistance3?: number;\n packetReorderDepthAvg?: number;\n packetReorderDepthMax?: number;\n packetReorderRatio?: number;\n ratioCompressedSamplesAvg?: number;\n ratioConcealedSamplesAvg?: number;\n ratioStretchedSamplesAvg?: number;\n samplingRate?: number;\n signal?: MSAudioRecvSignal;\n}\n\ninterface MSAudioRecvSignal {\n initialSignalLevelRMS?: number;\n recvNoiseLevelCh1?: number;\n recvSignalLevelCh1?: number;\n renderLoopbackSignalLevel?: number;\n renderNoiseLevel?: number;\n renderSignalLevel?: number;\n}\n\ninterface MSAudioSendPayload extends MSPayloadBase {\n audioFECUsed?: boolean;\n samplingRate?: number;\n sendMutePercent?: number;\n signal?: MSAudioSendSignal;\n}\n\ninterface MSAudioSendSignal {\n noiseLevel?: number;\n sendNoiseLevelCh1?: number;\n sendSignalLevelCh1?: number;\n}\n\ninterface MSConnectivity {\n iceType?: MSIceType;\n iceWarningFlags?: MSIceWarningFlags;\n relayAddress?: MSRelayAddress;\n}\n\ninterface MSCredentialFilter {\n accept?: MSCredentialSpec[];\n}\n\ninterface MSCredentialParameters {\n type?: MSCredentialType;\n}\n\ninterface MSCredentialSpec {\n id?: string;\n type?: MSCredentialType;\n}\n\ninterface MSDelay {\n roundTrip?: number;\n roundTripMax?: number;\n}\n\ninterface MSDescription extends RTCStats {\n connectivity?: MSConnectivity;\n deviceDevName?: string;\n localAddr?: MSIPAddressInfo;\n networkconnectivity?: MSNetworkConnectivityInfo;\n reflexiveLocalIPAddr?: MSIPAddressInfo;\n remoteAddr?: MSIPAddressInfo;\n transport?: RTCIceProtocol;\n}\n\ninterface MSFIDOCredentialParameters extends MSCredentialParameters {\n algorithm?: string | Algorithm;\n authenticators?: AAGUID[];\n}\n\ninterface MSIceWarningFlags {\n allocationMessageIntegrityFailed?: boolean;\n alternateServerReceived?: boolean;\n connCheckMessageIntegrityFailed?: boolean;\n connCheckOtherError?: boolean;\n fipsAllocationFailure?: boolean;\n multipleRelayServersAttempted?: boolean;\n noRelayServersConfigured?: boolean;\n portRangeExhausted?: boolean;\n pseudoTLSFailure?: boolean;\n tcpNatConnectivityFailed?: boolean;\n tcpRelayConnectivityFailed?: boolean;\n turnAuthUnknownUsernameError?: boolean;\n turnTcpAllocateFailed?: boolean;\n turnTcpSendFailed?: boolean;\n turnTcpTimedOut?: boolean;\n turnTurnTcpConnectivityFailed?: boolean;\n turnUdpAllocateFailed?: boolean;\n turnUdpSendFailed?: boolean;\n udpLocalConnectivityFailed?: boolean;\n udpNatConnectivityFailed?: boolean;\n udpRelayConnectivityFailed?: boolean;\n useCandidateChecksFailed?: boolean;\n}\n\ninterface MSIPAddressInfo {\n ipAddr?: string;\n manufacturerMacAddrMask?: string;\n port?: number;\n}\n\ninterface MSJitter {\n interArrival?: number;\n interArrivalMax?: number;\n interArrivalSD?: number;\n}\n\ninterface MSLocalClientEventBase extends RTCStats {\n networkBandwidthLowEventRatio?: number;\n networkReceiveQualityEventRatio?: number;\n}\n\ninterface MSNetwork extends RTCStats {\n delay?: MSDelay;\n jitter?: MSJitter;\n packetLoss?: MSPacketLoss;\n utilization?: MSUtilization;\n}\n\ninterface MSNetworkConnectivityInfo {\n linkspeed?: number;\n networkConnectionDetails?: string;\n vpn?: boolean;\n}\n\ninterface MSNetworkInterfaceType {\n interfaceTypeEthernet?: boolean;\n interfaceTypePPP?: boolean;\n interfaceTypeTunnel?: boolean;\n interfaceTypeWireless?: boolean;\n interfaceTypeWWAN?: boolean;\n}\n\ninterface MSOutboundNetwork extends MSNetwork {\n appliedBandwidthLimit?: number;\n}\n\ninterface MSPacketLoss {\n lossRate?: number;\n lossRateMax?: number;\n}\n\ninterface MSPayloadBase extends RTCStats {\n payloadDescription?: string;\n}\n\ninterface MSPortRange {\n max?: number;\n min?: number;\n}\n\ninterface MSRelayAddress {\n port?: number;\n relayAddress?: string;\n}\n\ninterface MSSignatureParameters {\n userPrompt?: string;\n}\n\ninterface MSTransportDiagnosticsStats extends RTCStats {\n allocationTimeInMs?: number;\n baseAddress?: string;\n baseInterface?: MSNetworkInterfaceType;\n iceRole?: RTCIceRole;\n iceWarningFlags?: MSIceWarningFlags;\n interfaces?: MSNetworkInterfaceType;\n localAddress?: string;\n localAddrType?: MSIceAddrType;\n localInterface?: MSNetworkInterfaceType;\n localMR?: string;\n localMRTCPPort?: number;\n localSite?: string;\n msRtcEngineVersion?: string;\n networkName?: string;\n numConsentReqReceived?: number;\n numConsentReqSent?: number;\n numConsentRespReceived?: number;\n numConsentRespSent?: number;\n portRangeMax?: number;\n portRangeMin?: number;\n protocol?: RTCIceProtocol;\n remoteAddress?: string;\n remoteAddrType?: MSIceAddrType;\n remoteMR?: string;\n remoteMRTCPPort?: number;\n remoteSite?: string;\n rtpRtcpMux?: boolean;\n stunVer?: number;\n}\n\ninterface MSUtilization {\n bandwidthEstimation?: number;\n bandwidthEstimationAvg?: number;\n bandwidthEstimationMax?: number;\n bandwidthEstimationMin?: number;\n bandwidthEstimationStdDev?: number;\n packets?: number;\n}\n\ninterface MSVideoPayload extends MSPayloadBase {\n durationSeconds?: number;\n resolution?: string;\n videoBitRateAvg?: number;\n videoBitRateMax?: number;\n videoFrameRateAvg?: number;\n videoPacketLossRate?: number;\n}\n\ninterface MSVideoRecvPayload extends MSVideoPayload {\n lowBitRateCallPercent?: number;\n lowFrameRateCallPercent?: number;\n recvBitRateAverage?: number;\n recvBitRateMaximum?: number;\n recvCodecType?: string;\n recvFpsHarmonicAverage?: number;\n recvFrameRateAverage?: number;\n recvNumResSwitches?: number;\n recvReorderBufferMaxSuccessfullyOrderedExtent?: number;\n recvReorderBufferMaxSuccessfullyOrderedLateTime?: number;\n recvReorderBufferPacketsDroppedDueToBufferExhaustion?: number;\n recvReorderBufferPacketsDroppedDueToTimeout?: number;\n recvReorderBufferReorderedPackets?: number;\n recvResolutionHeight?: number;\n recvResolutionWidth?: number;\n recvVideoStreamsMax?: number;\n recvVideoStreamsMin?: number;\n recvVideoStreamsMode?: number;\n reorderBufferTotalPackets?: number;\n videoFrameLossRate?: number;\n videoPostFECPLR?: number;\n videoResolutions?: MSVideoResolutionDistribution;\n}\n\ninterface MSVideoResolutionDistribution {\n cifQuality?: number;\n h1080Quality?: number;\n h1440Quality?: number;\n h2160Quality?: number;\n h720Quality?: number;\n vgaQuality?: number;\n}\n\ninterface MSVideoSendPayload extends MSVideoPayload {\n sendBitRateAverage?: number;\n sendBitRateMaximum?: number;\n sendFrameRateAverage?: number;\n sendResolutionHeight?: number;\n sendResolutionWidth?: number;\n sendVideoStreamsMax?: number;\n}\n\ninterface MsZoomToOptions {\n animate?: string;\n contentX?: number;\n contentY?: number;\n scaleFactor?: number;\n viewportX?: string;\n viewportY?: string;\n}\n\ninterface MutationObserverInit {\n attributeFilter?: string[];\n attributeOldValue?: boolean;\n attributes?: boolean;\n characterData?: boolean;\n characterDataOldValue?: boolean;\n childList?: boolean;\n subtree?: boolean;\n}\n\ninterface NotificationOptions {\n body?: string;\n dir?: NotificationDirection;\n icon?: string;\n lang?: string;\n tag?: string;\n}\n\ninterface ObjectURLOptions {\n oneTimeOnly?: boolean;\n}\n\ninterface PaymentCurrencyAmount {\n currency?: string;\n currencySystem?: string;\n value?: string;\n}\n\ninterface PaymentDetails {\n displayItems?: PaymentItem[];\n error?: string;\n modifiers?: PaymentDetailsModifier[];\n shippingOptions?: PaymentShippingOption[];\n total?: PaymentItem;\n}\n\ninterface PaymentDetailsModifier {\n additionalDisplayItems?: PaymentItem[];\n data?: any;\n supportedMethods?: string[];\n total?: PaymentItem;\n}\n\ninterface PaymentItem {\n amount?: PaymentCurrencyAmount;\n label?: string;\n pending?: boolean;\n}\n\ninterface PaymentMethodData {\n data?: any;\n supportedMethods?: string[];\n}\n\ninterface PaymentOptions {\n requestPayerEmail?: boolean;\n requestPayerName?: boolean;\n requestPayerPhone?: boolean;\n requestShipping?: boolean;\n shippingType?: string;\n}\n\ninterface PaymentRequestUpdateEventInit extends EventInit {\n}\n\ninterface PaymentShippingOption {\n amount?: PaymentCurrencyAmount;\n id?: string;\n label?: string;\n selected?: boolean;\n}\n\ninterface PeriodicWaveConstraints {\n disableNormalization?: boolean;\n}\n\ninterface PointerEventInit extends MouseEventInit {\n height?: number;\n isPrimary?: boolean;\n pointerId?: number;\n pointerType?: string;\n pressure?: number;\n tiltX?: number;\n tiltY?: number;\n width?: number;\n}\n\ninterface PopStateEventInit extends EventInit {\n state?: any;\n}\n\ninterface PositionOptions {\n enableHighAccuracy?: boolean;\n maximumAge?: number;\n timeout?: number;\n}\n\ninterface ProgressEventInit extends EventInit {\n lengthComputable?: boolean;\n loaded?: number;\n total?: number;\n}\n\ninterface PushSubscriptionOptionsInit {\n applicationServerKey?: any;\n userVisibleOnly?: boolean;\n}\n\ninterface RegistrationOptions {\n scope?: string;\n}\n\ninterface RequestInit {\n body?: any;\n cache?: RequestCache;\n credentials?: RequestCredentials;\n headers?: any;\n integrity?: string;\n keepalive?: boolean;\n method?: string;\n mode?: RequestMode;\n redirect?: RequestRedirect;\n referrer?: string;\n referrerPolicy?: ReferrerPolicy;\n window?: any;\n}\n\ninterface ResponseInit {\n headers?: any;\n status?: number;\n statusText?: string;\n}\n\ninterface RTCConfiguration {\n bundlePolicy?: RTCBundlePolicy;\n iceServers?: RTCIceServer[];\n iceTransportPolicy?: RTCIceTransportPolicy;\n peerIdentity?: string;\n}\n\ninterface RTCDtlsFingerprint {\n algorithm?: string;\n value?: string;\n}\n\ninterface RTCDtlsParameters {\n fingerprints?: RTCDtlsFingerprint[];\n role?: RTCDtlsRole;\n}\n\ninterface RTCDTMFToneChangeEventInit extends EventInit {\n tone?: string;\n}\n\ninterface RTCIceCandidateAttributes extends RTCStats {\n addressSourceUrl?: string;\n candidateType?: RTCStatsIceCandidateType;\n ipAddress?: string;\n portNumber?: number;\n priority?: number;\n transport?: string;\n}\n\ninterface RTCIceCandidateComplete {\n}\n\ninterface RTCIceCandidateDictionary {\n foundation?: string;\n ip?: string;\n msMTurnSessionId?: string;\n port?: number;\n priority?: number;\n protocol?: RTCIceProtocol;\n relatedAddress?: string;\n relatedPort?: number;\n tcpType?: RTCIceTcpCandidateType;\n type?: RTCIceCandidateType;\n}\n\ninterface RTCIceCandidateInit {\n candidate?: string;\n sdpMid?: string;\n sdpMLineIndex?: number;\n}\n\ninterface RTCIceCandidatePair {\n local?: RTCIceCandidateDictionary;\n remote?: RTCIceCandidateDictionary;\n}\n\ninterface RTCIceCandidatePairStats extends RTCStats {\n availableIncomingBitrate?: number;\n availableOutgoingBitrate?: number;\n bytesReceived?: number;\n bytesSent?: number;\n localCandidateId?: string;\n nominated?: boolean;\n priority?: number;\n readable?: boolean;\n remoteCandidateId?: string;\n roundTripTime?: number;\n state?: RTCStatsIceCandidatePairState;\n transportId?: string;\n writable?: boolean;\n}\n\ninterface RTCIceGatherOptions {\n gatherPolicy?: RTCIceGatherPolicy;\n iceservers?: RTCIceServer[];\n portRange?: MSPortRange;\n}\n\ninterface RTCIceParameters {\n iceLite?: boolean;\n password?: string;\n usernameFragment?: string;\n}\n\ninterface RTCIceServer {\n credential?: string;\n urls?: any;\n username?: string;\n}\n\ninterface RTCInboundRTPStreamStats extends RTCRTPStreamStats {\n bytesReceived?: number;\n fractionLost?: number;\n jitter?: number;\n packetsLost?: number;\n packetsReceived?: number;\n}\n\ninterface RTCMediaStreamTrackStats extends RTCStats {\n audioLevel?: number;\n echoReturnLoss?: number;\n echoReturnLossEnhancement?: number;\n frameHeight?: number;\n framesCorrupted?: number;\n framesDecoded?: number;\n framesDropped?: number;\n framesPerSecond?: number;\n framesReceived?: number;\n framesSent?: number;\n frameWidth?: number;\n remoteSource?: boolean;\n ssrcIds?: string[];\n trackIdentifier?: string;\n}\n\ninterface RTCOfferOptions {\n iceRestart?: boolean;\n offerToReceiveAudio?: number;\n offerToReceiveVideo?: number;\n voiceActivityDetection?: boolean;\n}\n\ninterface RTCOutboundRTPStreamStats extends RTCRTPStreamStats {\n bytesSent?: number;\n packetsSent?: number;\n roundTripTime?: number;\n targetBitrate?: number;\n}\n\ninterface RTCPeerConnectionIceEventInit extends EventInit {\n candidate?: RTCIceCandidate;\n}\n\ninterface RTCRtcpFeedback {\n parameter?: string;\n type?: string;\n}\n\ninterface RTCRtcpParameters {\n cname?: string;\n mux?: boolean;\n reducedSize?: boolean;\n ssrc?: number;\n}\n\ninterface RTCRtpCapabilities {\n codecs?: RTCRtpCodecCapability[];\n fecMechanisms?: string[];\n headerExtensions?: RTCRtpHeaderExtension[];\n}\n\ninterface RTCRtpCodecCapability {\n clockRate?: number;\n kind?: string;\n maxptime?: number;\n maxSpatialLayers?: number;\n maxTemporalLayers?: number;\n name?: string;\n numChannels?: number;\n options?: any;\n parameters?: any;\n preferredPayloadType?: number;\n ptime?: number;\n rtcpFeedback?: RTCRtcpFeedback[];\n svcMultiStreamSupport?: boolean;\n}\n\ninterface RTCRtpCodecParameters {\n clockRate?: number;\n maxptime?: number;\n name?: string;\n numChannels?: number;\n parameters?: any;\n payloadType?: any;\n ptime?: number;\n rtcpFeedback?: RTCRtcpFeedback[];\n}\n\ninterface RTCRtpContributingSource {\n audioLevel?: number;\n csrc?: number;\n timestamp?: number;\n}\n\ninterface RTCRtpEncodingParameters {\n active?: boolean;\n codecPayloadType?: number;\n dependencyEncodingIds?: string[];\n encodingId?: string;\n fec?: RTCRtpFecParameters;\n framerateScale?: number;\n maxBitrate?: number;\n maxFramerate?: number;\n minQuality?: number;\n priority?: number;\n resolutionScale?: number;\n rtx?: RTCRtpRtxParameters;\n ssrc?: number;\n ssrcRange?: RTCSsrcRange;\n}\n\ninterface RTCRtpFecParameters {\n mechanism?: string;\n ssrc?: number;\n}\n\ninterface RTCRtpHeaderExtension {\n kind?: string;\n preferredEncrypt?: boolean;\n preferredId?: number;\n uri?: string;\n}\n\ninterface RTCRtpHeaderExtensionParameters {\n encrypt?: boolean;\n id?: number;\n uri?: string;\n}\n\ninterface RTCRtpParameters {\n codecs?: RTCRtpCodecParameters[];\n degradationPreference?: RTCDegradationPreference;\n encodings?: RTCRtpEncodingParameters[];\n headerExtensions?: RTCRtpHeaderExtensionParameters[];\n muxId?: string;\n rtcp?: RTCRtcpParameters;\n}\n\ninterface RTCRtpRtxParameters {\n ssrc?: number;\n}\n\ninterface RTCRTPStreamStats extends RTCStats {\n associateStatsId?: string;\n codecId?: string;\n firCount?: number;\n isRemote?: boolean;\n mediaTrackId?: string;\n nackCount?: number;\n pliCount?: number;\n sliCount?: number;\n ssrc?: string;\n transportId?: string;\n}\n\ninterface RTCRtpUnhandled {\n muxId?: string;\n payloadType?: number;\n ssrc?: number;\n}\n\ninterface RTCSessionDescriptionInit {\n sdp?: string;\n type?: RTCSdpType;\n}\n\ninterface RTCSrtpKeyParam {\n keyMethod?: string;\n keySalt?: string;\n lifetime?: string;\n mkiLength?: number;\n mkiValue?: number;\n}\n\ninterface RTCSrtpSdesParameters {\n cryptoSuite?: string;\n keyParams?: RTCSrtpKeyParam[];\n sessionParams?: string[];\n tag?: number;\n}\n\ninterface RTCSsrcRange {\n max?: number;\n min?: number;\n}\n\ninterface RTCStats {\n id?: string;\n msType?: MSStatsType;\n timestamp?: number;\n type?: RTCStatsType;\n}\n\ninterface RTCStatsReport {\n}\n\ninterface RTCTransportStats extends RTCStats {\n activeConnection?: boolean;\n bytesReceived?: number;\n bytesSent?: number;\n localCertificateId?: string;\n remoteCertificateId?: string;\n rtcpTransportStatsId?: string;\n selectedCandidatePairId?: string;\n}\n\ninterface ScopedCredentialDescriptor {\n id?: any;\n transports?: Transport[];\n type?: ScopedCredentialType;\n}\n\ninterface ScopedCredentialOptions {\n excludeList?: ScopedCredentialDescriptor[];\n extensions?: WebAuthnExtensions;\n rpId?: USVString;\n timeoutSeconds?: number;\n}\n\ninterface ScopedCredentialParameters {\n algorithm?: string | Algorithm;\n type?: ScopedCredentialType;\n}\n\ninterface ServiceWorkerMessageEventInit extends EventInit {\n data?: any;\n lastEventId?: string;\n origin?: string;\n ports?: MessagePort[];\n source?: ServiceWorker | MessagePort;\n}\n\ninterface SpeechSynthesisEventInit extends EventInit {\n charIndex?: number;\n elapsedTime?: number;\n name?: string;\n utterance?: SpeechSynthesisUtterance;\n}\n\ninterface StoreExceptionsInformation extends ExceptionInformation {\n detailURI?: string;\n explanationString?: string;\n siteName?: string;\n}\n\ninterface StoreSiteSpecificExceptionsInformation extends StoreExceptionsInformation {\n arrayOfDomainStrings?: string[];\n}\n\ninterface TrackEventInit extends EventInit {\n track?: VideoTrack | AudioTrack | TextTrack;\n}\n\ninterface TransitionEventInit extends EventInit {\n elapsedTime?: number;\n propertyName?: string;\n}\n\ninterface UIEventInit extends EventInit {\n detail?: number;\n view?: Window;\n}\n\ninterface WebAuthnExtensions {\n}\n\ninterface WebGLContextAttributes {\n failIfMajorPerformanceCaveat?: boolean;\n alpha?: boolean;\n antialias?: boolean;\n depth?: boolean;\n premultipliedAlpha?: boolean;\n preserveDrawingBuffer?: boolean;\n stencil?: boolean;\n}\n\ninterface WebGLContextEventInit extends EventInit {\n statusMessage?: string;\n}\n\ninterface WheelEventInit extends MouseEventInit {\n deltaMode?: number;\n deltaX?: number;\n deltaY?: number;\n deltaZ?: number;\n}\n\ninterface EventListener {\n (evt: Event): void;\n}\n\ninterface WebKitEntriesCallback {\n (evt: Event): void;\n}\n\ninterface WebKitErrorCallback {\n (evt: Event): void;\n}\n\ninterface WebKitFileCallback {\n (evt: Event): void;\n}\n\ninterface AnalyserNode extends AudioNode {\n fftSize: number;\n readonly frequencyBinCount: number;\n maxDecibels: number;\n minDecibels: number;\n smoothingTimeConstant: number;\n getByteFrequencyData(array: Uint8Array): void;\n getByteTimeDomainData(array: Uint8Array): void;\n getFloatFrequencyData(array: Float32Array): void;\n getFloatTimeDomainData(array: Float32Array): void;\n}\n\ndeclare var AnalyserNode: {\n prototype: AnalyserNode;\n new(): AnalyserNode;\n};\n\ninterface ANGLE_instanced_arrays {\n drawArraysInstancedANGLE(mode: number, first: number, count: number, primcount: number): void;\n drawElementsInstancedANGLE(mode: number, count: number, type: number, offset: number, primcount: number): void;\n vertexAttribDivisorANGLE(index: number, divisor: number): void;\n readonly VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE: number;\n}\n\ndeclare var ANGLE_instanced_arrays: {\n prototype: ANGLE_instanced_arrays;\n new(): ANGLE_instanced_arrays;\n readonly VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE: number;\n};\n\ninterface AnimationEvent extends Event {\n readonly animationName: string;\n readonly elapsedTime: number;\n initAnimationEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, animationNameArg: string, elapsedTimeArg: number): void;\n}\n\ndeclare var AnimationEvent: {\n prototype: AnimationEvent;\n new(typeArg: string, eventInitDict?: AnimationEventInit): AnimationEvent;\n};\n\ninterface ApplicationCacheEventMap {\n \"cached\": Event;\n \"checking\": Event;\n \"downloading\": Event;\n \"error\": Event;\n \"noupdate\": Event;\n \"obsolete\": Event;\n \"progress\": ProgressEvent;\n \"updateready\": Event;\n}\n\ninterface ApplicationCache extends EventTarget {\n oncached: (this: ApplicationCache, ev: Event) => any;\n onchecking: (this: ApplicationCache, ev: Event) => any;\n ondownloading: (this: ApplicationCache, ev: Event) => any;\n onerror: (this: ApplicationCache, ev: Event) => any;\n onnoupdate: (this: ApplicationCache, ev: Event) => any;\n onobsolete: (this: ApplicationCache, ev: Event) => any;\n onprogress: (this: ApplicationCache, ev: ProgressEvent) => any;\n onupdateready: (this: ApplicationCache, ev: Event) => any;\n readonly status: number;\n abort(): void;\n swapCache(): void;\n update(): void;\n readonly CHECKING: number;\n readonly DOWNLOADING: number;\n readonly IDLE: number;\n readonly OBSOLETE: number;\n readonly UNCACHED: number;\n readonly UPDATEREADY: number;\n addEventListener(type: K, listener: (this: ApplicationCache, ev: ApplicationCacheEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var ApplicationCache: {\n prototype: ApplicationCache;\n new(): ApplicationCache;\n readonly CHECKING: number;\n readonly DOWNLOADING: number;\n readonly IDLE: number;\n readonly OBSOLETE: number;\n readonly UNCACHED: number;\n readonly UPDATEREADY: number;\n};\n\ninterface Attr extends Node {\n readonly name: string;\n readonly ownerElement: Element;\n readonly prefix: string | null;\n readonly specified: boolean;\n value: string;\n}\n\ndeclare var Attr: {\n prototype: Attr;\n new(): Attr;\n};\n\ninterface AudioBuffer {\n readonly duration: number;\n readonly length: number;\n readonly numberOfChannels: number;\n readonly sampleRate: number;\n copyFromChannel(destination: Float32Array, channelNumber: number, startInChannel?: number): void;\n copyToChannel(source: Float32Array, channelNumber: number, startInChannel?: number): void;\n getChannelData(channel: number): Float32Array;\n}\n\ndeclare var AudioBuffer: {\n prototype: AudioBuffer;\n new(): AudioBuffer;\n};\n\ninterface AudioBufferSourceNodeEventMap {\n \"ended\": MediaStreamErrorEvent;\n}\n\ninterface AudioBufferSourceNode extends AudioNode {\n buffer: AudioBuffer | null;\n readonly detune: AudioParam;\n loop: boolean;\n loopEnd: number;\n loopStart: number;\n onended: (this: AudioBufferSourceNode, ev: MediaStreamErrorEvent) => any;\n readonly playbackRate: AudioParam;\n start(when?: number, offset?: number, duration?: number): void;\n stop(when?: number): void;\n addEventListener(type: K, listener: (this: AudioBufferSourceNode, ev: AudioBufferSourceNodeEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var AudioBufferSourceNode: {\n prototype: AudioBufferSourceNode;\n new(): AudioBufferSourceNode;\n};\n\ninterface AudioContextEventMap {\n \"statechange\": Event;\n}\n\ninterface AudioContextBase extends EventTarget {\n readonly currentTime: number;\n readonly destination: AudioDestinationNode;\n readonly listener: AudioListener;\n onstatechange: (this: AudioContext, ev: Event) => any;\n readonly sampleRate: number;\n readonly state: AudioContextState;\n close(): Promise;\n createAnalyser(): AnalyserNode;\n createBiquadFilter(): BiquadFilterNode;\n createBuffer(numberOfChannels: number, length: number, sampleRate: number): AudioBuffer;\n createBufferSource(): AudioBufferSourceNode;\n createChannelMerger(numberOfInputs?: number): ChannelMergerNode;\n createChannelSplitter(numberOfOutputs?: number): ChannelSplitterNode;\n createConvolver(): ConvolverNode;\n createDelay(maxDelayTime?: number): DelayNode;\n createDynamicsCompressor(): DynamicsCompressorNode;\n createGain(): GainNode;\n createIIRFilter(feedforward: number[], feedback: number[]): IIRFilterNode;\n createMediaElementSource(mediaElement: HTMLMediaElement): MediaElementAudioSourceNode;\n createMediaStreamSource(mediaStream: MediaStream): MediaStreamAudioSourceNode;\n createOscillator(): OscillatorNode;\n createPanner(): PannerNode;\n createPeriodicWave(real: Float32Array, imag: Float32Array, constraints?: PeriodicWaveConstraints): PeriodicWave;\n createScriptProcessor(bufferSize?: number, numberOfInputChannels?: number, numberOfOutputChannels?: number): ScriptProcessorNode;\n createStereoPanner(): StereoPannerNode;\n createWaveShaper(): WaveShaperNode;\n decodeAudioData(audioData: ArrayBuffer, successCallback?: DecodeSuccessCallback, errorCallback?: DecodeErrorCallback): Promise;\n resume(): Promise;\n addEventListener(type: K, listener: (this: AudioContext, ev: AudioContextEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ninterface AudioContext extends AudioContextBase {\n suspend(): Promise;\n}\n\ndeclare var AudioContext: {\n prototype: AudioContext;\n new(): AudioContext;\n};\n\ninterface AudioDestinationNode extends AudioNode {\n readonly maxChannelCount: number;\n}\n\ndeclare var AudioDestinationNode: {\n prototype: AudioDestinationNode;\n new(): AudioDestinationNode;\n};\n\ninterface AudioListener {\n dopplerFactor: number;\n speedOfSound: number;\n setOrientation(x: number, y: number, z: number, xUp: number, yUp: number, zUp: number): void;\n setPosition(x: number, y: number, z: number): void;\n setVelocity(x: number, y: number, z: number): void;\n}\n\ndeclare var AudioListener: {\n prototype: AudioListener;\n new(): AudioListener;\n};\n\ninterface AudioNode extends EventTarget {\n channelCount: number;\n channelCountMode: ChannelCountMode;\n channelInterpretation: ChannelInterpretation;\n readonly context: AudioContext;\n readonly numberOfInputs: number;\n readonly numberOfOutputs: number;\n connect(destination: AudioNode, output?: number, input?: number): AudioNode;\n connect(destination: AudioParam, output?: number): void;\n disconnect(output?: number): void;\n disconnect(destination: AudioNode, output?: number, input?: number): void;\n disconnect(destination: AudioParam, output?: number): void;\n}\n\ndeclare var AudioNode: {\n prototype: AudioNode;\n new(): AudioNode;\n};\n\ninterface AudioParam {\n readonly defaultValue: number;\n value: number;\n cancelScheduledValues(startTime: number): AudioParam;\n exponentialRampToValueAtTime(value: number, endTime: number): AudioParam;\n linearRampToValueAtTime(value: number, endTime: number): AudioParam;\n setTargetAtTime(target: number, startTime: number, timeConstant: number): AudioParam;\n setValueAtTime(value: number, startTime: number): AudioParam;\n setValueCurveAtTime(values: Float32Array, startTime: number, duration: number): AudioParam;\n}\n\ndeclare var AudioParam: {\n prototype: AudioParam;\n new(): AudioParam;\n};\n\ninterface AudioProcessingEvent extends Event {\n readonly inputBuffer: AudioBuffer;\n readonly outputBuffer: AudioBuffer;\n readonly playbackTime: number;\n}\n\ndeclare var AudioProcessingEvent: {\n prototype: AudioProcessingEvent;\n new(): AudioProcessingEvent;\n};\n\ninterface AudioTrack {\n enabled: boolean;\n readonly id: string;\n kind: string;\n readonly label: string;\n language: string;\n readonly sourceBuffer: SourceBuffer;\n}\n\ndeclare var AudioTrack: {\n prototype: AudioTrack;\n new(): AudioTrack;\n};\n\ninterface AudioTrackListEventMap {\n \"addtrack\": TrackEvent;\n \"change\": Event;\n \"removetrack\": TrackEvent;\n}\n\ninterface AudioTrackList extends EventTarget {\n readonly length: number;\n onaddtrack: (this: AudioTrackList, ev: TrackEvent) => any;\n onchange: (this: AudioTrackList, ev: Event) => any;\n onremovetrack: (this: AudioTrackList, ev: TrackEvent) => any;\n getTrackById(id: string): AudioTrack | null;\n item(index: number): AudioTrack;\n addEventListener(type: K, listener: (this: AudioTrackList, ev: AudioTrackListEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n [index: number]: AudioTrack;\n}\n\ndeclare var AudioTrackList: {\n prototype: AudioTrackList;\n new(): AudioTrackList;\n};\n\ninterface BarProp {\n readonly visible: boolean;\n}\n\ndeclare var BarProp: {\n prototype: BarProp;\n new(): BarProp;\n};\n\ninterface BeforeUnloadEvent extends Event {\n returnValue: any;\n}\n\ndeclare var BeforeUnloadEvent: {\n prototype: BeforeUnloadEvent;\n new(): BeforeUnloadEvent;\n};\n\ninterface BiquadFilterNode extends AudioNode {\n readonly detune: AudioParam;\n readonly frequency: AudioParam;\n readonly gain: AudioParam;\n readonly Q: AudioParam;\n type: BiquadFilterType;\n getFrequencyResponse(frequencyHz: Float32Array, magResponse: Float32Array, phaseResponse: Float32Array): void;\n}\n\ndeclare var BiquadFilterNode: {\n prototype: BiquadFilterNode;\n new(): BiquadFilterNode;\n};\n\ninterface Blob {\n readonly size: number;\n readonly type: string;\n msClose(): void;\n msDetachStream(): any;\n slice(start?: number, end?: number, contentType?: string): Blob;\n}\n\ndeclare var Blob: {\n prototype: Blob;\n new (blobParts?: any[], options?: BlobPropertyBag): Blob;\n};\n\ninterface Cache {\n add(request: RequestInfo): Promise;\n addAll(requests: RequestInfo[]): Promise;\n delete(request: RequestInfo, options?: CacheQueryOptions): Promise;\n keys(request?: RequestInfo, options?: CacheQueryOptions): any;\n match(request: RequestInfo, options?: CacheQueryOptions): Promise;\n matchAll(request?: RequestInfo, options?: CacheQueryOptions): any;\n put(request: RequestInfo, response: Response): Promise;\n}\n\ndeclare var Cache: {\n prototype: Cache;\n new(): Cache;\n};\n\ninterface CacheStorage {\n delete(cacheName: string): Promise;\n has(cacheName: string): Promise;\n keys(): any;\n match(request: RequestInfo, options?: CacheQueryOptions): Promise;\n open(cacheName: string): Promise;\n}\n\ndeclare var CacheStorage: {\n prototype: CacheStorage;\n new(): CacheStorage;\n};\n\ninterface CanvasGradient {\n addColorStop(offset: number, color: string): void;\n}\n\ndeclare var CanvasGradient: {\n prototype: CanvasGradient;\n new(): CanvasGradient;\n};\n\ninterface CanvasPattern {\n setTransform(matrix: SVGMatrix): void;\n}\n\ndeclare var CanvasPattern: {\n prototype: CanvasPattern;\n new(): CanvasPattern;\n};\n\ninterface CanvasRenderingContext2D extends Object, CanvasPathMethods {\n readonly canvas: HTMLCanvasElement;\n fillStyle: string | CanvasGradient | CanvasPattern;\n font: string;\n globalAlpha: number;\n globalCompositeOperation: string;\n imageSmoothingEnabled: boolean;\n lineCap: string;\n lineDashOffset: number;\n lineJoin: string;\n lineWidth: number;\n miterLimit: number;\n msFillRule: CanvasFillRule;\n shadowBlur: number;\n shadowColor: string;\n shadowOffsetX: number;\n shadowOffsetY: number;\n strokeStyle: string | CanvasGradient | CanvasPattern;\n textAlign: string;\n textBaseline: string;\n mozImageSmoothingEnabled: boolean;\n webkitImageSmoothingEnabled: boolean;\n oImageSmoothingEnabled: boolean;\n beginPath(): void;\n clearRect(x: number, y: number, w: number, h: number): void;\n clip(fillRule?: CanvasFillRule): void;\n createImageData(imageDataOrSw: number | ImageData, sh?: number): ImageData;\n createLinearGradient(x0: number, y0: number, x1: number, y1: number): CanvasGradient;\n createPattern(image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement, repetition: string): CanvasPattern;\n createRadialGradient(x0: number, y0: number, r0: number, x1: number, y1: number, r1: number): CanvasGradient;\n drawFocusIfNeeded(element: Element): void;\n drawImage(image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | ImageBitmap, dstX: number, dstY: number): void;\n drawImage(image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | ImageBitmap, dstX: number, dstY: number, dstW: number, dstH: number): void;\n drawImage(image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | ImageBitmap, srcX: number, srcY: number, srcW: number, srcH: number, dstX: number, dstY: number, dstW: number, dstH: number): void;\n fill(fillRule?: CanvasFillRule): void;\n fillRect(x: number, y: number, w: number, h: number): void;\n fillText(text: string, x: number, y: number, maxWidth?: number): void;\n getImageData(sx: number, sy: number, sw: number, sh: number): ImageData;\n getLineDash(): number[];\n isPointInPath(x: number, y: number, fillRule?: CanvasFillRule): boolean;\n measureText(text: string): TextMetrics;\n putImageData(imagedata: ImageData, dx: number, dy: number, dirtyX?: number, dirtyY?: number, dirtyWidth?: number, dirtyHeight?: number): void;\n restore(): void;\n rotate(angle: number): void;\n save(): void;\n scale(x: number, y: number): void;\n setLineDash(segments: number[]): void;\n setTransform(m11: number, m12: number, m21: number, m22: number, dx: number, dy: number): void;\n stroke(path?: Path2D): void;\n strokeRect(x: number, y: number, w: number, h: number): void;\n strokeText(text: string, x: number, y: number, maxWidth?: number): void;\n transform(m11: number, m12: number, m21: number, m22: number, dx: number, dy: number): void;\n translate(x: number, y: number): void;\n}\n\ndeclare var CanvasRenderingContext2D: {\n prototype: CanvasRenderingContext2D;\n new(): CanvasRenderingContext2D;\n};\n\ninterface CDATASection extends Text {\n}\n\ndeclare var CDATASection: {\n prototype: CDATASection;\n new(): CDATASection;\n};\n\ninterface ChannelMergerNode extends AudioNode {\n}\n\ndeclare var ChannelMergerNode: {\n prototype: ChannelMergerNode;\n new(): ChannelMergerNode;\n};\n\ninterface ChannelSplitterNode extends AudioNode {\n}\n\ndeclare var ChannelSplitterNode: {\n prototype: ChannelSplitterNode;\n new(): ChannelSplitterNode;\n};\n\ninterface CharacterData extends Node, ChildNode {\n data: string;\n readonly length: number;\n appendData(arg: string): void;\n deleteData(offset: number, count: number): void;\n insertData(offset: number, arg: string): void;\n replaceData(offset: number, count: number, arg: string): void;\n substringData(offset: number, count: number): string;\n}\n\ndeclare var CharacterData: {\n prototype: CharacterData;\n new(): CharacterData;\n};\n\ninterface ClientRect {\n bottom: number;\n readonly height: number;\n left: number;\n right: number;\n top: number;\n readonly width: number;\n}\n\ndeclare var ClientRect: {\n prototype: ClientRect;\n new(): ClientRect;\n};\n\ninterface ClientRectList {\n readonly length: number;\n item(index: number): ClientRect;\n [index: number]: ClientRect;\n}\n\ndeclare var ClientRectList: {\n prototype: ClientRectList;\n new(): ClientRectList;\n};\n\ninterface ClipboardEvent extends Event {\n readonly clipboardData: DataTransfer;\n}\n\ndeclare var ClipboardEvent: {\n prototype: ClipboardEvent;\n new(type: string, eventInitDict?: ClipboardEventInit): ClipboardEvent;\n};\n\ninterface CloseEvent extends Event {\n readonly code: number;\n readonly reason: string;\n readonly wasClean: boolean;\n initCloseEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, wasCleanArg: boolean, codeArg: number, reasonArg: string): void;\n}\n\ndeclare var CloseEvent: {\n prototype: CloseEvent;\n new(typeArg: string, eventInitDict?: CloseEventInit): CloseEvent;\n};\n\ninterface Comment extends CharacterData {\n text: string;\n}\n\ndeclare var Comment: {\n prototype: Comment;\n new(): Comment;\n};\n\ninterface CompositionEvent extends UIEvent {\n readonly data: string;\n readonly locale: string;\n initCompositionEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, viewArg: Window, dataArg: string, locale: string): void;\n}\n\ndeclare var CompositionEvent: {\n prototype: CompositionEvent;\n new(typeArg: string, eventInitDict?: CompositionEventInit): CompositionEvent;\n};\n\ninterface Console {\n assert(test?: boolean, message?: string, ...optionalParams: any[]): void;\n clear(): void;\n count(countTitle?: string): void;\n debug(message?: any, ...optionalParams: any[]): void;\n dir(value?: any, ...optionalParams: any[]): void;\n dirxml(value: any): void;\n error(message?: any, ...optionalParams: any[]): void;\n exception(message?: string, ...optionalParams: any[]): void;\n group(groupTitle?: string, ...optionalParams: any[]): void;\n groupCollapsed(groupTitle?: string, ...optionalParams: any[]): void;\n groupEnd(): void;\n info(message?: any, ...optionalParams: any[]): void;\n log(message?: any, ...optionalParams: any[]): void;\n msIsIndependentlyComposed(element: Element): boolean;\n profile(reportName?: string): void;\n profileEnd(): void;\n select(element: Element): void;\n table(...data: any[]): void;\n time(timerName?: string): void;\n timeEnd(timerName?: string): void;\n trace(message?: any, ...optionalParams: any[]): void;\n warn(message?: any, ...optionalParams: any[]): void;\n}\n\ndeclare var Console: {\n prototype: Console;\n new(): Console;\n};\n\ninterface ConvolverNode extends AudioNode {\n buffer: AudioBuffer | null;\n normalize: boolean;\n}\n\ndeclare var ConvolverNode: {\n prototype: ConvolverNode;\n new(): ConvolverNode;\n};\n\ninterface Coordinates {\n readonly accuracy: number;\n readonly altitude: number | null;\n readonly altitudeAccuracy: number | null;\n readonly heading: number | null;\n readonly latitude: number;\n readonly longitude: number;\n readonly speed: number | null;\n}\n\ndeclare var Coordinates: {\n prototype: Coordinates;\n new(): Coordinates;\n};\n\ninterface Crypto extends Object, RandomSource {\n readonly subtle: SubtleCrypto;\n}\n\ndeclare var Crypto: {\n prototype: Crypto;\n new(): Crypto;\n};\n\ninterface CryptoKey {\n readonly algorithm: KeyAlgorithm;\n readonly extractable: boolean;\n readonly type: string;\n readonly usages: string[];\n}\n\ndeclare var CryptoKey: {\n prototype: CryptoKey;\n new(): CryptoKey;\n};\n\ninterface CryptoKeyPair {\n privateKey: CryptoKey;\n publicKey: CryptoKey;\n}\n\ndeclare var CryptoKeyPair: {\n prototype: CryptoKeyPair;\n new(): CryptoKeyPair;\n};\n\ninterface CSS {\n supports(property: string, value?: string): boolean;\n}\ndeclare var CSS: CSS;\n\ninterface CSSConditionRule extends CSSGroupingRule {\n conditionText: string;\n}\n\ndeclare var CSSConditionRule: {\n prototype: CSSConditionRule;\n new(): CSSConditionRule;\n};\n\ninterface CSSFontFaceRule extends CSSRule {\n readonly style: CSSStyleDeclaration;\n}\n\ndeclare var CSSFontFaceRule: {\n prototype: CSSFontFaceRule;\n new(): CSSFontFaceRule;\n};\n\ninterface CSSGroupingRule extends CSSRule {\n readonly cssRules: CSSRuleList;\n deleteRule(index: number): void;\n insertRule(rule: string, index: number): number;\n}\n\ndeclare var CSSGroupingRule: {\n prototype: CSSGroupingRule;\n new(): CSSGroupingRule;\n};\n\ninterface CSSImportRule extends CSSRule {\n readonly href: string;\n readonly media: MediaList;\n readonly styleSheet: CSSStyleSheet;\n}\n\ndeclare var CSSImportRule: {\n prototype: CSSImportRule;\n new(): CSSImportRule;\n};\n\ninterface CSSKeyframeRule extends CSSRule {\n keyText: string;\n readonly style: CSSStyleDeclaration;\n}\n\ndeclare var CSSKeyframeRule: {\n prototype: CSSKeyframeRule;\n new(): CSSKeyframeRule;\n};\n\ninterface CSSKeyframesRule extends CSSRule {\n readonly cssRules: CSSRuleList;\n name: string;\n appendRule(rule: string): void;\n deleteRule(rule: string): void;\n findRule(rule: string): CSSKeyframeRule;\n}\n\ndeclare var CSSKeyframesRule: {\n prototype: CSSKeyframesRule;\n new(): CSSKeyframesRule;\n};\n\ninterface CSSMediaRule extends CSSConditionRule {\n readonly media: MediaList;\n}\n\ndeclare var CSSMediaRule: {\n prototype: CSSMediaRule;\n new(): CSSMediaRule;\n};\n\ninterface CSSNamespaceRule extends CSSRule {\n readonly namespaceURI: string;\n readonly prefix: string;\n}\n\ndeclare var CSSNamespaceRule: {\n prototype: CSSNamespaceRule;\n new(): CSSNamespaceRule;\n};\n\ninterface CSSPageRule extends CSSRule {\n readonly pseudoClass: string;\n readonly selector: string;\n selectorText: string;\n readonly style: CSSStyleDeclaration;\n}\n\ndeclare var CSSPageRule: {\n prototype: CSSPageRule;\n new(): CSSPageRule;\n};\n\ninterface CSSRule {\n cssText: string;\n readonly parentRule: CSSRule;\n readonly parentStyleSheet: CSSStyleSheet;\n readonly type: number;\n readonly CHARSET_RULE: number;\n readonly FONT_FACE_RULE: number;\n readonly IMPORT_RULE: number;\n readonly KEYFRAME_RULE: number;\n readonly KEYFRAMES_RULE: number;\n readonly MEDIA_RULE: number;\n readonly NAMESPACE_RULE: number;\n readonly PAGE_RULE: number;\n readonly STYLE_RULE: number;\n readonly SUPPORTS_RULE: number;\n readonly UNKNOWN_RULE: number;\n readonly VIEWPORT_RULE: number;\n}\n\ndeclare var CSSRule: {\n prototype: CSSRule;\n new(): CSSRule;\n readonly CHARSET_RULE: number;\n readonly FONT_FACE_RULE: number;\n readonly IMPORT_RULE: number;\n readonly KEYFRAME_RULE: number;\n readonly KEYFRAMES_RULE: number;\n readonly MEDIA_RULE: number;\n readonly NAMESPACE_RULE: number;\n readonly PAGE_RULE: number;\n readonly STYLE_RULE: number;\n readonly SUPPORTS_RULE: number;\n readonly UNKNOWN_RULE: number;\n readonly VIEWPORT_RULE: number;\n};\n\ninterface CSSRuleList {\n readonly length: number;\n item(index: number): CSSRule;\n [index: number]: CSSRule;\n}\n\ndeclare var CSSRuleList: {\n prototype: CSSRuleList;\n new(): CSSRuleList;\n};\n\ninterface CSSStyleDeclaration {\n alignContent: string | null;\n alignItems: string | null;\n alignmentBaseline: string | null;\n alignSelf: string | null;\n animation: string | null;\n animationDelay: string | null;\n animationDirection: string | null;\n animationDuration: string | null;\n animationFillMode: string | null;\n animationIterationCount: string | null;\n animationName: string | null;\n animationPlayState: string | null;\n animationTimingFunction: string | null;\n backfaceVisibility: string | null;\n background: string | null;\n backgroundAttachment: string | null;\n backgroundClip: string | null;\n backgroundColor: string | null;\n backgroundImage: string | null;\n backgroundOrigin: string | null;\n backgroundPosition: string | null;\n backgroundPositionX: string | null;\n backgroundPositionY: string | null;\n backgroundRepeat: string | null;\n backgroundSize: string | null;\n baselineShift: string | null;\n border: string | null;\n borderBottom: string | null;\n borderBottomColor: string | null;\n borderBottomLeftRadius: string | null;\n borderBottomRightRadius: string | null;\n borderBottomStyle: string | null;\n borderBottomWidth: string | null;\n borderCollapse: string | null;\n borderColor: string | null;\n borderImage: string | null;\n borderImageOutset: string | null;\n borderImageRepeat: string | null;\n borderImageSlice: string | null;\n borderImageSource: string | null;\n borderImageWidth: string | null;\n borderLeft: string | null;\n borderLeftColor: string | null;\n borderLeftStyle: string | null;\n borderLeftWidth: string | null;\n borderRadius: string | null;\n borderRight: string | null;\n borderRightColor: string | null;\n borderRightStyle: string | null;\n borderRightWidth: string | null;\n borderSpacing: string | null;\n borderStyle: string | null;\n borderTop: string | null;\n borderTopColor: string | null;\n borderTopLeftRadius: string | null;\n borderTopRightRadius: string | null;\n borderTopStyle: string | null;\n borderTopWidth: string | null;\n borderWidth: string | null;\n bottom: string | null;\n boxShadow: string | null;\n boxSizing: string | null;\n breakAfter: string | null;\n breakBefore: string | null;\n breakInside: string | null;\n captionSide: string | null;\n clear: string | null;\n clip: string | null;\n clipPath: string | null;\n clipRule: string | null;\n color: string | null;\n colorInterpolationFilters: string | null;\n columnCount: any;\n columnFill: string | null;\n columnGap: any;\n columnRule: string | null;\n columnRuleColor: any;\n columnRuleStyle: string | null;\n columnRuleWidth: any;\n columns: string | null;\n columnSpan: string | null;\n columnWidth: any;\n content: string | null;\n counterIncrement: string | null;\n counterReset: string | null;\n cssFloat: string | null;\n cssText: string;\n cursor: string | null;\n direction: string | null;\n display: string | null;\n dominantBaseline: string | null;\n emptyCells: string | null;\n enableBackground: string | null;\n fill: string | null;\n fillOpacity: string | null;\n fillRule: string | null;\n filter: string | null;\n flex: string | null;\n flexBasis: string | null;\n flexDirection: string | null;\n flexFlow: string | null;\n flexGrow: string | null;\n flexShrink: string | null;\n flexWrap: string | null;\n floodColor: string | null;\n floodOpacity: string | null;\n font: string | null;\n fontFamily: string | null;\n fontFeatureSettings: string | null;\n fontSize: string | null;\n fontSizeAdjust: string | null;\n fontStretch: string | null;\n fontStyle: string | null;\n fontVariant: string | null;\n fontWeight: string | null;\n glyphOrientationHorizontal: string | null;\n glyphOrientationVertical: string | null;\n height: string | null;\n imeMode: string | null;\n justifyContent: string | null;\n kerning: string | null;\n layoutGrid: string | null;\n layoutGridChar: string | null;\n layoutGridLine: string | null;\n layoutGridMode: string | null;\n layoutGridType: string | null;\n left: string | null;\n readonly length: number;\n letterSpacing: string | null;\n lightingColor: string | null;\n lineBreak: string | null;\n lineHeight: string | null;\n listStyle: string | null;\n listStyleImage: string | null;\n listStylePosition: string | null;\n listStyleType: string | null;\n margin: string | null;\n marginBottom: string | null;\n marginLeft: string | null;\n marginRight: string | null;\n marginTop: string | null;\n marker: string | null;\n markerEnd: string | null;\n markerMid: string | null;\n markerStart: string | null;\n mask: string | null;\n maxHeight: string | null;\n maxWidth: string | null;\n minHeight: string | null;\n minWidth: string | null;\n msContentZoomChaining: string | null;\n msContentZooming: string | null;\n msContentZoomLimit: string | null;\n msContentZoomLimitMax: any;\n msContentZoomLimitMin: any;\n msContentZoomSnap: string | null;\n msContentZoomSnapPoints: string | null;\n msContentZoomSnapType: string | null;\n msFlowFrom: string | null;\n msFlowInto: string | null;\n msFontFeatureSettings: string | null;\n msGridColumn: any;\n msGridColumnAlign: string | null;\n msGridColumns: string | null;\n msGridColumnSpan: any;\n msGridRow: any;\n msGridRowAlign: string | null;\n msGridRows: string | null;\n msGridRowSpan: any;\n msHighContrastAdjust: string | null;\n msHyphenateLimitChars: string | null;\n msHyphenateLimitLines: any;\n msHyphenateLimitZone: any;\n msHyphens: string | null;\n msImeAlign: string | null;\n msOverflowStyle: string | null;\n msScrollChaining: string | null;\n msScrollLimit: string | null;\n msScrollLimitXMax: any;\n msScrollLimitXMin: any;\n msScrollLimitYMax: any;\n msScrollLimitYMin: any;\n msScrollRails: string | null;\n msScrollSnapPointsX: string | null;\n msScrollSnapPointsY: string | null;\n msScrollSnapType: string | null;\n msScrollSnapX: string | null;\n msScrollSnapY: string | null;\n msScrollTranslation: string | null;\n msTextCombineHorizontal: string | null;\n msTextSizeAdjust: any;\n msTouchAction: string | null;\n msTouchSelect: string | null;\n msUserSelect: string | null;\n msWrapFlow: string;\n msWrapMargin: any;\n msWrapThrough: string;\n opacity: string | null;\n order: string | null;\n orphans: string | null;\n outline: string | null;\n outlineColor: string | null;\n outlineOffset: string | null;\n outlineStyle: string | null;\n outlineWidth: string | null;\n overflow: string | null;\n overflowX: string | null;\n overflowY: string | null;\n padding: string | null;\n paddingBottom: string | null;\n paddingLeft: string | null;\n paddingRight: string | null;\n paddingTop: string | null;\n pageBreakAfter: string | null;\n pageBreakBefore: string | null;\n pageBreakInside: string | null;\n readonly parentRule: CSSRule;\n perspective: string | null;\n perspectiveOrigin: string | null;\n pointerEvents: string | null;\n position: string | null;\n quotes: string | null;\n right: string | null;\n rotate: string | null;\n rubyAlign: string | null;\n rubyOverhang: string | null;\n rubyPosition: string | null;\n scale: string | null;\n stopColor: string | null;\n stopOpacity: string | null;\n stroke: string | null;\n strokeDasharray: string | null;\n strokeDashoffset: string | null;\n strokeLinecap: string | null;\n strokeLinejoin: string | null;\n strokeMiterlimit: string | null;\n strokeOpacity: string | null;\n strokeWidth: string | null;\n tableLayout: string | null;\n textAlign: string | null;\n textAlignLast: string | null;\n textAnchor: string | null;\n textDecoration: string | null;\n textIndent: string | null;\n textJustify: string | null;\n textKashida: string | null;\n textKashidaSpace: string | null;\n textOverflow: string | null;\n textShadow: string | null;\n textTransform: string | null;\n textUnderlinePosition: string | null;\n top: string | null;\n touchAction: string | null;\n transform: string | null;\n transformOrigin: string | null;\n transformStyle: string | null;\n transition: string | null;\n transitionDelay: string | null;\n transitionDuration: string | null;\n transitionProperty: string | null;\n transitionTimingFunction: string | null;\n translate: string | null;\n unicodeBidi: string | null;\n verticalAlign: string | null;\n visibility: string | null;\n webkitAlignContent: string | null;\n webkitAlignItems: string | null;\n webkitAlignSelf: string | null;\n webkitAnimation: string | null;\n webkitAnimationDelay: string | null;\n webkitAnimationDirection: string | null;\n webkitAnimationDuration: string | null;\n webkitAnimationFillMode: string | null;\n webkitAnimationIterationCount: string | null;\n webkitAnimationName: string | null;\n webkitAnimationPlayState: string | null;\n webkitAnimationTimingFunction: string | null;\n webkitAppearance: string | null;\n webkitBackfaceVisibility: string | null;\n webkitBackgroundClip: string | null;\n webkitBackgroundOrigin: string | null;\n webkitBackgroundSize: string | null;\n webkitBorderBottomLeftRadius: string | null;\n webkitBorderBottomRightRadius: string | null;\n webkitBorderImage: string | null;\n webkitBorderRadius: string | null;\n webkitBorderTopLeftRadius: string | null;\n webkitBorderTopRightRadius: string | null;\n webkitBoxAlign: string | null;\n webkitBoxDirection: string | null;\n webkitBoxFlex: string | null;\n webkitBoxOrdinalGroup: string | null;\n webkitBoxOrient: string | null;\n webkitBoxPack: string | null;\n webkitBoxSizing: string | null;\n webkitColumnBreakAfter: string | null;\n webkitColumnBreakBefore: string | null;\n webkitColumnBreakInside: string | null;\n webkitColumnCount: any;\n webkitColumnGap: any;\n webkitColumnRule: string | null;\n webkitColumnRuleColor: any;\n webkitColumnRuleStyle: string | null;\n webkitColumnRuleWidth: any;\n webkitColumns: string | null;\n webkitColumnSpan: string | null;\n webkitColumnWidth: any;\n webkitFilter: string | null;\n webkitFlex: string | null;\n webkitFlexBasis: string | null;\n webkitFlexDirection: string | null;\n webkitFlexFlow: string | null;\n webkitFlexGrow: string | null;\n webkitFlexShrink: string | null;\n webkitFlexWrap: string | null;\n webkitJustifyContent: string | null;\n webkitOrder: string | null;\n webkitPerspective: string | null;\n webkitPerspectiveOrigin: string | null;\n webkitTapHighlightColor: string | null;\n webkitTextFillColor: string | null;\n webkitTextSizeAdjust: any;\n webkitTextStroke: string | null;\n webkitTextStrokeColor: string | null;\n webkitTextStrokeWidth: string | null;\n webkitTransform: string | null;\n webkitTransformOrigin: string | null;\n webkitTransformStyle: string | null;\n webkitTransition: string | null;\n webkitTransitionDelay: string | null;\n webkitTransitionDuration: string | null;\n webkitTransitionProperty: string | null;\n webkitTransitionTimingFunction: string | null;\n webkitUserModify: string | null;\n webkitUserSelect: string | null;\n webkitWritingMode: string | null;\n whiteSpace: string | null;\n widows: string | null;\n width: string | null;\n wordBreak: string | null;\n wordSpacing: string | null;\n wordWrap: string | null;\n writingMode: string | null;\n zIndex: string | null;\n zoom: string | null;\n resize: string | null;\n userSelect: string | null;\n getPropertyPriority(propertyName: string): string;\n getPropertyValue(propertyName: string): string;\n item(index: number): string;\n removeProperty(propertyName: string): string;\n setProperty(propertyName: string, value: string | null, priority?: string): void;\n [index: number]: string;\n}\n\ndeclare var CSSStyleDeclaration: {\n prototype: CSSStyleDeclaration;\n new(): CSSStyleDeclaration;\n};\n\ninterface CSSStyleRule extends CSSRule {\n readonly readOnly: boolean;\n selectorText: string;\n readonly style: CSSStyleDeclaration;\n}\n\ndeclare var CSSStyleRule: {\n prototype: CSSStyleRule;\n new(): CSSStyleRule;\n};\n\ninterface CSSStyleSheet extends StyleSheet {\n readonly cssRules: CSSRuleList;\n cssText: string;\n readonly id: string;\n readonly imports: StyleSheetList;\n readonly isAlternate: boolean;\n readonly isPrefAlternate: boolean;\n readonly ownerRule: CSSRule;\n readonly owningElement: Element;\n readonly pages: StyleSheetPageList;\n readonly readOnly: boolean;\n readonly rules: CSSRuleList;\n addImport(bstrURL: string, lIndex?: number): number;\n addPageRule(bstrSelector: string, bstrStyle: string, lIndex?: number): number;\n addRule(bstrSelector: string, bstrStyle?: string, lIndex?: number): number;\n deleteRule(index?: number): void;\n insertRule(rule: string, index?: number): number;\n removeImport(lIndex: number): void;\n removeRule(lIndex: number): void;\n}\n\ndeclare var CSSStyleSheet: {\n prototype: CSSStyleSheet;\n new(): CSSStyleSheet;\n};\n\ninterface CSSSupportsRule extends CSSConditionRule {\n}\n\ndeclare var CSSSupportsRule: {\n prototype: CSSSupportsRule;\n new(): CSSSupportsRule;\n};\n\ninterface CustomEvent extends Event {\n readonly detail: any;\n initCustomEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, detailArg: any): void;\n}\n\ndeclare var CustomEvent: {\n prototype: CustomEvent;\n new(typeArg: string, eventInitDict?: CustomEventInit): CustomEvent;\n};\n\ninterface DataCue extends TextTrackCue {\n data: ArrayBuffer;\n addEventListener(type: K, listener: (this: DataCue, ev: TextTrackCueEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var DataCue: {\n prototype: DataCue;\n new(): DataCue;\n};\n\ninterface DataTransfer {\n dropEffect: string;\n effectAllowed: string;\n readonly files: FileList;\n readonly items: DataTransferItemList;\n readonly types: string[];\n clearData(format?: string): boolean;\n getData(format: string): string;\n setData(format: string, data: string): boolean;\n setDragImage(image: Element, x: number, y: number): void;\n}\n\ndeclare var DataTransfer: {\n prototype: DataTransfer;\n new(): DataTransfer;\n};\n\ninterface DataTransferItem {\n readonly kind: string;\n readonly type: string;\n getAsFile(): File | null;\n getAsString(_callback: FunctionStringCallback | null): void;\n webkitGetAsEntry(): any;\n}\n\ndeclare var DataTransferItem: {\n prototype: DataTransferItem;\n new(): DataTransferItem;\n};\n\ninterface DataTransferItemList {\n readonly length: number;\n add(data: File): DataTransferItem | null;\n clear(): void;\n item(index: number): DataTransferItem;\n remove(index: number): void;\n [index: number]: DataTransferItem;\n}\n\ndeclare var DataTransferItemList: {\n prototype: DataTransferItemList;\n new(): DataTransferItemList;\n};\n\ninterface DeferredPermissionRequest {\n readonly id: number;\n readonly type: MSWebViewPermissionType;\n readonly uri: string;\n allow(): void;\n deny(): void;\n}\n\ndeclare var DeferredPermissionRequest: {\n prototype: DeferredPermissionRequest;\n new(): DeferredPermissionRequest;\n};\n\ninterface DelayNode extends AudioNode {\n readonly delayTime: AudioParam;\n}\n\ndeclare var DelayNode: {\n prototype: DelayNode;\n new(): DelayNode;\n};\n\ninterface DeviceAcceleration {\n readonly x: number | null;\n readonly y: number | null;\n readonly z: number | null;\n}\n\ndeclare var DeviceAcceleration: {\n prototype: DeviceAcceleration;\n new(): DeviceAcceleration;\n};\n\ninterface DeviceLightEvent extends Event {\n readonly value: number;\n}\n\ndeclare var DeviceLightEvent: {\n prototype: DeviceLightEvent;\n new(typeArg: string, eventInitDict?: DeviceLightEventInit): DeviceLightEvent;\n};\n\ninterface DeviceMotionEvent extends Event {\n readonly acceleration: DeviceAcceleration | null;\n readonly accelerationIncludingGravity: DeviceAcceleration | null;\n readonly interval: number | null;\n readonly rotationRate: DeviceRotationRate | null;\n initDeviceMotionEvent(type: string, bubbles: boolean, cancelable: boolean, acceleration: DeviceAccelerationDict | null, accelerationIncludingGravity: DeviceAccelerationDict | null, rotationRate: DeviceRotationRateDict | null, interval: number | null): void;\n}\n\ndeclare var DeviceMotionEvent: {\n prototype: DeviceMotionEvent;\n new(typeArg: string, eventInitDict?: DeviceMotionEventInit): DeviceMotionEvent;\n};\n\ninterface DeviceOrientationEvent extends Event {\n readonly absolute: boolean;\n readonly alpha: number | null;\n readonly beta: number | null;\n readonly gamma: number | null;\n initDeviceOrientationEvent(type: string, bubbles: boolean, cancelable: boolean, alpha: number | null, beta: number | null, gamma: number | null, absolute: boolean): void;\n}\n\ndeclare var DeviceOrientationEvent: {\n prototype: DeviceOrientationEvent;\n new(typeArg: string, eventInitDict?: DeviceOrientationEventInit): DeviceOrientationEvent;\n};\n\ninterface DeviceRotationRate {\n readonly alpha: number | null;\n readonly beta: number | null;\n readonly gamma: number | null;\n}\n\ndeclare var DeviceRotationRate: {\n prototype: DeviceRotationRate;\n new(): DeviceRotationRate;\n};\n\ninterface DocumentEventMap extends GlobalEventHandlersEventMap {\n \"abort\": UIEvent;\n \"activate\": UIEvent;\n \"beforeactivate\": UIEvent;\n \"beforedeactivate\": UIEvent;\n \"blur\": FocusEvent;\n \"canplay\": Event;\n \"canplaythrough\": Event;\n \"change\": Event;\n \"click\": MouseEvent;\n \"contextmenu\": PointerEvent;\n \"dblclick\": MouseEvent;\n \"deactivate\": UIEvent;\n \"drag\": DragEvent;\n \"dragend\": DragEvent;\n \"dragenter\": DragEvent;\n \"dragleave\": DragEvent;\n \"dragover\": DragEvent;\n \"dragstart\": DragEvent;\n \"drop\": DragEvent;\n \"durationchange\": Event;\n \"emptied\": Event;\n \"ended\": MediaStreamErrorEvent;\n \"error\": ErrorEvent;\n \"focus\": FocusEvent;\n \"fullscreenchange\": Event;\n \"fullscreenerror\": Event;\n \"input\": Event;\n \"invalid\": Event;\n \"keydown\": KeyboardEvent;\n \"keypress\": KeyboardEvent;\n \"keyup\": KeyboardEvent;\n \"load\": Event;\n \"loadeddata\": Event;\n \"loadedmetadata\": Event;\n \"loadstart\": Event;\n \"mousedown\": MouseEvent;\n \"mousemove\": MouseEvent;\n \"mouseout\": MouseEvent;\n \"mouseover\": MouseEvent;\n \"mouseup\": MouseEvent;\n \"mousewheel\": WheelEvent;\n \"MSContentZoom\": UIEvent;\n \"MSGestureChange\": MSGestureEvent;\n \"MSGestureDoubleTap\": MSGestureEvent;\n \"MSGestureEnd\": MSGestureEvent;\n \"MSGestureHold\": MSGestureEvent;\n \"MSGestureStart\": MSGestureEvent;\n \"MSGestureTap\": MSGestureEvent;\n \"MSInertiaStart\": MSGestureEvent;\n \"MSManipulationStateChanged\": MSManipulationEvent;\n \"MSPointerCancel\": MSPointerEvent;\n \"MSPointerDown\": MSPointerEvent;\n \"MSPointerEnter\": MSPointerEvent;\n \"MSPointerLeave\": MSPointerEvent;\n \"MSPointerMove\": MSPointerEvent;\n \"MSPointerOut\": MSPointerEvent;\n \"MSPointerOver\": MSPointerEvent;\n \"MSPointerUp\": MSPointerEvent;\n \"mssitemodejumplistitemremoved\": MSSiteModeEvent;\n \"msthumbnailclick\": MSSiteModeEvent;\n \"pause\": Event;\n \"play\": Event;\n \"playing\": Event;\n \"pointerlockchange\": Event;\n \"pointerlockerror\": Event;\n \"progress\": ProgressEvent;\n \"ratechange\": Event;\n \"readystatechange\": Event;\n \"reset\": Event;\n \"scroll\": UIEvent;\n \"seeked\": Event;\n \"seeking\": Event;\n \"select\": UIEvent;\n \"selectionchange\": Event;\n \"selectstart\": Event;\n \"stalled\": Event;\n \"stop\": Event;\n \"submit\": Event;\n \"suspend\": Event;\n \"timeupdate\": Event;\n \"touchcancel\": TouchEvent;\n \"touchend\": TouchEvent;\n \"touchmove\": TouchEvent;\n \"touchstart\": TouchEvent;\n \"volumechange\": Event;\n \"waiting\": Event;\n \"webkitfullscreenchange\": Event;\n \"webkitfullscreenerror\": Event;\n}\n\ninterface Document extends Node, GlobalEventHandlers, NodeSelector, DocumentEvent, ParentNode, DocumentOrShadowRoot {\n /**\n * Gets the object that has the focus when the parent document has focus.\n */\n readonly activeElement: Element;\n /**\n * Sets or gets the color of all active links in the document.\n */\n alinkColor: string;\n /**\n * Returns a reference to the collection of elements contained by the object.\n */\n readonly all: HTMLAllCollection;\n /**\n * Retrieves a collection of all a objects that have a name and/or id property. Objects in this collection are in HTML source order.\n */\n anchors: HTMLCollectionOf;\n /**\n * Retrieves a collection of all applet objects in the document.\n */\n applets: HTMLCollectionOf;\n /**\n * Deprecated. Sets or retrieves a value that indicates the background color behind the object.\n */\n bgColor: string;\n /**\n * Specifies the beginning and end of the document body.\n */\n body: HTMLElement;\n readonly characterSet: string;\n /**\n * Gets or sets the character set used to encode the object.\n */\n charset: string;\n /**\n * Gets a value that indicates whether standards-compliant mode is switched on for the object.\n */\n readonly compatMode: string;\n cookie: string;\n readonly currentScript: HTMLScriptElement | SVGScriptElement;\n readonly defaultView: Window;\n /**\n * Sets or gets a value that indicates whether the document can be edited.\n */\n designMode: string;\n /**\n * Sets or retrieves a value that indicates the reading order of the object.\n */\n dir: string;\n /**\n * Gets an object representing the document type declaration associated with the current document.\n */\n readonly doctype: DocumentType;\n /**\n * Gets a reference to the root node of the document.\n */\n documentElement: HTMLElement;\n /**\n * Sets or gets the security domain of the document.\n */\n domain: string;\n /**\n * Retrieves a collection of all embed objects in the document.\n */\n embeds: HTMLCollectionOf;\n /**\n * Sets or gets the foreground (text) color of the document.\n */\n fgColor: string;\n /**\n * Retrieves a collection, in source order, of all form objects in the document.\n */\n forms: HTMLCollectionOf;\n readonly fullscreenElement: Element | null;\n readonly fullscreenEnabled: boolean;\n readonly head: HTMLHeadElement;\n readonly hidden: boolean;\n /**\n * Retrieves a collection, in source order, of img objects in the document.\n */\n images: HTMLCollectionOf;\n /**\n * Gets the implementation object of the current document.\n */\n readonly implementation: DOMImplementation;\n /**\n * Returns the character encoding used to create the webpage that is loaded into the document object.\n */\n readonly inputEncoding: string | null;\n /**\n * Gets the date that the page was last modified, if the page supplies one.\n */\n readonly lastModified: string;\n /**\n * Sets or gets the color of the document links.\n */\n linkColor: string;\n /**\n * Retrieves a collection of all a objects that specify the href property and all area objects in the document.\n */\n links: HTMLCollectionOf;\n /**\n * Contains information about the current URL.\n */\n readonly location: Location;\n msCapsLockWarningOff: boolean;\n msCSSOMElementFloatMetrics: boolean;\n /**\n * Fires when the user aborts the download.\n * @param ev The event.\n */\n onabort: (this: Document, ev: UIEvent) => any;\n /**\n * Fires when the object is set as the active element.\n * @param ev The event.\n */\n onactivate: (this: Document, ev: UIEvent) => any;\n /**\n * Fires immediately before the object is set as the active element.\n * @param ev The event.\n */\n onbeforeactivate: (this: Document, ev: UIEvent) => any;\n /**\n * Fires immediately before the activeElement is changed from the current object to another object in the parent document.\n * @param ev The event.\n */\n onbeforedeactivate: (this: Document, ev: UIEvent) => any;\n /**\n * Fires when the object loses the input focus.\n * @param ev The focus event.\n */\n onblur: (this: Document, ev: FocusEvent) => any;\n /**\n * Occurs when playback is possible, but would require further buffering.\n * @param ev The event.\n */\n oncanplay: (this: Document, ev: Event) => any;\n oncanplaythrough: (this: Document, ev: Event) => any;\n /**\n * Fires when the contents of the object or selection have changed.\n * @param ev The event.\n */\n onchange: (this: Document, ev: Event) => any;\n /**\n * Fires when the user clicks the left mouse button on the object\n * @param ev The mouse event.\n */\n onclick: (this: Document, ev: MouseEvent) => any;\n /**\n * Fires when the user clicks the right mouse button in the client area, opening the context menu.\n * @param ev The mouse event.\n */\n oncontextmenu: (this: Document, ev: PointerEvent) => any;\n /**\n * Fires when the user double-clicks the object.\n * @param ev The mouse event.\n */\n ondblclick: (this: Document, ev: MouseEvent) => any;\n /**\n * Fires when the activeElement is changed from the current object to another object in the parent document.\n * @param ev The UI Event\n */\n ondeactivate: (this: Document, ev: UIEvent) => any;\n /**\n * Fires on the source object continuously during a drag operation.\n * @param ev The event.\n */\n ondrag: (this: Document, ev: DragEvent) => any;\n /**\n * Fires on the source object when the user releases the mouse at the close of a drag operation.\n * @param ev The event.\n */\n ondragend: (this: Document, ev: DragEvent) => any;\n /**\n * Fires on the target element when the user drags the object to a valid drop target.\n * @param ev The drag event.\n */\n ondragenter: (this: Document, ev: DragEvent) => any;\n /**\n * Fires on the target object when the user moves the mouse out of a valid drop target during a drag operation.\n * @param ev The drag event.\n */\n ondragleave: (this: Document, ev: DragEvent) => any;\n /**\n * Fires on the target element continuously while the user drags the object over a valid drop target.\n * @param ev The event.\n */\n ondragover: (this: Document, ev: DragEvent) => any;\n /**\n * Fires on the source object when the user starts to drag a text selection or selected object.\n * @param ev The event.\n */\n ondragstart: (this: Document, ev: DragEvent) => any;\n ondrop: (this: Document, ev: DragEvent) => any;\n /**\n * Occurs when the duration attribute is updated.\n * @param ev The event.\n */\n ondurationchange: (this: Document, ev: Event) => any;\n /**\n * Occurs when the media element is reset to its initial state.\n * @param ev The event.\n */\n onemptied: (this: Document, ev: Event) => any;\n /**\n * Occurs when the end of playback is reached.\n * @param ev The event\n */\n onended: (this: Document, ev: MediaStreamErrorEvent) => any;\n /**\n * Fires when an error occurs during object loading.\n * @param ev The event.\n */\n onerror: (this: Document, ev: ErrorEvent) => any;\n /**\n * Fires when the object receives focus.\n * @param ev The event.\n */\n onfocus: (this: Document, ev: FocusEvent) => any;\n onfullscreenchange: (this: Document, ev: Event) => any;\n onfullscreenerror: (this: Document, ev: Event) => any;\n oninput: (this: Document, ev: Event) => any;\n oninvalid: (this: Document, ev: Event) => any;\n /**\n * Fires when the user presses a key.\n * @param ev The keyboard event\n */\n onkeydown: (this: Document, ev: KeyboardEvent) => any;\n /**\n * Fires when the user presses an alphanumeric key.\n * @param ev The event.\n */\n onkeypress: (this: Document, ev: KeyboardEvent) => any;\n /**\n * Fires when the user releases a key.\n * @param ev The keyboard event\n */\n onkeyup: (this: Document, ev: KeyboardEvent) => any;\n /**\n * Fires immediately after the browser loads the object.\n * @param ev The event.\n */\n onload: (this: Document, ev: Event) => any;\n /**\n * Occurs when media data is loaded at the current playback position.\n * @param ev The event.\n */\n onloadeddata: (this: Document, ev: Event) => any;\n /**\n * Occurs when the duration and dimensions of the media have been determined.\n * @param ev The event.\n */\n onloadedmetadata: (this: Document, ev: Event) => any;\n /**\n * Occurs when Internet Explorer begins looking for media data.\n * @param ev The event.\n */\n onloadstart: (this: Document, ev: Event) => any;\n /**\n * Fires when the user clicks the object with either mouse button.\n * @param ev The mouse event.\n */\n onmousedown: (this: Document, ev: MouseEvent) => any;\n /**\n * Fires when the user moves the mouse over the object.\n * @param ev The mouse event.\n */\n onmousemove: (this: Document, ev: MouseEvent) => any;\n /**\n * Fires when the user moves the mouse pointer outside the boundaries of the object.\n * @param ev The mouse event.\n */\n onmouseout: (this: Document, ev: MouseEvent) => any;\n /**\n * Fires when the user moves the mouse pointer into the object.\n * @param ev The mouse event.\n */\n onmouseover: (this: Document, ev: MouseEvent) => any;\n /**\n * Fires when the user releases a mouse button while the mouse is over the object.\n * @param ev The mouse event.\n */\n onmouseup: (this: Document, ev: MouseEvent) => any;\n /**\n * Fires when the wheel button is rotated.\n * @param ev The mouse event\n */\n onmousewheel: (this: Document, ev: WheelEvent) => any;\n onmscontentzoom: (this: Document, ev: UIEvent) => any;\n onmsgesturechange: (this: Document, ev: MSGestureEvent) => any;\n onmsgesturedoubletap: (this: Document, ev: MSGestureEvent) => any;\n onmsgestureend: (this: Document, ev: MSGestureEvent) => any;\n onmsgesturehold: (this: Document, ev: MSGestureEvent) => any;\n onmsgesturestart: (this: Document, ev: MSGestureEvent) => any;\n onmsgesturetap: (this: Document, ev: MSGestureEvent) => any;\n onmsinertiastart: (this: Document, ev: MSGestureEvent) => any;\n onmsmanipulationstatechanged: (this: Document, ev: MSManipulationEvent) => any;\n onmspointercancel: (this: Document, ev: MSPointerEvent) => any;\n onmspointerdown: (this: Document, ev: MSPointerEvent) => any;\n onmspointerenter: (this: Document, ev: MSPointerEvent) => any;\n onmspointerleave: (this: Document, ev: MSPointerEvent) => any;\n onmspointermove: (this: Document, ev: MSPointerEvent) => any;\n onmspointerout: (this: Document, ev: MSPointerEvent) => any;\n onmspointerover: (this: Document, ev: MSPointerEvent) => any;\n onmspointerup: (this: Document, ev: MSPointerEvent) => any;\n /**\n * Occurs when an item is removed from a Jump List of a webpage running in Site Mode.\n * @param ev The event.\n */\n onmssitemodejumplistitemremoved: (this: Document, ev: MSSiteModeEvent) => any;\n /**\n * Occurs when a user clicks a button in a Thumbnail Toolbar of a webpage running in Site Mode.\n * @param ev The event.\n */\n onmsthumbnailclick: (this: Document, ev: MSSiteModeEvent) => any;\n /**\n * Occurs when playback is paused.\n * @param ev The event.\n */\n onpause: (this: Document, ev: Event) => any;\n /**\n * Occurs when the play method is requested.\n * @param ev The event.\n */\n onplay: (this: Document, ev: Event) => any;\n /**\n * Occurs when the audio or video has started playing.\n * @param ev The event.\n */\n onplaying: (this: Document, ev: Event) => any;\n onpointerlockchange: (this: Document, ev: Event) => any;\n onpointerlockerror: (this: Document, ev: Event) => any;\n /**\n * Occurs to indicate progress while downloading media data.\n * @param ev The event.\n */\n onprogress: (this: Document, ev: ProgressEvent) => any;\n /**\n * Occurs when the playback rate is increased or decreased.\n * @param ev The event.\n */\n onratechange: (this: Document, ev: Event) => any;\n /**\n * Fires when the state of the object has changed.\n * @param ev The event\n */\n onreadystatechange: (this: Document, ev: Event) => any;\n /**\n * Fires when the user resets a form.\n * @param ev The event.\n */\n onreset: (this: Document, ev: Event) => any;\n /**\n * Fires when the user repositions the scroll box in the scroll bar on the object.\n * @param ev The event.\n */\n onscroll: (this: Document, ev: UIEvent) => any;\n /**\n * Occurs when the seek operation ends.\n * @param ev The event.\n */\n onseeked: (this: Document, ev: Event) => any;\n /**\n * Occurs when the current playback position is moved.\n * @param ev The event.\n */\n onseeking: (this: Document, ev: Event) => any;\n /**\n * Fires when the current selection changes.\n * @param ev The event.\n */\n onselect: (this: Document, ev: UIEvent) => any;\n /**\n * Fires when the selection state of a document changes.\n * @param ev The event.\n */\n onselectionchange: (this: Document, ev: Event) => any;\n onselectstart: (this: Document, ev: Event) => any;\n /**\n * Occurs when the download has stopped.\n * @param ev The event.\n */\n onstalled: (this: Document, ev: Event) => any;\n /**\n * Fires when the user clicks the Stop button or leaves the Web page.\n * @param ev The event.\n */\n onstop: (this: Document, ev: Event) => any;\n onsubmit: (this: Document, ev: Event) => any;\n /**\n * Occurs if the load operation has been intentionally halted.\n * @param ev The event.\n */\n onsuspend: (this: Document, ev: Event) => any;\n /**\n * Occurs to indicate the current playback position.\n * @param ev The event.\n */\n ontimeupdate: (this: Document, ev: Event) => any;\n ontouchcancel: (ev: TouchEvent) => any;\n ontouchend: (ev: TouchEvent) => any;\n ontouchmove: (ev: TouchEvent) => any;\n ontouchstart: (ev: TouchEvent) => any;\n /**\n * Occurs when the volume is changed, or playback is muted or unmuted.\n * @param ev The event.\n */\n onvolumechange: (this: Document, ev: Event) => any;\n /**\n * Occurs when playback stops because the next frame of a video resource is not available.\n * @param ev The event.\n */\n onwaiting: (this: Document, ev: Event) => any;\n onwebkitfullscreenchange: (this: Document, ev: Event) => any;\n onwebkitfullscreenerror: (this: Document, ev: Event) => any;\n plugins: HTMLCollectionOf;\n readonly pointerLockElement: Element;\n /**\n * Retrieves a value that indicates the current state of the object.\n */\n readonly readyState: string;\n /**\n * Gets the URL of the location that referred the user to the current page.\n */\n readonly referrer: string;\n /**\n * Gets the root svg element in the document hierarchy.\n */\n readonly rootElement: SVGSVGElement;\n /**\n * Retrieves a collection of all script objects in the document.\n */\n scripts: HTMLCollectionOf;\n readonly scrollingElement: Element | null;\n /**\n * Retrieves a collection of styleSheet objects representing the style sheets that correspond to each instance of a link or style object in the document.\n */\n readonly styleSheets: StyleSheetList;\n /**\n * Contains the title of the document.\n */\n title: string;\n /**\n * Sets or gets the URL for the current document.\n */\n readonly URL: string;\n /**\n * Gets the URL for the document, stripped of any character encoding.\n */\n readonly URLUnencoded: string;\n readonly visibilityState: VisibilityState;\n /**\n * Sets or gets the color of the links that the user has visited.\n */\n vlinkColor: string;\n readonly webkitCurrentFullScreenElement: Element | null;\n readonly webkitFullscreenElement: Element | null;\n readonly webkitFullscreenEnabled: boolean;\n readonly webkitIsFullScreen: boolean;\n readonly xmlEncoding: string | null;\n xmlStandalone: boolean;\n /**\n * Gets or sets the version attribute specified in the declaration of an XML document.\n */\n xmlVersion: string | null;\n adoptNode(source: T): T;\n captureEvents(): void;\n caretRangeFromPoint(x: number, y: number): Range;\n clear(): void;\n /**\n * Closes an output stream and forces the sent data to display.\n */\n close(): void;\n /**\n * Creates an attribute object with a specified name.\n * @param name String that sets the attribute object's name.\n */\n createAttribute(name: string): Attr;\n createAttributeNS(namespaceURI: string | null, qualifiedName: string): Attr;\n createCDATASection(data: string): CDATASection;\n /**\n * Creates a comment object with the specified data.\n * @param data Sets the comment object's data.\n */\n createComment(data: string): Comment;\n /**\n * Creates a new document.\n */\n createDocumentFragment(): DocumentFragment;\n /**\n * Creates an instance of the element for the specified tag.\n * @param tagName The name of an element.\n */\n createElement(tagName: K): HTMLElementTagNameMap[K];\n createElement(tagName: string): HTMLElement;\n createElementNS(namespaceURI: \"http://www.w3.org/1999/xhtml\", qualifiedName: string): HTMLElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"a\"): SVGAElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"circle\"): SVGCircleElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"clipPath\"): SVGClipPathElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"componentTransferFunction\"): SVGComponentTransferFunctionElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"defs\"): SVGDefsElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"desc\"): SVGDescElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"ellipse\"): SVGEllipseElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"feBlend\"): SVGFEBlendElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"feColorMatrix\"): SVGFEColorMatrixElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"feComponentTransfer\"): SVGFEComponentTransferElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"feComposite\"): SVGFECompositeElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"feConvolveMatrix\"): SVGFEConvolveMatrixElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"feDiffuseLighting\"): SVGFEDiffuseLightingElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"feDisplacementMap\"): SVGFEDisplacementMapElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"feDistantLight\"): SVGFEDistantLightElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"feFlood\"): SVGFEFloodElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"feFuncA\"): SVGFEFuncAElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"feFuncB\"): SVGFEFuncBElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"feFuncG\"): SVGFEFuncGElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"feFuncR\"): SVGFEFuncRElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"feGaussianBlur\"): SVGFEGaussianBlurElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"feImage\"): SVGFEImageElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"feMerge\"): SVGFEMergeElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"feMergeNode\"): SVGFEMergeNodeElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"feMorphology\"): SVGFEMorphologyElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"feOffset\"): SVGFEOffsetElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"fePointLight\"): SVGFEPointLightElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"feSpecularLighting\"): SVGFESpecularLightingElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"feSpotLight\"): SVGFESpotLightElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"feTile\"): SVGFETileElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"feTurbulence\"): SVGFETurbulenceElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"filter\"): SVGFilterElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"foreignObject\"): SVGForeignObjectElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"g\"): SVGGElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"image\"): SVGImageElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"gradient\"): SVGGradientElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"line\"): SVGLineElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"linearGradient\"): SVGLinearGradientElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"marker\"): SVGMarkerElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"mask\"): SVGMaskElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"path\"): SVGPathElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"metadata\"): SVGMetadataElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"pattern\"): SVGPatternElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"polygon\"): SVGPolygonElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"polyline\"): SVGPolylineElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"radialGradient\"): SVGRadialGradientElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"rect\"): SVGRectElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"svg\"): SVGSVGElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"script\"): SVGScriptElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"stop\"): SVGStopElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"style\"): SVGStyleElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"switch\"): SVGSwitchElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"symbol\"): SVGSymbolElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"tspan\"): SVGTSpanElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"textContent\"): SVGTextContentElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"text\"): SVGTextElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"textPath\"): SVGTextPathElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"textPositioning\"): SVGTextPositioningElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"title\"): SVGTitleElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"use\"): SVGUseElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"view\"): SVGViewElement;\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: string): SVGElement;\n createElementNS(namespaceURI: string | null, qualifiedName: string): Element;\n createExpression(expression: string, resolver: XPathNSResolver): XPathExpression;\n /**\n * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document.\n * @param root The root element or node to start traversing on.\n * @param whatToShow The type of nodes or elements to appear in the node list\n * @param filter A custom NodeFilter function to use. For more information, see filter. Use null for no filter.\n * @param entityReferenceExpansion A flag that specifies whether entity reference nodes are expanded.\n */\n createNodeIterator(root: Node, whatToShow?: number, filter?: NodeFilter, entityReferenceExpansion?: boolean): NodeIterator;\n createNSResolver(nodeResolver: Node): XPathNSResolver;\n createProcessingInstruction(target: string, data: string): ProcessingInstruction;\n /**\n * Returns an empty range object that has both of its boundary points positioned at the beginning of the document.\n */\n createRange(): Range;\n /**\n * Creates a text string from the specified value.\n * @param data String that specifies the nodeValue property of the text node.\n */\n createTextNode(data: string): Text;\n createTouch(view: Window, target: EventTarget, identifier: number, pageX: number, pageY: number, screenX: number, screenY: number): Touch;\n createTouchList(...touches: Touch[]): TouchList;\n /**\n * Creates a TreeWalker object that you can use to traverse filtered lists of nodes or elements in a document.\n * @param root The root element or node to start traversing on.\n * @param whatToShow The type of nodes or elements to appear in the node list. For more information, see whatToShow.\n * @param filter A custom NodeFilter function to use.\n * @param entityReferenceExpansion A flag that specifies whether entity reference nodes are expanded.\n */\n createTreeWalker(root: Node, whatToShow?: number, filter?: NodeFilter, entityReferenceExpansion?: boolean): TreeWalker;\n /**\n * Returns the element for the specified x coordinate and the specified y coordinate.\n * @param x The x-offset\n * @param y The y-offset\n */\n elementFromPoint(x: number, y: number): Element;\n evaluate(expression: string, contextNode: Node, resolver: XPathNSResolver | null, type: number, result: XPathResult | null): XPathResult;\n /**\n * Executes a command on the current document, current selection, or the given range.\n * @param commandId String that specifies the command to execute. This command can be any of the command identifiers that can be executed in script.\n * @param showUI Display the user interface, defaults to false.\n * @param value Value to assign.\n */\n execCommand(commandId: string, showUI?: boolean, value?: any): boolean;\n /**\n * Displays help information for the given command identifier.\n * @param commandId Displays help information for the given command identifier.\n */\n execCommandShowHelp(commandId: string): boolean;\n exitFullscreen(): void;\n exitPointerLock(): void;\n /**\n * Causes the element to receive the focus and executes the code specified by the onfocus event.\n */\n focus(): void;\n /**\n * Returns a reference to the first object with the specified value of the ID or NAME attribute.\n * @param elementId String that specifies the ID value. Case-insensitive.\n */\n getElementById(elementId: string): HTMLElement | null;\n getElementsByClassName(classNames: string): HTMLCollectionOf;\n /**\n * Gets a collection of objects based on the value of the NAME or ID attribute.\n * @param elementName Gets a collection of objects based on the value of the NAME or ID attribute.\n */\n getElementsByName(elementName: string): NodeListOf;\n /**\n * Retrieves a collection of objects based on the specified element name.\n * @param name Specifies the name of an element.\n */\n getElementsByTagName(tagname: K): ElementListTagNameMap[K];\n getElementsByTagName(tagname: string): NodeListOf;\n getElementsByTagNameNS(namespaceURI: \"http://www.w3.org/1999/xhtml\", localName: string): HTMLCollectionOf;\n getElementsByTagNameNS(namespaceURI: \"http://www.w3.org/2000/svg\", localName: string): HTMLCollectionOf;\n getElementsByTagNameNS(namespaceURI: string, localName: string): HTMLCollectionOf;\n /**\n * Returns an object representing the current selection of the document that is loaded into the object displaying a webpage.\n */\n getSelection(): Selection;\n /**\n * Gets a value indicating whether the object currently has focus.\n */\n hasFocus(): boolean;\n importNode(importedNode: T, deep: boolean): T;\n msElementsFromPoint(x: number, y: number): NodeListOf;\n msElementsFromRect(left: number, top: number, width: number, height: number): NodeListOf;\n /**\n * Opens a new window and loads a document specified by a given URL. Also, opens a new window that uses the url parameter and the name parameter to collect the output of the write method and the writeln method.\n * @param url Specifies a MIME type for the document.\n * @param name Specifies the name of the window. This name is used as the value for the TARGET attribute on a form or an anchor element.\n * @param features Contains a list of items separated by commas. Each item consists of an option and a value, separated by an equals sign (for example, \"fullscreen=yes, toolbar=yes\"). The following values are supported.\n * @param replace Specifies whether the existing entry for the document is replaced in the history list.\n */\n open(url?: string, name?: string, features?: string, replace?: boolean): Document;\n /**\n * Returns a Boolean value that indicates whether a specified command can be successfully executed using execCommand, given the current state of the document.\n * @param commandId Specifies a command identifier.\n */\n queryCommandEnabled(commandId: string): boolean;\n /**\n * Returns a Boolean value that indicates whether the specified command is in the indeterminate state.\n * @param commandId String that specifies a command identifier.\n */\n queryCommandIndeterm(commandId: string): boolean;\n /**\n * Returns a Boolean value that indicates the current state of the command.\n * @param commandId String that specifies a command identifier.\n */\n queryCommandState(commandId: string): boolean;\n /**\n * Returns a Boolean value that indicates whether the current command is supported on the current range.\n * @param commandId Specifies a command identifier.\n */\n queryCommandSupported(commandId: string): boolean;\n /**\n * Retrieves the string associated with a command.\n * @param commandId String that contains the identifier of a command. This can be any command identifier given in the list of Command Identifiers.\n */\n queryCommandText(commandId: string): string;\n /**\n * Returns the current value of the document, range, or current selection for the given command.\n * @param commandId String that specifies a command identifier.\n */\n queryCommandValue(commandId: string): string;\n releaseEvents(): void;\n /**\n * Allows updating the print settings for the page.\n */\n updateSettings(): void;\n webkitCancelFullScreen(): void;\n webkitExitFullscreen(): void;\n /**\n * Writes one or more HTML expressions to a document in the specified window.\n * @param content Specifies the text and HTML tags to write.\n */\n write(...content: string[]): void;\n /**\n * Writes one or more HTML expressions, followed by a carriage return, to a document in the specified window.\n * @param content The text and HTML tags to write.\n */\n writeln(...content: string[]): void;\n addEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var Document: {\n prototype: Document;\n new(): Document;\n};\n\ninterface DocumentFragment extends Node, NodeSelector, ParentNode {\n getElementById(elementId: string): HTMLElement | null;\n}\n\ndeclare var DocumentFragment: {\n prototype: DocumentFragment;\n new(): DocumentFragment;\n};\n\ninterface DocumentType extends Node, ChildNode {\n readonly entities: NamedNodeMap;\n readonly internalSubset: string | null;\n readonly name: string;\n readonly notations: NamedNodeMap;\n readonly publicId: string;\n readonly systemId: string;\n}\n\ndeclare var DocumentType: {\n prototype: DocumentType;\n new(): DocumentType;\n};\n\ninterface DOMError {\n readonly name: string;\n toString(): string;\n}\n\ndeclare var DOMError: {\n prototype: DOMError;\n new(): DOMError;\n};\n\ninterface DOMException {\n readonly code: number;\n readonly message: string;\n readonly name: string;\n toString(): string;\n readonly ABORT_ERR: number;\n readonly DATA_CLONE_ERR: number;\n readonly DOMSTRING_SIZE_ERR: number;\n readonly HIERARCHY_REQUEST_ERR: number;\n readonly INDEX_SIZE_ERR: number;\n readonly INUSE_ATTRIBUTE_ERR: number;\n readonly INVALID_ACCESS_ERR: number;\n readonly INVALID_CHARACTER_ERR: number;\n readonly INVALID_MODIFICATION_ERR: number;\n readonly INVALID_NODE_TYPE_ERR: number;\n readonly INVALID_STATE_ERR: number;\n readonly NAMESPACE_ERR: number;\n readonly NETWORK_ERR: number;\n readonly NO_DATA_ALLOWED_ERR: number;\n readonly NO_MODIFICATION_ALLOWED_ERR: number;\n readonly NOT_FOUND_ERR: number;\n readonly NOT_SUPPORTED_ERR: number;\n readonly PARSE_ERR: number;\n readonly QUOTA_EXCEEDED_ERR: number;\n readonly SECURITY_ERR: number;\n readonly SERIALIZE_ERR: number;\n readonly SYNTAX_ERR: number;\n readonly TIMEOUT_ERR: number;\n readonly TYPE_MISMATCH_ERR: number;\n readonly URL_MISMATCH_ERR: number;\n readonly VALIDATION_ERR: number;\n readonly WRONG_DOCUMENT_ERR: number;\n}\n\ndeclare var DOMException: {\n prototype: DOMException;\n new(): DOMException;\n readonly ABORT_ERR: number;\n readonly DATA_CLONE_ERR: number;\n readonly DOMSTRING_SIZE_ERR: number;\n readonly HIERARCHY_REQUEST_ERR: number;\n readonly INDEX_SIZE_ERR: number;\n readonly INUSE_ATTRIBUTE_ERR: number;\n readonly INVALID_ACCESS_ERR: number;\n readonly INVALID_CHARACTER_ERR: number;\n readonly INVALID_MODIFICATION_ERR: number;\n readonly INVALID_NODE_TYPE_ERR: number;\n readonly INVALID_STATE_ERR: number;\n readonly NAMESPACE_ERR: number;\n readonly NETWORK_ERR: number;\n readonly NO_DATA_ALLOWED_ERR: number;\n readonly NO_MODIFICATION_ALLOWED_ERR: number;\n readonly NOT_FOUND_ERR: number;\n readonly NOT_SUPPORTED_ERR: number;\n readonly PARSE_ERR: number;\n readonly QUOTA_EXCEEDED_ERR: number;\n readonly SECURITY_ERR: number;\n readonly SERIALIZE_ERR: number;\n readonly SYNTAX_ERR: number;\n readonly TIMEOUT_ERR: number;\n readonly TYPE_MISMATCH_ERR: number;\n readonly URL_MISMATCH_ERR: number;\n readonly VALIDATION_ERR: number;\n readonly WRONG_DOCUMENT_ERR: number;\n};\n\ninterface DOMImplementation {\n createDocument(namespaceURI: string | null, qualifiedName: string | null, doctype: DocumentType | null): Document;\n createDocumentType(qualifiedName: string, publicId: string, systemId: string): DocumentType;\n createHTMLDocument(title: string): Document;\n hasFeature(feature: string | null, version: string | null): boolean;\n}\n\ndeclare var DOMImplementation: {\n prototype: DOMImplementation;\n new(): DOMImplementation;\n};\n\ninterface DOMParser {\n parseFromString(source: string, mimeType: string): Document;\n}\n\ndeclare var DOMParser: {\n prototype: DOMParser;\n new(): DOMParser;\n};\n\ninterface DOMSettableTokenList extends DOMTokenList {\n value: string;\n}\n\ndeclare var DOMSettableTokenList: {\n prototype: DOMSettableTokenList;\n new(): DOMSettableTokenList;\n};\n\ninterface DOMStringList {\n readonly length: number;\n contains(str: string): boolean;\n item(index: number): string | null;\n [index: number]: string;\n}\n\ndeclare var DOMStringList: {\n prototype: DOMStringList;\n new(): DOMStringList;\n};\n\ninterface DOMStringMap {\n [name: string]: string | undefined;\n}\n\ndeclare var DOMStringMap: {\n prototype: DOMStringMap;\n new(): DOMStringMap;\n};\n\ninterface DOMTokenList {\n readonly length: number;\n add(...token: string[]): void;\n contains(token: string): boolean;\n item(index: number): string;\n remove(...token: string[]): void;\n toggle(token: string, force?: boolean): boolean;\n toString(): string;\n [index: number]: string;\n}\n\ndeclare var DOMTokenList: {\n prototype: DOMTokenList;\n new(): DOMTokenList;\n};\n\ninterface DragEvent extends MouseEvent {\n readonly dataTransfer: DataTransfer;\n initDragEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, viewArg: Window, detailArg: number, screenXArg: number, screenYArg: number, clientXArg: number, clientYArg: number, ctrlKeyArg: boolean, altKeyArg: boolean, shiftKeyArg: boolean, metaKeyArg: boolean, buttonArg: number, relatedTargetArg: EventTarget, dataTransferArg: DataTransfer): void;\n msConvertURL(file: File, targetType: string, targetURL?: string): void;\n}\n\ndeclare var DragEvent: {\n prototype: DragEvent;\n new(type: \"drag\" | \"dragend\" | \"dragenter\" | \"dragexit\" | \"dragleave\" | \"dragover\" | \"dragstart\" | \"drop\", dragEventInit?: { dataTransfer?: DataTransfer }): DragEvent;\n};\n\ninterface DynamicsCompressorNode extends AudioNode {\n readonly attack: AudioParam;\n readonly knee: AudioParam;\n readonly ratio: AudioParam;\n readonly reduction: number;\n readonly release: AudioParam;\n readonly threshold: AudioParam;\n}\n\ndeclare var DynamicsCompressorNode: {\n prototype: DynamicsCompressorNode;\n new(): DynamicsCompressorNode;\n};\n\ninterface ElementEventMap extends GlobalEventHandlersEventMap {\n \"ariarequest\": Event;\n \"command\": Event;\n \"gotpointercapture\": PointerEvent;\n \"lostpointercapture\": PointerEvent;\n \"MSGestureChange\": MSGestureEvent;\n \"MSGestureDoubleTap\": MSGestureEvent;\n \"MSGestureEnd\": MSGestureEvent;\n \"MSGestureHold\": MSGestureEvent;\n \"MSGestureStart\": MSGestureEvent;\n \"MSGestureTap\": MSGestureEvent;\n \"MSGotPointerCapture\": MSPointerEvent;\n \"MSInertiaStart\": MSGestureEvent;\n \"MSLostPointerCapture\": MSPointerEvent;\n \"MSPointerCancel\": MSPointerEvent;\n \"MSPointerDown\": MSPointerEvent;\n \"MSPointerEnter\": MSPointerEvent;\n \"MSPointerLeave\": MSPointerEvent;\n \"MSPointerMove\": MSPointerEvent;\n \"MSPointerOut\": MSPointerEvent;\n \"MSPointerOver\": MSPointerEvent;\n \"MSPointerUp\": MSPointerEvent;\n \"touchcancel\": TouchEvent;\n \"touchend\": TouchEvent;\n \"touchmove\": TouchEvent;\n \"touchstart\": TouchEvent;\n \"webkitfullscreenchange\": Event;\n \"webkitfullscreenerror\": Event;\n}\n\ninterface Element extends Node, GlobalEventHandlers, ElementTraversal, NodeSelector, ChildNode, ParentNode {\n readonly classList: DOMTokenList;\n className: string;\n readonly clientHeight: number;\n readonly clientLeft: number;\n readonly clientTop: number;\n readonly clientWidth: number;\n id: string;\n innerHTML: string;\n msContentZoomFactor: number;\n readonly msRegionOverflow: string;\n onariarequest: (this: Element, ev: Event) => any;\n oncommand: (this: Element, ev: Event) => any;\n ongotpointercapture: (this: Element, ev: PointerEvent) => any;\n onlostpointercapture: (this: Element, ev: PointerEvent) => any;\n onmsgesturechange: (this: Element, ev: MSGestureEvent) => any;\n onmsgesturedoubletap: (this: Element, ev: MSGestureEvent) => any;\n onmsgestureend: (this: Element, ev: MSGestureEvent) => any;\n onmsgesturehold: (this: Element, ev: MSGestureEvent) => any;\n onmsgesturestart: (this: Element, ev: MSGestureEvent) => any;\n onmsgesturetap: (this: Element, ev: MSGestureEvent) => any;\n onmsgotpointercapture: (this: Element, ev: MSPointerEvent) => any;\n onmsinertiastart: (this: Element, ev: MSGestureEvent) => any;\n onmslostpointercapture: (this: Element, ev: MSPointerEvent) => any;\n onmspointercancel: (this: Element, ev: MSPointerEvent) => any;\n onmspointerdown: (this: Element, ev: MSPointerEvent) => any;\n onmspointerenter: (this: Element, ev: MSPointerEvent) => any;\n onmspointerleave: (this: Element, ev: MSPointerEvent) => any;\n onmspointermove: (this: Element, ev: MSPointerEvent) => any;\n onmspointerout: (this: Element, ev: MSPointerEvent) => any;\n onmspointerover: (this: Element, ev: MSPointerEvent) => any;\n onmspointerup: (this: Element, ev: MSPointerEvent) => any;\n ontouchcancel: (ev: TouchEvent) => any;\n ontouchend: (ev: TouchEvent) => any;\n ontouchmove: (ev: TouchEvent) => any;\n ontouchstart: (ev: TouchEvent) => any;\n onwebkitfullscreenchange: (this: Element, ev: Event) => any;\n onwebkitfullscreenerror: (this: Element, ev: Event) => any;\n outerHTML: string;\n readonly prefix: string | null;\n readonly scrollHeight: number;\n scrollLeft: number;\n scrollTop: number;\n readonly scrollWidth: number;\n readonly tagName: string;\n readonly assignedSlot: HTMLSlotElement | null;\n slot: string;\n readonly shadowRoot: ShadowRoot | null;\n getAttribute(name: string): string | null;\n getAttributeNode(name: string): Attr;\n getAttributeNodeNS(namespaceURI: string, localName: string): Attr;\n getAttributeNS(namespaceURI: string, localName: string): string;\n getBoundingClientRect(): ClientRect;\n getClientRects(): ClientRectList;\n getElementsByTagName(name: K): ElementListTagNameMap[K];\n getElementsByTagName(name: string): NodeListOf;\n getElementsByTagNameNS(namespaceURI: \"http://www.w3.org/1999/xhtml\", localName: string): HTMLCollectionOf;\n getElementsByTagNameNS(namespaceURI: \"http://www.w3.org/2000/svg\", localName: string): HTMLCollectionOf;\n getElementsByTagNameNS(namespaceURI: string, localName: string): HTMLCollectionOf;\n hasAttribute(name: string): boolean;\n hasAttributeNS(namespaceURI: string, localName: string): boolean;\n msGetRegionContent(): MSRangeCollection;\n msGetUntransformedBounds(): ClientRect;\n msMatchesSelector(selectors: string): boolean;\n msReleasePointerCapture(pointerId: number): void;\n msSetPointerCapture(pointerId: number): void;\n msZoomTo(args: MsZoomToOptions): void;\n releasePointerCapture(pointerId: number): void;\n removeAttribute(qualifiedName: string): void;\n removeAttributeNode(oldAttr: Attr): Attr;\n removeAttributeNS(namespaceURI: string, localName: string): void;\n requestFullscreen(): void;\n requestPointerLock(): void;\n setAttribute(name: string, value: string): void;\n setAttributeNode(newAttr: Attr): Attr;\n setAttributeNodeNS(newAttr: Attr): Attr;\n setAttributeNS(namespaceURI: string, qualifiedName: string, value: string): void;\n setPointerCapture(pointerId: number): void;\n webkitMatchesSelector(selectors: string): boolean;\n webkitRequestFullscreen(): void;\n webkitRequestFullScreen(): void;\n getElementsByClassName(classNames: string): NodeListOf;\n matches(selector: string): boolean;\n closest(selector: string): Element | null;\n scrollIntoView(arg?: boolean | ScrollIntoViewOptions): void;\n scroll(options?: ScrollToOptions): void;\n scroll(x: number, y: number): void;\n scrollTo(options?: ScrollToOptions): void;\n scrollTo(x: number, y: number): void;\n scrollBy(options?: ScrollToOptions): void;\n scrollBy(x: number, y: number): void;\n insertAdjacentElement(position: InsertPosition, insertedElement: Element): Element | null;\n insertAdjacentHTML(where: InsertPosition, html: string): void;\n insertAdjacentText(where: InsertPosition, text: string): void;\n attachShadow(shadowRootInitDict: ShadowRootInit): ShadowRoot;\n addEventListener(type: K, listener: (this: Element, ev: ElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var Element: {\n prototype: Element;\n new(): Element;\n};\n\ninterface ErrorEvent extends Event {\n readonly colno: number;\n readonly error: any;\n readonly filename: string;\n readonly lineno: number;\n readonly message: string;\n initErrorEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, messageArg: string, filenameArg: string, linenoArg: number): void;\n}\n\ndeclare var ErrorEvent: {\n prototype: ErrorEvent;\n new(type: string, errorEventInitDict?: ErrorEventInit): ErrorEvent;\n};\n\ninterface Event {\n readonly bubbles: boolean;\n readonly cancelable: boolean;\n cancelBubble: boolean;\n readonly currentTarget: EventTarget;\n readonly defaultPrevented: boolean;\n readonly eventPhase: number;\n readonly isTrusted: boolean;\n returnValue: boolean;\n readonly srcElement: Element | null;\n readonly target: EventTarget;\n readonly timeStamp: number;\n readonly type: string;\n readonly scoped: boolean;\n initEvent(eventTypeArg: string, canBubbleArg: boolean, cancelableArg: boolean): void;\n preventDefault(): void;\n stopImmediatePropagation(): void;\n stopPropagation(): void;\n deepPath(): EventTarget[];\n readonly AT_TARGET: number;\n readonly BUBBLING_PHASE: number;\n readonly CAPTURING_PHASE: number;\n}\n\ndeclare var Event: {\n prototype: Event;\n new(typeArg: string, eventInitDict?: EventInit): Event;\n readonly AT_TARGET: number;\n readonly BUBBLING_PHASE: number;\n readonly CAPTURING_PHASE: number;\n};\n\ninterface EventTarget {\n addEventListener(type: string, listener?: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n dispatchEvent(evt: Event): boolean;\n removeEventListener(type: string, listener?: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var EventTarget: {\n prototype: EventTarget;\n new(): EventTarget;\n};\n\ninterface EXT_frag_depth {\n}\n\ndeclare var EXT_frag_depth: {\n prototype: EXT_frag_depth;\n new(): EXT_frag_depth;\n};\n\ninterface EXT_texture_filter_anisotropic {\n readonly MAX_TEXTURE_MAX_ANISOTROPY_EXT: number;\n readonly TEXTURE_MAX_ANISOTROPY_EXT: number;\n}\n\ndeclare var EXT_texture_filter_anisotropic: {\n prototype: EXT_texture_filter_anisotropic;\n new(): EXT_texture_filter_anisotropic;\n readonly MAX_TEXTURE_MAX_ANISOTROPY_EXT: number;\n readonly TEXTURE_MAX_ANISOTROPY_EXT: number;\n};\n\ninterface ExtensionScriptApis {\n extensionIdToShortId(extensionId: string): number;\n fireExtensionApiTelemetry(functionName: string, isSucceeded: boolean, isSupported: boolean): void;\n genericFunction(routerAddress: any, parameters?: string, callbackId?: number): void;\n genericSynchronousFunction(functionId: number, parameters?: string): string;\n getExtensionId(): string;\n registerGenericFunctionCallbackHandler(callbackHandler: any): void;\n registerGenericPersistentCallbackHandler(callbackHandler: any): void;\n}\n\ndeclare var ExtensionScriptApis: {\n prototype: ExtensionScriptApis;\n new(): ExtensionScriptApis;\n};\n\ninterface External {\n}\n\ndeclare var External: {\n prototype: External;\n new(): External;\n};\n\ninterface File extends Blob {\n readonly lastModifiedDate: any;\n readonly name: string;\n readonly webkitRelativePath: string;\n}\n\ndeclare var File: {\n prototype: File;\n new (parts: (ArrayBuffer | ArrayBufferView | Blob | string)[], filename: string, properties?: FilePropertyBag): File;\n};\n\ninterface FileList {\n readonly length: number;\n item(index: number): File;\n [index: number]: File;\n}\n\ndeclare var FileList: {\n prototype: FileList;\n new(): FileList;\n};\n\ninterface FileReader extends EventTarget, MSBaseReader {\n readonly error: DOMError;\n readAsArrayBuffer(blob: Blob): void;\n readAsBinaryString(blob: Blob): void;\n readAsDataURL(blob: Blob): void;\n readAsText(blob: Blob, encoding?: string): void;\n addEventListener(type: K, listener: (this: FileReader, ev: MSBaseReaderEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var FileReader: {\n prototype: FileReader;\n new(): FileReader;\n};\n\ninterface FocusEvent extends UIEvent {\n readonly relatedTarget: EventTarget;\n initFocusEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, viewArg: Window, detailArg: number, relatedTargetArg: EventTarget): void;\n}\n\ndeclare var FocusEvent: {\n prototype: FocusEvent;\n new(typeArg: string, eventInitDict?: FocusEventInit): FocusEvent;\n};\n\ninterface FocusNavigationEvent extends Event {\n readonly navigationReason: NavigationReason;\n readonly originHeight: number;\n readonly originLeft: number;\n readonly originTop: number;\n readonly originWidth: number;\n requestFocus(): void;\n}\n\ndeclare var FocusNavigationEvent: {\n prototype: FocusNavigationEvent;\n new(type: string, eventInitDict?: FocusNavigationEventInit): FocusNavigationEvent;\n};\n\ninterface FormData {\n append(name: string, value: string | Blob, fileName?: string): void;\n delete(name: string): void;\n get(name: string): FormDataEntryValue | null;\n getAll(name: string): FormDataEntryValue[];\n has(name: string): boolean;\n set(name: string, value: string | Blob, fileName?: string): void;\n}\n\ndeclare var FormData: {\n prototype: FormData;\n new (form?: HTMLFormElement): FormData;\n};\n\ninterface GainNode extends AudioNode {\n readonly gain: AudioParam;\n}\n\ndeclare var GainNode: {\n prototype: GainNode;\n new(): GainNode;\n};\n\ninterface Gamepad {\n readonly axes: number[];\n readonly buttons: GamepadButton[];\n readonly connected: boolean;\n readonly id: string;\n readonly index: number;\n readonly mapping: string;\n readonly timestamp: number;\n}\n\ndeclare var Gamepad: {\n prototype: Gamepad;\n new(): Gamepad;\n};\n\ninterface GamepadButton {\n readonly pressed: boolean;\n readonly value: number;\n}\n\ndeclare var GamepadButton: {\n prototype: GamepadButton;\n new(): GamepadButton;\n};\n\ninterface GamepadEvent extends Event {\n readonly gamepad: Gamepad;\n}\n\ndeclare var GamepadEvent: {\n prototype: GamepadEvent;\n new(typeArg: string, eventInitDict?: GamepadEventInit): GamepadEvent;\n};\n\ninterface Geolocation {\n clearWatch(watchId: number): void;\n getCurrentPosition(successCallback: PositionCallback, errorCallback?: PositionErrorCallback, options?: PositionOptions): void;\n watchPosition(successCallback: PositionCallback, errorCallback?: PositionErrorCallback, options?: PositionOptions): number;\n}\n\ndeclare var Geolocation: {\n prototype: Geolocation;\n new(): Geolocation;\n};\n\ninterface HashChangeEvent extends Event {\n readonly newURL: string | null;\n readonly oldURL: string | null;\n}\n\ndeclare var HashChangeEvent: {\n prototype: HashChangeEvent;\n new(typeArg: string, eventInitDict?: HashChangeEventInit): HashChangeEvent;\n};\n\ninterface Headers {\n append(name: string, value: string): void;\n delete(name: string): void;\n forEach(callback: ForEachCallback): void;\n get(name: string): string | null;\n has(name: string): boolean;\n set(name: string, value: string): void;\n}\n\ndeclare var Headers: {\n prototype: Headers;\n new(init?: any): Headers;\n};\n\ninterface History {\n readonly length: number;\n readonly state: any;\n scrollRestoration: ScrollRestoration;\n back(): void;\n forward(): void;\n go(delta?: number): void;\n pushState(data: any, title: string, url?: string | null): void;\n replaceState(data: any, title: string, url?: string | null): void;\n}\n\ndeclare var History: {\n prototype: History;\n new(): History;\n};\n\ninterface HTMLAllCollection {\n readonly length: number;\n item(nameOrIndex?: string): HTMLCollection | Element | null;\n namedItem(name: string): HTMLCollection | Element | null;\n [index: number]: Element;\n}\n\ndeclare var HTMLAllCollection: {\n prototype: HTMLAllCollection;\n new(): HTMLAllCollection;\n};\n\ninterface HTMLAnchorElement extends HTMLElement {\n /**\n * Sets or retrieves the character set used to encode the object.\n */\n charset: string;\n /**\n * Sets or retrieves the coordinates of the object.\n */\n coords: string;\n download: string;\n /**\n * Contains the anchor portion of the URL including the hash sign (#).\n */\n hash: string;\n /**\n * Contains the hostname and port values of the URL.\n */\n host: string;\n /**\n * Contains the hostname of a URL.\n */\n hostname: string;\n /**\n * Sets or retrieves a destination URL or an anchor point.\n */\n href: string;\n /**\n * Sets or retrieves the language code of the object.\n */\n hreflang: string;\n Methods: string;\n readonly mimeType: string;\n /**\n * Sets or retrieves the shape of the object.\n */\n name: string;\n readonly nameProp: string;\n /**\n * Contains the pathname of the URL.\n */\n pathname: string;\n /**\n * Sets or retrieves the port number associated with a URL.\n */\n port: string;\n /**\n * Contains the protocol of the URL.\n */\n protocol: string;\n readonly protocolLong: string;\n /**\n * Sets or retrieves the relationship between the object and the destination of the link.\n */\n rel: string;\n /**\n * Sets or retrieves the relationship between the object and the destination of the link.\n */\n rev: string;\n /**\n * Sets or retrieves the substring of the href property that follows the question mark.\n */\n search: string;\n /**\n * Sets or retrieves the shape of the object.\n */\n shape: string;\n /**\n * Sets or retrieves the window or frame at which to target content.\n */\n target: string;\n /**\n * Retrieves or sets the text of the object as a string.\n */\n text: string;\n type: string;\n urn: string;\n /**\n * Returns a string representation of an object.\n */\n toString(): string;\n addEventListener(type: K, listener: (this: HTMLAnchorElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLAnchorElement: {\n prototype: HTMLAnchorElement;\n new(): HTMLAnchorElement;\n};\n\ninterface HTMLAppletElement extends HTMLElement {\n align: string;\n /**\n * Sets or retrieves a text alternative to the graphic.\n */\n alt: string;\n /**\n * Gets or sets the optional alternative HTML script to execute if the object fails to load.\n */\n altHtml: string;\n /**\n * Sets or retrieves a character string that can be used to implement your own archive functionality for the object.\n */\n archive: string;\n /**\n * Retrieves a string of the URL where the object tag can be found. This is often the href of the document that the object is in, or the value set by a base element.\n */\n readonly BaseHref: string;\n border: string;\n code: string;\n /**\n * Sets or retrieves the URL of the component.\n */\n codeBase: string;\n /**\n * Sets or retrieves the Internet media type for the code associated with the object.\n */\n codeType: string;\n /**\n * Address of a pointer to the document this page or frame contains. If there is no document, then null will be returned.\n */\n readonly contentDocument: Document;\n /**\n * Sets or retrieves the URL that references the data of the object.\n */\n data: string;\n /**\n * Sets or retrieves a character string that can be used to implement your own declare functionality for the object.\n */\n declare: boolean;\n readonly form: HTMLFormElement;\n /**\n * Sets or retrieves the height of the object.\n */\n height: string;\n hspace: number;\n /**\n * Sets or retrieves the shape of the object.\n */\n name: string;\n object: string | null;\n /**\n * Sets or retrieves a message to be displayed while an object is loading.\n */\n standby: string;\n /**\n * Returns the content type of the object.\n */\n type: string;\n /**\n * Sets or retrieves the URL, often with a bookmark extension (#name), to use as a client-side image map.\n */\n useMap: string;\n vspace: number;\n width: number;\n addEventListener(type: K, listener: (this: HTMLAppletElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLAppletElement: {\n prototype: HTMLAppletElement;\n new(): HTMLAppletElement;\n};\n\ninterface HTMLAreaElement extends HTMLElement {\n /**\n * Sets or retrieves a text alternative to the graphic.\n */\n alt: string;\n /**\n * Sets or retrieves the coordinates of the object.\n */\n coords: string;\n download: string;\n /**\n * Sets or retrieves the subsection of the href property that follows the number sign (#).\n */\n hash: string;\n /**\n * Sets or retrieves the hostname and port number of the location or URL.\n */\n host: string;\n /**\n * Sets or retrieves the host name part of the location or URL.\n */\n hostname: string;\n /**\n * Sets or retrieves a destination URL or an anchor point.\n */\n href: string;\n /**\n * Sets or gets whether clicks in this region cause action.\n */\n noHref: boolean;\n /**\n * Sets or retrieves the file name or path specified by the object.\n */\n pathname: string;\n /**\n * Sets or retrieves the port number associated with a URL.\n */\n port: string;\n /**\n * Sets or retrieves the protocol portion of a URL.\n */\n protocol: string;\n rel: string;\n /**\n * Sets or retrieves the substring of the href property that follows the question mark.\n */\n search: string;\n /**\n * Sets or retrieves the shape of the object.\n */\n shape: string;\n /**\n * Sets or retrieves the window or frame at which to target content.\n */\n target: string;\n /**\n * Returns a string representation of an object.\n */\n toString(): string;\n addEventListener(type: K, listener: (this: HTMLAreaElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLAreaElement: {\n prototype: HTMLAreaElement;\n new(): HTMLAreaElement;\n};\n\ninterface HTMLAreasCollection extends HTMLCollectionBase {\n}\n\ndeclare var HTMLAreasCollection: {\n prototype: HTMLAreasCollection;\n new(): HTMLAreasCollection;\n};\n\ninterface HTMLAudioElement extends HTMLMediaElement {\n addEventListener(type: K, listener: (this: HTMLAudioElement, ev: HTMLMediaElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLAudioElement: {\n prototype: HTMLAudioElement;\n new(): HTMLAudioElement;\n};\n\ninterface HTMLBaseElement extends HTMLElement {\n /**\n * Gets or sets the baseline URL on which relative links are based.\n */\n href: string;\n /**\n * Sets or retrieves the window or frame at which to target content.\n */\n target: string;\n addEventListener(type: K, listener: (this: HTMLBaseElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLBaseElement: {\n prototype: HTMLBaseElement;\n new(): HTMLBaseElement;\n};\n\ninterface HTMLBaseFontElement extends HTMLElement, DOML2DeprecatedColorProperty {\n /**\n * Sets or retrieves the current typeface family.\n */\n face: string;\n /**\n * Sets or retrieves the font size of the object.\n */\n size: number;\n addEventListener(type: K, listener: (this: HTMLBaseFontElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLBaseFontElement: {\n prototype: HTMLBaseFontElement;\n new(): HTMLBaseFontElement;\n};\n\ninterface HTMLBodyElementEventMap extends HTMLElementEventMap {\n \"afterprint\": Event;\n \"beforeprint\": Event;\n \"beforeunload\": BeforeUnloadEvent;\n \"blur\": FocusEvent;\n \"error\": ErrorEvent;\n \"focus\": FocusEvent;\n \"hashchange\": HashChangeEvent;\n \"load\": Event;\n \"message\": MessageEvent;\n \"offline\": Event;\n \"online\": Event;\n \"orientationchange\": Event;\n \"pagehide\": PageTransitionEvent;\n \"pageshow\": PageTransitionEvent;\n \"popstate\": PopStateEvent;\n \"resize\": UIEvent;\n \"scroll\": UIEvent;\n \"storage\": StorageEvent;\n \"unload\": Event;\n}\n\ninterface HTMLBodyElement extends HTMLElement {\n aLink: any;\n background: string;\n bgColor: any;\n bgProperties: string;\n link: any;\n noWrap: boolean;\n onafterprint: (this: HTMLBodyElement, ev: Event) => any;\n onbeforeprint: (this: HTMLBodyElement, ev: Event) => any;\n onbeforeunload: (this: HTMLBodyElement, ev: BeforeUnloadEvent) => any;\n onblur: (this: HTMLBodyElement, ev: FocusEvent) => any;\n onerror: (this: HTMLBodyElement, ev: ErrorEvent) => any;\n onfocus: (this: HTMLBodyElement, ev: FocusEvent) => any;\n onhashchange: (this: HTMLBodyElement, ev: HashChangeEvent) => any;\n onload: (this: HTMLBodyElement, ev: Event) => any;\n onmessage: (this: HTMLBodyElement, ev: MessageEvent) => any;\n onoffline: (this: HTMLBodyElement, ev: Event) => any;\n ononline: (this: HTMLBodyElement, ev: Event) => any;\n onorientationchange: (this: HTMLBodyElement, ev: Event) => any;\n onpagehide: (this: HTMLBodyElement, ev: PageTransitionEvent) => any;\n onpageshow: (this: HTMLBodyElement, ev: PageTransitionEvent) => any;\n onpopstate: (this: HTMLBodyElement, ev: PopStateEvent) => any;\n onresize: (this: HTMLBodyElement, ev: UIEvent) => any;\n onscroll: (this: HTMLBodyElement, ev: UIEvent) => any;\n onstorage: (this: HTMLBodyElement, ev: StorageEvent) => any;\n onunload: (this: HTMLBodyElement, ev: Event) => any;\n text: any;\n vLink: any;\n addEventListener(type: K, listener: (this: HTMLBodyElement, ev: HTMLBodyElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLBodyElement: {\n prototype: HTMLBodyElement;\n new(): HTMLBodyElement;\n};\n\ninterface HTMLBRElement extends HTMLElement {\n /**\n * Sets or retrieves the side on which floating objects are not to be positioned when any IHTMLBlockElement is inserted into the document.\n */\n clear: string;\n addEventListener(type: K, listener: (this: HTMLBRElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLBRElement: {\n prototype: HTMLBRElement;\n new(): HTMLBRElement;\n};\n\ninterface HTMLButtonElement extends HTMLElement {\n /**\n * Provides a way to direct a user to a specific field when a document loads. This can provide both direction and convenience for a user, reducing the need to click or tab to a field when a page opens. This attribute is true when present on an element, and false when missing.\n */\n autofocus: boolean;\n disabled: boolean;\n /**\n * Retrieves a reference to the form that the object is embedded in.\n */\n readonly form: HTMLFormElement;\n /**\n * Overrides the action attribute (where the data on a form is sent) on the parent form element.\n */\n formAction: string;\n /**\n * Used to override the encoding (formEnctype attribute) specified on the form element.\n */\n formEnctype: string;\n /**\n * Overrides the submit method attribute previously specified on a form element.\n */\n formMethod: string;\n /**\n * Overrides any validation or required attributes on a form or form elements to allow it to be submitted without validation. This can be used to create a \"save draft\"-type submit option.\n */\n formNoValidate: string;\n /**\n * Overrides the target attribute on a form element.\n */\n formTarget: string;\n /**\n * Sets or retrieves the name of the object.\n */\n name: string;\n status: any;\n /**\n * Gets the classification and default behavior of the button.\n */\n type: string;\n /**\n * Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as \"this is a required field\". The result is that the user sees validation messages without actually submitting.\n */\n readonly validationMessage: string;\n /**\n * Returns a ValidityState object that represents the validity states of an element.\n */\n readonly validity: ValidityState;\n /**\n * Sets or retrieves the default or selected value of the control.\n */\n value: string;\n /**\n * Returns whether an element will successfully validate based on forms validation rules and constraints.\n */\n readonly willValidate: boolean;\n /**\n * Returns whether a form will validate when it is submitted, without having to submit it.\n */\n checkValidity(): boolean;\n /**\n * Sets a custom error message that is displayed when a form is submitted.\n * @param error Sets a custom error message that is displayed when a form is submitted.\n */\n setCustomValidity(error: string): void;\n addEventListener(type: K, listener: (this: HTMLButtonElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLButtonElement: {\n prototype: HTMLButtonElement;\n new(): HTMLButtonElement;\n};\n\ninterface HTMLCanvasElement extends HTMLElement {\n /**\n * Gets or sets the height of a canvas element on a document.\n */\n height: number;\n /**\n * Gets or sets the width of a canvas element on a document.\n */\n width: number;\n /**\n * Returns an object that provides methods and properties for drawing and manipulating images and graphics on a canvas element in a document. A context object includes information about colors, line widths, fonts, and other graphic parameters that can be drawn on a canvas.\n * @param contextId The identifier (ID) of the type of canvas to create. Internet Explorer 9 and Internet Explorer 10 support only a 2-D context using canvas.getContext(\"2d\"); IE11 Preview also supports 3-D or WebGL context using canvas.getContext(\"experimental-webgl\");\n */\n getContext(contextId: \"2d\", contextAttributes?: Canvas2DContextAttributes): CanvasRenderingContext2D | null;\n getContext(contextId: \"webgl\" | \"experimental-webgl\", contextAttributes?: WebGLContextAttributes): WebGLRenderingContext | null;\n getContext(contextId: string, contextAttributes?: {}): CanvasRenderingContext2D | WebGLRenderingContext | null;\n /**\n * Returns a blob object encoded as a Portable Network Graphics (PNG) format from a canvas image or drawing.\n */\n msToBlob(): Blob;\n /**\n * Returns the content of the current canvas as an image that you can use as a source for another canvas or an HTML element.\n * @param type The standard MIME type for the image format to return. If you do not specify this parameter, the default value is a PNG format image.\n */\n toDataURL(type?: string, ...args: any[]): string;\n toBlob(callback: (result: Blob | null) => void, type?: string, ...arguments: any[]): void;\n addEventListener(type: K, listener: (this: HTMLCanvasElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLCanvasElement: {\n prototype: HTMLCanvasElement;\n new(): HTMLCanvasElement;\n};\n\ninterface HTMLCollectionBase {\n /**\n * Sets or retrieves the number of objects in a collection.\n */\n readonly length: number;\n /**\n * Retrieves an object from various collections.\n */\n item(index: number): Element;\n [index: number]: Element;\n}\n\ninterface HTMLCollection extends HTMLCollectionBase {\n /**\n * Retrieves a select object or an object from an options collection.\n */\n namedItem(name: string): Element | null;\n}\n\ndeclare var HTMLCollection: {\n prototype: HTMLCollection;\n new(): HTMLCollection;\n};\n\ninterface HTMLDataElement extends HTMLElement {\n value: string;\n addEventListener(type: K, listener: (this: HTMLDataElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLDataElement: {\n prototype: HTMLDataElement;\n new(): HTMLDataElement;\n};\n\ninterface HTMLDataListElement extends HTMLElement {\n options: HTMLCollectionOf;\n addEventListener(type: K, listener: (this: HTMLDataListElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLDataListElement: {\n prototype: HTMLDataListElement;\n new(): HTMLDataListElement;\n};\n\ninterface HTMLDirectoryElement extends HTMLElement {\n compact: boolean;\n addEventListener(type: K, listener: (this: HTMLDirectoryElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLDirectoryElement: {\n prototype: HTMLDirectoryElement;\n new(): HTMLDirectoryElement;\n};\n\ninterface HTMLDivElement extends HTMLElement {\n /**\n * Sets or retrieves how the object is aligned with adjacent text.\n */\n align: string;\n /**\n * Sets or retrieves whether the browser automatically performs wordwrap.\n */\n noWrap: boolean;\n addEventListener(type: K, listener: (this: HTMLDivElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLDivElement: {\n prototype: HTMLDivElement;\n new(): HTMLDivElement;\n};\n\ninterface HTMLDListElement extends HTMLElement {\n compact: boolean;\n addEventListener(type: K, listener: (this: HTMLDListElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLDListElement: {\n prototype: HTMLDListElement;\n new(): HTMLDListElement;\n};\n\ninterface HTMLDocument extends Document {\n addEventListener(type: K, listener: (this: HTMLDocument, ev: DocumentEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLDocument: {\n prototype: HTMLDocument;\n new(): HTMLDocument;\n};\n\ninterface HTMLElementEventMap extends ElementEventMap {\n \"abort\": UIEvent;\n \"activate\": UIEvent;\n \"beforeactivate\": UIEvent;\n \"beforecopy\": ClipboardEvent;\n \"beforecut\": ClipboardEvent;\n \"beforedeactivate\": UIEvent;\n \"beforepaste\": ClipboardEvent;\n \"blur\": FocusEvent;\n \"canplay\": Event;\n \"canplaythrough\": Event;\n \"change\": Event;\n \"click\": MouseEvent;\n \"contextmenu\": PointerEvent;\n \"copy\": ClipboardEvent;\n \"cuechange\": Event;\n \"cut\": ClipboardEvent;\n \"dblclick\": MouseEvent;\n \"deactivate\": UIEvent;\n \"drag\": DragEvent;\n \"dragend\": DragEvent;\n \"dragenter\": DragEvent;\n \"dragleave\": DragEvent;\n \"dragover\": DragEvent;\n \"dragstart\": DragEvent;\n \"drop\": DragEvent;\n \"durationchange\": Event;\n \"emptied\": Event;\n \"ended\": MediaStreamErrorEvent;\n \"error\": ErrorEvent;\n \"focus\": FocusEvent;\n \"input\": Event;\n \"invalid\": Event;\n \"keydown\": KeyboardEvent;\n \"keypress\": KeyboardEvent;\n \"keyup\": KeyboardEvent;\n \"load\": Event;\n \"loadeddata\": Event;\n \"loadedmetadata\": Event;\n \"loadstart\": Event;\n \"mousedown\": MouseEvent;\n \"mouseenter\": MouseEvent;\n \"mouseleave\": MouseEvent;\n \"mousemove\": MouseEvent;\n \"mouseout\": MouseEvent;\n \"mouseover\": MouseEvent;\n \"mouseup\": MouseEvent;\n \"mousewheel\": WheelEvent;\n \"MSContentZoom\": UIEvent;\n \"MSManipulationStateChanged\": MSManipulationEvent;\n \"paste\": ClipboardEvent;\n \"pause\": Event;\n \"play\": Event;\n \"playing\": Event;\n \"progress\": ProgressEvent;\n \"ratechange\": Event;\n \"reset\": Event;\n \"scroll\": UIEvent;\n \"seeked\": Event;\n \"seeking\": Event;\n \"select\": UIEvent;\n \"selectstart\": Event;\n \"stalled\": Event;\n \"submit\": Event;\n \"suspend\": Event;\n \"timeupdate\": Event;\n \"volumechange\": Event;\n \"waiting\": Event;\n}\n\ninterface HTMLElement extends Element {\n accessKey: string;\n readonly children: HTMLCollection;\n contentEditable: string;\n readonly dataset: DOMStringMap;\n dir: string;\n draggable: boolean;\n hidden: boolean;\n hideFocus: boolean;\n innerText: string;\n readonly isContentEditable: boolean;\n lang: string;\n readonly offsetHeight: number;\n readonly offsetLeft: number;\n readonly offsetParent: Element;\n readonly offsetTop: number;\n readonly offsetWidth: number;\n onabort: (this: HTMLElement, ev: UIEvent) => any;\n onactivate: (this: HTMLElement, ev: UIEvent) => any;\n onbeforeactivate: (this: HTMLElement, ev: UIEvent) => any;\n onbeforecopy: (this: HTMLElement, ev: ClipboardEvent) => any;\n onbeforecut: (this: HTMLElement, ev: ClipboardEvent) => any;\n onbeforedeactivate: (this: HTMLElement, ev: UIEvent) => any;\n onbeforepaste: (this: HTMLElement, ev: ClipboardEvent) => any;\n onblur: (this: HTMLElement, ev: FocusEvent) => any;\n oncanplay: (this: HTMLElement, ev: Event) => any;\n oncanplaythrough: (this: HTMLElement, ev: Event) => any;\n onchange: (this: HTMLElement, ev: Event) => any;\n onclick: (this: HTMLElement, ev: MouseEvent) => any;\n oncontextmenu: (this: HTMLElement, ev: PointerEvent) => any;\n oncopy: (this: HTMLElement, ev: ClipboardEvent) => any;\n oncuechange: (this: HTMLElement, ev: Event) => any;\n oncut: (this: HTMLElement, ev: ClipboardEvent) => any;\n ondblclick: (this: HTMLElement, ev: MouseEvent) => any;\n ondeactivate: (this: HTMLElement, ev: UIEvent) => any;\n ondrag: (this: HTMLElement, ev: DragEvent) => any;\n ondragend: (this: HTMLElement, ev: DragEvent) => any;\n ondragenter: (this: HTMLElement, ev: DragEvent) => any;\n ondragleave: (this: HTMLElement, ev: DragEvent) => any;\n ondragover: (this: HTMLElement, ev: DragEvent) => any;\n ondragstart: (this: HTMLElement, ev: DragEvent) => any;\n ondrop: (this: HTMLElement, ev: DragEvent) => any;\n ondurationchange: (this: HTMLElement, ev: Event) => any;\n onemptied: (this: HTMLElement, ev: Event) => any;\n onended: (this: HTMLElement, ev: MediaStreamErrorEvent) => any;\n onerror: (this: HTMLElement, ev: ErrorEvent) => any;\n onfocus: (this: HTMLElement, ev: FocusEvent) => any;\n oninput: (this: HTMLElement, ev: Event) => any;\n oninvalid: (this: HTMLElement, ev: Event) => any;\n onkeydown: (this: HTMLElement, ev: KeyboardEvent) => any;\n onkeypress: (this: HTMLElement, ev: KeyboardEvent) => any;\n onkeyup: (this: HTMLElement, ev: KeyboardEvent) => any;\n onload: (this: HTMLElement, ev: Event) => any;\n onloadeddata: (this: HTMLElement, ev: Event) => any;\n onloadedmetadata: (this: HTMLElement, ev: Event) => any;\n onloadstart: (this: HTMLElement, ev: Event) => any;\n onmousedown: (this: HTMLElement, ev: MouseEvent) => any;\n onmouseenter: (this: HTMLElement, ev: MouseEvent) => any;\n onmouseleave: (this: HTMLElement, ev: MouseEvent) => any;\n onmousemove: (this: HTMLElement, ev: MouseEvent) => any;\n onmouseout: (this: HTMLElement, ev: MouseEvent) => any;\n onmouseover: (this: HTMLElement, ev: MouseEvent) => any;\n onmouseup: (this: HTMLElement, ev: MouseEvent) => any;\n onmousewheel: (this: HTMLElement, ev: WheelEvent) => any;\n onmscontentzoom: (this: HTMLElement, ev: UIEvent) => any;\n onmsmanipulationstatechanged: (this: HTMLElement, ev: MSManipulationEvent) => any;\n onpaste: (this: HTMLElement, ev: ClipboardEvent) => any;\n onpause: (this: HTMLElement, ev: Event) => any;\n onplay: (this: HTMLElement, ev: Event) => any;\n onplaying: (this: HTMLElement, ev: Event) => any;\n onprogress: (this: HTMLElement, ev: ProgressEvent) => any;\n onratechange: (this: HTMLElement, ev: Event) => any;\n onreset: (this: HTMLElement, ev: Event) => any;\n onscroll: (this: HTMLElement, ev: UIEvent) => any;\n onseeked: (this: HTMLElement, ev: Event) => any;\n onseeking: (this: HTMLElement, ev: Event) => any;\n onselect: (this: HTMLElement, ev: UIEvent) => any;\n onselectstart: (this: HTMLElement, ev: Event) => any;\n onstalled: (this: HTMLElement, ev: Event) => any;\n onsubmit: (this: HTMLElement, ev: Event) => any;\n onsuspend: (this: HTMLElement, ev: Event) => any;\n ontimeupdate: (this: HTMLElement, ev: Event) => any;\n onvolumechange: (this: HTMLElement, ev: Event) => any;\n onwaiting: (this: HTMLElement, ev: Event) => any;\n outerText: string;\n spellcheck: boolean;\n readonly style: CSSStyleDeclaration;\n tabIndex: number;\n title: string;\n blur(): void;\n click(): void;\n dragDrop(): boolean;\n focus(): void;\n msGetInputContext(): MSInputMethodContext;\n addEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLElement: {\n prototype: HTMLElement;\n new(): HTMLElement;\n};\n\ninterface HTMLEmbedElement extends HTMLElement, GetSVGDocument {\n /**\n * Sets or retrieves the height of the object.\n */\n height: string;\n hidden: any;\n /**\n * Gets or sets whether the DLNA PlayTo device is available.\n */\n msPlayToDisabled: boolean;\n /**\n * Gets or sets the path to the preferred media source. This enables the Play To target device to stream the media content, which can be DRM protected, from a different location, such as a cloud media server.\n */\n msPlayToPreferredSourceUri: string;\n /**\n * Gets or sets the primary DLNA PlayTo device.\n */\n msPlayToPrimary: boolean;\n /**\n * Gets the source associated with the media element for use by the PlayToManager.\n */\n readonly msPlayToSource: any;\n /**\n * Sets or retrieves the name of the object.\n */\n name: string;\n /**\n * Retrieves the palette used for the embedded document.\n */\n readonly palette: string;\n /**\n * Retrieves the URL of the plug-in used to view an embedded document.\n */\n readonly pluginspage: string;\n readonly readyState: string;\n /**\n * Sets or retrieves a URL to be loaded by the object.\n */\n src: string;\n /**\n * Sets or retrieves the height and width units of the embed object.\n */\n units: string;\n /**\n * Sets or retrieves the width of the object.\n */\n width: string;\n addEventListener(type: K, listener: (this: HTMLEmbedElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLEmbedElement: {\n prototype: HTMLEmbedElement;\n new(): HTMLEmbedElement;\n};\n\ninterface HTMLFieldSetElement extends HTMLElement {\n /**\n * Sets or retrieves how the object is aligned with adjacent text.\n */\n align: string;\n disabled: boolean;\n /**\n * Retrieves a reference to the form that the object is embedded in.\n */\n readonly form: HTMLFormElement;\n name: string;\n /**\n * Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as \"this is a required field\". The result is that the user sees validation messages without actually submitting.\n */\n readonly validationMessage: string;\n /**\n * Returns a ValidityState object that represents the validity states of an element.\n */\n readonly validity: ValidityState;\n /**\n * Returns whether an element will successfully validate based on forms validation rules and constraints.\n */\n readonly willValidate: boolean;\n /**\n * Returns whether a form will validate when it is submitted, without having to submit it.\n */\n checkValidity(): boolean;\n /**\n * Sets a custom error message that is displayed when a form is submitted.\n * @param error Sets a custom error message that is displayed when a form is submitted.\n */\n setCustomValidity(error: string): void;\n addEventListener(type: K, listener: (this: HTMLFieldSetElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLFieldSetElement: {\n prototype: HTMLFieldSetElement;\n new(): HTMLFieldSetElement;\n};\n\ninterface HTMLFontElement extends HTMLElement, DOML2DeprecatedColorProperty, DOML2DeprecatedSizeProperty {\n /**\n * Sets or retrieves the current typeface family.\n */\n face: string;\n addEventListener(type: K, listener: (this: HTMLFontElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLFontElement: {\n prototype: HTMLFontElement;\n new(): HTMLFontElement;\n};\n\ninterface HTMLFormControlsCollection extends HTMLCollectionBase {\n namedItem(name: string): HTMLCollection | Element | null;\n}\n\ndeclare var HTMLFormControlsCollection: {\n prototype: HTMLFormControlsCollection;\n new(): HTMLFormControlsCollection;\n};\n\ninterface HTMLFormElement extends HTMLElement {\n /**\n * Sets or retrieves a list of character encodings for input data that must be accepted by the server processing the form.\n */\n acceptCharset: string;\n /**\n * Sets or retrieves the URL to which the form content is sent for processing.\n */\n action: string;\n /**\n * Specifies whether autocomplete is applied to an editable text field.\n */\n autocomplete: string;\n /**\n * Retrieves a collection, in source order, of all controls in a given form.\n */\n readonly elements: HTMLFormControlsCollection;\n /**\n * Sets or retrieves the MIME encoding for the form.\n */\n encoding: string;\n /**\n * Sets or retrieves the encoding type for the form.\n */\n enctype: string;\n /**\n * Sets or retrieves the number of objects in a collection.\n */\n readonly length: number;\n /**\n * Sets or retrieves how to send the form data to the server.\n */\n method: string;\n /**\n * Sets or retrieves the name of the object.\n */\n name: string;\n /**\n * Designates a form that is not validated when submitted.\n */\n noValidate: boolean;\n /**\n * Sets or retrieves the window or frame at which to target content.\n */\n target: string;\n /**\n * Returns whether a form will validate when it is submitted, without having to submit it.\n */\n checkValidity(): boolean;\n /**\n * Retrieves a form object or an object from an elements collection.\n * @param name Variant of type Number or String that specifies the object or collection to retrieve. If this parameter is a Number, it is the zero-based index of the object. If this parameter is a string, all objects with matching name or id properties are retrieved, and a collection is returned if more than one match is made.\n * @param index Variant of type Number that specifies the zero-based index of the object to retrieve when a collection is returned.\n */\n item(name?: any, index?: any): any;\n /**\n * Retrieves a form object or an object from an elements collection.\n */\n namedItem(name: string): any;\n /**\n * Fires when the user resets a form.\n */\n reset(): void;\n /**\n * Fires when a FORM is about to be submitted.\n */\n submit(): void;\n addEventListener(type: K, listener: (this: HTMLFormElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n [name: string]: any;\n}\n\ndeclare var HTMLFormElement: {\n prototype: HTMLFormElement;\n new(): HTMLFormElement;\n};\n\ninterface HTMLFrameElementEventMap extends HTMLElementEventMap {\n \"load\": Event;\n}\n\ninterface HTMLFrameElement extends HTMLElement, GetSVGDocument {\n /**\n * Specifies the properties of a border drawn around an object.\n */\n border: string;\n /**\n * Sets or retrieves the border color of the object.\n */\n borderColor: any;\n /**\n * Retrieves the document object of the page or frame.\n */\n readonly contentDocument: Document;\n /**\n * Retrieves the object of the specified.\n */\n readonly contentWindow: Window;\n /**\n * Sets or retrieves whether to display a border for the frame.\n */\n frameBorder: string;\n /**\n * Sets or retrieves the amount of additional space between the frames.\n */\n frameSpacing: any;\n /**\n * Sets or retrieves the height of the object.\n */\n height: string | number;\n /**\n * Sets or retrieves a URI to a long description of the object.\n */\n longDesc: string;\n /**\n * Sets or retrieves the top and bottom margin heights before displaying the text in a frame.\n */\n marginHeight: string;\n /**\n * Sets or retrieves the left and right margin widths before displaying the text in a frame.\n */\n marginWidth: string;\n /**\n * Sets or retrieves the frame name.\n */\n name: string;\n /**\n * Sets or retrieves whether the user can resize the frame.\n */\n noResize: boolean;\n /**\n * Raised when the object has been completely received from the server.\n */\n onload: (this: HTMLFrameElement, ev: Event) => any;\n /**\n * Sets or retrieves whether the frame can be scrolled.\n */\n scrolling: string;\n /**\n * Sets or retrieves a URL to be loaded by the object.\n */\n src: string;\n /**\n * Sets or retrieves the width of the object.\n */\n width: string | number;\n addEventListener(type: K, listener: (this: HTMLFrameElement, ev: HTMLFrameElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLFrameElement: {\n prototype: HTMLFrameElement;\n new(): HTMLFrameElement;\n};\n\ninterface HTMLFrameSetElementEventMap extends HTMLElementEventMap {\n \"afterprint\": Event;\n \"beforeprint\": Event;\n \"beforeunload\": BeforeUnloadEvent;\n \"blur\": FocusEvent;\n \"error\": ErrorEvent;\n \"focus\": FocusEvent;\n \"hashchange\": HashChangeEvent;\n \"load\": Event;\n \"message\": MessageEvent;\n \"offline\": Event;\n \"online\": Event;\n \"orientationchange\": Event;\n \"pagehide\": PageTransitionEvent;\n \"pageshow\": PageTransitionEvent;\n \"popstate\": PopStateEvent;\n \"resize\": UIEvent;\n \"scroll\": UIEvent;\n \"storage\": StorageEvent;\n \"unload\": Event;\n}\n\ninterface HTMLFrameSetElement extends HTMLElement {\n border: string;\n /**\n * Sets or retrieves the border color of the object.\n */\n borderColor: any;\n /**\n * Sets or retrieves the frame widths of the object.\n */\n cols: string;\n /**\n * Sets or retrieves whether to display a border for the frame.\n */\n frameBorder: string;\n /**\n * Sets or retrieves the amount of additional space between the frames.\n */\n frameSpacing: any;\n name: string;\n onafterprint: (this: HTMLFrameSetElement, ev: Event) => any;\n onbeforeprint: (this: HTMLFrameSetElement, ev: Event) => any;\n onbeforeunload: (this: HTMLFrameSetElement, ev: BeforeUnloadEvent) => any;\n /**\n * Fires when the object loses the input focus.\n */\n onblur: (this: HTMLFrameSetElement, ev: FocusEvent) => any;\n onerror: (this: HTMLFrameSetElement, ev: ErrorEvent) => any;\n /**\n * Fires when the object receives focus.\n */\n onfocus: (this: HTMLFrameSetElement, ev: FocusEvent) => any;\n onhashchange: (this: HTMLFrameSetElement, ev: HashChangeEvent) => any;\n onload: (this: HTMLFrameSetElement, ev: Event) => any;\n onmessage: (this: HTMLFrameSetElement, ev: MessageEvent) => any;\n onoffline: (this: HTMLFrameSetElement, ev: Event) => any;\n ononline: (this: HTMLFrameSetElement, ev: Event) => any;\n onorientationchange: (this: HTMLFrameSetElement, ev: Event) => any;\n onpagehide: (this: HTMLFrameSetElement, ev: PageTransitionEvent) => any;\n onpageshow: (this: HTMLFrameSetElement, ev: PageTransitionEvent) => any;\n onpopstate: (this: HTMLFrameSetElement, ev: PopStateEvent) => any;\n onresize: (this: HTMLFrameSetElement, ev: UIEvent) => any;\n onscroll: (this: HTMLFrameSetElement, ev: UIEvent) => any;\n onstorage: (this: HTMLFrameSetElement, ev: StorageEvent) => any;\n onunload: (this: HTMLFrameSetElement, ev: Event) => any;\n /**\n * Sets or retrieves the frame heights of the object.\n */\n rows: string;\n addEventListener(type: K, listener: (this: HTMLFrameSetElement, ev: HTMLFrameSetElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLFrameSetElement: {\n prototype: HTMLFrameSetElement;\n new(): HTMLFrameSetElement;\n};\n\ninterface HTMLHeadElement extends HTMLElement {\n profile: string;\n addEventListener(type: K, listener: (this: HTMLHeadElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLHeadElement: {\n prototype: HTMLHeadElement;\n new(): HTMLHeadElement;\n};\n\ninterface HTMLHeadingElement extends HTMLElement {\n /**\n * Sets or retrieves a value that indicates the table alignment.\n */\n align: string;\n addEventListener(type: K, listener: (this: HTMLHeadingElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLHeadingElement: {\n prototype: HTMLHeadingElement;\n new(): HTMLHeadingElement;\n};\n\ninterface HTMLHRElement extends HTMLElement, DOML2DeprecatedColorProperty, DOML2DeprecatedSizeProperty {\n /**\n * Sets or retrieves how the object is aligned with adjacent text.\n */\n align: string;\n /**\n * Sets or retrieves whether the horizontal rule is drawn with 3-D shading.\n */\n noShade: boolean;\n /**\n * Sets or retrieves the width of the object.\n */\n width: number;\n addEventListener(type: K, listener: (this: HTMLHRElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLHRElement: {\n prototype: HTMLHRElement;\n new(): HTMLHRElement;\n};\n\ninterface HTMLHtmlElement extends HTMLElement {\n /**\n * Sets or retrieves the DTD version that governs the current document.\n */\n version: string;\n addEventListener(type: K, listener: (this: HTMLHtmlElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLHtmlElement: {\n prototype: HTMLHtmlElement;\n new(): HTMLHtmlElement;\n};\n\ninterface HTMLIFrameElementEventMap extends HTMLElementEventMap {\n \"load\": Event;\n}\n\ninterface HTMLIFrameElement extends HTMLElement, GetSVGDocument {\n /**\n * Sets or retrieves how the object is aligned with adjacent text.\n */\n align: string;\n allowFullscreen: boolean;\n allowPaymentRequest: boolean;\n /**\n * Specifies the properties of a border drawn around an object.\n */\n border: string;\n /**\n * Retrieves the document object of the page or frame.\n */\n readonly contentDocument: Document;\n /**\n * Retrieves the object of the specified.\n */\n readonly contentWindow: Window;\n /**\n * Sets or retrieves whether to display a border for the frame.\n */\n frameBorder: string;\n /**\n * Sets or retrieves the amount of additional space between the frames.\n */\n frameSpacing: any;\n /**\n * Sets or retrieves the height of the object.\n */\n height: string;\n /**\n * Sets or retrieves the horizontal margin for the object.\n */\n hspace: number;\n /**\n * Sets or retrieves a URI to a long description of the object.\n */\n longDesc: string;\n /**\n * Sets or retrieves the top and bottom margin heights before displaying the text in a frame.\n */\n marginHeight: string;\n /**\n * Sets or retrieves the left and right margin widths before displaying the text in a frame.\n */\n marginWidth: string;\n /**\n * Sets or retrieves the frame name.\n */\n name: string;\n /**\n * Sets or retrieves whether the user can resize the frame.\n */\n noResize: boolean;\n /**\n * Raised when the object has been completely received from the server.\n */\n onload: (this: HTMLIFrameElement, ev: Event) => any;\n readonly sandbox: DOMSettableTokenList;\n /**\n * Sets or retrieves whether the frame can be scrolled.\n */\n scrolling: string;\n /**\n * Sets or retrieves a URL to be loaded by the object.\n */\n src: string;\n /**\n * Sets or retrieves the vertical margin for the object.\n */\n vspace: number;\n /**\n * Sets or retrieves the width of the object.\n */\n width: string;\n addEventListener(type: K, listener: (this: HTMLIFrameElement, ev: HTMLIFrameElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLIFrameElement: {\n prototype: HTMLIFrameElement;\n new(): HTMLIFrameElement;\n};\n\ninterface HTMLImageElement extends HTMLElement {\n /**\n * Sets or retrieves how the object is aligned with adjacent text.\n */\n align: string;\n /**\n * Sets or retrieves a text alternative to the graphic.\n */\n alt: string;\n /**\n * Specifies the properties of a border drawn around an object.\n */\n border: string;\n /**\n * Retrieves whether the object is fully loaded.\n */\n readonly complete: boolean;\n crossOrigin: string | null;\n readonly currentSrc: string;\n /**\n * Sets or retrieves the height of the object.\n */\n height: number;\n /**\n * Sets or retrieves the width of the border to draw around the object.\n */\n hspace: number;\n /**\n * Sets or retrieves whether the image is a server-side image map.\n */\n isMap: boolean;\n /**\n * Sets or retrieves a Uniform Resource Identifier (URI) to a long description of the object.\n */\n longDesc: string;\n lowsrc: string;\n /**\n * Gets or sets whether the DLNA PlayTo device is available.\n */\n msPlayToDisabled: boolean;\n msPlayToPreferredSourceUri: string;\n /**\n * Gets or sets the primary DLNA PlayTo device.\n */\n msPlayToPrimary: boolean;\n /**\n * Gets the source associated with the media element for use by the PlayToManager.\n */\n readonly msPlayToSource: any;\n /**\n * Sets or retrieves the name of the object.\n */\n name: string;\n /**\n * The original height of the image resource before sizing.\n */\n readonly naturalHeight: number;\n /**\n * The original width of the image resource before sizing.\n */\n readonly naturalWidth: number;\n sizes: string;\n /**\n * The address or URL of the a media resource that is to be considered.\n */\n src: string;\n srcset: string;\n /**\n * Sets or retrieves the URL, often with a bookmark extension (#name), to use as a client-side image map.\n */\n useMap: string;\n /**\n * Sets or retrieves the vertical margin for the object.\n */\n vspace: number;\n /**\n * Sets or retrieves the width of the object.\n */\n width: number;\n readonly x: number;\n readonly y: number;\n msGetAsCastingSource(): any;\n addEventListener(type: K, listener: (this: HTMLImageElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLImageElement: {\n prototype: HTMLImageElement;\n new(): HTMLImageElement;\n};\n\ninterface HTMLInputElement extends HTMLElement {\n /**\n * Sets or retrieves a comma-separated list of content types.\n */\n accept: string;\n /**\n * Sets or retrieves how the object is aligned with adjacent text.\n */\n align: string;\n /**\n * Sets or retrieves a text alternative to the graphic.\n */\n alt: string;\n /**\n * Specifies whether autocomplete is applied to an editable text field.\n */\n autocomplete: string;\n /**\n * Provides a way to direct a user to a specific field when a document loads. This can provide both direction and convenience for a user, reducing the need to click or tab to a field when a page opens. This attribute is true when present on an element, and false when missing.\n */\n autofocus: boolean;\n /**\n * Sets or retrieves the width of the border to draw around the object.\n */\n border: string;\n /**\n * Sets or retrieves the state of the check box or radio button.\n */\n checked: boolean;\n /**\n * Retrieves whether the object is fully loaded.\n */\n readonly complete: boolean;\n /**\n * Sets or retrieves the state of the check box or radio button.\n */\n defaultChecked: boolean;\n /**\n * Sets or retrieves the initial contents of the object.\n */\n defaultValue: string;\n disabled: boolean;\n /**\n * Returns a FileList object on a file type input object.\n */\n readonly files: FileList | null;\n /**\n * Retrieves a reference to the form that the object is embedded in.\n */\n readonly form: HTMLFormElement;\n /**\n * Overrides the action attribute (where the data on a form is sent) on the parent form element.\n */\n formAction: string;\n /**\n * Used to override the encoding (formEnctype attribute) specified on the form element.\n */\n formEnctype: string;\n /**\n * Overrides the submit method attribute previously specified on a form element.\n */\n formMethod: string;\n /**\n * Overrides any validation or required attributes on a form or form elements to allow it to be submitted without validation. This can be used to create a \"save draft\"-type submit option.\n */\n formNoValidate: string;\n /**\n * Overrides the target attribute on a form element.\n */\n formTarget: string;\n /**\n * Sets or retrieves the height of the object.\n */\n height: string;\n /**\n * Sets or retrieves the width of the border to draw around the object.\n */\n hspace: number;\n indeterminate: boolean;\n /**\n * Specifies the ID of a pre-defined datalist of options for an input element.\n */\n readonly list: HTMLElement;\n /**\n * Defines the maximum acceptable value for an input element with type=\"number\".When used with the min and step attributes, lets you control the range and increment (such as only even numbers) that the user can enter into an input field.\n */\n max: string;\n /**\n * Sets or retrieves the maximum number of characters that the user can enter in a text control.\n */\n maxLength: number;\n /**\n * Defines the minimum acceptable value for an input element with type=\"number\". When used with the max and step attributes, lets you control the range and increment (such as even numbers only) that the user can enter into an input field.\n */\n min: string;\n /**\n * Sets or retrieves the Boolean value indicating whether multiple items can be selected from a list.\n */\n multiple: boolean;\n /**\n * Sets or retrieves the name of the object.\n */\n name: string;\n /**\n * Gets or sets a string containing a regular expression that the user's input must match.\n */\n pattern: string;\n /**\n * Gets or sets a text string that is displayed in an input field as a hint or prompt to users as the format or type of information they need to enter.The text appears in an input field until the user puts focus on the field.\n */\n placeholder: string;\n readOnly: boolean;\n /**\n * When present, marks an element that can't be submitted without a value.\n */\n required: boolean;\n selectionDirection: string;\n /**\n * Gets or sets the end position or offset of a text selection.\n */\n selectionEnd: number;\n /**\n * Gets or sets the starting position or offset of a text selection.\n */\n selectionStart: number;\n size: number;\n /**\n * The address or URL of the a media resource that is to be considered.\n */\n src: string;\n status: boolean;\n /**\n * Defines an increment or jump between values that you want to allow the user to enter. When used with the max and min attributes, lets you control the range and increment (for example, allow only even numbers) that the user can enter into an input field.\n */\n step: string;\n /**\n * Returns the content type of the object.\n */\n type: string;\n /**\n * Sets or retrieves the URL, often with a bookmark extension (#name), to use as a client-side image map.\n */\n useMap: string;\n /**\n * Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as \"this is a required field\". The result is that the user sees validation messages without actually submitting.\n */\n readonly validationMessage: string;\n /**\n * Returns a ValidityState object that represents the validity states of an element.\n */\n readonly validity: ValidityState;\n /**\n * Returns the value of the data at the cursor's current position.\n */\n value: string;\n valueAsDate: Date;\n /**\n * Returns the input field value as a number.\n */\n valueAsNumber: number;\n /**\n * Sets or retrieves the vertical margin for the object.\n */\n vspace: number;\n webkitdirectory: boolean;\n /**\n * Sets or retrieves the width of the object.\n */\n width: string;\n /**\n * Returns whether an element will successfully validate based on forms validation rules and constraints.\n */\n readonly willValidate: boolean;\n minLength: number;\n /**\n * Returns whether a form will validate when it is submitted, without having to submit it.\n */\n checkValidity(): boolean;\n /**\n * Makes the selection equal to the current object.\n */\n select(): void;\n /**\n * Sets a custom error message that is displayed when a form is submitted.\n * @param error Sets a custom error message that is displayed when a form is submitted.\n */\n setCustomValidity(error: string): void;\n /**\n * Sets the start and end positions of a selection in a text field.\n * @param start The offset into the text field for the start of the selection.\n * @param end The offset into the text field for the end of the selection.\n */\n setSelectionRange(start?: number, end?: number, direction?: string): void;\n /**\n * Decrements a range input control's value by the value given by the Step attribute. If the optional parameter is used, it will decrement the input control's step value multiplied by the parameter's value.\n * @param n Value to decrement the value by.\n */\n stepDown(n?: number): void;\n /**\n * Increments a range input control's value by the value given by the Step attribute. If the optional parameter is used, will increment the input control's value by that value.\n * @param n Value to increment the value by.\n */\n stepUp(n?: number): void;\n addEventListener(type: K, listener: (this: HTMLInputElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLInputElement: {\n prototype: HTMLInputElement;\n new(): HTMLInputElement;\n};\n\ninterface HTMLLabelElement extends HTMLElement {\n /**\n * Retrieves a reference to the form that the object is embedded in.\n */\n readonly form: HTMLFormElement;\n /**\n * Sets or retrieves the object to which the given label object is assigned.\n */\n htmlFor: string;\n addEventListener(type: K, listener: (this: HTMLLabelElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLLabelElement: {\n prototype: HTMLLabelElement;\n new(): HTMLLabelElement;\n};\n\ninterface HTMLLegendElement extends HTMLElement {\n /**\n * Retrieves a reference to the form that the object is embedded in.\n */\n align: string;\n /**\n * Retrieves a reference to the form that the object is embedded in.\n */\n readonly form: HTMLFormElement;\n addEventListener(type: K, listener: (this: HTMLLegendElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLLegendElement: {\n prototype: HTMLLegendElement;\n new(): HTMLLegendElement;\n};\n\ninterface HTMLLIElement extends HTMLElement {\n type: string;\n /**\n * Sets or retrieves the value of a list item.\n */\n value: number;\n addEventListener(type: K, listener: (this: HTMLLIElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLLIElement: {\n prototype: HTMLLIElement;\n new(): HTMLLIElement;\n};\n\ninterface HTMLLinkElement extends HTMLElement, LinkStyle {\n /**\n * Sets or retrieves the character set used to encode the object.\n */\n charset: string;\n disabled: boolean;\n /**\n * Sets or retrieves a destination URL or an anchor point.\n */\n href: string;\n /**\n * Sets or retrieves the language code of the object.\n */\n hreflang: string;\n /**\n * Sets or retrieves the media type.\n */\n media: string;\n /**\n * Sets or retrieves the relationship between the object and the destination of the link.\n */\n rel: string;\n /**\n * Sets or retrieves the relationship between the object and the destination of the link.\n */\n rev: string;\n /**\n * Sets or retrieves the window or frame at which to target content.\n */\n target: string;\n /**\n * Sets or retrieves the MIME type of the object.\n */\n type: string;\n import?: Document;\n integrity: string;\n addEventListener(type: K, listener: (this: HTMLLinkElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLLinkElement: {\n prototype: HTMLLinkElement;\n new(): HTMLLinkElement;\n};\n\ninterface HTMLMapElement extends HTMLElement {\n /**\n * Retrieves a collection of the area objects defined for the given map object.\n */\n readonly areas: HTMLAreasCollection;\n /**\n * Sets or retrieves the name of the object.\n */\n name: string;\n addEventListener(type: K, listener: (this: HTMLMapElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLMapElement: {\n prototype: HTMLMapElement;\n new(): HTMLMapElement;\n};\n\ninterface HTMLMarqueeElementEventMap extends HTMLElementEventMap {\n \"bounce\": Event;\n \"finish\": Event;\n \"start\": Event;\n}\n\ninterface HTMLMarqueeElement extends HTMLElement {\n behavior: string;\n bgColor: any;\n direction: string;\n height: string;\n hspace: number;\n loop: number;\n onbounce: (this: HTMLMarqueeElement, ev: Event) => any;\n onfinish: (this: HTMLMarqueeElement, ev: Event) => any;\n onstart: (this: HTMLMarqueeElement, ev: Event) => any;\n scrollAmount: number;\n scrollDelay: number;\n trueSpeed: boolean;\n vspace: number;\n width: string;\n start(): void;\n stop(): void;\n addEventListener(type: K, listener: (this: HTMLMarqueeElement, ev: HTMLMarqueeElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLMarqueeElement: {\n prototype: HTMLMarqueeElement;\n new(): HTMLMarqueeElement;\n};\n\ninterface HTMLMediaElementEventMap extends HTMLElementEventMap {\n \"encrypted\": MediaEncryptedEvent;\n \"msneedkey\": MSMediaKeyNeededEvent;\n}\n\ninterface HTMLMediaElement extends HTMLElement {\n /**\n * Returns an AudioTrackList object with the audio tracks for a given video element.\n */\n readonly audioTracks: AudioTrackList;\n /**\n * Gets or sets a value that indicates whether to start playing the media automatically.\n */\n autoplay: boolean;\n /**\n * Gets a collection of buffered time ranges.\n */\n readonly buffered: TimeRanges;\n /**\n * Gets or sets a flag that indicates whether the client provides a set of controls for the media (in case the developer does not include controls for the player).\n */\n controls: boolean;\n crossOrigin: string | null;\n /**\n * Gets the address or URL of the current media resource that is selected by IHTMLMediaElement.\n */\n readonly currentSrc: string;\n /**\n * Gets or sets the current playback position, in seconds.\n */\n currentTime: number;\n defaultMuted: boolean;\n /**\n * Gets or sets the default playback rate when the user is not using fast forward or reverse for a video or audio resource.\n */\n defaultPlaybackRate: number;\n /**\n * Returns the duration in seconds of the current media resource. A NaN value is returned if duration is not available, or Infinity if the media resource is streaming.\n */\n readonly duration: number;\n /**\n * Gets information about whether the playback has ended or not.\n */\n readonly ended: boolean;\n /**\n * Returns an object representing the current error state of the audio or video element.\n */\n readonly error: MediaError;\n /**\n * Gets or sets a flag to specify whether playback should restart after it completes.\n */\n loop: boolean;\n readonly mediaKeys: MediaKeys | null;\n /**\n * Specifies the purpose of the audio or video media, such as background audio or alerts.\n */\n msAudioCategory: string;\n /**\n * Specifies the output device id that the audio will be sent to.\n */\n msAudioDeviceType: string;\n readonly msGraphicsTrustStatus: MSGraphicsTrust;\n /**\n * Gets the MSMediaKeys object, which is used for decrypting media data, that is associated with this media element.\n */\n readonly msKeys: MSMediaKeys;\n /**\n * Gets or sets whether the DLNA PlayTo device is available.\n */\n msPlayToDisabled: boolean;\n /**\n * Gets or sets the path to the preferred media source. This enables the Play To target device to stream the media content, which can be DRM protected, from a different location, such as a cloud media server.\n */\n msPlayToPreferredSourceUri: string;\n /**\n * Gets or sets the primary DLNA PlayTo device.\n */\n msPlayToPrimary: boolean;\n /**\n * Gets the source associated with the media element for use by the PlayToManager.\n */\n readonly msPlayToSource: any;\n /**\n * Specifies whether or not to enable low-latency playback on the media element.\n */\n msRealTime: boolean;\n /**\n * Gets or sets a flag that indicates whether the audio (either audio or the audio track on video media) is muted.\n */\n muted: boolean;\n /**\n * Gets the current network activity for the element.\n */\n readonly networkState: number;\n onencrypted: (this: HTMLMediaElement, ev: MediaEncryptedEvent) => any;\n onmsneedkey: (this: HTMLMediaElement, ev: MSMediaKeyNeededEvent) => any;\n /**\n * Gets a flag that specifies whether playback is paused.\n */\n readonly paused: boolean;\n /**\n * Gets or sets the current rate of speed for the media resource to play. This speed is expressed as a multiple of the normal speed of the media resource.\n */\n playbackRate: number;\n /**\n * Gets TimeRanges for the current media resource that has been played.\n */\n readonly played: TimeRanges;\n /**\n * Gets or sets the current playback position, in seconds.\n */\n preload: string;\n readyState: number;\n /**\n * Returns a TimeRanges object that represents the ranges of the current media resource that can be seeked.\n */\n readonly seekable: TimeRanges;\n /**\n * Gets a flag that indicates whether the the client is currently moving to a new playback position in the media resource.\n */\n readonly seeking: boolean;\n /**\n * The address or URL of the a media resource that is to be considered.\n */\n src: string;\n srcObject: MediaStream | null;\n readonly textTracks: TextTrackList;\n readonly videoTracks: VideoTrackList;\n /**\n * Gets or sets the volume level for audio portions of the media element.\n */\n volume: number;\n addTextTrack(kind: string, label?: string, language?: string): TextTrack;\n /**\n * Returns a string that specifies whether the client can play a given media resource type.\n */\n canPlayType(type: string): string;\n /**\n * Resets the audio or video object and loads a new media resource.\n */\n load(): void;\n /**\n * Clears all effects from the media pipeline.\n */\n msClearEffects(): void;\n msGetAsCastingSource(): any;\n /**\n * Inserts the specified audio effect into media pipeline.\n */\n msInsertAudioEffect(activatableClassId: string, effectRequired: boolean, config?: any): void;\n msSetMediaKeys(mediaKeys: MSMediaKeys): void;\n /**\n * Specifies the media protection manager for a given media pipeline.\n */\n msSetMediaProtectionManager(mediaProtectionManager?: any): void;\n /**\n * Pauses the current playback and sets paused to TRUE. This can be used to test whether the media is playing or paused. You can also use the pause or play events to tell whether the media is playing or not.\n */\n pause(): void;\n /**\n * Loads and starts playback of a media resource.\n */\n play(): Promise;\n setMediaKeys(mediaKeys: MediaKeys | null): Promise;\n readonly HAVE_CURRENT_DATA: number;\n readonly HAVE_ENOUGH_DATA: number;\n readonly HAVE_FUTURE_DATA: number;\n readonly HAVE_METADATA: number;\n readonly HAVE_NOTHING: number;\n readonly NETWORK_EMPTY: number;\n readonly NETWORK_IDLE: number;\n readonly NETWORK_LOADING: number;\n readonly NETWORK_NO_SOURCE: number;\n addEventListener(type: K, listener: (this: HTMLMediaElement, ev: HTMLMediaElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLMediaElement: {\n prototype: HTMLMediaElement;\n new(): HTMLMediaElement;\n readonly HAVE_CURRENT_DATA: number;\n readonly HAVE_ENOUGH_DATA: number;\n readonly HAVE_FUTURE_DATA: number;\n readonly HAVE_METADATA: number;\n readonly HAVE_NOTHING: number;\n readonly NETWORK_EMPTY: number;\n readonly NETWORK_IDLE: number;\n readonly NETWORK_LOADING: number;\n readonly NETWORK_NO_SOURCE: number;\n};\n\ninterface HTMLMenuElement extends HTMLElement {\n compact: boolean;\n type: string;\n addEventListener(type: K, listener: (this: HTMLMenuElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLMenuElement: {\n prototype: HTMLMenuElement;\n new(): HTMLMenuElement;\n};\n\ninterface HTMLMetaElement extends HTMLElement {\n /**\n * Sets or retrieves the character set used to encode the object.\n */\n charset: string;\n /**\n * Gets or sets meta-information to associate with httpEquiv or name.\n */\n content: string;\n /**\n * Gets or sets information used to bind the value of a content attribute of a meta element to an HTTP response header.\n */\n httpEquiv: string;\n /**\n * Sets or retrieves the value specified in the content attribute of the meta object.\n */\n name: string;\n /**\n * Sets or retrieves a scheme to be used in interpreting the value of a property specified for the object.\n */\n scheme: string;\n /**\n * Sets or retrieves the URL property that will be loaded after the specified time has elapsed.\n */\n url: string;\n addEventListener(type: K, listener: (this: HTMLMetaElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLMetaElement: {\n prototype: HTMLMetaElement;\n new(): HTMLMetaElement;\n};\n\ninterface HTMLMeterElement extends HTMLElement {\n high: number;\n low: number;\n max: number;\n min: number;\n optimum: number;\n value: number;\n addEventListener(type: K, listener: (this: HTMLMeterElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLMeterElement: {\n prototype: HTMLMeterElement;\n new(): HTMLMeterElement;\n};\n\ninterface HTMLModElement extends HTMLElement {\n /**\n * Sets or retrieves reference information about the object.\n */\n cite: string;\n /**\n * Sets or retrieves the date and time of a modification to the object.\n */\n dateTime: string;\n addEventListener(type: K, listener: (this: HTMLModElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLModElement: {\n prototype: HTMLModElement;\n new(): HTMLModElement;\n};\n\ninterface HTMLObjectElement extends HTMLElement, GetSVGDocument {\n align: string;\n /**\n * Sets or retrieves a text alternative to the graphic.\n */\n alt: string;\n /**\n * Gets or sets the optional alternative HTML script to execute if the object fails to load.\n */\n altHtml: string;\n /**\n * Sets or retrieves a character string that can be used to implement your own archive functionality for the object.\n */\n archive: string;\n /**\n * Retrieves a string of the URL where the object tag can be found. This is often the href of the document that the object is in, or the value set by a base element.\n */\n readonly BaseHref: string;\n border: string;\n /**\n * Sets or retrieves the URL of the file containing the compiled Java class.\n */\n code: string;\n /**\n * Sets or retrieves the URL of the component.\n */\n codeBase: string;\n /**\n * Sets or retrieves the Internet media type for the code associated with the object.\n */\n codeType: string;\n /**\n * Retrieves the document object of the page or frame.\n */\n readonly contentDocument: Document;\n /**\n * Sets or retrieves the URL that references the data of the object.\n */\n data: string;\n declare: boolean;\n /**\n * Retrieves a reference to the form that the object is embedded in.\n */\n readonly form: HTMLFormElement;\n /**\n * Sets or retrieves the height of the object.\n */\n height: string;\n hspace: number;\n /**\n * Gets or sets whether the DLNA PlayTo device is available.\n */\n msPlayToDisabled: boolean;\n /**\n * Gets or sets the path to the preferred media source. This enables the Play To target device to stream the media content, which can be DRM protected, from a different location, such as a cloud media server.\n */\n msPlayToPreferredSourceUri: string;\n /**\n * Gets or sets the primary DLNA PlayTo device.\n */\n msPlayToPrimary: boolean;\n /**\n * Gets the source associated with the media element for use by the PlayToManager.\n */\n readonly msPlayToSource: any;\n /**\n * Sets or retrieves the name of the object.\n */\n name: string;\n readonly readyState: number;\n /**\n * Sets or retrieves a message to be displayed while an object is loading.\n */\n standby: string;\n /**\n * Sets or retrieves the MIME type of the object.\n */\n type: string;\n /**\n * Sets or retrieves the URL, often with a bookmark extension (#name), to use as a client-side image map.\n */\n useMap: string;\n /**\n * Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as \"this is a required field\". The result is that the user sees validation messages without actually submitting.\n */\n readonly validationMessage: string;\n /**\n * Returns a ValidityState object that represents the validity states of an element.\n */\n readonly validity: ValidityState;\n vspace: number;\n /**\n * Sets or retrieves the width of the object.\n */\n width: string;\n /**\n * Returns whether an element will successfully validate based on forms validation rules and constraints.\n */\n readonly willValidate: boolean;\n /**\n * Returns whether a form will validate when it is submitted, without having to submit it.\n */\n checkValidity(): boolean;\n /**\n * Sets a custom error message that is displayed when a form is submitted.\n * @param error Sets a custom error message that is displayed when a form is submitted.\n */\n setCustomValidity(error: string): void;\n addEventListener(type: K, listener: (this: HTMLObjectElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLObjectElement: {\n prototype: HTMLObjectElement;\n new(): HTMLObjectElement;\n};\n\ninterface HTMLOListElement extends HTMLElement {\n compact: boolean;\n /**\n * The starting number.\n */\n start: number;\n type: string;\n addEventListener(type: K, listener: (this: HTMLOListElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLOListElement: {\n prototype: HTMLOListElement;\n new(): HTMLOListElement;\n};\n\ninterface HTMLOptGroupElement extends HTMLElement {\n /**\n * Sets or retrieves the status of an option.\n */\n defaultSelected: boolean;\n disabled: boolean;\n /**\n * Retrieves a reference to the form that the object is embedded in.\n */\n readonly form: HTMLFormElement;\n /**\n * Sets or retrieves the ordinal position of an option in a list box.\n */\n readonly index: number;\n /**\n * Sets or retrieves a value that you can use to implement your own label functionality for the object.\n */\n label: string;\n /**\n * Sets or retrieves whether the option in the list box is the default item.\n */\n selected: boolean;\n /**\n * Sets or retrieves the text string specified by the option tag.\n */\n readonly text: string;\n /**\n * Sets or retrieves the value which is returned to the server when the form control is submitted.\n */\n value: string;\n addEventListener(type: K, listener: (this: HTMLOptGroupElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLOptGroupElement: {\n prototype: HTMLOptGroupElement;\n new(): HTMLOptGroupElement;\n};\n\ninterface HTMLOptionElement extends HTMLElement {\n /**\n * Sets or retrieves the status of an option.\n */\n defaultSelected: boolean;\n disabled: boolean;\n /**\n * Retrieves a reference to the form that the object is embedded in.\n */\n readonly form: HTMLFormElement;\n /**\n * Sets or retrieves the ordinal position of an option in a list box.\n */\n readonly index: number;\n /**\n * Sets or retrieves a value that you can use to implement your own label functionality for the object.\n */\n label: string;\n /**\n * Sets or retrieves whether the option in the list box is the default item.\n */\n selected: boolean;\n /**\n * Sets or retrieves the text string specified by the option tag.\n */\n text: string;\n /**\n * Sets or retrieves the value which is returned to the server when the form control is submitted.\n */\n value: string;\n addEventListener(type: K, listener: (this: HTMLOptionElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLOptionElement: {\n prototype: HTMLOptionElement;\n new(): HTMLOptionElement;\n};\n\ninterface HTMLOptionsCollection extends HTMLCollectionOf {\n length: number;\n selectedIndex: number;\n add(element: HTMLOptionElement | HTMLOptGroupElement, before?: HTMLElement | number): void;\n remove(index: number): void;\n}\n\ndeclare var HTMLOptionsCollection: {\n prototype: HTMLOptionsCollection;\n new(): HTMLOptionsCollection;\n};\n\ninterface HTMLOutputElement extends HTMLElement {\n defaultValue: string;\n readonly form: HTMLFormElement;\n readonly htmlFor: DOMSettableTokenList;\n name: string;\n readonly type: string;\n readonly validationMessage: string;\n readonly validity: ValidityState;\n value: string;\n readonly willValidate: boolean;\n checkValidity(): boolean;\n reportValidity(): boolean;\n setCustomValidity(error: string): void;\n addEventListener(type: K, listener: (this: HTMLOutputElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLOutputElement: {\n prototype: HTMLOutputElement;\n new(): HTMLOutputElement;\n};\n\ninterface HTMLParagraphElement extends HTMLElement {\n /**\n * Sets or retrieves how the object is aligned with adjacent text.\n */\n align: string;\n clear: string;\n addEventListener(type: K, listener: (this: HTMLParagraphElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLParagraphElement: {\n prototype: HTMLParagraphElement;\n new(): HTMLParagraphElement;\n};\n\ninterface HTMLParamElement extends HTMLElement {\n /**\n * Sets or retrieves the name of an input parameter for an element.\n */\n name: string;\n /**\n * Sets or retrieves the content type of the resource designated by the value attribute.\n */\n type: string;\n /**\n * Sets or retrieves the value of an input parameter for an element.\n */\n value: string;\n /**\n * Sets or retrieves the data type of the value attribute.\n */\n valueType: string;\n addEventListener(type: K, listener: (this: HTMLParamElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLParamElement: {\n prototype: HTMLParamElement;\n new(): HTMLParamElement;\n};\n\ninterface HTMLPictureElement extends HTMLElement {\n addEventListener(type: K, listener: (this: HTMLPictureElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLPictureElement: {\n prototype: HTMLPictureElement;\n new(): HTMLPictureElement;\n};\n\ninterface HTMLPreElement extends HTMLElement {\n /**\n * Sets or gets a value that you can use to implement your own width functionality for the object.\n */\n width: number;\n addEventListener(type: K, listener: (this: HTMLPreElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLPreElement: {\n prototype: HTMLPreElement;\n new(): HTMLPreElement;\n};\n\ninterface HTMLProgressElement extends HTMLElement {\n /**\n * Retrieves a reference to the form that the object is embedded in.\n */\n readonly form: HTMLFormElement;\n /**\n * Defines the maximum, or \"done\" value for a progress element.\n */\n max: number;\n /**\n * Returns the quotient of value/max when the value attribute is set (determinate progress bar), or -1 when the value attribute is missing (indeterminate progress bar).\n */\n readonly position: number;\n /**\n * Sets or gets the current value of a progress element. The value must be a non-negative number between 0 and the max value.\n */\n value: number;\n addEventListener(type: K, listener: (this: HTMLProgressElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLProgressElement: {\n prototype: HTMLProgressElement;\n new(): HTMLProgressElement;\n};\n\ninterface HTMLQuoteElement extends HTMLElement {\n /**\n * Sets or retrieves reference information about the object.\n */\n cite: string;\n addEventListener(type: K, listener: (this: HTMLQuoteElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLQuoteElement: {\n prototype: HTMLQuoteElement;\n new(): HTMLQuoteElement;\n};\n\ninterface HTMLScriptElement extends HTMLElement {\n async: boolean;\n /**\n * Sets or retrieves the character set used to encode the object.\n */\n charset: string;\n crossOrigin: string | null;\n /**\n * Sets or retrieves the status of the script.\n */\n defer: boolean;\n /**\n * Sets or retrieves the event for which the script is written.\n */\n event: string;\n /**\n * Sets or retrieves the object that is bound to the event script.\n */\n htmlFor: string;\n /**\n * Retrieves the URL to an external file that contains the source code or data.\n */\n src: string;\n /**\n * Retrieves or sets the text of the object as a string.\n */\n text: string;\n /**\n * Sets or retrieves the MIME type for the associated scripting engine.\n */\n type: string;\n integrity: string;\n addEventListener(type: K, listener: (this: HTMLScriptElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLScriptElement: {\n prototype: HTMLScriptElement;\n new(): HTMLScriptElement;\n};\n\ninterface HTMLSelectElement extends HTMLElement {\n /**\n * Provides a way to direct a user to a specific field when a document loads. This can provide both direction and convenience for a user, reducing the need to click or tab to a field when a page opens. This attribute is true when present on an element, and false when missing.\n */\n autofocus: boolean;\n disabled: boolean;\n /**\n * Retrieves a reference to the form that the object is embedded in.\n */\n readonly form: HTMLFormElement;\n /**\n * Sets or retrieves the number of objects in a collection.\n */\n length: number;\n /**\n * Sets or retrieves the Boolean value indicating whether multiple items can be selected from a list.\n */\n multiple: boolean;\n /**\n * Sets or retrieves the name of the object.\n */\n name: string;\n readonly options: HTMLOptionsCollection;\n /**\n * When present, marks an element that can't be submitted without a value.\n */\n required: boolean;\n /**\n * Sets or retrieves the index of the selected option in a select object.\n */\n selectedIndex: number;\n selectedOptions: HTMLCollectionOf;\n /**\n * Sets or retrieves the number of rows in the list box.\n */\n size: number;\n /**\n * Retrieves the type of select control based on the value of the MULTIPLE attribute.\n */\n readonly type: string;\n /**\n * Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as \"this is a required field\". The result is that the user sees validation messages without actually submitting.\n */\n readonly validationMessage: string;\n /**\n * Returns a ValidityState object that represents the validity states of an element.\n */\n readonly validity: ValidityState;\n /**\n * Sets or retrieves the value which is returned to the server when the form control is submitted.\n */\n value: string;\n /**\n * Returns whether an element will successfully validate based on forms validation rules and constraints.\n */\n readonly willValidate: boolean;\n /**\n * Adds an element to the areas, controlRange, or options collection.\n * @param element Variant of type Number that specifies the index position in the collection where the element is placed. If no value is given, the method places the element at the end of the collection.\n * @param before Variant of type Object that specifies an element to insert before, or null to append the object to the collection.\n */\n add(element: HTMLElement, before?: HTMLElement | number): void;\n /**\n * Returns whether a form will validate when it is submitted, without having to submit it.\n */\n checkValidity(): boolean;\n /**\n * Retrieves a select object or an object from an options collection.\n * @param name Variant of type Number or String that specifies the object or collection to retrieve. If this parameter is an integer, it is the zero-based index of the object. If this parameter is a string, all objects with matching name or id properties are retrieved, and a collection is returned if more than one match is made.\n * @param index Variant of type Number that specifies the zero-based index of the object to retrieve when a collection is returned.\n */\n item(name?: any, index?: any): any;\n /**\n * Retrieves a select object or an object from an options collection.\n * @param namedItem A String that specifies the name or id property of the object to retrieve. A collection is returned if more than one match is made.\n */\n namedItem(name: string): any;\n /**\n * Removes an element from the collection.\n * @param index Number that specifies the zero-based index of the element to remove from the collection.\n */\n remove(index?: number): void;\n /**\n * Sets a custom error message that is displayed when a form is submitted.\n * @param error Sets a custom error message that is displayed when a form is submitted.\n */\n setCustomValidity(error: string): void;\n addEventListener(type: K, listener: (this: HTMLSelectElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n [name: string]: any;\n}\n\ndeclare var HTMLSelectElement: {\n prototype: HTMLSelectElement;\n new(): HTMLSelectElement;\n};\n\ninterface HTMLSourceElement extends HTMLElement {\n /**\n * Gets or sets the intended media type of the media source.\n */\n media: string;\n msKeySystem: string;\n sizes: string;\n /**\n * The address or URL of the a media resource that is to be considered.\n */\n src: string;\n srcset: string;\n /**\n * Gets or sets the MIME type of a media resource.\n */\n type: string;\n addEventListener(type: K, listener: (this: HTMLSourceElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLSourceElement: {\n prototype: HTMLSourceElement;\n new(): HTMLSourceElement;\n};\n\ninterface HTMLSpanElement extends HTMLElement {\n addEventListener(type: K, listener: (this: HTMLSpanElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLSpanElement: {\n prototype: HTMLSpanElement;\n new(): HTMLSpanElement;\n};\n\ninterface HTMLStyleElement extends HTMLElement, LinkStyle {\n disabled: boolean;\n /**\n * Sets or retrieves the media type.\n */\n media: string;\n /**\n * Retrieves the CSS language in which the style sheet is written.\n */\n type: string;\n addEventListener(type: K, listener: (this: HTMLStyleElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLStyleElement: {\n prototype: HTMLStyleElement;\n new(): HTMLStyleElement;\n};\n\ninterface HTMLTableCaptionElement extends HTMLElement {\n /**\n * Sets or retrieves the alignment of the caption or legend.\n */\n align: string;\n /**\n * Sets or retrieves whether the caption appears at the top or bottom of the table.\n */\n vAlign: string;\n addEventListener(type: K, listener: (this: HTMLTableCaptionElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLTableCaptionElement: {\n prototype: HTMLTableCaptionElement;\n new(): HTMLTableCaptionElement;\n};\n\ninterface HTMLTableCellElement extends HTMLElement, HTMLTableAlignment {\n /**\n * Sets or retrieves abbreviated text for the object.\n */\n abbr: string;\n /**\n * Sets or retrieves how the object is aligned with adjacent text.\n */\n align: string;\n /**\n * Sets or retrieves a comma-delimited list of conceptual categories associated with the object.\n */\n axis: string;\n bgColor: any;\n /**\n * Retrieves the position of the object in the cells collection of a row.\n */\n readonly cellIndex: number;\n /**\n * Sets or retrieves the number columns in the table that the object should span.\n */\n colSpan: number;\n /**\n * Sets or retrieves a list of header cells that provide information for the object.\n */\n headers: string;\n /**\n * Sets or retrieves the height of the object.\n */\n height: any;\n /**\n * Sets or retrieves whether the browser automatically performs wordwrap.\n */\n noWrap: boolean;\n /**\n * Sets or retrieves how many rows in a table the cell should span.\n */\n rowSpan: number;\n /**\n * Sets or retrieves the group of cells in a table to which the object's information applies.\n */\n scope: string;\n /**\n * Sets or retrieves the width of the object.\n */\n width: string;\n addEventListener(type: K, listener: (this: HTMLTableCellElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLTableCellElement: {\n prototype: HTMLTableCellElement;\n new(): HTMLTableCellElement;\n};\n\ninterface HTMLTableColElement extends HTMLElement, HTMLTableAlignment {\n /**\n * Sets or retrieves the alignment of the object relative to the display or table.\n */\n align: string;\n /**\n * Sets or retrieves the number of columns in the group.\n */\n span: number;\n /**\n * Sets or retrieves the width of the object.\n */\n width: any;\n addEventListener(type: K, listener: (this: HTMLTableColElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLTableColElement: {\n prototype: HTMLTableColElement;\n new(): HTMLTableColElement;\n};\n\ninterface HTMLTableDataCellElement extends HTMLTableCellElement {\n addEventListener(type: K, listener: (this: HTMLTableDataCellElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLTableDataCellElement: {\n prototype: HTMLTableDataCellElement;\n new(): HTMLTableDataCellElement;\n};\n\ninterface HTMLTableElement extends HTMLElement {\n /**\n * Sets or retrieves a value that indicates the table alignment.\n */\n align: string;\n bgColor: any;\n /**\n * Sets or retrieves the width of the border to draw around the object.\n */\n border: string;\n /**\n * Sets or retrieves the border color of the object.\n */\n borderColor: any;\n /**\n * Retrieves the caption object of a table.\n */\n caption: HTMLTableCaptionElement;\n /**\n * Sets or retrieves the amount of space between the border of the cell and the content of the cell.\n */\n cellPadding: string;\n /**\n * Sets or retrieves the amount of space between cells in a table.\n */\n cellSpacing: string;\n /**\n * Sets or retrieves the number of columns in the table.\n */\n cols: number;\n /**\n * Sets or retrieves the way the border frame around the table is displayed.\n */\n frame: string;\n /**\n * Sets or retrieves the height of the object.\n */\n height: any;\n /**\n * Sets or retrieves the number of horizontal rows contained in the object.\n */\n rows: HTMLCollectionOf;\n /**\n * Sets or retrieves which dividing lines (inner borders) are displayed.\n */\n rules: string;\n /**\n * Sets or retrieves a description and/or structure of the object.\n */\n summary: string;\n /**\n * Retrieves a collection of all tBody objects in the table. Objects in this collection are in source order.\n */\n tBodies: HTMLCollectionOf;\n /**\n * Retrieves the tFoot object of the table.\n */\n tFoot: HTMLTableSectionElement;\n /**\n * Retrieves the tHead object of the table.\n */\n tHead: HTMLTableSectionElement;\n /**\n * Sets or retrieves the width of the object.\n */\n width: string;\n /**\n * Creates an empty caption element in the table.\n */\n createCaption(): HTMLTableCaptionElement;\n /**\n * Creates an empty tBody element in the table.\n */\n createTBody(): HTMLTableSectionElement;\n /**\n * Creates an empty tFoot element in the table.\n */\n createTFoot(): HTMLTableSectionElement;\n /**\n * Returns the tHead element object if successful, or null otherwise.\n */\n createTHead(): HTMLTableSectionElement;\n /**\n * Deletes the caption element and its contents from the table.\n */\n deleteCaption(): void;\n /**\n * Removes the specified row (tr) from the element and from the rows collection.\n * @param index Number that specifies the zero-based position in the rows collection of the row to remove.\n */\n deleteRow(index?: number): void;\n /**\n * Deletes the tFoot element and its contents from the table.\n */\n deleteTFoot(): void;\n /**\n * Deletes the tHead element and its contents from the table.\n */\n deleteTHead(): void;\n /**\n * Creates a new row (tr) in the table, and adds the row to the rows collection.\n * @param index Number that specifies where to insert the row in the rows collection. The default value is -1, which appends the new row to the end of the rows collection.\n */\n insertRow(index?: number): HTMLTableRowElement;\n addEventListener(type: K, listener: (this: HTMLTableElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLTableElement: {\n prototype: HTMLTableElement;\n new(): HTMLTableElement;\n};\n\ninterface HTMLTableHeaderCellElement extends HTMLTableCellElement {\n /**\n * Sets or retrieves the group of cells in a table to which the object's information applies.\n */\n scope: string;\n addEventListener(type: K, listener: (this: HTMLTableHeaderCellElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLTableHeaderCellElement: {\n prototype: HTMLTableHeaderCellElement;\n new(): HTMLTableHeaderCellElement;\n};\n\ninterface HTMLTableRowElement extends HTMLElement, HTMLTableAlignment {\n /**\n * Sets or retrieves how the object is aligned with adjacent text.\n */\n align: string;\n bgColor: any;\n /**\n * Retrieves a collection of all cells in the table row.\n */\n cells: HTMLCollectionOf;\n /**\n * Sets or retrieves the height of the object.\n */\n height: any;\n /**\n * Retrieves the position of the object in the rows collection for the table.\n */\n readonly rowIndex: number;\n /**\n * Retrieves the position of the object in the collection.\n */\n readonly sectionRowIndex: number;\n /**\n * Removes the specified cell from the table row, as well as from the cells collection.\n * @param index Number that specifies the zero-based position of the cell to remove from the table row. If no value is provided, the last cell in the cells collection is deleted.\n */\n deleteCell(index?: number): void;\n /**\n * Creates a new cell in the table row, and adds the cell to the cells collection.\n * @param index Number that specifies where to insert the cell in the tr. The default value is -1, which appends the new cell to the end of the cells collection.\n */\n insertCell(index?: number): HTMLTableDataCellElement;\n addEventListener(type: K, listener: (this: HTMLTableRowElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLTableRowElement: {\n prototype: HTMLTableRowElement;\n new(): HTMLTableRowElement;\n};\n\ninterface HTMLTableSectionElement extends HTMLElement, HTMLTableAlignment {\n /**\n * Sets or retrieves a value that indicates the table alignment.\n */\n align: string;\n /**\n * Sets or retrieves the number of horizontal rows contained in the object.\n */\n rows: HTMLCollectionOf;\n /**\n * Removes the specified row (tr) from the element and from the rows collection.\n * @param index Number that specifies the zero-based position in the rows collection of the row to remove.\n */\n deleteRow(index?: number): void;\n /**\n * Creates a new row (tr) in the table, and adds the row to the rows collection.\n * @param index Number that specifies where to insert the row in the rows collection. The default value is -1, which appends the new row to the end of the rows collection.\n */\n insertRow(index?: number): HTMLTableRowElement;\n addEventListener(type: K, listener: (this: HTMLTableSectionElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLTableSectionElement: {\n prototype: HTMLTableSectionElement;\n new(): HTMLTableSectionElement;\n};\n\ninterface HTMLTemplateElement extends HTMLElement {\n readonly content: DocumentFragment;\n addEventListener(type: K, listener: (this: HTMLTemplateElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLTemplateElement: {\n prototype: HTMLTemplateElement;\n new(): HTMLTemplateElement;\n};\n\ninterface HTMLTextAreaElement extends HTMLElement {\n /**\n * Provides a way to direct a user to a specific field when a document loads. This can provide both direction and convenience for a user, reducing the need to click or tab to a field when a page opens. This attribute is true when present on an element, and false when missing.\n */\n autofocus: boolean;\n /**\n * Sets or retrieves the width of the object.\n */\n cols: number;\n /**\n * Sets or retrieves the initial contents of the object.\n */\n defaultValue: string;\n disabled: boolean;\n /**\n * Retrieves a reference to the form that the object is embedded in.\n */\n readonly form: HTMLFormElement;\n /**\n * Sets or retrieves the maximum number of characters that the user can enter in a text control.\n */\n maxLength: number;\n /**\n * Sets or retrieves the name of the object.\n */\n name: string;\n /**\n * Gets or sets a text string that is displayed in an input field as a hint or prompt to users as the format or type of information they need to enter.The text appears in an input field until the user puts focus on the field.\n */\n placeholder: string;\n /**\n * Sets or retrieves the value indicated whether the content of the object is read-only.\n */\n readOnly: boolean;\n /**\n * When present, marks an element that can't be submitted without a value.\n */\n required: boolean;\n /**\n * Sets or retrieves the number of horizontal rows contained in the object.\n */\n rows: number;\n /**\n * Gets or sets the end position or offset of a text selection.\n */\n selectionEnd: number;\n /**\n * Gets or sets the starting position or offset of a text selection.\n */\n selectionStart: number;\n /**\n * Sets or retrieves the value indicating whether the control is selected.\n */\n status: any;\n /**\n * Retrieves the type of control.\n */\n readonly type: string;\n /**\n * Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as \"this is a required field\". The result is that the user sees validation messages without actually submitting.\n */\n readonly validationMessage: string;\n /**\n * Returns a ValidityState object that represents the validity states of an element.\n */\n readonly validity: ValidityState;\n /**\n * Retrieves or sets the text in the entry field of the textArea element.\n */\n value: string;\n /**\n * Returns whether an element will successfully validate based on forms validation rules and constraints.\n */\n readonly willValidate: boolean;\n /**\n * Sets or retrieves how to handle wordwrapping in the object.\n */\n wrap: string;\n minLength: number;\n /**\n * Returns whether a form will validate when it is submitted, without having to submit it.\n */\n checkValidity(): boolean;\n /**\n * Highlights the input area of a form element.\n */\n select(): void;\n /**\n * Sets a custom error message that is displayed when a form is submitted.\n * @param error Sets a custom error message that is displayed when a form is submitted.\n */\n setCustomValidity(error: string): void;\n /**\n * Sets the start and end positions of a selection in a text field.\n * @param start The offset into the text field for the start of the selection.\n * @param end The offset into the text field for the end of the selection.\n */\n setSelectionRange(start: number, end: number): void;\n addEventListener(type: K, listener: (this: HTMLTextAreaElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLTextAreaElement: {\n prototype: HTMLTextAreaElement;\n new(): HTMLTextAreaElement;\n};\n\ninterface HTMLTimeElement extends HTMLElement {\n dateTime: string;\n addEventListener(type: K, listener: (this: HTMLTimeElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLTimeElement: {\n prototype: HTMLTimeElement;\n new(): HTMLTimeElement;\n};\n\ninterface HTMLTitleElement extends HTMLElement {\n /**\n * Retrieves or sets the text of the object as a string.\n */\n text: string;\n addEventListener(type: K, listener: (this: HTMLTitleElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLTitleElement: {\n prototype: HTMLTitleElement;\n new(): HTMLTitleElement;\n};\n\ninterface HTMLTrackElement extends HTMLElement {\n default: boolean;\n kind: string;\n label: string;\n readonly readyState: number;\n src: string;\n srclang: string;\n readonly track: TextTrack;\n readonly ERROR: number;\n readonly LOADED: number;\n readonly LOADING: number;\n readonly NONE: number;\n addEventListener(type: K, listener: (this: HTMLTrackElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLTrackElement: {\n prototype: HTMLTrackElement;\n new(): HTMLTrackElement;\n readonly ERROR: number;\n readonly LOADED: number;\n readonly LOADING: number;\n readonly NONE: number;\n};\n\ninterface HTMLUListElement extends HTMLElement {\n compact: boolean;\n type: string;\n addEventListener(type: K, listener: (this: HTMLUListElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLUListElement: {\n prototype: HTMLUListElement;\n new(): HTMLUListElement;\n};\n\ninterface HTMLUnknownElement extends HTMLElement {\n addEventListener(type: K, listener: (this: HTMLUnknownElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLUnknownElement: {\n prototype: HTMLUnknownElement;\n new(): HTMLUnknownElement;\n};\n\ninterface HTMLVideoElementEventMap extends HTMLMediaElementEventMap {\n \"MSVideoFormatChanged\": Event;\n \"MSVideoFrameStepCompleted\": Event;\n \"MSVideoOptimalLayoutChanged\": Event;\n}\n\ninterface HTMLVideoElement extends HTMLMediaElement {\n /**\n * Gets or sets the height of the video element.\n */\n height: number;\n msHorizontalMirror: boolean;\n readonly msIsLayoutOptimalForPlayback: boolean;\n readonly msIsStereo3D: boolean;\n msStereo3DPackingMode: string;\n msStereo3DRenderMode: string;\n msZoom: boolean;\n onMSVideoFormatChanged: (this: HTMLVideoElement, ev: Event) => any;\n onMSVideoFrameStepCompleted: (this: HTMLVideoElement, ev: Event) => any;\n onMSVideoOptimalLayoutChanged: (this: HTMLVideoElement, ev: Event) => any;\n /**\n * Gets or sets a URL of an image to display, for example, like a movie poster. This can be a still frame from the video, or another image if no video data is available.\n */\n poster: string;\n /**\n * Gets the intrinsic height of a video in CSS pixels, or zero if the dimensions are not known.\n */\n readonly videoHeight: number;\n /**\n * Gets the intrinsic width of a video in CSS pixels, or zero if the dimensions are not known.\n */\n readonly videoWidth: number;\n readonly webkitDisplayingFullscreen: boolean;\n readonly webkitSupportsFullscreen: boolean;\n /**\n * Gets or sets the width of the video element.\n */\n width: number;\n getVideoPlaybackQuality(): VideoPlaybackQuality;\n msFrameStep(forward: boolean): void;\n msInsertVideoEffect(activatableClassId: string, effectRequired: boolean, config?: any): void;\n msSetVideoRectangle(left: number, top: number, right: number, bottom: number): void;\n webkitEnterFullscreen(): void;\n webkitEnterFullScreen(): void;\n webkitExitFullscreen(): void;\n webkitExitFullScreen(): void;\n addEventListener(type: K, listener: (this: HTMLVideoElement, ev: HTMLVideoElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var HTMLVideoElement: {\n prototype: HTMLVideoElement;\n new(): HTMLVideoElement;\n};\n\ninterface IDBCursor {\n readonly direction: IDBCursorDirection;\n key: IDBKeyRange | IDBValidKey;\n readonly primaryKey: any;\n source: IDBObjectStore | IDBIndex;\n advance(count: number): void;\n continue(key?: IDBKeyRange | IDBValidKey): void;\n delete(): IDBRequest;\n update(value: any): IDBRequest;\n readonly NEXT: string;\n readonly NEXT_NO_DUPLICATE: string;\n readonly PREV: string;\n readonly PREV_NO_DUPLICATE: string;\n}\n\ndeclare var IDBCursor: {\n prototype: IDBCursor;\n new(): IDBCursor;\n readonly NEXT: string;\n readonly NEXT_NO_DUPLICATE: string;\n readonly PREV: string;\n readonly PREV_NO_DUPLICATE: string;\n};\n\ninterface IDBCursorWithValue extends IDBCursor {\n readonly value: any;\n}\n\ndeclare var IDBCursorWithValue: {\n prototype: IDBCursorWithValue;\n new(): IDBCursorWithValue;\n};\n\ninterface IDBDatabaseEventMap {\n \"abort\": Event;\n \"error\": Event;\n}\n\ninterface IDBDatabase extends EventTarget {\n readonly name: string;\n readonly objectStoreNames: DOMStringList;\n onabort: (this: IDBDatabase, ev: Event) => any;\n onerror: (this: IDBDatabase, ev: Event) => any;\n version: number;\n onversionchange: (ev: IDBVersionChangeEvent) => any;\n close(): void;\n createObjectStore(name: string, optionalParameters?: IDBObjectStoreParameters): IDBObjectStore;\n deleteObjectStore(name: string): void;\n transaction(storeNames: string | string[], mode?: IDBTransactionMode): IDBTransaction;\n addEventListener(type: \"versionchange\", listener: (ev: IDBVersionChangeEvent) => any, useCapture?: boolean): void;\n addEventListener(type: K, listener: (this: IDBDatabase, ev: IDBDatabaseEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var IDBDatabase: {\n prototype: IDBDatabase;\n new(): IDBDatabase;\n};\n\ninterface IDBFactory {\n cmp(first: any, second: any): number;\n deleteDatabase(name: string): IDBOpenDBRequest;\n open(name: string, version?: number): IDBOpenDBRequest;\n}\n\ndeclare var IDBFactory: {\n prototype: IDBFactory;\n new(): IDBFactory;\n};\n\ninterface IDBIndex {\n keyPath: string | string[];\n readonly name: string;\n readonly objectStore: IDBObjectStore;\n readonly unique: boolean;\n multiEntry: boolean;\n count(key?: IDBKeyRange | IDBValidKey): IDBRequest;\n get(key: IDBKeyRange | IDBValidKey): IDBRequest;\n getKey(key: IDBKeyRange | IDBValidKey): IDBRequest;\n openCursor(range?: IDBKeyRange | IDBValidKey, direction?: IDBCursorDirection): IDBRequest;\n openKeyCursor(range?: IDBKeyRange | IDBValidKey, direction?: IDBCursorDirection): IDBRequest;\n}\n\ndeclare var IDBIndex: {\n prototype: IDBIndex;\n new(): IDBIndex;\n};\n\ninterface IDBKeyRange {\n readonly lower: any;\n readonly lowerOpen: boolean;\n readonly upper: any;\n readonly upperOpen: boolean;\n}\n\ndeclare var IDBKeyRange: {\n prototype: IDBKeyRange;\n new(): IDBKeyRange;\n bound(lower: any, upper: any, lowerOpen?: boolean, upperOpen?: boolean): IDBKeyRange;\n lowerBound(lower: any, open?: boolean): IDBKeyRange;\n only(value: any): IDBKeyRange;\n upperBound(upper: any, open?: boolean): IDBKeyRange;\n};\n\ninterface IDBObjectStore {\n readonly indexNames: DOMStringList;\n keyPath: string | string[];\n readonly name: string;\n readonly transaction: IDBTransaction;\n autoIncrement: boolean;\n add(value: any, key?: IDBKeyRange | IDBValidKey): IDBRequest;\n clear(): IDBRequest;\n count(key?: IDBKeyRange | IDBValidKey): IDBRequest;\n createIndex(name: string, keyPath: string | string[], optionalParameters?: IDBIndexParameters): IDBIndex;\n delete(key: IDBKeyRange | IDBValidKey): IDBRequest;\n deleteIndex(indexName: string): void;\n get(key: any): IDBRequest;\n index(name: string): IDBIndex;\n openCursor(range?: IDBKeyRange | IDBValidKey, direction?: IDBCursorDirection): IDBRequest;\n put(value: any, key?: IDBKeyRange | IDBValidKey): IDBRequest;\n}\n\ndeclare var IDBObjectStore: {\n prototype: IDBObjectStore;\n new(): IDBObjectStore;\n};\n\ninterface IDBOpenDBRequestEventMap extends IDBRequestEventMap {\n \"blocked\": Event;\n \"upgradeneeded\": IDBVersionChangeEvent;\n}\n\ninterface IDBOpenDBRequest extends IDBRequest {\n onblocked: (this: IDBOpenDBRequest, ev: Event) => any;\n onupgradeneeded: (this: IDBOpenDBRequest, ev: IDBVersionChangeEvent) => any;\n addEventListener(type: K, listener: (this: IDBOpenDBRequest, ev: IDBOpenDBRequestEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var IDBOpenDBRequest: {\n prototype: IDBOpenDBRequest;\n new(): IDBOpenDBRequest;\n};\n\ninterface IDBRequestEventMap {\n \"error\": Event;\n \"success\": Event;\n}\n\ninterface IDBRequest extends EventTarget {\n readonly error: DOMException;\n onerror: (this: IDBRequest, ev: Event) => any;\n onsuccess: (this: IDBRequest, ev: Event) => any;\n readonly readyState: IDBRequestReadyState;\n readonly result: any;\n source: IDBObjectStore | IDBIndex | IDBCursor;\n readonly transaction: IDBTransaction;\n addEventListener(type: K, listener: (this: IDBRequest, ev: IDBRequestEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var IDBRequest: {\n prototype: IDBRequest;\n new(): IDBRequest;\n};\n\ninterface IDBTransactionEventMap {\n \"abort\": Event;\n \"complete\": Event;\n \"error\": Event;\n}\n\ninterface IDBTransaction extends EventTarget {\n readonly db: IDBDatabase;\n readonly error: DOMException;\n readonly mode: IDBTransactionMode;\n onabort: (this: IDBTransaction, ev: Event) => any;\n oncomplete: (this: IDBTransaction, ev: Event) => any;\n onerror: (this: IDBTransaction, ev: Event) => any;\n abort(): void;\n objectStore(name: string): IDBObjectStore;\n readonly READ_ONLY: string;\n readonly READ_WRITE: string;\n readonly VERSION_CHANGE: string;\n addEventListener(type: K, listener: (this: IDBTransaction, ev: IDBTransactionEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var IDBTransaction: {\n prototype: IDBTransaction;\n new(): IDBTransaction;\n readonly READ_ONLY: string;\n readonly READ_WRITE: string;\n readonly VERSION_CHANGE: string;\n};\n\ninterface IDBVersionChangeEvent extends Event {\n readonly newVersion: number | null;\n readonly oldVersion: number;\n}\n\ndeclare var IDBVersionChangeEvent: {\n prototype: IDBVersionChangeEvent;\n new(): IDBVersionChangeEvent;\n};\n\ninterface IIRFilterNode extends AudioNode {\n getFrequencyResponse(frequencyHz: Float32Array, magResponse: Float32Array, phaseResponse: Float32Array): void;\n}\n\ndeclare var IIRFilterNode: {\n prototype: IIRFilterNode;\n new(): IIRFilterNode;\n};\n\ninterface ImageData {\n data: Uint8ClampedArray;\n readonly height: number;\n readonly width: number;\n}\n\ndeclare var ImageData: {\n prototype: ImageData;\n new(width: number, height: number): ImageData;\n new(array: Uint8ClampedArray, width: number, height: number): ImageData;\n};\n\ninterface IntersectionObserver {\n readonly root: Element | null;\n readonly rootMargin: string;\n readonly thresholds: number[];\n disconnect(): void;\n observe(target: Element): void;\n takeRecords(): IntersectionObserverEntry[];\n unobserve(target: Element): void;\n}\n\ndeclare var IntersectionObserver: {\n prototype: IntersectionObserver;\n new(callback: IntersectionObserverCallback, options?: IntersectionObserverInit): IntersectionObserver;\n};\n\ninterface IntersectionObserverEntry {\n readonly boundingClientRect: ClientRect;\n readonly intersectionRatio: number;\n readonly intersectionRect: ClientRect;\n readonly rootBounds: ClientRect;\n readonly target: Element;\n readonly time: number;\n}\n\ndeclare var IntersectionObserverEntry: {\n prototype: IntersectionObserverEntry;\n new(intersectionObserverEntryInit: IntersectionObserverEntryInit): IntersectionObserverEntry;\n};\n\ninterface KeyboardEvent extends UIEvent {\n readonly altKey: boolean;\n readonly char: string | null;\n readonly charCode: number;\n readonly ctrlKey: boolean;\n readonly key: string;\n readonly keyCode: number;\n readonly locale: string;\n readonly location: number;\n readonly metaKey: boolean;\n readonly repeat: boolean;\n readonly shiftKey: boolean;\n readonly which: number;\n readonly code: string;\n getModifierState(keyArg: string): boolean;\n initKeyboardEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, viewArg: Window, keyArg: string, locationArg: number, modifiersListArg: string, repeat: boolean, locale: string): void;\n readonly DOM_KEY_LOCATION_JOYSTICK: number;\n readonly DOM_KEY_LOCATION_LEFT: number;\n readonly DOM_KEY_LOCATION_MOBILE: number;\n readonly DOM_KEY_LOCATION_NUMPAD: number;\n readonly DOM_KEY_LOCATION_RIGHT: number;\n readonly DOM_KEY_LOCATION_STANDARD: number;\n}\n\ndeclare var KeyboardEvent: {\n prototype: KeyboardEvent;\n new(typeArg: string, eventInitDict?: KeyboardEventInit): KeyboardEvent;\n readonly DOM_KEY_LOCATION_JOYSTICK: number;\n readonly DOM_KEY_LOCATION_LEFT: number;\n readonly DOM_KEY_LOCATION_MOBILE: number;\n readonly DOM_KEY_LOCATION_NUMPAD: number;\n readonly DOM_KEY_LOCATION_RIGHT: number;\n readonly DOM_KEY_LOCATION_STANDARD: number;\n};\n\ninterface ListeningStateChangedEvent extends Event {\n readonly label: string;\n readonly state: ListeningState;\n}\n\ndeclare var ListeningStateChangedEvent: {\n prototype: ListeningStateChangedEvent;\n new(): ListeningStateChangedEvent;\n};\n\ninterface Location {\n hash: string;\n host: string;\n hostname: string;\n href: string;\n readonly origin: string;\n pathname: string;\n port: string;\n protocol: string;\n search: string;\n assign(url: string): void;\n reload(forcedReload?: boolean): void;\n replace(url: string): void;\n toString(): string;\n}\n\ndeclare var Location: {\n prototype: Location;\n new(): Location;\n};\n\ninterface LongRunningScriptDetectedEvent extends Event {\n readonly executionTime: number;\n stopPageScriptExecution: boolean;\n}\n\ndeclare var LongRunningScriptDetectedEvent: {\n prototype: LongRunningScriptDetectedEvent;\n new(): LongRunningScriptDetectedEvent;\n};\n\ninterface MediaDeviceInfo {\n readonly deviceId: string;\n readonly groupId: string;\n readonly kind: MediaDeviceKind;\n readonly label: string;\n}\n\ndeclare var MediaDeviceInfo: {\n prototype: MediaDeviceInfo;\n new(): MediaDeviceInfo;\n};\n\ninterface MediaDevicesEventMap {\n \"devicechange\": Event;\n}\n\ninterface MediaDevices extends EventTarget {\n ondevicechange: (this: MediaDevices, ev: Event) => any;\n enumerateDevices(): any;\n getSupportedConstraints(): MediaTrackSupportedConstraints;\n getUserMedia(constraints: MediaStreamConstraints): Promise;\n addEventListener(type: K, listener: (this: MediaDevices, ev: MediaDevicesEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var MediaDevices: {\n prototype: MediaDevices;\n new(): MediaDevices;\n};\n\ninterface MediaElementAudioSourceNode extends AudioNode {\n}\n\ndeclare var MediaElementAudioSourceNode: {\n prototype: MediaElementAudioSourceNode;\n new(): MediaElementAudioSourceNode;\n};\n\ninterface MediaEncryptedEvent extends Event {\n readonly initData: ArrayBuffer | null;\n readonly initDataType: string;\n}\n\ndeclare var MediaEncryptedEvent: {\n prototype: MediaEncryptedEvent;\n new(type: string, eventInitDict?: MediaEncryptedEventInit): MediaEncryptedEvent;\n};\n\ninterface MediaError {\n readonly code: number;\n readonly msExtendedCode: number;\n readonly MEDIA_ERR_ABORTED: number;\n readonly MEDIA_ERR_DECODE: number;\n readonly MEDIA_ERR_NETWORK: number;\n readonly MEDIA_ERR_SRC_NOT_SUPPORTED: number;\n readonly MS_MEDIA_ERR_ENCRYPTED: number;\n}\n\ndeclare var MediaError: {\n prototype: MediaError;\n new(): MediaError;\n readonly MEDIA_ERR_ABORTED: number;\n readonly MEDIA_ERR_DECODE: number;\n readonly MEDIA_ERR_NETWORK: number;\n readonly MEDIA_ERR_SRC_NOT_SUPPORTED: number;\n readonly MS_MEDIA_ERR_ENCRYPTED: number;\n};\n\ninterface MediaKeyMessageEvent extends Event {\n readonly message: ArrayBuffer;\n readonly messageType: MediaKeyMessageType;\n}\n\ndeclare var MediaKeyMessageEvent: {\n prototype: MediaKeyMessageEvent;\n new(type: string, eventInitDict?: MediaKeyMessageEventInit): MediaKeyMessageEvent;\n};\n\ninterface MediaKeys {\n createSession(sessionType?: MediaKeySessionType): MediaKeySession;\n setServerCertificate(serverCertificate: any): Promise;\n}\n\ndeclare var MediaKeys: {\n prototype: MediaKeys;\n new(): MediaKeys;\n};\n\ninterface MediaKeySession extends EventTarget {\n readonly closed: Promise;\n readonly expiration: number;\n readonly keyStatuses: MediaKeyStatusMap;\n readonly sessionId: string;\n close(): Promise;\n generateRequest(initDataType: string, initData: any): Promise;\n load(sessionId: string): Promise;\n remove(): Promise;\n update(response: any): Promise;\n}\n\ndeclare var MediaKeySession: {\n prototype: MediaKeySession;\n new(): MediaKeySession;\n};\n\ninterface MediaKeyStatusMap {\n readonly size: number;\n forEach(callback: ForEachCallback): void;\n get(keyId: any): MediaKeyStatus;\n has(keyId: any): boolean;\n}\n\ndeclare var MediaKeyStatusMap: {\n prototype: MediaKeyStatusMap;\n new(): MediaKeyStatusMap;\n};\n\ninterface MediaKeySystemAccess {\n readonly keySystem: string;\n createMediaKeys(): Promise;\n getConfiguration(): MediaKeySystemConfiguration;\n}\n\ndeclare var MediaKeySystemAccess: {\n prototype: MediaKeySystemAccess;\n new(): MediaKeySystemAccess;\n};\n\ninterface MediaList {\n readonly length: number;\n mediaText: string;\n appendMedium(newMedium: string): void;\n deleteMedium(oldMedium: string): void;\n item(index: number): string;\n toString(): string;\n [index: number]: string;\n}\n\ndeclare var MediaList: {\n prototype: MediaList;\n new(): MediaList;\n};\n\ninterface MediaQueryList {\n readonly matches: boolean;\n readonly media: string;\n addListener(listener: MediaQueryListListener): void;\n removeListener(listener: MediaQueryListListener): void;\n}\n\ndeclare var MediaQueryList: {\n prototype: MediaQueryList;\n new(): MediaQueryList;\n};\n\ninterface MediaSource extends EventTarget {\n readonly activeSourceBuffers: SourceBufferList;\n duration: number;\n readonly readyState: string;\n readonly sourceBuffers: SourceBufferList;\n addSourceBuffer(type: string): SourceBuffer;\n endOfStream(error?: number): void;\n removeSourceBuffer(sourceBuffer: SourceBuffer): void;\n}\n\ndeclare var MediaSource: {\n prototype: MediaSource;\n new(): MediaSource;\n isTypeSupported(type: string): boolean;\n};\n\ninterface MediaStreamEventMap {\n \"active\": Event;\n \"addtrack\": MediaStreamTrackEvent;\n \"inactive\": Event;\n \"removetrack\": MediaStreamTrackEvent;\n}\n\ninterface MediaStream extends EventTarget {\n readonly active: boolean;\n readonly id: string;\n onactive: (this: MediaStream, ev: Event) => any;\n onaddtrack: (this: MediaStream, ev: MediaStreamTrackEvent) => any;\n oninactive: (this: MediaStream, ev: Event) => any;\n onremovetrack: (this: MediaStream, ev: MediaStreamTrackEvent) => any;\n addTrack(track: MediaStreamTrack): void;\n clone(): MediaStream;\n getAudioTracks(): MediaStreamTrack[];\n getTrackById(trackId: string): MediaStreamTrack | null;\n getTracks(): MediaStreamTrack[];\n getVideoTracks(): MediaStreamTrack[];\n removeTrack(track: MediaStreamTrack): void;\n stop(): void;\n addEventListener(type: K, listener: (this: MediaStream, ev: MediaStreamEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var MediaStream: {\n prototype: MediaStream;\n new(streamOrTracks?: MediaStream | MediaStreamTrack[]): MediaStream;\n};\n\ninterface MediaStreamAudioSourceNode extends AudioNode {\n}\n\ndeclare var MediaStreamAudioSourceNode: {\n prototype: MediaStreamAudioSourceNode;\n new(): MediaStreamAudioSourceNode;\n};\n\ninterface MediaStreamError {\n readonly constraintName: string | null;\n readonly message: string | null;\n readonly name: string;\n}\n\ndeclare var MediaStreamError: {\n prototype: MediaStreamError;\n new(): MediaStreamError;\n};\n\ninterface MediaStreamErrorEvent extends Event {\n readonly error: MediaStreamError | null;\n}\n\ndeclare var MediaStreamErrorEvent: {\n prototype: MediaStreamErrorEvent;\n new(typeArg: string, eventInitDict?: MediaStreamErrorEventInit): MediaStreamErrorEvent;\n};\n\ninterface MediaStreamEvent extends Event {\n readonly stream: MediaStream | null;\n}\n\ndeclare var MediaStreamEvent: {\n prototype: MediaStreamEvent;\n new(type: string, eventInitDict: MediaStreamEventInit): MediaStreamEvent;\n};\n\ninterface MediaStreamTrackEventMap {\n \"ended\": MediaStreamErrorEvent;\n \"mute\": Event;\n \"overconstrained\": MediaStreamErrorEvent;\n \"unmute\": Event;\n}\n\ninterface MediaStreamTrack extends EventTarget {\n enabled: boolean;\n readonly id: string;\n readonly kind: string;\n readonly label: string;\n readonly muted: boolean;\n onended: (this: MediaStreamTrack, ev: MediaStreamErrorEvent) => any;\n onmute: (this: MediaStreamTrack, ev: Event) => any;\n onoverconstrained: (this: MediaStreamTrack, ev: MediaStreamErrorEvent) => any;\n onunmute: (this: MediaStreamTrack, ev: Event) => any;\n readonly readonly: boolean;\n readonly readyState: MediaStreamTrackState;\n readonly remote: boolean;\n applyConstraints(constraints: MediaTrackConstraints): Promise;\n clone(): MediaStreamTrack;\n getCapabilities(): MediaTrackCapabilities;\n getConstraints(): MediaTrackConstraints;\n getSettings(): MediaTrackSettings;\n stop(): void;\n addEventListener(type: K, listener: (this: MediaStreamTrack, ev: MediaStreamTrackEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var MediaStreamTrack: {\n prototype: MediaStreamTrack;\n new(): MediaStreamTrack;\n};\n\ninterface MediaStreamTrackEvent extends Event {\n readonly track: MediaStreamTrack;\n}\n\ndeclare var MediaStreamTrackEvent: {\n prototype: MediaStreamTrackEvent;\n new(typeArg: string, eventInitDict?: MediaStreamTrackEventInit): MediaStreamTrackEvent;\n};\n\ninterface MessageChannel {\n readonly port1: MessagePort;\n readonly port2: MessagePort;\n}\n\ndeclare var MessageChannel: {\n prototype: MessageChannel;\n new(): MessageChannel;\n};\n\ninterface MessageEvent extends Event {\n readonly data: any;\n readonly origin: string;\n readonly ports: any;\n readonly source: Window;\n initMessageEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, dataArg: any, originArg: string, lastEventIdArg: string, sourceArg: Window): void;\n}\n\ndeclare var MessageEvent: {\n prototype: MessageEvent;\n new(type: string, eventInitDict?: MessageEventInit): MessageEvent;\n};\n\ninterface MessagePortEventMap {\n \"message\": MessageEvent;\n}\n\ninterface MessagePort extends EventTarget {\n onmessage: (this: MessagePort, ev: MessageEvent) => any;\n close(): void;\n postMessage(message?: any, transfer?: any[]): void;\n start(): void;\n addEventListener(type: K, listener: (this: MessagePort, ev: MessagePortEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var MessagePort: {\n prototype: MessagePort;\n new(): MessagePort;\n};\n\ninterface MimeType {\n readonly description: string;\n readonly enabledPlugin: Plugin;\n readonly suffixes: string;\n readonly type: string;\n}\n\ndeclare var MimeType: {\n prototype: MimeType;\n new(): MimeType;\n};\n\ninterface MimeTypeArray {\n readonly length: number;\n item(index: number): Plugin;\n namedItem(type: string): Plugin;\n [index: number]: Plugin;\n}\n\ndeclare var MimeTypeArray: {\n prototype: MimeTypeArray;\n new(): MimeTypeArray;\n};\n\ninterface MouseEvent extends UIEvent {\n readonly altKey: boolean;\n readonly button: number;\n readonly buttons: number;\n readonly clientX: number;\n readonly clientY: number;\n readonly ctrlKey: boolean;\n readonly fromElement: Element;\n readonly layerX: number;\n readonly layerY: number;\n readonly metaKey: boolean;\n readonly movementX: number;\n readonly movementY: number;\n readonly offsetX: number;\n readonly offsetY: number;\n readonly pageX: number;\n readonly pageY: number;\n readonly relatedTarget: EventTarget;\n readonly screenX: number;\n readonly screenY: number;\n readonly shiftKey: boolean;\n readonly toElement: Element;\n readonly which: number;\n readonly x: number;\n readonly y: number;\n getModifierState(keyArg: string): boolean;\n initMouseEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, viewArg: Window, detailArg: number, screenXArg: number, screenYArg: number, clientXArg: number, clientYArg: number, ctrlKeyArg: boolean, altKeyArg: boolean, shiftKeyArg: boolean, metaKeyArg: boolean, buttonArg: number, relatedTargetArg: EventTarget | null): void;\n}\n\ndeclare var MouseEvent: {\n prototype: MouseEvent;\n new(typeArg: string, eventInitDict?: MouseEventInit): MouseEvent;\n};\n\ninterface MSApp {\n clearTemporaryWebDataAsync(): MSAppAsyncOperation;\n createBlobFromRandomAccessStream(type: string, seeker: any): Blob;\n createDataPackage(object: any): any;\n createDataPackageFromSelection(): any;\n createFileFromStorageFile(storageFile: any): File;\n createStreamFromInputStream(type: string, inputStream: any): MSStream;\n execAsyncAtPriority(asynchronousCallback: MSExecAtPriorityFunctionCallback, priority: string, ...args: any[]): void;\n execAtPriority(synchronousCallback: MSExecAtPriorityFunctionCallback, priority: string, ...args: any[]): any;\n getCurrentPriority(): string;\n getHtmlPrintDocumentSourceAsync(htmlDoc: any): Promise;\n getViewId(view: any): any;\n isTaskScheduledAtPriorityOrHigher(priority: string): boolean;\n pageHandlesAllApplicationActivations(enabled: boolean): void;\n suppressSubdownloadCredentialPrompts(suppress: boolean): void;\n terminateApp(exceptionObject: any): void;\n readonly CURRENT: string;\n readonly HIGH: string;\n readonly IDLE: string;\n readonly NORMAL: string;\n}\ndeclare var MSApp: MSApp;\n\ninterface MSAppAsyncOperationEventMap {\n \"complete\": Event;\n \"error\": Event;\n}\n\ninterface MSAppAsyncOperation extends EventTarget {\n readonly error: DOMError;\n oncomplete: (this: MSAppAsyncOperation, ev: Event) => any;\n onerror: (this: MSAppAsyncOperation, ev: Event) => any;\n readonly readyState: number;\n readonly result: any;\n start(): void;\n readonly COMPLETED: number;\n readonly ERROR: number;\n readonly STARTED: number;\n addEventListener(type: K, listener: (this: MSAppAsyncOperation, ev: MSAppAsyncOperationEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var MSAppAsyncOperation: {\n prototype: MSAppAsyncOperation;\n new(): MSAppAsyncOperation;\n readonly COMPLETED: number;\n readonly ERROR: number;\n readonly STARTED: number;\n};\n\ninterface MSAssertion {\n readonly id: string;\n readonly type: MSCredentialType;\n}\n\ndeclare var MSAssertion: {\n prototype: MSAssertion;\n new(): MSAssertion;\n};\n\ninterface MSBlobBuilder {\n append(data: any, endings?: string): void;\n getBlob(contentType?: string): Blob;\n}\n\ndeclare var MSBlobBuilder: {\n prototype: MSBlobBuilder;\n new(): MSBlobBuilder;\n};\n\ninterface MSCredentials {\n getAssertion(challenge: string, filter?: MSCredentialFilter, params?: MSSignatureParameters): Promise;\n makeCredential(accountInfo: MSAccountInfo, params: MSCredentialParameters[], challenge?: string): Promise;\n}\n\ndeclare var MSCredentials: {\n prototype: MSCredentials;\n new(): MSCredentials;\n};\n\ninterface MSFIDOCredentialAssertion extends MSAssertion {\n readonly algorithm: string | Algorithm;\n readonly attestation: any;\n readonly publicKey: string;\n readonly transportHints: MSTransportType[];\n}\n\ndeclare var MSFIDOCredentialAssertion: {\n prototype: MSFIDOCredentialAssertion;\n new(): MSFIDOCredentialAssertion;\n};\n\ninterface MSFIDOSignature {\n readonly authnrData: string;\n readonly clientData: string;\n readonly signature: string;\n}\n\ndeclare var MSFIDOSignature: {\n prototype: MSFIDOSignature;\n new(): MSFIDOSignature;\n};\n\ninterface MSFIDOSignatureAssertion extends MSAssertion {\n readonly signature: MSFIDOSignature;\n}\n\ndeclare var MSFIDOSignatureAssertion: {\n prototype: MSFIDOSignatureAssertion;\n new(): MSFIDOSignatureAssertion;\n};\n\ninterface MSGesture {\n target: Element;\n addPointer(pointerId: number): void;\n stop(): void;\n}\n\ndeclare var MSGesture: {\n prototype: MSGesture;\n new(): MSGesture;\n};\n\ninterface MSGestureEvent extends UIEvent {\n readonly clientX: number;\n readonly clientY: number;\n readonly expansion: number;\n readonly gestureObject: any;\n readonly hwTimestamp: number;\n readonly offsetX: number;\n readonly offsetY: number;\n readonly rotation: number;\n readonly scale: number;\n readonly screenX: number;\n readonly screenY: number;\n readonly translationX: number;\n readonly translationY: number;\n readonly velocityAngular: number;\n readonly velocityExpansion: number;\n readonly velocityX: number;\n readonly velocityY: number;\n initGestureEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, viewArg: Window, detailArg: number, screenXArg: number, screenYArg: number, clientXArg: number, clientYArg: number, offsetXArg: number, offsetYArg: number, translationXArg: number, translationYArg: number, scaleArg: number, expansionArg: number, rotationArg: number, velocityXArg: number, velocityYArg: number, velocityExpansionArg: number, velocityAngularArg: number, hwTimestampArg: number): void;\n readonly MSGESTURE_FLAG_BEGIN: number;\n readonly MSGESTURE_FLAG_CANCEL: number;\n readonly MSGESTURE_FLAG_END: number;\n readonly MSGESTURE_FLAG_INERTIA: number;\n readonly MSGESTURE_FLAG_NONE: number;\n}\n\ndeclare var MSGestureEvent: {\n prototype: MSGestureEvent;\n new(): MSGestureEvent;\n readonly MSGESTURE_FLAG_BEGIN: number;\n readonly MSGESTURE_FLAG_CANCEL: number;\n readonly MSGESTURE_FLAG_END: number;\n readonly MSGESTURE_FLAG_INERTIA: number;\n readonly MSGESTURE_FLAG_NONE: number;\n};\n\ninterface MSGraphicsTrust {\n readonly constrictionActive: boolean;\n readonly status: string;\n}\n\ndeclare var MSGraphicsTrust: {\n prototype: MSGraphicsTrust;\n new(): MSGraphicsTrust;\n};\n\ninterface MSHTMLWebViewElement extends HTMLElement {\n readonly canGoBack: boolean;\n readonly canGoForward: boolean;\n readonly containsFullScreenElement: boolean;\n readonly documentTitle: string;\n height: number;\n readonly settings: MSWebViewSettings;\n src: string;\n width: number;\n addWebAllowedObject(name: string, applicationObject: any): void;\n buildLocalStreamUri(contentIdentifier: string, relativePath: string): string;\n capturePreviewToBlobAsync(): MSWebViewAsyncOperation;\n captureSelectedContentToDataPackageAsync(): MSWebViewAsyncOperation;\n getDeferredPermissionRequestById(id: number): DeferredPermissionRequest;\n getDeferredPermissionRequests(): DeferredPermissionRequest[];\n goBack(): void;\n goForward(): void;\n invokeScriptAsync(scriptName: string, ...args: any[]): MSWebViewAsyncOperation;\n navigate(uri: string): void;\n navigateFocus(navigationReason: NavigationReason, origin: FocusNavigationOrigin): void;\n navigateToLocalStreamUri(source: string, streamResolver: any): void;\n navigateToString(contents: string): void;\n navigateWithHttpRequestMessage(requestMessage: any): void;\n refresh(): void;\n stop(): void;\n addEventListener(type: K, listener: (this: MSHTMLWebViewElement, ev: HTMLElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var MSHTMLWebViewElement: {\n prototype: MSHTMLWebViewElement;\n new(): MSHTMLWebViewElement;\n};\n\ninterface MSInputMethodContextEventMap {\n \"MSCandidateWindowHide\": Event;\n \"MSCandidateWindowShow\": Event;\n \"MSCandidateWindowUpdate\": Event;\n}\n\ninterface MSInputMethodContext extends EventTarget {\n readonly compositionEndOffset: number;\n readonly compositionStartOffset: number;\n oncandidatewindowhide: (this: MSInputMethodContext, ev: Event) => any;\n oncandidatewindowshow: (this: MSInputMethodContext, ev: Event) => any;\n oncandidatewindowupdate: (this: MSInputMethodContext, ev: Event) => any;\n readonly target: HTMLElement;\n getCandidateWindowClientRect(): ClientRect;\n getCompositionAlternatives(): string[];\n hasComposition(): boolean;\n isCandidateWindowVisible(): boolean;\n addEventListener(type: K, listener: (this: MSInputMethodContext, ev: MSInputMethodContextEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var MSInputMethodContext: {\n prototype: MSInputMethodContext;\n new(): MSInputMethodContext;\n};\n\ninterface MSManipulationEvent extends UIEvent {\n readonly currentState: number;\n readonly inertiaDestinationX: number;\n readonly inertiaDestinationY: number;\n readonly lastState: number;\n initMSManipulationEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, viewArg: Window, detailArg: number, lastState: number, currentState: number): void;\n readonly MS_MANIPULATION_STATE_ACTIVE: number;\n readonly MS_MANIPULATION_STATE_CANCELLED: number;\n readonly MS_MANIPULATION_STATE_COMMITTED: number;\n readonly MS_MANIPULATION_STATE_DRAGGING: number;\n readonly MS_MANIPULATION_STATE_INERTIA: number;\n readonly MS_MANIPULATION_STATE_PRESELECT: number;\n readonly MS_MANIPULATION_STATE_SELECTING: number;\n readonly MS_MANIPULATION_STATE_STOPPED: number;\n}\n\ndeclare var MSManipulationEvent: {\n prototype: MSManipulationEvent;\n new(): MSManipulationEvent;\n readonly MS_MANIPULATION_STATE_ACTIVE: number;\n readonly MS_MANIPULATION_STATE_CANCELLED: number;\n readonly MS_MANIPULATION_STATE_COMMITTED: number;\n readonly MS_MANIPULATION_STATE_DRAGGING: number;\n readonly MS_MANIPULATION_STATE_INERTIA: number;\n readonly MS_MANIPULATION_STATE_PRESELECT: number;\n readonly MS_MANIPULATION_STATE_SELECTING: number;\n readonly MS_MANIPULATION_STATE_STOPPED: number;\n};\n\ninterface MSMediaKeyError {\n readonly code: number;\n readonly systemCode: number;\n readonly MS_MEDIA_KEYERR_CLIENT: number;\n readonly MS_MEDIA_KEYERR_DOMAIN: number;\n readonly MS_MEDIA_KEYERR_HARDWARECHANGE: number;\n readonly MS_MEDIA_KEYERR_OUTPUT: number;\n readonly MS_MEDIA_KEYERR_SERVICE: number;\n readonly MS_MEDIA_KEYERR_UNKNOWN: number;\n}\n\ndeclare var MSMediaKeyError: {\n prototype: MSMediaKeyError;\n new(): MSMediaKeyError;\n readonly MS_MEDIA_KEYERR_CLIENT: number;\n readonly MS_MEDIA_KEYERR_DOMAIN: number;\n readonly MS_MEDIA_KEYERR_HARDWARECHANGE: number;\n readonly MS_MEDIA_KEYERR_OUTPUT: number;\n readonly MS_MEDIA_KEYERR_SERVICE: number;\n readonly MS_MEDIA_KEYERR_UNKNOWN: number;\n};\n\ninterface MSMediaKeyMessageEvent extends Event {\n readonly destinationURL: string | null;\n readonly message: Uint8Array;\n}\n\ndeclare var MSMediaKeyMessageEvent: {\n prototype: MSMediaKeyMessageEvent;\n new(): MSMediaKeyMessageEvent;\n};\n\ninterface MSMediaKeyNeededEvent extends Event {\n readonly initData: Uint8Array | null;\n}\n\ndeclare var MSMediaKeyNeededEvent: {\n prototype: MSMediaKeyNeededEvent;\n new(): MSMediaKeyNeededEvent;\n};\n\ninterface MSMediaKeys {\n readonly keySystem: string;\n createSession(type: string, initData: Uint8Array, cdmData?: Uint8Array): MSMediaKeySession;\n}\n\ndeclare var MSMediaKeys: {\n prototype: MSMediaKeys;\n new(keySystem: string): MSMediaKeys;\n isTypeSupported(keySystem: string, type?: string): boolean;\n isTypeSupportedWithFeatures(keySystem: string, type?: string): string;\n};\n\ninterface MSMediaKeySession extends EventTarget {\n readonly error: MSMediaKeyError | null;\n readonly keySystem: string;\n readonly sessionId: string;\n close(): void;\n update(key: Uint8Array): void;\n}\n\ndeclare var MSMediaKeySession: {\n prototype: MSMediaKeySession;\n new(): MSMediaKeySession;\n};\n\ninterface MSPointerEvent extends MouseEvent {\n readonly currentPoint: any;\n readonly height: number;\n readonly hwTimestamp: number;\n readonly intermediatePoints: any;\n readonly isPrimary: boolean;\n readonly pointerId: number;\n readonly pointerType: any;\n readonly pressure: number;\n readonly rotation: number;\n readonly tiltX: number;\n readonly tiltY: number;\n readonly width: number;\n getCurrentPoint(element: Element): void;\n getIntermediatePoints(element: Element): void;\n initPointerEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, viewArg: Window, detailArg: number, screenXArg: number, screenYArg: number, clientXArg: number, clientYArg: number, ctrlKeyArg: boolean, altKeyArg: boolean, shiftKeyArg: boolean, metaKeyArg: boolean, buttonArg: number, relatedTargetArg: EventTarget, offsetXArg: number, offsetYArg: number, widthArg: number, heightArg: number, pressure: number, rotation: number, tiltX: number, tiltY: number, pointerIdArg: number, pointerType: any, hwTimestampArg: number, isPrimary: boolean): void;\n}\n\ndeclare var MSPointerEvent: {\n prototype: MSPointerEvent;\n new(typeArg: string, eventInitDict?: PointerEventInit): MSPointerEvent;\n};\n\ninterface MSRangeCollection {\n readonly length: number;\n item(index: number): Range;\n [index: number]: Range;\n}\n\ndeclare var MSRangeCollection: {\n prototype: MSRangeCollection;\n new(): MSRangeCollection;\n};\n\ninterface MSSiteModeEvent extends Event {\n readonly actionURL: string;\n readonly buttonID: number;\n}\n\ndeclare var MSSiteModeEvent: {\n prototype: MSSiteModeEvent;\n new(): MSSiteModeEvent;\n};\n\ninterface MSStream {\n readonly type: string;\n msClose(): void;\n msDetachStream(): any;\n}\n\ndeclare var MSStream: {\n prototype: MSStream;\n new(): MSStream;\n};\n\ninterface MSStreamReader extends EventTarget, MSBaseReader {\n readonly error: DOMError;\n readAsArrayBuffer(stream: MSStream, size?: number): void;\n readAsBinaryString(stream: MSStream, size?: number): void;\n readAsBlob(stream: MSStream, size?: number): void;\n readAsDataURL(stream: MSStream, size?: number): void;\n readAsText(stream: MSStream, encoding?: string, size?: number): void;\n addEventListener(type: K, listener: (this: MSStreamReader, ev: MSBaseReaderEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var MSStreamReader: {\n prototype: MSStreamReader;\n new(): MSStreamReader;\n};\n\ninterface MSWebViewAsyncOperationEventMap {\n \"complete\": Event;\n \"error\": Event;\n}\n\ninterface MSWebViewAsyncOperation extends EventTarget {\n readonly error: DOMError;\n oncomplete: (this: MSWebViewAsyncOperation, ev: Event) => any;\n onerror: (this: MSWebViewAsyncOperation, ev: Event) => any;\n readonly readyState: number;\n readonly result: any;\n readonly target: MSHTMLWebViewElement;\n readonly type: number;\n start(): void;\n readonly COMPLETED: number;\n readonly ERROR: number;\n readonly STARTED: number;\n readonly TYPE_CAPTURE_PREVIEW_TO_RANDOM_ACCESS_STREAM: number;\n readonly TYPE_CREATE_DATA_PACKAGE_FROM_SELECTION: number;\n readonly TYPE_INVOKE_SCRIPT: number;\n addEventListener(type: K, listener: (this: MSWebViewAsyncOperation, ev: MSWebViewAsyncOperationEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var MSWebViewAsyncOperation: {\n prototype: MSWebViewAsyncOperation;\n new(): MSWebViewAsyncOperation;\n readonly COMPLETED: number;\n readonly ERROR: number;\n readonly STARTED: number;\n readonly TYPE_CAPTURE_PREVIEW_TO_RANDOM_ACCESS_STREAM: number;\n readonly TYPE_CREATE_DATA_PACKAGE_FROM_SELECTION: number;\n readonly TYPE_INVOKE_SCRIPT: number;\n};\n\ninterface MSWebViewSettings {\n isIndexedDBEnabled: boolean;\n isJavaScriptEnabled: boolean;\n}\n\ndeclare var MSWebViewSettings: {\n prototype: MSWebViewSettings;\n new(): MSWebViewSettings;\n};\n\ninterface MutationEvent extends Event {\n readonly attrChange: number;\n readonly attrName: string;\n readonly newValue: string;\n readonly prevValue: string;\n readonly relatedNode: Node;\n initMutationEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, relatedNodeArg: Node, prevValueArg: string, newValueArg: string, attrNameArg: string, attrChangeArg: number): void;\n readonly ADDITION: number;\n readonly MODIFICATION: number;\n readonly REMOVAL: number;\n}\n\ndeclare var MutationEvent: {\n prototype: MutationEvent;\n new(): MutationEvent;\n readonly ADDITION: number;\n readonly MODIFICATION: number;\n readonly REMOVAL: number;\n};\n\ninterface MutationObserver {\n disconnect(): void;\n observe(target: Node, options: MutationObserverInit): void;\n takeRecords(): MutationRecord[];\n}\n\ndeclare var MutationObserver: {\n prototype: MutationObserver;\n new(callback: MutationCallback): MutationObserver;\n};\n\ninterface MutationRecord {\n readonly addedNodes: NodeList;\n readonly attributeName: string | null;\n readonly attributeNamespace: string | null;\n readonly nextSibling: Node | null;\n readonly oldValue: string | null;\n readonly previousSibling: Node | null;\n readonly removedNodes: NodeList;\n readonly target: Node;\n readonly type: string;\n}\n\ndeclare var MutationRecord: {\n prototype: MutationRecord;\n new(): MutationRecord;\n};\n\ninterface NamedNodeMap {\n readonly length: number;\n getNamedItem(name: string): Attr;\n getNamedItemNS(namespaceURI: string | null, localName: string | null): Attr;\n item(index: number): Attr;\n removeNamedItem(name: string): Attr;\n removeNamedItemNS(namespaceURI: string | null, localName: string | null): Attr;\n setNamedItem(arg: Attr): Attr;\n setNamedItemNS(arg: Attr): Attr;\n [index: number]: Attr;\n}\n\ndeclare var NamedNodeMap: {\n prototype: NamedNodeMap;\n new(): NamedNodeMap;\n};\n\ninterface NavigationCompletedEvent extends NavigationEvent {\n readonly isSuccess: boolean;\n readonly webErrorStatus: number;\n}\n\ndeclare var NavigationCompletedEvent: {\n prototype: NavigationCompletedEvent;\n new(): NavigationCompletedEvent;\n};\n\ninterface NavigationEvent extends Event {\n readonly uri: string;\n}\n\ndeclare var NavigationEvent: {\n prototype: NavigationEvent;\n new(): NavigationEvent;\n};\n\ninterface NavigationEventWithReferrer extends NavigationEvent {\n readonly referer: string;\n}\n\ndeclare var NavigationEventWithReferrer: {\n prototype: NavigationEventWithReferrer;\n new(): NavigationEventWithReferrer;\n};\n\ninterface Navigator extends Object, NavigatorID, NavigatorOnLine, NavigatorContentUtils, NavigatorStorageUtils, NavigatorGeolocation, MSNavigatorDoNotTrack, MSFileSaver, NavigatorBeacon, NavigatorConcurrentHardware, NavigatorUserMedia {\n readonly authentication: WebAuthentication;\n readonly cookieEnabled: boolean;\n gamepadInputEmulation: GamepadInputEmulationType;\n readonly language: string;\n readonly maxTouchPoints: number;\n readonly mimeTypes: MimeTypeArray;\n readonly msManipulationViewsEnabled: boolean;\n readonly msMaxTouchPoints: number;\n readonly msPointerEnabled: boolean;\n readonly plugins: PluginArray;\n readonly pointerEnabled: boolean;\n readonly serviceWorker: ServiceWorkerContainer;\n readonly webdriver: boolean;\n readonly hardwareConcurrency: number;\n readonly languages: string[];\n getGamepads(): Gamepad[];\n javaEnabled(): boolean;\n msLaunchUri(uri: string, successCallback?: MSLaunchUriCallback, noHandlerCallback?: MSLaunchUriCallback): void;\n requestMediaKeySystemAccess(keySystem: string, supportedConfigurations: MediaKeySystemConfiguration[]): Promise;\n vibrate(pattern: number | number[]): boolean;\n}\n\ndeclare var Navigator: {\n prototype: Navigator;\n new(): Navigator;\n};\n\ninterface Node extends EventTarget {\n readonly attributes: NamedNodeMap;\n readonly baseURI: string | null;\n readonly childNodes: NodeList;\n readonly firstChild: Node | null;\n readonly lastChild: Node | null;\n readonly localName: string | null;\n readonly namespaceURI: string | null;\n readonly nextSibling: Node | null;\n readonly nodeName: string;\n readonly nodeType: number;\n nodeValue: string | null;\n readonly ownerDocument: Document;\n readonly parentElement: HTMLElement | null;\n readonly parentNode: Node | null;\n readonly previousSibling: Node | null;\n textContent: string | null;\n appendChild(newChild: T): T;\n cloneNode(deep?: boolean): Node;\n compareDocumentPosition(other: Node): number;\n contains(child: Node): boolean;\n hasAttributes(): boolean;\n hasChildNodes(): boolean;\n insertBefore(newChild: T, refChild: Node | null): T;\n isDefaultNamespace(namespaceURI: string | null): boolean;\n isEqualNode(arg: Node): boolean;\n isSameNode(other: Node): boolean;\n lookupNamespaceURI(prefix: string | null): string | null;\n lookupPrefix(namespaceURI: string | null): string | null;\n normalize(): void;\n removeChild(oldChild: T): T;\n replaceChild(newChild: Node, oldChild: T): T;\n readonly ATTRIBUTE_NODE: number;\n readonly CDATA_SECTION_NODE: number;\n readonly COMMENT_NODE: number;\n readonly DOCUMENT_FRAGMENT_NODE: number;\n readonly DOCUMENT_NODE: number;\n readonly DOCUMENT_POSITION_CONTAINED_BY: number;\n readonly DOCUMENT_POSITION_CONTAINS: number;\n readonly DOCUMENT_POSITION_DISCONNECTED: number;\n readonly DOCUMENT_POSITION_FOLLOWING: number;\n readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: number;\n readonly DOCUMENT_POSITION_PRECEDING: number;\n readonly DOCUMENT_TYPE_NODE: number;\n readonly ELEMENT_NODE: number;\n readonly ENTITY_NODE: number;\n readonly ENTITY_REFERENCE_NODE: number;\n readonly NOTATION_NODE: number;\n readonly PROCESSING_INSTRUCTION_NODE: number;\n readonly TEXT_NODE: number;\n}\n\ndeclare var Node: {\n prototype: Node;\n new(): Node;\n readonly ATTRIBUTE_NODE: number;\n readonly CDATA_SECTION_NODE: number;\n readonly COMMENT_NODE: number;\n readonly DOCUMENT_FRAGMENT_NODE: number;\n readonly DOCUMENT_NODE: number;\n readonly DOCUMENT_POSITION_CONTAINED_BY: number;\n readonly DOCUMENT_POSITION_CONTAINS: number;\n readonly DOCUMENT_POSITION_DISCONNECTED: number;\n readonly DOCUMENT_POSITION_FOLLOWING: number;\n readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: number;\n readonly DOCUMENT_POSITION_PRECEDING: number;\n readonly DOCUMENT_TYPE_NODE: number;\n readonly ELEMENT_NODE: number;\n readonly ENTITY_NODE: number;\n readonly ENTITY_REFERENCE_NODE: number;\n readonly NOTATION_NODE: number;\n readonly PROCESSING_INSTRUCTION_NODE: number;\n readonly TEXT_NODE: number;\n};\n\ninterface NodeFilter {\n acceptNode(n: Node): number;\n}\n\ndeclare var NodeFilter: {\n readonly FILTER_ACCEPT: number;\n readonly FILTER_REJECT: number;\n readonly FILTER_SKIP: number;\n readonly SHOW_ALL: number;\n readonly SHOW_ATTRIBUTE: number;\n readonly SHOW_CDATA_SECTION: number;\n readonly SHOW_COMMENT: number;\n readonly SHOW_DOCUMENT: number;\n readonly SHOW_DOCUMENT_FRAGMENT: number;\n readonly SHOW_DOCUMENT_TYPE: number;\n readonly SHOW_ELEMENT: number;\n readonly SHOW_ENTITY: number;\n readonly SHOW_ENTITY_REFERENCE: number;\n readonly SHOW_NOTATION: number;\n readonly SHOW_PROCESSING_INSTRUCTION: number;\n readonly SHOW_TEXT: number;\n};\n\ninterface NodeIterator {\n readonly expandEntityReferences: boolean;\n readonly filter: NodeFilter;\n readonly root: Node;\n readonly whatToShow: number;\n detach(): void;\n nextNode(): Node;\n previousNode(): Node;\n}\n\ndeclare var NodeIterator: {\n prototype: NodeIterator;\n new(): NodeIterator;\n};\n\ninterface NodeList {\n readonly length: number;\n item(index: number): Node;\n [index: number]: Node;\n}\n\ndeclare var NodeList: {\n prototype: NodeList;\n new(): NodeList;\n};\n\ninterface NotificationEventMap {\n \"click\": Event;\n \"close\": Event;\n \"error\": Event;\n \"show\": Event;\n}\n\ninterface Notification extends EventTarget {\n readonly body: string;\n readonly dir: NotificationDirection;\n readonly icon: string;\n readonly lang: string;\n onclick: (this: Notification, ev: Event) => any;\n onclose: (this: Notification, ev: Event) => any;\n onerror: (this: Notification, ev: Event) => any;\n onshow: (this: Notification, ev: Event) => any;\n readonly permission: NotificationPermission;\n readonly tag: string;\n readonly title: string;\n close(): void;\n addEventListener(type: K, listener: (this: Notification, ev: NotificationEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var Notification: {\n prototype: Notification;\n new(title: string, options?: NotificationOptions): Notification;\n requestPermission(callback?: NotificationPermissionCallback): Promise;\n};\n\ninterface OES_element_index_uint {\n}\n\ndeclare var OES_element_index_uint: {\n prototype: OES_element_index_uint;\n new(): OES_element_index_uint;\n};\n\ninterface OES_standard_derivatives {\n readonly FRAGMENT_SHADER_DERIVATIVE_HINT_OES: number;\n}\n\ndeclare var OES_standard_derivatives: {\n prototype: OES_standard_derivatives;\n new(): OES_standard_derivatives;\n readonly FRAGMENT_SHADER_DERIVATIVE_HINT_OES: number;\n};\n\ninterface OES_texture_float {\n}\n\ndeclare var OES_texture_float: {\n prototype: OES_texture_float;\n new(): OES_texture_float;\n};\n\ninterface OES_texture_float_linear {\n}\n\ndeclare var OES_texture_float_linear: {\n prototype: OES_texture_float_linear;\n new(): OES_texture_float_linear;\n};\n\ninterface OES_texture_half_float {\n readonly HALF_FLOAT_OES: number;\n}\n\ndeclare var OES_texture_half_float: {\n prototype: OES_texture_half_float;\n new(): OES_texture_half_float;\n readonly HALF_FLOAT_OES: number;\n};\n\ninterface OES_texture_half_float_linear {\n}\n\ndeclare var OES_texture_half_float_linear: {\n prototype: OES_texture_half_float_linear;\n new(): OES_texture_half_float_linear;\n};\n\ninterface OfflineAudioCompletionEvent extends Event {\n readonly renderedBuffer: AudioBuffer;\n}\n\ndeclare var OfflineAudioCompletionEvent: {\n prototype: OfflineAudioCompletionEvent;\n new(): OfflineAudioCompletionEvent;\n};\n\ninterface OfflineAudioContextEventMap extends AudioContextEventMap {\n \"complete\": OfflineAudioCompletionEvent;\n}\n\ninterface OfflineAudioContext extends AudioContextBase {\n readonly length: number;\n oncomplete: (this: OfflineAudioContext, ev: OfflineAudioCompletionEvent) => any;\n startRendering(): Promise;\n suspend(suspendTime: number): Promise;\n addEventListener(type: K, listener: (this: OfflineAudioContext, ev: OfflineAudioContextEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var OfflineAudioContext: {\n prototype: OfflineAudioContext;\n new(numberOfChannels: number, length: number, sampleRate: number): OfflineAudioContext;\n};\n\ninterface OscillatorNodeEventMap {\n \"ended\": MediaStreamErrorEvent;\n}\n\ninterface OscillatorNode extends AudioNode {\n readonly detune: AudioParam;\n readonly frequency: AudioParam;\n onended: (this: OscillatorNode, ev: MediaStreamErrorEvent) => any;\n type: OscillatorType;\n setPeriodicWave(periodicWave: PeriodicWave): void;\n start(when?: number): void;\n stop(when?: number): void;\n addEventListener(type: K, listener: (this: OscillatorNode, ev: OscillatorNodeEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var OscillatorNode: {\n prototype: OscillatorNode;\n new(): OscillatorNode;\n};\n\ninterface OverflowEvent extends UIEvent {\n readonly horizontalOverflow: boolean;\n readonly orient: number;\n readonly verticalOverflow: boolean;\n readonly BOTH: number;\n readonly HORIZONTAL: number;\n readonly VERTICAL: number;\n}\n\ndeclare var OverflowEvent: {\n prototype: OverflowEvent;\n new(): OverflowEvent;\n readonly BOTH: number;\n readonly HORIZONTAL: number;\n readonly VERTICAL: number;\n};\n\ninterface PageTransitionEvent extends Event {\n readonly persisted: boolean;\n}\n\ndeclare var PageTransitionEvent: {\n prototype: PageTransitionEvent;\n new(): PageTransitionEvent;\n};\n\ninterface PannerNode extends AudioNode {\n coneInnerAngle: number;\n coneOuterAngle: number;\n coneOuterGain: number;\n distanceModel: DistanceModelType;\n maxDistance: number;\n panningModel: PanningModelType;\n refDistance: number;\n rolloffFactor: number;\n setOrientation(x: number, y: number, z: number): void;\n setPosition(x: number, y: number, z: number): void;\n setVelocity(x: number, y: number, z: number): void;\n}\n\ndeclare var PannerNode: {\n prototype: PannerNode;\n new(): PannerNode;\n};\n\ninterface Path2D extends Object, CanvasPathMethods {\n}\n\ndeclare var Path2D: {\n prototype: Path2D;\n new(path?: Path2D): Path2D;\n};\n\ninterface PaymentAddress {\n readonly addressLine: string[];\n readonly city: string;\n readonly country: string;\n readonly dependentLocality: string;\n readonly languageCode: string;\n readonly organization: string;\n readonly phone: string;\n readonly postalCode: string;\n readonly recipient: string;\n readonly region: string;\n readonly sortingCode: string;\n toJSON(): any;\n}\n\ndeclare var PaymentAddress: {\n prototype: PaymentAddress;\n new(): PaymentAddress;\n};\n\ninterface PaymentRequestEventMap {\n \"shippingaddresschange\": Event;\n \"shippingoptionchange\": Event;\n}\n\ninterface PaymentRequest extends EventTarget {\n onshippingaddresschange: (this: PaymentRequest, ev: Event) => any;\n onshippingoptionchange: (this: PaymentRequest, ev: Event) => any;\n readonly shippingAddress: PaymentAddress | null;\n readonly shippingOption: string | null;\n readonly shippingType: PaymentShippingType | null;\n abort(): Promise;\n show(): Promise;\n addEventListener(type: K, listener: (this: PaymentRequest, ev: PaymentRequestEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var PaymentRequest: {\n prototype: PaymentRequest;\n new(methodData: PaymentMethodData[], details: PaymentDetails, options?: PaymentOptions): PaymentRequest;\n};\n\ninterface PaymentRequestUpdateEvent extends Event {\n updateWith(d: Promise): void;\n}\n\ndeclare var PaymentRequestUpdateEvent: {\n prototype: PaymentRequestUpdateEvent;\n new(type: string, eventInitDict?: PaymentRequestUpdateEventInit): PaymentRequestUpdateEvent;\n};\n\ninterface PaymentResponse {\n readonly details: any;\n readonly methodName: string;\n readonly payerEmail: string | null;\n readonly payerName: string | null;\n readonly payerPhone: string | null;\n readonly shippingAddress: PaymentAddress | null;\n readonly shippingOption: string | null;\n complete(result?: PaymentComplete): Promise;\n toJSON(): any;\n}\n\ndeclare var PaymentResponse: {\n prototype: PaymentResponse;\n new(): PaymentResponse;\n};\n\ninterface Performance {\n readonly navigation: PerformanceNavigation;\n readonly timing: PerformanceTiming;\n clearMarks(markName?: string): void;\n clearMeasures(measureName?: string): void;\n clearResourceTimings(): void;\n getEntries(): any;\n getEntriesByName(name: string, entryType?: string): any;\n getEntriesByType(entryType: string): any;\n getMarks(markName?: string): any;\n getMeasures(measureName?: string): any;\n mark(markName: string): void;\n measure(measureName: string, startMarkName?: string, endMarkName?: string): void;\n now(): number;\n setResourceTimingBufferSize(maxSize: number): void;\n toJSON(): any;\n}\n\ndeclare var Performance: {\n prototype: Performance;\n new(): Performance;\n};\n\ninterface PerformanceEntry {\n readonly duration: number;\n readonly entryType: string;\n readonly name: string;\n readonly startTime: number;\n}\n\ndeclare var PerformanceEntry: {\n prototype: PerformanceEntry;\n new(): PerformanceEntry;\n};\n\ninterface PerformanceMark extends PerformanceEntry {\n}\n\ndeclare var PerformanceMark: {\n prototype: PerformanceMark;\n new(): PerformanceMark;\n};\n\ninterface PerformanceMeasure extends PerformanceEntry {\n}\n\ndeclare var PerformanceMeasure: {\n prototype: PerformanceMeasure;\n new(): PerformanceMeasure;\n};\n\ninterface PerformanceNavigation {\n readonly redirectCount: number;\n readonly type: number;\n toJSON(): any;\n readonly TYPE_BACK_FORWARD: number;\n readonly TYPE_NAVIGATE: number;\n readonly TYPE_RELOAD: number;\n readonly TYPE_RESERVED: number;\n}\n\ndeclare var PerformanceNavigation: {\n prototype: PerformanceNavigation;\n new(): PerformanceNavigation;\n readonly TYPE_BACK_FORWARD: number;\n readonly TYPE_NAVIGATE: number;\n readonly TYPE_RELOAD: number;\n readonly TYPE_RESERVED: number;\n};\n\ninterface PerformanceNavigationTiming extends PerformanceEntry {\n readonly connectEnd: number;\n readonly connectStart: number;\n readonly domainLookupEnd: number;\n readonly domainLookupStart: number;\n readonly domComplete: number;\n readonly domContentLoadedEventEnd: number;\n readonly domContentLoadedEventStart: number;\n readonly domInteractive: number;\n readonly domLoading: number;\n readonly fetchStart: number;\n readonly loadEventEnd: number;\n readonly loadEventStart: number;\n readonly navigationStart: number;\n readonly redirectCount: number;\n readonly redirectEnd: number;\n readonly redirectStart: number;\n readonly requestStart: number;\n readonly responseEnd: number;\n readonly responseStart: number;\n readonly type: NavigationType;\n readonly unloadEventEnd: number;\n readonly unloadEventStart: number;\n}\n\ndeclare var PerformanceNavigationTiming: {\n prototype: PerformanceNavigationTiming;\n new(): PerformanceNavigationTiming;\n};\n\ninterface PerformanceResourceTiming extends PerformanceEntry {\n readonly connectEnd: number;\n readonly connectStart: number;\n readonly domainLookupEnd: number;\n readonly domainLookupStart: number;\n readonly fetchStart: number;\n readonly initiatorType: string;\n readonly redirectEnd: number;\n readonly redirectStart: number;\n readonly requestStart: number;\n readonly responseEnd: number;\n readonly responseStart: number;\n}\n\ndeclare var PerformanceResourceTiming: {\n prototype: PerformanceResourceTiming;\n new(): PerformanceResourceTiming;\n};\n\ninterface PerformanceTiming {\n readonly connectEnd: number;\n readonly connectStart: number;\n readonly domainLookupEnd: number;\n readonly domainLookupStart: number;\n readonly domComplete: number;\n readonly domContentLoadedEventEnd: number;\n readonly domContentLoadedEventStart: number;\n readonly domInteractive: number;\n readonly domLoading: number;\n readonly fetchStart: number;\n readonly loadEventEnd: number;\n readonly loadEventStart: number;\n readonly msFirstPaint: number;\n readonly navigationStart: number;\n readonly redirectEnd: number;\n readonly redirectStart: number;\n readonly requestStart: number;\n readonly responseEnd: number;\n readonly responseStart: number;\n readonly unloadEventEnd: number;\n readonly unloadEventStart: number;\n readonly secureConnectionStart: number;\n toJSON(): any;\n}\n\ndeclare var PerformanceTiming: {\n prototype: PerformanceTiming;\n new(): PerformanceTiming;\n};\n\ninterface PerfWidgetExternal {\n readonly activeNetworkRequestCount: number;\n readonly averageFrameTime: number;\n readonly averagePaintTime: number;\n readonly extraInformationEnabled: boolean;\n readonly independentRenderingEnabled: boolean;\n readonly irDisablingContentString: string;\n readonly irStatusAvailable: boolean;\n readonly maxCpuSpeed: number;\n readonly paintRequestsPerSecond: number;\n readonly performanceCounter: number;\n readonly performanceCounterFrequency: number;\n addEventListener(eventType: string, callback: Function): void;\n getMemoryUsage(): number;\n getProcessCpuUsage(): number;\n getRecentCpuUsage(last: number | null): any;\n getRecentFrames(last: number | null): any;\n getRecentMemoryUsage(last: number | null): any;\n getRecentPaintRequests(last: number | null): any;\n removeEventListener(eventType: string, callback: Function): void;\n repositionWindow(x: number, y: number): void;\n resizeWindow(width: number, height: number): void;\n}\n\ndeclare var PerfWidgetExternal: {\n prototype: PerfWidgetExternal;\n new(): PerfWidgetExternal;\n};\n\ninterface PeriodicWave {\n}\n\ndeclare var PeriodicWave: {\n prototype: PeriodicWave;\n new(): PeriodicWave;\n};\n\ninterface PermissionRequest extends DeferredPermissionRequest {\n readonly state: MSWebViewPermissionState;\n defer(): void;\n}\n\ndeclare var PermissionRequest: {\n prototype: PermissionRequest;\n new(): PermissionRequest;\n};\n\ninterface PermissionRequestedEvent extends Event {\n readonly permissionRequest: PermissionRequest;\n}\n\ndeclare var PermissionRequestedEvent: {\n prototype: PermissionRequestedEvent;\n new(): PermissionRequestedEvent;\n};\n\ninterface Plugin {\n readonly description: string;\n readonly filename: string;\n readonly length: number;\n readonly name: string;\n readonly version: string;\n item(index: number): MimeType;\n namedItem(type: string): MimeType;\n [index: number]: MimeType;\n}\n\ndeclare var Plugin: {\n prototype: Plugin;\n new(): Plugin;\n};\n\ninterface PluginArray {\n readonly length: number;\n item(index: number): Plugin;\n namedItem(name: string): Plugin;\n refresh(reload?: boolean): void;\n [index: number]: Plugin;\n}\n\ndeclare var PluginArray: {\n prototype: PluginArray;\n new(): PluginArray;\n};\n\ninterface PointerEvent extends MouseEvent {\n readonly currentPoint: any;\n readonly height: number;\n readonly hwTimestamp: number;\n readonly intermediatePoints: any;\n readonly isPrimary: boolean;\n readonly pointerId: number;\n readonly pointerType: any;\n readonly pressure: number;\n readonly rotation: number;\n readonly tiltX: number;\n readonly tiltY: number;\n readonly width: number;\n getCurrentPoint(element: Element): void;\n getIntermediatePoints(element: Element): void;\n initPointerEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, viewArg: Window, detailArg: number, screenXArg: number, screenYArg: number, clientXArg: number, clientYArg: number, ctrlKeyArg: boolean, altKeyArg: boolean, shiftKeyArg: boolean, metaKeyArg: boolean, buttonArg: number, relatedTargetArg: EventTarget, offsetXArg: number, offsetYArg: number, widthArg: number, heightArg: number, pressure: number, rotation: number, tiltX: number, tiltY: number, pointerIdArg: number, pointerType: any, hwTimestampArg: number, isPrimary: boolean): void;\n}\n\ndeclare var PointerEvent: {\n prototype: PointerEvent;\n new(typeArg: string, eventInitDict?: PointerEventInit): PointerEvent;\n};\n\ninterface PopStateEvent extends Event {\n readonly state: any;\n initPopStateEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, stateArg: any): void;\n}\n\ndeclare var PopStateEvent: {\n prototype: PopStateEvent;\n new(typeArg: string, eventInitDict?: PopStateEventInit): PopStateEvent;\n};\n\ninterface Position {\n readonly coords: Coordinates;\n readonly timestamp: number;\n}\n\ndeclare var Position: {\n prototype: Position;\n new(): Position;\n};\n\ninterface PositionError {\n readonly code: number;\n readonly message: string;\n toString(): string;\n readonly PERMISSION_DENIED: number;\n readonly POSITION_UNAVAILABLE: number;\n readonly TIMEOUT: number;\n}\n\ndeclare var PositionError: {\n prototype: PositionError;\n new(): PositionError;\n readonly PERMISSION_DENIED: number;\n readonly POSITION_UNAVAILABLE: number;\n readonly TIMEOUT: number;\n};\n\ninterface ProcessingInstruction extends CharacterData {\n readonly target: string;\n}\n\ndeclare var ProcessingInstruction: {\n prototype: ProcessingInstruction;\n new(): ProcessingInstruction;\n};\n\ninterface ProgressEvent extends Event {\n readonly lengthComputable: boolean;\n readonly loaded: number;\n readonly total: number;\n initProgressEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, lengthComputableArg: boolean, loadedArg: number, totalArg: number): void;\n}\n\ndeclare var ProgressEvent: {\n prototype: ProgressEvent;\n new(type: string, eventInitDict?: ProgressEventInit): ProgressEvent;\n};\n\ninterface PushManager {\n getSubscription(): Promise;\n permissionState(options?: PushSubscriptionOptionsInit): Promise;\n subscribe(options?: PushSubscriptionOptionsInit): Promise;\n}\n\ndeclare var PushManager: {\n prototype: PushManager;\n new(): PushManager;\n};\n\ninterface PushSubscription {\n readonly endpoint: USVString;\n readonly options: PushSubscriptionOptions;\n getKey(name: PushEncryptionKeyName): ArrayBuffer | null;\n toJSON(): any;\n unsubscribe(): Promise;\n}\n\ndeclare var PushSubscription: {\n prototype: PushSubscription;\n new(): PushSubscription;\n};\n\ninterface PushSubscriptionOptions {\n readonly applicationServerKey: ArrayBuffer | null;\n readonly userVisibleOnly: boolean;\n}\n\ndeclare var PushSubscriptionOptions: {\n prototype: PushSubscriptionOptions;\n new(): PushSubscriptionOptions;\n};\n\ninterface Range {\n readonly collapsed: boolean;\n readonly commonAncestorContainer: Node;\n readonly endContainer: Node;\n readonly endOffset: number;\n readonly startContainer: Node;\n readonly startOffset: number;\n cloneContents(): DocumentFragment;\n cloneRange(): Range;\n collapse(toStart: boolean): void;\n compareBoundaryPoints(how: number, sourceRange: Range): number;\n createContextualFragment(fragment: string): DocumentFragment;\n deleteContents(): void;\n detach(): void;\n expand(Unit: ExpandGranularity): boolean;\n extractContents(): DocumentFragment;\n getBoundingClientRect(): ClientRect;\n getClientRects(): ClientRectList;\n insertNode(newNode: Node): void;\n selectNode(refNode: Node): void;\n selectNodeContents(refNode: Node): void;\n setEnd(refNode: Node, offset: number): void;\n setEndAfter(refNode: Node): void;\n setEndBefore(refNode: Node): void;\n setStart(refNode: Node, offset: number): void;\n setStartAfter(refNode: Node): void;\n setStartBefore(refNode: Node): void;\n surroundContents(newParent: Node): void;\n toString(): string;\n readonly END_TO_END: number;\n readonly END_TO_START: number;\n readonly START_TO_END: number;\n readonly START_TO_START: number;\n}\n\ndeclare var Range: {\n prototype: Range;\n new(): Range;\n readonly END_TO_END: number;\n readonly END_TO_START: number;\n readonly START_TO_END: number;\n readonly START_TO_START: number;\n};\n\ninterface ReadableStream {\n readonly locked: boolean;\n cancel(): Promise;\n getReader(): ReadableStreamReader;\n}\n\ndeclare var ReadableStream: {\n prototype: ReadableStream;\n new(): ReadableStream;\n};\n\ninterface ReadableStreamReader {\n cancel(): Promise;\n read(): Promise;\n releaseLock(): void;\n}\n\ndeclare var ReadableStreamReader: {\n prototype: ReadableStreamReader;\n new(): ReadableStreamReader;\n};\n\ninterface Request extends Object, Body {\n readonly cache: RequestCache;\n readonly credentials: RequestCredentials;\n readonly destination: RequestDestination;\n readonly headers: Headers;\n readonly integrity: string;\n readonly keepalive: boolean;\n readonly method: string;\n readonly mode: RequestMode;\n readonly redirect: RequestRedirect;\n readonly referrer: string;\n readonly referrerPolicy: ReferrerPolicy;\n readonly type: RequestType;\n readonly url: string;\n clone(): Request;\n}\n\ndeclare var Request: {\n prototype: Request;\n new(input: Request | string, init?: RequestInit): Request;\n};\n\ninterface Response extends Object, Body {\n readonly body: ReadableStream | null;\n readonly headers: Headers;\n readonly ok: boolean;\n readonly status: number;\n readonly statusText: string;\n readonly type: ResponseType;\n readonly url: string;\n clone(): Response;\n}\n\ndeclare var Response: {\n prototype: Response;\n new(body?: any, init?: ResponseInit): Response;\n error: () => Response;\n redirect: (url: string, status?: number) => Response;\n};\n\ninterface RTCDtlsTransportEventMap {\n \"dtlsstatechange\": RTCDtlsTransportStateChangedEvent;\n \"error\": Event;\n}\n\ninterface RTCDtlsTransport extends RTCStatsProvider {\n ondtlsstatechange: ((this: RTCDtlsTransport, ev: RTCDtlsTransportStateChangedEvent) => any) | null;\n onerror: ((this: RTCDtlsTransport, ev: Event) => any) | null;\n readonly state: RTCDtlsTransportState;\n readonly transport: RTCIceTransport;\n getLocalParameters(): RTCDtlsParameters;\n getRemoteCertificates(): ArrayBuffer[];\n getRemoteParameters(): RTCDtlsParameters | null;\n start(remoteParameters: RTCDtlsParameters): void;\n stop(): void;\n addEventListener(type: K, listener: (this: RTCDtlsTransport, ev: RTCDtlsTransportEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var RTCDtlsTransport: {\n prototype: RTCDtlsTransport;\n new(transport: RTCIceTransport): RTCDtlsTransport;\n};\n\ninterface RTCDtlsTransportStateChangedEvent extends Event {\n readonly state: RTCDtlsTransportState;\n}\n\ndeclare var RTCDtlsTransportStateChangedEvent: {\n prototype: RTCDtlsTransportStateChangedEvent;\n new(): RTCDtlsTransportStateChangedEvent;\n};\n\ninterface RTCDtmfSenderEventMap {\n \"tonechange\": RTCDTMFToneChangeEvent;\n}\n\ninterface RTCDtmfSender extends EventTarget {\n readonly canInsertDTMF: boolean;\n readonly duration: number;\n readonly interToneGap: number;\n ontonechange: (this: RTCDtmfSender, ev: RTCDTMFToneChangeEvent) => any;\n readonly sender: RTCRtpSender;\n readonly toneBuffer: string;\n insertDTMF(tones: string, duration?: number, interToneGap?: number): void;\n addEventListener(type: K, listener: (this: RTCDtmfSender, ev: RTCDtmfSenderEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var RTCDtmfSender: {\n prototype: RTCDtmfSender;\n new(sender: RTCRtpSender): RTCDtmfSender;\n};\n\ninterface RTCDTMFToneChangeEvent extends Event {\n readonly tone: string;\n}\n\ndeclare var RTCDTMFToneChangeEvent: {\n prototype: RTCDTMFToneChangeEvent;\n new(typeArg: string, eventInitDict: RTCDTMFToneChangeEventInit): RTCDTMFToneChangeEvent;\n};\n\ninterface RTCIceCandidate {\n candidate: string | null;\n sdpMid: string | null;\n sdpMLineIndex: number | null;\n toJSON(): any;\n}\n\ndeclare var RTCIceCandidate: {\n prototype: RTCIceCandidate;\n new(candidateInitDict?: RTCIceCandidateInit): RTCIceCandidate;\n};\n\ninterface RTCIceCandidatePairChangedEvent extends Event {\n readonly pair: RTCIceCandidatePair;\n}\n\ndeclare var RTCIceCandidatePairChangedEvent: {\n prototype: RTCIceCandidatePairChangedEvent;\n new(): RTCIceCandidatePairChangedEvent;\n};\n\ninterface RTCIceGathererEventMap {\n \"error\": Event;\n \"localcandidate\": RTCIceGathererEvent;\n}\n\ninterface RTCIceGatherer extends RTCStatsProvider {\n readonly component: RTCIceComponent;\n onerror: ((this: RTCIceGatherer, ev: Event) => any) | null;\n onlocalcandidate: ((this: RTCIceGatherer, ev: RTCIceGathererEvent) => any) | null;\n createAssociatedGatherer(): RTCIceGatherer;\n getLocalCandidates(): RTCIceCandidateDictionary[];\n getLocalParameters(): RTCIceParameters;\n addEventListener(type: K, listener: (this: RTCIceGatherer, ev: RTCIceGathererEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var RTCIceGatherer: {\n prototype: RTCIceGatherer;\n new(options: RTCIceGatherOptions): RTCIceGatherer;\n};\n\ninterface RTCIceGathererEvent extends Event {\n readonly candidate: RTCIceCandidateDictionary | RTCIceCandidateComplete;\n}\n\ndeclare var RTCIceGathererEvent: {\n prototype: RTCIceGathererEvent;\n new(): RTCIceGathererEvent;\n};\n\ninterface RTCIceTransportEventMap {\n \"candidatepairchange\": RTCIceCandidatePairChangedEvent;\n \"icestatechange\": RTCIceTransportStateChangedEvent;\n}\n\ninterface RTCIceTransport extends RTCStatsProvider {\n readonly component: RTCIceComponent;\n readonly iceGatherer: RTCIceGatherer | null;\n oncandidatepairchange: ((this: RTCIceTransport, ev: RTCIceCandidatePairChangedEvent) => any) | null;\n onicestatechange: ((this: RTCIceTransport, ev: RTCIceTransportStateChangedEvent) => any) | null;\n readonly role: RTCIceRole;\n readonly state: RTCIceTransportState;\n addRemoteCandidate(remoteCandidate: RTCIceCandidateDictionary | RTCIceCandidateComplete): void;\n createAssociatedTransport(): RTCIceTransport;\n getNominatedCandidatePair(): RTCIceCandidatePair | null;\n getRemoteCandidates(): RTCIceCandidateDictionary[];\n getRemoteParameters(): RTCIceParameters | null;\n setRemoteCandidates(remoteCandidates: RTCIceCandidateDictionary[]): void;\n start(gatherer: RTCIceGatherer, remoteParameters: RTCIceParameters, role?: RTCIceRole): void;\n stop(): void;\n addEventListener(type: K, listener: (this: RTCIceTransport, ev: RTCIceTransportEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var RTCIceTransport: {\n prototype: RTCIceTransport;\n new(): RTCIceTransport;\n};\n\ninterface RTCIceTransportStateChangedEvent extends Event {\n readonly state: RTCIceTransportState;\n}\n\ndeclare var RTCIceTransportStateChangedEvent: {\n prototype: RTCIceTransportStateChangedEvent;\n new(): RTCIceTransportStateChangedEvent;\n};\n\ninterface RTCPeerConnectionEventMap {\n \"addstream\": MediaStreamEvent;\n \"icecandidate\": RTCPeerConnectionIceEvent;\n \"iceconnectionstatechange\": Event;\n \"icegatheringstatechange\": Event;\n \"negotiationneeded\": Event;\n \"removestream\": MediaStreamEvent;\n \"signalingstatechange\": Event;\n}\n\ninterface RTCPeerConnection extends EventTarget {\n readonly canTrickleIceCandidates: boolean | null;\n readonly iceConnectionState: RTCIceConnectionState;\n readonly iceGatheringState: RTCIceGatheringState;\n readonly localDescription: RTCSessionDescription | null;\n onaddstream: (this: RTCPeerConnection, ev: MediaStreamEvent) => any;\n onicecandidate: (this: RTCPeerConnection, ev: RTCPeerConnectionIceEvent) => any;\n oniceconnectionstatechange: (this: RTCPeerConnection, ev: Event) => any;\n onicegatheringstatechange: (this: RTCPeerConnection, ev: Event) => any;\n onnegotiationneeded: (this: RTCPeerConnection, ev: Event) => any;\n onremovestream: (this: RTCPeerConnection, ev: MediaStreamEvent) => any;\n onsignalingstatechange: (this: RTCPeerConnection, ev: Event) => any;\n readonly remoteDescription: RTCSessionDescription | null;\n readonly signalingState: RTCSignalingState;\n addIceCandidate(candidate: RTCIceCandidate, successCallback?: VoidFunction, failureCallback?: RTCPeerConnectionErrorCallback): Promise;\n addStream(stream: MediaStream): void;\n close(): void;\n createAnswer(successCallback?: RTCSessionDescriptionCallback, failureCallback?: RTCPeerConnectionErrorCallback): Promise;\n createOffer(successCallback?: RTCSessionDescriptionCallback, failureCallback?: RTCPeerConnectionErrorCallback, options?: RTCOfferOptions): Promise;\n getConfiguration(): RTCConfiguration;\n getLocalStreams(): MediaStream[];\n getRemoteStreams(): MediaStream[];\n getStats(selector: MediaStreamTrack | null, successCallback?: RTCStatsCallback, failureCallback?: RTCPeerConnectionErrorCallback): Promise;\n getStreamById(streamId: string): MediaStream | null;\n removeStream(stream: MediaStream): void;\n setLocalDescription(description: RTCSessionDescription, successCallback?: VoidFunction, failureCallback?: RTCPeerConnectionErrorCallback): Promise;\n setRemoteDescription(description: RTCSessionDescription, successCallback?: VoidFunction, failureCallback?: RTCPeerConnectionErrorCallback): Promise;\n addEventListener(type: K, listener: (this: RTCPeerConnection, ev: RTCPeerConnectionEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var RTCPeerConnection: {\n prototype: RTCPeerConnection;\n new(configuration: RTCConfiguration): RTCPeerConnection;\n};\n\ninterface RTCPeerConnectionIceEvent extends Event {\n readonly candidate: RTCIceCandidate;\n}\n\ndeclare var RTCPeerConnectionIceEvent: {\n prototype: RTCPeerConnectionIceEvent;\n new(type: string, eventInitDict: RTCPeerConnectionIceEventInit): RTCPeerConnectionIceEvent;\n};\n\ninterface RTCRtpReceiverEventMap {\n \"error\": Event;\n}\n\ninterface RTCRtpReceiver extends RTCStatsProvider {\n onerror: ((this: RTCRtpReceiver, ev: Event) => any) | null;\n readonly rtcpTransport: RTCDtlsTransport;\n readonly track: MediaStreamTrack | null;\n readonly transport: RTCDtlsTransport | RTCSrtpSdesTransport;\n getContributingSources(): RTCRtpContributingSource[];\n receive(parameters: RTCRtpParameters): void;\n requestSendCSRC(csrc: number): void;\n setTransport(transport: RTCDtlsTransport | RTCSrtpSdesTransport, rtcpTransport?: RTCDtlsTransport): void;\n stop(): void;\n addEventListener(type: K, listener: (this: RTCRtpReceiver, ev: RTCRtpReceiverEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var RTCRtpReceiver: {\n prototype: RTCRtpReceiver;\n new(transport: RTCDtlsTransport | RTCSrtpSdesTransport, kind: string, rtcpTransport?: RTCDtlsTransport): RTCRtpReceiver;\n getCapabilities(kind?: string): RTCRtpCapabilities;\n};\n\ninterface RTCRtpSenderEventMap {\n \"error\": Event;\n \"ssrcconflict\": RTCSsrcConflictEvent;\n}\n\ninterface RTCRtpSender extends RTCStatsProvider {\n onerror: ((this: RTCRtpSender, ev: Event) => any) | null;\n onssrcconflict: ((this: RTCRtpSender, ev: RTCSsrcConflictEvent) => any) | null;\n readonly rtcpTransport: RTCDtlsTransport;\n readonly track: MediaStreamTrack;\n readonly transport: RTCDtlsTransport | RTCSrtpSdesTransport;\n send(parameters: RTCRtpParameters): void;\n setTrack(track: MediaStreamTrack): void;\n setTransport(transport: RTCDtlsTransport | RTCSrtpSdesTransport, rtcpTransport?: RTCDtlsTransport): void;\n stop(): void;\n addEventListener(type: K, listener: (this: RTCRtpSender, ev: RTCRtpSenderEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var RTCRtpSender: {\n prototype: RTCRtpSender;\n new(track: MediaStreamTrack, transport: RTCDtlsTransport | RTCSrtpSdesTransport, rtcpTransport?: RTCDtlsTransport): RTCRtpSender;\n getCapabilities(kind?: string): RTCRtpCapabilities;\n};\n\ninterface RTCSessionDescription {\n sdp: string | null;\n type: RTCSdpType | null;\n toJSON(): any;\n}\n\ndeclare var RTCSessionDescription: {\n prototype: RTCSessionDescription;\n new(descriptionInitDict?: RTCSessionDescriptionInit): RTCSessionDescription;\n};\n\ninterface RTCSrtpSdesTransportEventMap {\n \"error\": Event;\n}\n\ninterface RTCSrtpSdesTransport extends EventTarget {\n onerror: ((this: RTCSrtpSdesTransport, ev: Event) => any) | null;\n readonly transport: RTCIceTransport;\n addEventListener(type: K, listener: (this: RTCSrtpSdesTransport, ev: RTCSrtpSdesTransportEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var RTCSrtpSdesTransport: {\n prototype: RTCSrtpSdesTransport;\n new(transport: RTCIceTransport, encryptParameters: RTCSrtpSdesParameters, decryptParameters: RTCSrtpSdesParameters): RTCSrtpSdesTransport;\n getLocalParameters(): RTCSrtpSdesParameters[];\n};\n\ninterface RTCSsrcConflictEvent extends Event {\n readonly ssrc: number;\n}\n\ndeclare var RTCSsrcConflictEvent: {\n prototype: RTCSsrcConflictEvent;\n new(): RTCSsrcConflictEvent;\n};\n\ninterface RTCStatsProvider extends EventTarget {\n getStats(): Promise;\n msGetStats(): Promise;\n}\n\ndeclare var RTCStatsProvider: {\n prototype: RTCStatsProvider;\n new(): RTCStatsProvider;\n};\n\ninterface ScopedCredential {\n readonly id: ArrayBuffer;\n readonly type: ScopedCredentialType;\n}\n\ndeclare var ScopedCredential: {\n prototype: ScopedCredential;\n new(): ScopedCredential;\n};\n\ninterface ScopedCredentialInfo {\n readonly credential: ScopedCredential;\n readonly publicKey: CryptoKey;\n}\n\ndeclare var ScopedCredentialInfo: {\n prototype: ScopedCredentialInfo;\n new(): ScopedCredentialInfo;\n};\n\ninterface ScreenEventMap {\n \"MSOrientationChange\": Event;\n}\n\ninterface Screen extends EventTarget {\n readonly availHeight: number;\n readonly availWidth: number;\n bufferDepth: number;\n readonly colorDepth: number;\n readonly deviceXDPI: number;\n readonly deviceYDPI: number;\n readonly fontSmoothingEnabled: boolean;\n readonly height: number;\n readonly logicalXDPI: number;\n readonly logicalYDPI: number;\n readonly msOrientation: string;\n onmsorientationchange: (this: Screen, ev: Event) => any;\n readonly pixelDepth: number;\n readonly systemXDPI: number;\n readonly systemYDPI: number;\n readonly width: number;\n msLockOrientation(orientations: string | string[]): boolean;\n msUnlockOrientation(): void;\n addEventListener(type: K, listener: (this: Screen, ev: ScreenEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var Screen: {\n prototype: Screen;\n new(): Screen;\n};\n\ninterface ScriptNotifyEvent extends Event {\n readonly callingUri: string;\n readonly value: string;\n}\n\ndeclare var ScriptNotifyEvent: {\n prototype: ScriptNotifyEvent;\n new(): ScriptNotifyEvent;\n};\n\ninterface ScriptProcessorNodeEventMap {\n \"audioprocess\": AudioProcessingEvent;\n}\n\ninterface ScriptProcessorNode extends AudioNode {\n readonly bufferSize: number;\n onaudioprocess: (this: ScriptProcessorNode, ev: AudioProcessingEvent) => any;\n addEventListener(type: K, listener: (this: ScriptProcessorNode, ev: ScriptProcessorNodeEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var ScriptProcessorNode: {\n prototype: ScriptProcessorNode;\n new(): ScriptProcessorNode;\n};\n\ninterface Selection {\n readonly anchorNode: Node;\n readonly anchorOffset: number;\n readonly baseNode: Node;\n readonly baseOffset: number;\n readonly extentNode: Node;\n readonly extentOffset: number;\n readonly focusNode: Node;\n readonly focusOffset: number;\n readonly isCollapsed: boolean;\n readonly rangeCount: number;\n readonly type: string;\n addRange(range: Range): void;\n collapse(parentNode: Node, offset: number): void;\n collapseToEnd(): void;\n collapseToStart(): void;\n containsNode(node: Node, partlyContained: boolean): boolean;\n deleteFromDocument(): void;\n empty(): void;\n extend(newNode: Node, offset: number): void;\n getRangeAt(index: number): Range;\n removeAllRanges(): void;\n removeRange(range: Range): void;\n selectAllChildren(parentNode: Node): void;\n setBaseAndExtent(baseNode: Node, baseOffset: number, extentNode: Node, extentOffset: number): void;\n setPosition(parentNode: Node, offset: number): void;\n toString(): string;\n}\n\ndeclare var Selection: {\n prototype: Selection;\n new(): Selection;\n};\n\ninterface ServiceWorkerEventMap extends AbstractWorkerEventMap {\n \"statechange\": Event;\n}\n\ninterface ServiceWorker extends EventTarget, AbstractWorker {\n onstatechange: (this: ServiceWorker, ev: Event) => any;\n readonly scriptURL: USVString;\n readonly state: ServiceWorkerState;\n postMessage(message: any, transfer?: any[]): void;\n addEventListener(type: K, listener: (this: ServiceWorker, ev: ServiceWorkerEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var ServiceWorker: {\n prototype: ServiceWorker;\n new(): ServiceWorker;\n};\n\ninterface ServiceWorkerContainerEventMap {\n \"controllerchange\": Event;\n \"message\": ServiceWorkerMessageEvent;\n}\n\ninterface ServiceWorkerContainer extends EventTarget {\n readonly controller: ServiceWorker | null;\n oncontrollerchange: (this: ServiceWorkerContainer, ev: Event) => any;\n onmessage: (this: ServiceWorkerContainer, ev: ServiceWorkerMessageEvent) => any;\n readonly ready: Promise;\n getRegistration(clientURL?: USVString): Promise;\n getRegistrations(): any;\n register(scriptURL: USVString, options?: RegistrationOptions): Promise;\n addEventListener(type: K, listener: (this: ServiceWorkerContainer, ev: ServiceWorkerContainerEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var ServiceWorkerContainer: {\n prototype: ServiceWorkerContainer;\n new(): ServiceWorkerContainer;\n};\n\ninterface ServiceWorkerMessageEvent extends Event {\n readonly data: any;\n readonly lastEventId: string;\n readonly origin: string;\n readonly ports: MessagePort[] | null;\n readonly source: ServiceWorker | MessagePort | null;\n}\n\ndeclare var ServiceWorkerMessageEvent: {\n prototype: ServiceWorkerMessageEvent;\n new(type: string, eventInitDict?: ServiceWorkerMessageEventInit): ServiceWorkerMessageEvent;\n};\n\ninterface ServiceWorkerRegistrationEventMap {\n \"updatefound\": Event;\n}\n\ninterface ServiceWorkerRegistration extends EventTarget {\n readonly active: ServiceWorker | null;\n readonly installing: ServiceWorker | null;\n onupdatefound: (this: ServiceWorkerRegistration, ev: Event) => any;\n readonly pushManager: PushManager;\n readonly scope: USVString;\n readonly sync: SyncManager;\n readonly waiting: ServiceWorker | null;\n getNotifications(filter?: GetNotificationOptions): any;\n showNotification(title: string, options?: NotificationOptions): Promise;\n unregister(): Promise;\n update(): Promise;\n addEventListener(type: K, listener: (this: ServiceWorkerRegistration, ev: ServiceWorkerRegistrationEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var ServiceWorkerRegistration: {\n prototype: ServiceWorkerRegistration;\n new(): ServiceWorkerRegistration;\n};\n\ninterface SourceBuffer extends EventTarget {\n appendWindowEnd: number;\n appendWindowStart: number;\n readonly audioTracks: AudioTrackList;\n readonly buffered: TimeRanges;\n mode: AppendMode;\n timestampOffset: number;\n readonly updating: boolean;\n readonly videoTracks: VideoTrackList;\n abort(): void;\n appendBuffer(data: ArrayBuffer | ArrayBufferView): void;\n appendStream(stream: MSStream, maxSize?: number): void;\n remove(start: number, end: number): void;\n}\n\ndeclare var SourceBuffer: {\n prototype: SourceBuffer;\n new(): SourceBuffer;\n};\n\ninterface SourceBufferList extends EventTarget {\n readonly length: number;\n item(index: number): SourceBuffer;\n [index: number]: SourceBuffer;\n}\n\ndeclare var SourceBufferList: {\n prototype: SourceBufferList;\n new(): SourceBufferList;\n};\n\ninterface SpeechSynthesisEventMap {\n \"voiceschanged\": Event;\n}\n\ninterface SpeechSynthesis extends EventTarget {\n onvoiceschanged: (this: SpeechSynthesis, ev: Event) => any;\n readonly paused: boolean;\n readonly pending: boolean;\n readonly speaking: boolean;\n cancel(): void;\n getVoices(): SpeechSynthesisVoice[];\n pause(): void;\n resume(): void;\n speak(utterance: SpeechSynthesisUtterance): void;\n addEventListener(type: K, listener: (this: SpeechSynthesis, ev: SpeechSynthesisEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SpeechSynthesis: {\n prototype: SpeechSynthesis;\n new(): SpeechSynthesis;\n};\n\ninterface SpeechSynthesisEvent extends Event {\n readonly charIndex: number;\n readonly elapsedTime: number;\n readonly name: string;\n readonly utterance: SpeechSynthesisUtterance | null;\n}\n\ndeclare var SpeechSynthesisEvent: {\n prototype: SpeechSynthesisEvent;\n new(type: string, eventInitDict?: SpeechSynthesisEventInit): SpeechSynthesisEvent;\n};\n\ninterface SpeechSynthesisUtteranceEventMap {\n \"boundary\": Event;\n \"end\": Event;\n \"error\": Event;\n \"mark\": Event;\n \"pause\": Event;\n \"resume\": Event;\n \"start\": Event;\n}\n\ninterface SpeechSynthesisUtterance extends EventTarget {\n lang: string;\n onboundary: (this: SpeechSynthesisUtterance, ev: Event) => any;\n onend: (this: SpeechSynthesisUtterance, ev: Event) => any;\n onerror: (this: SpeechSynthesisUtterance, ev: Event) => any;\n onmark: (this: SpeechSynthesisUtterance, ev: Event) => any;\n onpause: (this: SpeechSynthesisUtterance, ev: Event) => any;\n onresume: (this: SpeechSynthesisUtterance, ev: Event) => any;\n onstart: (this: SpeechSynthesisUtterance, ev: Event) => any;\n pitch: number;\n rate: number;\n text: string;\n voice: SpeechSynthesisVoice;\n volume: number;\n addEventListener(type: K, listener: (this: SpeechSynthesisUtterance, ev: SpeechSynthesisUtteranceEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SpeechSynthesisUtterance: {\n prototype: SpeechSynthesisUtterance;\n new(text?: string): SpeechSynthesisUtterance;\n};\n\ninterface SpeechSynthesisVoice {\n readonly default: boolean;\n readonly lang: string;\n readonly localService: boolean;\n readonly name: string;\n readonly voiceURI: string;\n}\n\ndeclare var SpeechSynthesisVoice: {\n prototype: SpeechSynthesisVoice;\n new(): SpeechSynthesisVoice;\n};\n\ninterface StereoPannerNode extends AudioNode {\n readonly pan: AudioParam;\n}\n\ndeclare var StereoPannerNode: {\n prototype: StereoPannerNode;\n new(): StereoPannerNode;\n};\n\ninterface Storage {\n readonly length: number;\n clear(): void;\n getItem(key: string): string | null;\n key(index: number): string | null;\n removeItem(key: string): void;\n setItem(key: string, data: string): void;\n [key: string]: any;\n [index: number]: string;\n}\n\ndeclare var Storage: {\n prototype: Storage;\n new(): Storage;\n};\n\ninterface StorageEvent extends Event {\n readonly url: string;\n key?: string;\n oldValue?: string;\n newValue?: string;\n storageArea?: Storage;\n}\n\ndeclare var StorageEvent: {\n prototype: StorageEvent;\n new (type: string, eventInitDict?: StorageEventInit): StorageEvent;\n};\n\ninterface StyleMedia {\n readonly type: string;\n matchMedium(mediaquery: string): boolean;\n}\n\ndeclare var StyleMedia: {\n prototype: StyleMedia;\n new(): StyleMedia;\n};\n\ninterface StyleSheet {\n disabled: boolean;\n readonly href: string;\n readonly media: MediaList;\n readonly ownerNode: Node;\n readonly parentStyleSheet: StyleSheet;\n readonly title: string;\n readonly type: string;\n}\n\ndeclare var StyleSheet: {\n prototype: StyleSheet;\n new(): StyleSheet;\n};\n\ninterface StyleSheetList {\n readonly length: number;\n item(index?: number): StyleSheet;\n [index: number]: StyleSheet;\n}\n\ndeclare var StyleSheetList: {\n prototype: StyleSheetList;\n new(): StyleSheetList;\n};\n\ninterface StyleSheetPageList {\n readonly length: number;\n item(index: number): CSSPageRule;\n [index: number]: CSSPageRule;\n}\n\ndeclare var StyleSheetPageList: {\n prototype: StyleSheetPageList;\n new(): StyleSheetPageList;\n};\n\ninterface SubtleCrypto {\n decrypt(algorithm: string | RsaOaepParams | AesCtrParams | AesCbcParams | AesCmacParams | AesGcmParams | AesCfbParams, key: CryptoKey, data: BufferSource): PromiseLike;\n deriveBits(algorithm: string | EcdhKeyDeriveParams | DhKeyDeriveParams | ConcatParams | HkdfCtrParams | Pbkdf2Params, baseKey: CryptoKey, length: number): PromiseLike;\n deriveKey(algorithm: string | EcdhKeyDeriveParams | DhKeyDeriveParams | ConcatParams | HkdfCtrParams | Pbkdf2Params, baseKey: CryptoKey, derivedKeyType: string | AesDerivedKeyParams | HmacImportParams | ConcatParams | HkdfCtrParams | Pbkdf2Params, extractable: boolean, keyUsages: string[]): PromiseLike;\n digest(algorithm: AlgorithmIdentifier, data: BufferSource): PromiseLike;\n encrypt(algorithm: string | RsaOaepParams | AesCtrParams | AesCbcParams | AesCmacParams | AesGcmParams | AesCfbParams, key: CryptoKey, data: BufferSource): PromiseLike;\n exportKey(format: \"jwk\", key: CryptoKey): PromiseLike;\n exportKey(format: \"raw\" | \"pkcs8\" | \"spki\", key: CryptoKey): PromiseLike;\n exportKey(format: string, key: CryptoKey): PromiseLike;\n generateKey(algorithm: string, extractable: boolean, keyUsages: string[]): PromiseLike;\n generateKey(algorithm: RsaHashedKeyGenParams | EcKeyGenParams | DhKeyGenParams, extractable: boolean, keyUsages: string[]): PromiseLike;\n generateKey(algorithm: AesKeyGenParams | HmacKeyGenParams | Pbkdf2Params, extractable: boolean, keyUsages: string[]): PromiseLike;\n importKey(format: \"jwk\", keyData: JsonWebKey, algorithm: string | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | DhImportKeyParams, extractable: boolean, keyUsages: string[]): PromiseLike;\n importKey(format: \"raw\" | \"pkcs8\" | \"spki\", keyData: BufferSource, algorithm: string | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | DhImportKeyParams, extractable: boolean, keyUsages: string[]): PromiseLike;\n importKey(format: string, keyData: JsonWebKey | BufferSource, algorithm: string | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | DhImportKeyParams, extractable: boolean, keyUsages: string[]): PromiseLike;\n sign(algorithm: string | RsaPssParams | EcdsaParams | AesCmacParams, key: CryptoKey, data: BufferSource): PromiseLike;\n unwrapKey(format: string, wrappedKey: BufferSource, unwrappingKey: CryptoKey, unwrapAlgorithm: AlgorithmIdentifier, unwrappedKeyAlgorithm: AlgorithmIdentifier, extractable: boolean, keyUsages: string[]): PromiseLike;\n verify(algorithm: string | RsaPssParams | EcdsaParams | AesCmacParams, key: CryptoKey, signature: BufferSource, data: BufferSource): PromiseLike;\n wrapKey(format: string, key: CryptoKey, wrappingKey: CryptoKey, wrapAlgorithm: AlgorithmIdentifier): PromiseLike;\n}\n\ndeclare var SubtleCrypto: {\n prototype: SubtleCrypto;\n new(): SubtleCrypto;\n};\n\ninterface SVGAElement extends SVGGraphicsElement, SVGURIReference {\n readonly target: SVGAnimatedString;\n addEventListener(type: K, listener: (this: SVGAElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGAElement: {\n prototype: SVGAElement;\n new(): SVGAElement;\n};\n\ninterface SVGAngle {\n readonly unitType: number;\n value: number;\n valueAsString: string;\n valueInSpecifiedUnits: number;\n convertToSpecifiedUnits(unitType: number): void;\n newValueSpecifiedUnits(unitType: number, valueInSpecifiedUnits: number): void;\n readonly SVG_ANGLETYPE_DEG: number;\n readonly SVG_ANGLETYPE_GRAD: number;\n readonly SVG_ANGLETYPE_RAD: number;\n readonly SVG_ANGLETYPE_UNKNOWN: number;\n readonly SVG_ANGLETYPE_UNSPECIFIED: number;\n}\n\ndeclare var SVGAngle: {\n prototype: SVGAngle;\n new(): SVGAngle;\n readonly SVG_ANGLETYPE_DEG: number;\n readonly SVG_ANGLETYPE_GRAD: number;\n readonly SVG_ANGLETYPE_RAD: number;\n readonly SVG_ANGLETYPE_UNKNOWN: number;\n readonly SVG_ANGLETYPE_UNSPECIFIED: number;\n};\n\ninterface SVGAnimatedAngle {\n readonly animVal: SVGAngle;\n readonly baseVal: SVGAngle;\n}\n\ndeclare var SVGAnimatedAngle: {\n prototype: SVGAnimatedAngle;\n new(): SVGAnimatedAngle;\n};\n\ninterface SVGAnimatedBoolean {\n readonly animVal: boolean;\n baseVal: boolean;\n}\n\ndeclare var SVGAnimatedBoolean: {\n prototype: SVGAnimatedBoolean;\n new(): SVGAnimatedBoolean;\n};\n\ninterface SVGAnimatedEnumeration {\n readonly animVal: number;\n baseVal: number;\n}\n\ndeclare var SVGAnimatedEnumeration: {\n prototype: SVGAnimatedEnumeration;\n new(): SVGAnimatedEnumeration;\n};\n\ninterface SVGAnimatedInteger {\n readonly animVal: number;\n baseVal: number;\n}\n\ndeclare var SVGAnimatedInteger: {\n prototype: SVGAnimatedInteger;\n new(): SVGAnimatedInteger;\n};\n\ninterface SVGAnimatedLength {\n readonly animVal: SVGLength;\n readonly baseVal: SVGLength;\n}\n\ndeclare var SVGAnimatedLength: {\n prototype: SVGAnimatedLength;\n new(): SVGAnimatedLength;\n};\n\ninterface SVGAnimatedLengthList {\n readonly animVal: SVGLengthList;\n readonly baseVal: SVGLengthList;\n}\n\ndeclare var SVGAnimatedLengthList: {\n prototype: SVGAnimatedLengthList;\n new(): SVGAnimatedLengthList;\n};\n\ninterface SVGAnimatedNumber {\n readonly animVal: number;\n baseVal: number;\n}\n\ndeclare var SVGAnimatedNumber: {\n prototype: SVGAnimatedNumber;\n new(): SVGAnimatedNumber;\n};\n\ninterface SVGAnimatedNumberList {\n readonly animVal: SVGNumberList;\n readonly baseVal: SVGNumberList;\n}\n\ndeclare var SVGAnimatedNumberList: {\n prototype: SVGAnimatedNumberList;\n new(): SVGAnimatedNumberList;\n};\n\ninterface SVGAnimatedPreserveAspectRatio {\n readonly animVal: SVGPreserveAspectRatio;\n readonly baseVal: SVGPreserveAspectRatio;\n}\n\ndeclare var SVGAnimatedPreserveAspectRatio: {\n prototype: SVGAnimatedPreserveAspectRatio;\n new(): SVGAnimatedPreserveAspectRatio;\n};\n\ninterface SVGAnimatedRect {\n readonly animVal: SVGRect;\n readonly baseVal: SVGRect;\n}\n\ndeclare var SVGAnimatedRect: {\n prototype: SVGAnimatedRect;\n new(): SVGAnimatedRect;\n};\n\ninterface SVGAnimatedString {\n readonly animVal: string;\n baseVal: string;\n}\n\ndeclare var SVGAnimatedString: {\n prototype: SVGAnimatedString;\n new(): SVGAnimatedString;\n};\n\ninterface SVGAnimatedTransformList {\n readonly animVal: SVGTransformList;\n readonly baseVal: SVGTransformList;\n}\n\ndeclare var SVGAnimatedTransformList: {\n prototype: SVGAnimatedTransformList;\n new(): SVGAnimatedTransformList;\n};\n\ninterface SVGCircleElement extends SVGGraphicsElement {\n readonly cx: SVGAnimatedLength;\n readonly cy: SVGAnimatedLength;\n readonly r: SVGAnimatedLength;\n addEventListener(type: K, listener: (this: SVGCircleElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGCircleElement: {\n prototype: SVGCircleElement;\n new(): SVGCircleElement;\n};\n\ninterface SVGClipPathElement extends SVGGraphicsElement, SVGUnitTypes {\n readonly clipPathUnits: SVGAnimatedEnumeration;\n addEventListener(type: K, listener: (this: SVGClipPathElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGClipPathElement: {\n prototype: SVGClipPathElement;\n new(): SVGClipPathElement;\n};\n\ninterface SVGComponentTransferFunctionElement extends SVGElement {\n readonly amplitude: SVGAnimatedNumber;\n readonly exponent: SVGAnimatedNumber;\n readonly intercept: SVGAnimatedNumber;\n readonly offset: SVGAnimatedNumber;\n readonly slope: SVGAnimatedNumber;\n readonly tableValues: SVGAnimatedNumberList;\n readonly type: SVGAnimatedEnumeration;\n readonly SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE: number;\n readonly SVG_FECOMPONENTTRANSFER_TYPE_GAMMA: number;\n readonly SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY: number;\n readonly SVG_FECOMPONENTTRANSFER_TYPE_LINEAR: number;\n readonly SVG_FECOMPONENTTRANSFER_TYPE_TABLE: number;\n readonly SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN: number;\n addEventListener(type: K, listener: (this: SVGComponentTransferFunctionElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGComponentTransferFunctionElement: {\n prototype: SVGComponentTransferFunctionElement;\n new(): SVGComponentTransferFunctionElement;\n readonly SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE: number;\n readonly SVG_FECOMPONENTTRANSFER_TYPE_GAMMA: number;\n readonly SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY: number;\n readonly SVG_FECOMPONENTTRANSFER_TYPE_LINEAR: number;\n readonly SVG_FECOMPONENTTRANSFER_TYPE_TABLE: number;\n readonly SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN: number;\n};\n\ninterface SVGDefsElement extends SVGGraphicsElement {\n addEventListener(type: K, listener: (this: SVGDefsElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGDefsElement: {\n prototype: SVGDefsElement;\n new(): SVGDefsElement;\n};\n\ninterface SVGDescElement extends SVGElement {\n addEventListener(type: K, listener: (this: SVGDescElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGDescElement: {\n prototype: SVGDescElement;\n new(): SVGDescElement;\n};\n\ninterface SVGElementEventMap extends ElementEventMap {\n \"click\": MouseEvent;\n \"dblclick\": MouseEvent;\n \"focusin\": FocusEvent;\n \"focusout\": FocusEvent;\n \"load\": Event;\n \"mousedown\": MouseEvent;\n \"mousemove\": MouseEvent;\n \"mouseout\": MouseEvent;\n \"mouseover\": MouseEvent;\n \"mouseup\": MouseEvent;\n}\n\ninterface SVGElement extends Element {\n className: any;\n onclick: (this: SVGElement, ev: MouseEvent) => any;\n ondblclick: (this: SVGElement, ev: MouseEvent) => any;\n onfocusin: (this: SVGElement, ev: FocusEvent) => any;\n onfocusout: (this: SVGElement, ev: FocusEvent) => any;\n onload: (this: SVGElement, ev: Event) => any;\n onmousedown: (this: SVGElement, ev: MouseEvent) => any;\n onmousemove: (this: SVGElement, ev: MouseEvent) => any;\n onmouseout: (this: SVGElement, ev: MouseEvent) => any;\n onmouseover: (this: SVGElement, ev: MouseEvent) => any;\n onmouseup: (this: SVGElement, ev: MouseEvent) => any;\n readonly ownerSVGElement: SVGSVGElement;\n readonly style: CSSStyleDeclaration;\n readonly viewportElement: SVGElement;\n xmlbase: string;\n addEventListener(type: K, listener: (this: SVGElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGElement: {\n prototype: SVGElement;\n new(): SVGElement;\n};\n\ninterface SVGElementInstance extends EventTarget {\n readonly childNodes: SVGElementInstanceList;\n readonly correspondingElement: SVGElement;\n readonly correspondingUseElement: SVGUseElement;\n readonly firstChild: SVGElementInstance;\n readonly lastChild: SVGElementInstance;\n readonly nextSibling: SVGElementInstance;\n readonly parentNode: SVGElementInstance;\n readonly previousSibling: SVGElementInstance;\n}\n\ndeclare var SVGElementInstance: {\n prototype: SVGElementInstance;\n new(): SVGElementInstance;\n};\n\ninterface SVGElementInstanceList {\n readonly length: number;\n item(index: number): SVGElementInstance;\n}\n\ndeclare var SVGElementInstanceList: {\n prototype: SVGElementInstanceList;\n new(): SVGElementInstanceList;\n};\n\ninterface SVGEllipseElement extends SVGGraphicsElement {\n readonly cx: SVGAnimatedLength;\n readonly cy: SVGAnimatedLength;\n readonly rx: SVGAnimatedLength;\n readonly ry: SVGAnimatedLength;\n addEventListener(type: K, listener: (this: SVGEllipseElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGEllipseElement: {\n prototype: SVGEllipseElement;\n new(): SVGEllipseElement;\n};\n\ninterface SVGFEBlendElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\n readonly in1: SVGAnimatedString;\n readonly in2: SVGAnimatedString;\n readonly mode: SVGAnimatedEnumeration;\n readonly SVG_FEBLEND_MODE_COLOR: number;\n readonly SVG_FEBLEND_MODE_COLOR_BURN: number;\n readonly SVG_FEBLEND_MODE_COLOR_DODGE: number;\n readonly SVG_FEBLEND_MODE_DARKEN: number;\n readonly SVG_FEBLEND_MODE_DIFFERENCE: number;\n readonly SVG_FEBLEND_MODE_EXCLUSION: number;\n readonly SVG_FEBLEND_MODE_HARD_LIGHT: number;\n readonly SVG_FEBLEND_MODE_HUE: number;\n readonly SVG_FEBLEND_MODE_LIGHTEN: number;\n readonly SVG_FEBLEND_MODE_LUMINOSITY: number;\n readonly SVG_FEBLEND_MODE_MULTIPLY: number;\n readonly SVG_FEBLEND_MODE_NORMAL: number;\n readonly SVG_FEBLEND_MODE_OVERLAY: number;\n readonly SVG_FEBLEND_MODE_SATURATION: number;\n readonly SVG_FEBLEND_MODE_SCREEN: number;\n readonly SVG_FEBLEND_MODE_SOFT_LIGHT: number;\n readonly SVG_FEBLEND_MODE_UNKNOWN: number;\n addEventListener(type: K, listener: (this: SVGFEBlendElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGFEBlendElement: {\n prototype: SVGFEBlendElement;\n new(): SVGFEBlendElement;\n readonly SVG_FEBLEND_MODE_COLOR: number;\n readonly SVG_FEBLEND_MODE_COLOR_BURN: number;\n readonly SVG_FEBLEND_MODE_COLOR_DODGE: number;\n readonly SVG_FEBLEND_MODE_DARKEN: number;\n readonly SVG_FEBLEND_MODE_DIFFERENCE: number;\n readonly SVG_FEBLEND_MODE_EXCLUSION: number;\n readonly SVG_FEBLEND_MODE_HARD_LIGHT: number;\n readonly SVG_FEBLEND_MODE_HUE: number;\n readonly SVG_FEBLEND_MODE_LIGHTEN: number;\n readonly SVG_FEBLEND_MODE_LUMINOSITY: number;\n readonly SVG_FEBLEND_MODE_MULTIPLY: number;\n readonly SVG_FEBLEND_MODE_NORMAL: number;\n readonly SVG_FEBLEND_MODE_OVERLAY: number;\n readonly SVG_FEBLEND_MODE_SATURATION: number;\n readonly SVG_FEBLEND_MODE_SCREEN: number;\n readonly SVG_FEBLEND_MODE_SOFT_LIGHT: number;\n readonly SVG_FEBLEND_MODE_UNKNOWN: number;\n};\n\ninterface SVGFEColorMatrixElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\n readonly in1: SVGAnimatedString;\n readonly type: SVGAnimatedEnumeration;\n readonly values: SVGAnimatedNumberList;\n readonly SVG_FECOLORMATRIX_TYPE_HUEROTATE: number;\n readonly SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA: number;\n readonly SVG_FECOLORMATRIX_TYPE_MATRIX: number;\n readonly SVG_FECOLORMATRIX_TYPE_SATURATE: number;\n readonly SVG_FECOLORMATRIX_TYPE_UNKNOWN: number;\n addEventListener(type: K, listener: (this: SVGFEColorMatrixElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGFEColorMatrixElement: {\n prototype: SVGFEColorMatrixElement;\n new(): SVGFEColorMatrixElement;\n readonly SVG_FECOLORMATRIX_TYPE_HUEROTATE: number;\n readonly SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA: number;\n readonly SVG_FECOLORMATRIX_TYPE_MATRIX: number;\n readonly SVG_FECOLORMATRIX_TYPE_SATURATE: number;\n readonly SVG_FECOLORMATRIX_TYPE_UNKNOWN: number;\n};\n\ninterface SVGFEComponentTransferElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\n readonly in1: SVGAnimatedString;\n addEventListener(type: K, listener: (this: SVGFEComponentTransferElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGFEComponentTransferElement: {\n prototype: SVGFEComponentTransferElement;\n new(): SVGFEComponentTransferElement;\n};\n\ninterface SVGFECompositeElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\n readonly in1: SVGAnimatedString;\n readonly in2: SVGAnimatedString;\n readonly k1: SVGAnimatedNumber;\n readonly k2: SVGAnimatedNumber;\n readonly k3: SVGAnimatedNumber;\n readonly k4: SVGAnimatedNumber;\n readonly operator: SVGAnimatedEnumeration;\n readonly SVG_FECOMPOSITE_OPERATOR_ARITHMETIC: number;\n readonly SVG_FECOMPOSITE_OPERATOR_ATOP: number;\n readonly SVG_FECOMPOSITE_OPERATOR_IN: number;\n readonly SVG_FECOMPOSITE_OPERATOR_OUT: number;\n readonly SVG_FECOMPOSITE_OPERATOR_OVER: number;\n readonly SVG_FECOMPOSITE_OPERATOR_UNKNOWN: number;\n readonly SVG_FECOMPOSITE_OPERATOR_XOR: number;\n addEventListener(type: K, listener: (this: SVGFECompositeElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGFECompositeElement: {\n prototype: SVGFECompositeElement;\n new(): SVGFECompositeElement;\n readonly SVG_FECOMPOSITE_OPERATOR_ARITHMETIC: number;\n readonly SVG_FECOMPOSITE_OPERATOR_ATOP: number;\n readonly SVG_FECOMPOSITE_OPERATOR_IN: number;\n readonly SVG_FECOMPOSITE_OPERATOR_OUT: number;\n readonly SVG_FECOMPOSITE_OPERATOR_OVER: number;\n readonly SVG_FECOMPOSITE_OPERATOR_UNKNOWN: number;\n readonly SVG_FECOMPOSITE_OPERATOR_XOR: number;\n};\n\ninterface SVGFEConvolveMatrixElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\n readonly bias: SVGAnimatedNumber;\n readonly divisor: SVGAnimatedNumber;\n readonly edgeMode: SVGAnimatedEnumeration;\n readonly in1: SVGAnimatedString;\n readonly kernelMatrix: SVGAnimatedNumberList;\n readonly kernelUnitLengthX: SVGAnimatedNumber;\n readonly kernelUnitLengthY: SVGAnimatedNumber;\n readonly orderX: SVGAnimatedInteger;\n readonly orderY: SVGAnimatedInteger;\n readonly preserveAlpha: SVGAnimatedBoolean;\n readonly targetX: SVGAnimatedInteger;\n readonly targetY: SVGAnimatedInteger;\n readonly SVG_EDGEMODE_DUPLICATE: number;\n readonly SVG_EDGEMODE_NONE: number;\n readonly SVG_EDGEMODE_UNKNOWN: number;\n readonly SVG_EDGEMODE_WRAP: number;\n addEventListener(type: K, listener: (this: SVGFEConvolveMatrixElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGFEConvolveMatrixElement: {\n prototype: SVGFEConvolveMatrixElement;\n new(): SVGFEConvolveMatrixElement;\n readonly SVG_EDGEMODE_DUPLICATE: number;\n readonly SVG_EDGEMODE_NONE: number;\n readonly SVG_EDGEMODE_UNKNOWN: number;\n readonly SVG_EDGEMODE_WRAP: number;\n};\n\ninterface SVGFEDiffuseLightingElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\n readonly diffuseConstant: SVGAnimatedNumber;\n readonly in1: SVGAnimatedString;\n readonly kernelUnitLengthX: SVGAnimatedNumber;\n readonly kernelUnitLengthY: SVGAnimatedNumber;\n readonly surfaceScale: SVGAnimatedNumber;\n addEventListener(type: K, listener: (this: SVGFEDiffuseLightingElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGFEDiffuseLightingElement: {\n prototype: SVGFEDiffuseLightingElement;\n new(): SVGFEDiffuseLightingElement;\n};\n\ninterface SVGFEDisplacementMapElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\n readonly in1: SVGAnimatedString;\n readonly in2: SVGAnimatedString;\n readonly scale: SVGAnimatedNumber;\n readonly xChannelSelector: SVGAnimatedEnumeration;\n readonly yChannelSelector: SVGAnimatedEnumeration;\n readonly SVG_CHANNEL_A: number;\n readonly SVG_CHANNEL_B: number;\n readonly SVG_CHANNEL_G: number;\n readonly SVG_CHANNEL_R: number;\n readonly SVG_CHANNEL_UNKNOWN: number;\n addEventListener(type: K, listener: (this: SVGFEDisplacementMapElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGFEDisplacementMapElement: {\n prototype: SVGFEDisplacementMapElement;\n new(): SVGFEDisplacementMapElement;\n readonly SVG_CHANNEL_A: number;\n readonly SVG_CHANNEL_B: number;\n readonly SVG_CHANNEL_G: number;\n readonly SVG_CHANNEL_R: number;\n readonly SVG_CHANNEL_UNKNOWN: number;\n};\n\ninterface SVGFEDistantLightElement extends SVGElement {\n readonly azimuth: SVGAnimatedNumber;\n readonly elevation: SVGAnimatedNumber;\n addEventListener(type: K, listener: (this: SVGFEDistantLightElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGFEDistantLightElement: {\n prototype: SVGFEDistantLightElement;\n new(): SVGFEDistantLightElement;\n};\n\ninterface SVGFEFloodElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\n addEventListener(type: K, listener: (this: SVGFEFloodElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGFEFloodElement: {\n prototype: SVGFEFloodElement;\n new(): SVGFEFloodElement;\n};\n\ninterface SVGFEFuncAElement extends SVGComponentTransferFunctionElement {\n addEventListener(type: K, listener: (this: SVGFEFuncAElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGFEFuncAElement: {\n prototype: SVGFEFuncAElement;\n new(): SVGFEFuncAElement;\n};\n\ninterface SVGFEFuncBElement extends SVGComponentTransferFunctionElement {\n addEventListener(type: K, listener: (this: SVGFEFuncBElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGFEFuncBElement: {\n prototype: SVGFEFuncBElement;\n new(): SVGFEFuncBElement;\n};\n\ninterface SVGFEFuncGElement extends SVGComponentTransferFunctionElement {\n addEventListener(type: K, listener: (this: SVGFEFuncGElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGFEFuncGElement: {\n prototype: SVGFEFuncGElement;\n new(): SVGFEFuncGElement;\n};\n\ninterface SVGFEFuncRElement extends SVGComponentTransferFunctionElement {\n addEventListener(type: K, listener: (this: SVGFEFuncRElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGFEFuncRElement: {\n prototype: SVGFEFuncRElement;\n new(): SVGFEFuncRElement;\n};\n\ninterface SVGFEGaussianBlurElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\n readonly in1: SVGAnimatedString;\n readonly stdDeviationX: SVGAnimatedNumber;\n readonly stdDeviationY: SVGAnimatedNumber;\n setStdDeviation(stdDeviationX: number, stdDeviationY: number): void;\n addEventListener(type: K, listener: (this: SVGFEGaussianBlurElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGFEGaussianBlurElement: {\n prototype: SVGFEGaussianBlurElement;\n new(): SVGFEGaussianBlurElement;\n};\n\ninterface SVGFEImageElement extends SVGElement, SVGFilterPrimitiveStandardAttributes, SVGURIReference {\n readonly preserveAspectRatio: SVGAnimatedPreserveAspectRatio;\n addEventListener(type: K, listener: (this: SVGFEImageElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGFEImageElement: {\n prototype: SVGFEImageElement;\n new(): SVGFEImageElement;\n};\n\ninterface SVGFEMergeElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\n addEventListener(type: K, listener: (this: SVGFEMergeElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGFEMergeElement: {\n prototype: SVGFEMergeElement;\n new(): SVGFEMergeElement;\n};\n\ninterface SVGFEMergeNodeElement extends SVGElement {\n readonly in1: SVGAnimatedString;\n addEventListener(type: K, listener: (this: SVGFEMergeNodeElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGFEMergeNodeElement: {\n prototype: SVGFEMergeNodeElement;\n new(): SVGFEMergeNodeElement;\n};\n\ninterface SVGFEMorphologyElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\n readonly in1: SVGAnimatedString;\n readonly operator: SVGAnimatedEnumeration;\n readonly radiusX: SVGAnimatedNumber;\n readonly radiusY: SVGAnimatedNumber;\n readonly SVG_MORPHOLOGY_OPERATOR_DILATE: number;\n readonly SVG_MORPHOLOGY_OPERATOR_ERODE: number;\n readonly SVG_MORPHOLOGY_OPERATOR_UNKNOWN: number;\n addEventListener(type: K, listener: (this: SVGFEMorphologyElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGFEMorphologyElement: {\n prototype: SVGFEMorphologyElement;\n new(): SVGFEMorphologyElement;\n readonly SVG_MORPHOLOGY_OPERATOR_DILATE: number;\n readonly SVG_MORPHOLOGY_OPERATOR_ERODE: number;\n readonly SVG_MORPHOLOGY_OPERATOR_UNKNOWN: number;\n};\n\ninterface SVGFEOffsetElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\n readonly dx: SVGAnimatedNumber;\n readonly dy: SVGAnimatedNumber;\n readonly in1: SVGAnimatedString;\n addEventListener(type: K, listener: (this: SVGFEOffsetElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGFEOffsetElement: {\n prototype: SVGFEOffsetElement;\n new(): SVGFEOffsetElement;\n};\n\ninterface SVGFEPointLightElement extends SVGElement {\n readonly x: SVGAnimatedNumber;\n readonly y: SVGAnimatedNumber;\n readonly z: SVGAnimatedNumber;\n addEventListener(type: K, listener: (this: SVGFEPointLightElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGFEPointLightElement: {\n prototype: SVGFEPointLightElement;\n new(): SVGFEPointLightElement;\n};\n\ninterface SVGFESpecularLightingElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\n readonly in1: SVGAnimatedString;\n readonly kernelUnitLengthX: SVGAnimatedNumber;\n readonly kernelUnitLengthY: SVGAnimatedNumber;\n readonly specularConstant: SVGAnimatedNumber;\n readonly specularExponent: SVGAnimatedNumber;\n readonly surfaceScale: SVGAnimatedNumber;\n addEventListener(type: K, listener: (this: SVGFESpecularLightingElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGFESpecularLightingElement: {\n prototype: SVGFESpecularLightingElement;\n new(): SVGFESpecularLightingElement;\n};\n\ninterface SVGFESpotLightElement extends SVGElement {\n readonly limitingConeAngle: SVGAnimatedNumber;\n readonly pointsAtX: SVGAnimatedNumber;\n readonly pointsAtY: SVGAnimatedNumber;\n readonly pointsAtZ: SVGAnimatedNumber;\n readonly specularExponent: SVGAnimatedNumber;\n readonly x: SVGAnimatedNumber;\n readonly y: SVGAnimatedNumber;\n readonly z: SVGAnimatedNumber;\n addEventListener(type: K, listener: (this: SVGFESpotLightElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGFESpotLightElement: {\n prototype: SVGFESpotLightElement;\n new(): SVGFESpotLightElement;\n};\n\ninterface SVGFETileElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\n readonly in1: SVGAnimatedString;\n addEventListener(type: K, listener: (this: SVGFETileElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGFETileElement: {\n prototype: SVGFETileElement;\n new(): SVGFETileElement;\n};\n\ninterface SVGFETurbulenceElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\n readonly baseFrequencyX: SVGAnimatedNumber;\n readonly baseFrequencyY: SVGAnimatedNumber;\n readonly numOctaves: SVGAnimatedInteger;\n readonly seed: SVGAnimatedNumber;\n readonly stitchTiles: SVGAnimatedEnumeration;\n readonly type: SVGAnimatedEnumeration;\n readonly SVG_STITCHTYPE_NOSTITCH: number;\n readonly SVG_STITCHTYPE_STITCH: number;\n readonly SVG_STITCHTYPE_UNKNOWN: number;\n readonly SVG_TURBULENCE_TYPE_FRACTALNOISE: number;\n readonly SVG_TURBULENCE_TYPE_TURBULENCE: number;\n readonly SVG_TURBULENCE_TYPE_UNKNOWN: number;\n addEventListener(type: K, listener: (this: SVGFETurbulenceElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGFETurbulenceElement: {\n prototype: SVGFETurbulenceElement;\n new(): SVGFETurbulenceElement;\n readonly SVG_STITCHTYPE_NOSTITCH: number;\n readonly SVG_STITCHTYPE_STITCH: number;\n readonly SVG_STITCHTYPE_UNKNOWN: number;\n readonly SVG_TURBULENCE_TYPE_FRACTALNOISE: number;\n readonly SVG_TURBULENCE_TYPE_TURBULENCE: number;\n readonly SVG_TURBULENCE_TYPE_UNKNOWN: number;\n};\n\ninterface SVGFilterElement extends SVGElement, SVGUnitTypes, SVGURIReference {\n readonly filterResX: SVGAnimatedInteger;\n readonly filterResY: SVGAnimatedInteger;\n readonly filterUnits: SVGAnimatedEnumeration;\n readonly height: SVGAnimatedLength;\n readonly primitiveUnits: SVGAnimatedEnumeration;\n readonly width: SVGAnimatedLength;\n readonly x: SVGAnimatedLength;\n readonly y: SVGAnimatedLength;\n setFilterRes(filterResX: number, filterResY: number): void;\n addEventListener(type: K, listener: (this: SVGFilterElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGFilterElement: {\n prototype: SVGFilterElement;\n new(): SVGFilterElement;\n};\n\ninterface SVGForeignObjectElement extends SVGGraphicsElement {\n readonly height: SVGAnimatedLength;\n readonly width: SVGAnimatedLength;\n readonly x: SVGAnimatedLength;\n readonly y: SVGAnimatedLength;\n addEventListener(type: K, listener: (this: SVGForeignObjectElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGForeignObjectElement: {\n prototype: SVGForeignObjectElement;\n new(): SVGForeignObjectElement;\n};\n\ninterface SVGGElement extends SVGGraphicsElement {\n addEventListener(type: K, listener: (this: SVGGElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGGElement: {\n prototype: SVGGElement;\n new(): SVGGElement;\n};\n\ninterface SVGGradientElement extends SVGElement, SVGUnitTypes, SVGURIReference {\n readonly gradientTransform: SVGAnimatedTransformList;\n readonly gradientUnits: SVGAnimatedEnumeration;\n readonly spreadMethod: SVGAnimatedEnumeration;\n readonly SVG_SPREADMETHOD_PAD: number;\n readonly SVG_SPREADMETHOD_REFLECT: number;\n readonly SVG_SPREADMETHOD_REPEAT: number;\n readonly SVG_SPREADMETHOD_UNKNOWN: number;\n addEventListener(type: K, listener: (this: SVGGradientElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGGradientElement: {\n prototype: SVGGradientElement;\n new(): SVGGradientElement;\n readonly SVG_SPREADMETHOD_PAD: number;\n readonly SVG_SPREADMETHOD_REFLECT: number;\n readonly SVG_SPREADMETHOD_REPEAT: number;\n readonly SVG_SPREADMETHOD_UNKNOWN: number;\n};\n\ninterface SVGGraphicsElement extends SVGElement, SVGTests {\n readonly farthestViewportElement: SVGElement;\n readonly nearestViewportElement: SVGElement;\n readonly transform: SVGAnimatedTransformList;\n getBBox(): SVGRect;\n getCTM(): SVGMatrix;\n getScreenCTM(): SVGMatrix;\n getTransformToElement(element: SVGElement): SVGMatrix;\n addEventListener(type: K, listener: (this: SVGGraphicsElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGGraphicsElement: {\n prototype: SVGGraphicsElement;\n new(): SVGGraphicsElement;\n};\n\ninterface SVGImageElement extends SVGGraphicsElement, SVGURIReference {\n readonly height: SVGAnimatedLength;\n readonly preserveAspectRatio: SVGAnimatedPreserveAspectRatio;\n readonly width: SVGAnimatedLength;\n readonly x: SVGAnimatedLength;\n readonly y: SVGAnimatedLength;\n addEventListener(type: K, listener: (this: SVGImageElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGImageElement: {\n prototype: SVGImageElement;\n new(): SVGImageElement;\n};\n\ninterface SVGLength {\n readonly unitType: number;\n value: number;\n valueAsString: string;\n valueInSpecifiedUnits: number;\n convertToSpecifiedUnits(unitType: number): void;\n newValueSpecifiedUnits(unitType: number, valueInSpecifiedUnits: number): void;\n readonly SVG_LENGTHTYPE_CM: number;\n readonly SVG_LENGTHTYPE_EMS: number;\n readonly SVG_LENGTHTYPE_EXS: number;\n readonly SVG_LENGTHTYPE_IN: number;\n readonly SVG_LENGTHTYPE_MM: number;\n readonly SVG_LENGTHTYPE_NUMBER: number;\n readonly SVG_LENGTHTYPE_PC: number;\n readonly SVG_LENGTHTYPE_PERCENTAGE: number;\n readonly SVG_LENGTHTYPE_PT: number;\n readonly SVG_LENGTHTYPE_PX: number;\n readonly SVG_LENGTHTYPE_UNKNOWN: number;\n}\n\ndeclare var SVGLength: {\n prototype: SVGLength;\n new(): SVGLength;\n readonly SVG_LENGTHTYPE_CM: number;\n readonly SVG_LENGTHTYPE_EMS: number;\n readonly SVG_LENGTHTYPE_EXS: number;\n readonly SVG_LENGTHTYPE_IN: number;\n readonly SVG_LENGTHTYPE_MM: number;\n readonly SVG_LENGTHTYPE_NUMBER: number;\n readonly SVG_LENGTHTYPE_PC: number;\n readonly SVG_LENGTHTYPE_PERCENTAGE: number;\n readonly SVG_LENGTHTYPE_PT: number;\n readonly SVG_LENGTHTYPE_PX: number;\n readonly SVG_LENGTHTYPE_UNKNOWN: number;\n};\n\ninterface SVGLengthList {\n readonly numberOfItems: number;\n appendItem(newItem: SVGLength): SVGLength;\n clear(): void;\n getItem(index: number): SVGLength;\n initialize(newItem: SVGLength): SVGLength;\n insertItemBefore(newItem: SVGLength, index: number): SVGLength;\n removeItem(index: number): SVGLength;\n replaceItem(newItem: SVGLength, index: number): SVGLength;\n}\n\ndeclare var SVGLengthList: {\n prototype: SVGLengthList;\n new(): SVGLengthList;\n};\n\ninterface SVGLinearGradientElement extends SVGGradientElement {\n readonly x1: SVGAnimatedLength;\n readonly x2: SVGAnimatedLength;\n readonly y1: SVGAnimatedLength;\n readonly y2: SVGAnimatedLength;\n addEventListener(type: K, listener: (this: SVGLinearGradientElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGLinearGradientElement: {\n prototype: SVGLinearGradientElement;\n new(): SVGLinearGradientElement;\n};\n\ninterface SVGLineElement extends SVGGraphicsElement {\n readonly x1: SVGAnimatedLength;\n readonly x2: SVGAnimatedLength;\n readonly y1: SVGAnimatedLength;\n readonly y2: SVGAnimatedLength;\n addEventListener(type: K, listener: (this: SVGLineElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGLineElement: {\n prototype: SVGLineElement;\n new(): SVGLineElement;\n};\n\ninterface SVGMarkerElement extends SVGElement, SVGFitToViewBox {\n readonly markerHeight: SVGAnimatedLength;\n readonly markerUnits: SVGAnimatedEnumeration;\n readonly markerWidth: SVGAnimatedLength;\n readonly orientAngle: SVGAnimatedAngle;\n readonly orientType: SVGAnimatedEnumeration;\n readonly refX: SVGAnimatedLength;\n readonly refY: SVGAnimatedLength;\n setOrientToAngle(angle: SVGAngle): void;\n setOrientToAuto(): void;\n readonly SVG_MARKER_ORIENT_ANGLE: number;\n readonly SVG_MARKER_ORIENT_AUTO: number;\n readonly SVG_MARKER_ORIENT_UNKNOWN: number;\n readonly SVG_MARKERUNITS_STROKEWIDTH: number;\n readonly SVG_MARKERUNITS_UNKNOWN: number;\n readonly SVG_MARKERUNITS_USERSPACEONUSE: number;\n addEventListener(type: K, listener: (this: SVGMarkerElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGMarkerElement: {\n prototype: SVGMarkerElement;\n new(): SVGMarkerElement;\n readonly SVG_MARKER_ORIENT_ANGLE: number;\n readonly SVG_MARKER_ORIENT_AUTO: number;\n readonly SVG_MARKER_ORIENT_UNKNOWN: number;\n readonly SVG_MARKERUNITS_STROKEWIDTH: number;\n readonly SVG_MARKERUNITS_UNKNOWN: number;\n readonly SVG_MARKERUNITS_USERSPACEONUSE: number;\n};\n\ninterface SVGMaskElement extends SVGElement, SVGTests, SVGUnitTypes {\n readonly height: SVGAnimatedLength;\n readonly maskContentUnits: SVGAnimatedEnumeration;\n readonly maskUnits: SVGAnimatedEnumeration;\n readonly width: SVGAnimatedLength;\n readonly x: SVGAnimatedLength;\n readonly y: SVGAnimatedLength;\n addEventListener(type: K, listener: (this: SVGMaskElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGMaskElement: {\n prototype: SVGMaskElement;\n new(): SVGMaskElement;\n};\n\ninterface SVGMatrix {\n a: number;\n b: number;\n c: number;\n d: number;\n e: number;\n f: number;\n flipX(): SVGMatrix;\n flipY(): SVGMatrix;\n inverse(): SVGMatrix;\n multiply(secondMatrix: SVGMatrix): SVGMatrix;\n rotate(angle: number): SVGMatrix;\n rotateFromVector(x: number, y: number): SVGMatrix;\n scale(scaleFactor: number): SVGMatrix;\n scaleNonUniform(scaleFactorX: number, scaleFactorY: number): SVGMatrix;\n skewX(angle: number): SVGMatrix;\n skewY(angle: number): SVGMatrix;\n translate(x: number, y: number): SVGMatrix;\n}\n\ndeclare var SVGMatrix: {\n prototype: SVGMatrix;\n new(): SVGMatrix;\n};\n\ninterface SVGMetadataElement extends SVGElement {\n addEventListener(type: K, listener: (this: SVGMetadataElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGMetadataElement: {\n prototype: SVGMetadataElement;\n new(): SVGMetadataElement;\n};\n\ninterface SVGNumber {\n value: number;\n}\n\ndeclare var SVGNumber: {\n prototype: SVGNumber;\n new(): SVGNumber;\n};\n\ninterface SVGNumberList {\n readonly numberOfItems: number;\n appendItem(newItem: SVGNumber): SVGNumber;\n clear(): void;\n getItem(index: number): SVGNumber;\n initialize(newItem: SVGNumber): SVGNumber;\n insertItemBefore(newItem: SVGNumber, index: number): SVGNumber;\n removeItem(index: number): SVGNumber;\n replaceItem(newItem: SVGNumber, index: number): SVGNumber;\n}\n\ndeclare var SVGNumberList: {\n prototype: SVGNumberList;\n new(): SVGNumberList;\n};\n\ninterface SVGPathElement extends SVGGraphicsElement {\n readonly pathSegList: SVGPathSegList;\n createSVGPathSegArcAbs(x: number, y: number, r1: number, r2: number, angle: number, largeArcFlag: boolean, sweepFlag: boolean): SVGPathSegArcAbs;\n createSVGPathSegArcRel(x: number, y: number, r1: number, r2: number, angle: number, largeArcFlag: boolean, sweepFlag: boolean): SVGPathSegArcRel;\n createSVGPathSegClosePath(): SVGPathSegClosePath;\n createSVGPathSegCurvetoCubicAbs(x: number, y: number, x1: number, y1: number, x2: number, y2: number): SVGPathSegCurvetoCubicAbs;\n createSVGPathSegCurvetoCubicRel(x: number, y: number, x1: number, y1: number, x2: number, y2: number): SVGPathSegCurvetoCubicRel;\n createSVGPathSegCurvetoCubicSmoothAbs(x: number, y: number, x2: number, y2: number): SVGPathSegCurvetoCubicSmoothAbs;\n createSVGPathSegCurvetoCubicSmoothRel(x: number, y: number, x2: number, y2: number): SVGPathSegCurvetoCubicSmoothRel;\n createSVGPathSegCurvetoQuadraticAbs(x: number, y: number, x1: number, y1: number): SVGPathSegCurvetoQuadraticAbs;\n createSVGPathSegCurvetoQuadraticRel(x: number, y: number, x1: number, y1: number): SVGPathSegCurvetoQuadraticRel;\n createSVGPathSegCurvetoQuadraticSmoothAbs(x: number, y: number): SVGPathSegCurvetoQuadraticSmoothAbs;\n createSVGPathSegCurvetoQuadraticSmoothRel(x: number, y: number): SVGPathSegCurvetoQuadraticSmoothRel;\n createSVGPathSegLinetoAbs(x: number, y: number): SVGPathSegLinetoAbs;\n createSVGPathSegLinetoHorizontalAbs(x: number): SVGPathSegLinetoHorizontalAbs;\n createSVGPathSegLinetoHorizontalRel(x: number): SVGPathSegLinetoHorizontalRel;\n createSVGPathSegLinetoRel(x: number, y: number): SVGPathSegLinetoRel;\n createSVGPathSegLinetoVerticalAbs(y: number): SVGPathSegLinetoVerticalAbs;\n createSVGPathSegLinetoVerticalRel(y: number): SVGPathSegLinetoVerticalRel;\n createSVGPathSegMovetoAbs(x: number, y: number): SVGPathSegMovetoAbs;\n createSVGPathSegMovetoRel(x: number, y: number): SVGPathSegMovetoRel;\n getPathSegAtLength(distance: number): number;\n getPointAtLength(distance: number): SVGPoint;\n getTotalLength(): number;\n addEventListener(type: K, listener: (this: SVGPathElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGPathElement: {\n prototype: SVGPathElement;\n new(): SVGPathElement;\n};\n\ninterface SVGPathSeg {\n readonly pathSegType: number;\n readonly pathSegTypeAsLetter: string;\n readonly PATHSEG_ARC_ABS: number;\n readonly PATHSEG_ARC_REL: number;\n readonly PATHSEG_CLOSEPATH: number;\n readonly PATHSEG_CURVETO_CUBIC_ABS: number;\n readonly PATHSEG_CURVETO_CUBIC_REL: number;\n readonly PATHSEG_CURVETO_CUBIC_SMOOTH_ABS: number;\n readonly PATHSEG_CURVETO_CUBIC_SMOOTH_REL: number;\n readonly PATHSEG_CURVETO_QUADRATIC_ABS: number;\n readonly PATHSEG_CURVETO_QUADRATIC_REL: number;\n readonly PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS: number;\n readonly PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL: number;\n readonly PATHSEG_LINETO_ABS: number;\n readonly PATHSEG_LINETO_HORIZONTAL_ABS: number;\n readonly PATHSEG_LINETO_HORIZONTAL_REL: number;\n readonly PATHSEG_LINETO_REL: number;\n readonly PATHSEG_LINETO_VERTICAL_ABS: number;\n readonly PATHSEG_LINETO_VERTICAL_REL: number;\n readonly PATHSEG_MOVETO_ABS: number;\n readonly PATHSEG_MOVETO_REL: number;\n readonly PATHSEG_UNKNOWN: number;\n}\n\ndeclare var SVGPathSeg: {\n prototype: SVGPathSeg;\n new(): SVGPathSeg;\n readonly PATHSEG_ARC_ABS: number;\n readonly PATHSEG_ARC_REL: number;\n readonly PATHSEG_CLOSEPATH: number;\n readonly PATHSEG_CURVETO_CUBIC_ABS: number;\n readonly PATHSEG_CURVETO_CUBIC_REL: number;\n readonly PATHSEG_CURVETO_CUBIC_SMOOTH_ABS: number;\n readonly PATHSEG_CURVETO_CUBIC_SMOOTH_REL: number;\n readonly PATHSEG_CURVETO_QUADRATIC_ABS: number;\n readonly PATHSEG_CURVETO_QUADRATIC_REL: number;\n readonly PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS: number;\n readonly PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL: number;\n readonly PATHSEG_LINETO_ABS: number;\n readonly PATHSEG_LINETO_HORIZONTAL_ABS: number;\n readonly PATHSEG_LINETO_HORIZONTAL_REL: number;\n readonly PATHSEG_LINETO_REL: number;\n readonly PATHSEG_LINETO_VERTICAL_ABS: number;\n readonly PATHSEG_LINETO_VERTICAL_REL: number;\n readonly PATHSEG_MOVETO_ABS: number;\n readonly PATHSEG_MOVETO_REL: number;\n readonly PATHSEG_UNKNOWN: number;\n};\n\ninterface SVGPathSegArcAbs extends SVGPathSeg {\n angle: number;\n largeArcFlag: boolean;\n r1: number;\n r2: number;\n sweepFlag: boolean;\n x: number;\n y: number;\n}\n\ndeclare var SVGPathSegArcAbs: {\n prototype: SVGPathSegArcAbs;\n new(): SVGPathSegArcAbs;\n};\n\ninterface SVGPathSegArcRel extends SVGPathSeg {\n angle: number;\n largeArcFlag: boolean;\n r1: number;\n r2: number;\n sweepFlag: boolean;\n x: number;\n y: number;\n}\n\ndeclare var SVGPathSegArcRel: {\n prototype: SVGPathSegArcRel;\n new(): SVGPathSegArcRel;\n};\n\ninterface SVGPathSegClosePath extends SVGPathSeg {\n}\n\ndeclare var SVGPathSegClosePath: {\n prototype: SVGPathSegClosePath;\n new(): SVGPathSegClosePath;\n};\n\ninterface SVGPathSegCurvetoCubicAbs extends SVGPathSeg {\n x: number;\n x1: number;\n x2: number;\n y: number;\n y1: number;\n y2: number;\n}\n\ndeclare var SVGPathSegCurvetoCubicAbs: {\n prototype: SVGPathSegCurvetoCubicAbs;\n new(): SVGPathSegCurvetoCubicAbs;\n};\n\ninterface SVGPathSegCurvetoCubicRel extends SVGPathSeg {\n x: number;\n x1: number;\n x2: number;\n y: number;\n y1: number;\n y2: number;\n}\n\ndeclare var SVGPathSegCurvetoCubicRel: {\n prototype: SVGPathSegCurvetoCubicRel;\n new(): SVGPathSegCurvetoCubicRel;\n};\n\ninterface SVGPathSegCurvetoCubicSmoothAbs extends SVGPathSeg {\n x: number;\n x2: number;\n y: number;\n y2: number;\n}\n\ndeclare var SVGPathSegCurvetoCubicSmoothAbs: {\n prototype: SVGPathSegCurvetoCubicSmoothAbs;\n new(): SVGPathSegCurvetoCubicSmoothAbs;\n};\n\ninterface SVGPathSegCurvetoCubicSmoothRel extends SVGPathSeg {\n x: number;\n x2: number;\n y: number;\n y2: number;\n}\n\ndeclare var SVGPathSegCurvetoCubicSmoothRel: {\n prototype: SVGPathSegCurvetoCubicSmoothRel;\n new(): SVGPathSegCurvetoCubicSmoothRel;\n};\n\ninterface SVGPathSegCurvetoQuadraticAbs extends SVGPathSeg {\n x: number;\n x1: number;\n y: number;\n y1: number;\n}\n\ndeclare var SVGPathSegCurvetoQuadraticAbs: {\n prototype: SVGPathSegCurvetoQuadraticAbs;\n new(): SVGPathSegCurvetoQuadraticAbs;\n};\n\ninterface SVGPathSegCurvetoQuadraticRel extends SVGPathSeg {\n x: number;\n x1: number;\n y: number;\n y1: number;\n}\n\ndeclare var SVGPathSegCurvetoQuadraticRel: {\n prototype: SVGPathSegCurvetoQuadraticRel;\n new(): SVGPathSegCurvetoQuadraticRel;\n};\n\ninterface SVGPathSegCurvetoQuadraticSmoothAbs extends SVGPathSeg {\n x: number;\n y: number;\n}\n\ndeclare var SVGPathSegCurvetoQuadraticSmoothAbs: {\n prototype: SVGPathSegCurvetoQuadraticSmoothAbs;\n new(): SVGPathSegCurvetoQuadraticSmoothAbs;\n};\n\ninterface SVGPathSegCurvetoQuadraticSmoothRel extends SVGPathSeg {\n x: number;\n y: number;\n}\n\ndeclare var SVGPathSegCurvetoQuadraticSmoothRel: {\n prototype: SVGPathSegCurvetoQuadraticSmoothRel;\n new(): SVGPathSegCurvetoQuadraticSmoothRel;\n};\n\ninterface SVGPathSegLinetoAbs extends SVGPathSeg {\n x: number;\n y: number;\n}\n\ndeclare var SVGPathSegLinetoAbs: {\n prototype: SVGPathSegLinetoAbs;\n new(): SVGPathSegLinetoAbs;\n};\n\ninterface SVGPathSegLinetoHorizontalAbs extends SVGPathSeg {\n x: number;\n}\n\ndeclare var SVGPathSegLinetoHorizontalAbs: {\n prototype: SVGPathSegLinetoHorizontalAbs;\n new(): SVGPathSegLinetoHorizontalAbs;\n};\n\ninterface SVGPathSegLinetoHorizontalRel extends SVGPathSeg {\n x: number;\n}\n\ndeclare var SVGPathSegLinetoHorizontalRel: {\n prototype: SVGPathSegLinetoHorizontalRel;\n new(): SVGPathSegLinetoHorizontalRel;\n};\n\ninterface SVGPathSegLinetoRel extends SVGPathSeg {\n x: number;\n y: number;\n}\n\ndeclare var SVGPathSegLinetoRel: {\n prototype: SVGPathSegLinetoRel;\n new(): SVGPathSegLinetoRel;\n};\n\ninterface SVGPathSegLinetoVerticalAbs extends SVGPathSeg {\n y: number;\n}\n\ndeclare var SVGPathSegLinetoVerticalAbs: {\n prototype: SVGPathSegLinetoVerticalAbs;\n new(): SVGPathSegLinetoVerticalAbs;\n};\n\ninterface SVGPathSegLinetoVerticalRel extends SVGPathSeg {\n y: number;\n}\n\ndeclare var SVGPathSegLinetoVerticalRel: {\n prototype: SVGPathSegLinetoVerticalRel;\n new(): SVGPathSegLinetoVerticalRel;\n};\n\ninterface SVGPathSegList {\n readonly numberOfItems: number;\n appendItem(newItem: SVGPathSeg): SVGPathSeg;\n clear(): void;\n getItem(index: number): SVGPathSeg;\n initialize(newItem: SVGPathSeg): SVGPathSeg;\n insertItemBefore(newItem: SVGPathSeg, index: number): SVGPathSeg;\n removeItem(index: number): SVGPathSeg;\n replaceItem(newItem: SVGPathSeg, index: number): SVGPathSeg;\n}\n\ndeclare var SVGPathSegList: {\n prototype: SVGPathSegList;\n new(): SVGPathSegList;\n};\n\ninterface SVGPathSegMovetoAbs extends SVGPathSeg {\n x: number;\n y: number;\n}\n\ndeclare var SVGPathSegMovetoAbs: {\n prototype: SVGPathSegMovetoAbs;\n new(): SVGPathSegMovetoAbs;\n};\n\ninterface SVGPathSegMovetoRel extends SVGPathSeg {\n x: number;\n y: number;\n}\n\ndeclare var SVGPathSegMovetoRel: {\n prototype: SVGPathSegMovetoRel;\n new(): SVGPathSegMovetoRel;\n};\n\ninterface SVGPatternElement extends SVGElement, SVGTests, SVGUnitTypes, SVGFitToViewBox, SVGURIReference {\n readonly height: SVGAnimatedLength;\n readonly patternContentUnits: SVGAnimatedEnumeration;\n readonly patternTransform: SVGAnimatedTransformList;\n readonly patternUnits: SVGAnimatedEnumeration;\n readonly width: SVGAnimatedLength;\n readonly x: SVGAnimatedLength;\n readonly y: SVGAnimatedLength;\n addEventListener(type: K, listener: (this: SVGPatternElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGPatternElement: {\n prototype: SVGPatternElement;\n new(): SVGPatternElement;\n};\n\ninterface SVGPoint {\n x: number;\n y: number;\n matrixTransform(matrix: SVGMatrix): SVGPoint;\n}\n\ndeclare var SVGPoint: {\n prototype: SVGPoint;\n new(): SVGPoint;\n};\n\ninterface SVGPointList {\n readonly numberOfItems: number;\n appendItem(newItem: SVGPoint): SVGPoint;\n clear(): void;\n getItem(index: number): SVGPoint;\n initialize(newItem: SVGPoint): SVGPoint;\n insertItemBefore(newItem: SVGPoint, index: number): SVGPoint;\n removeItem(index: number): SVGPoint;\n replaceItem(newItem: SVGPoint, index: number): SVGPoint;\n}\n\ndeclare var SVGPointList: {\n prototype: SVGPointList;\n new(): SVGPointList;\n};\n\ninterface SVGPolygonElement extends SVGGraphicsElement, SVGAnimatedPoints {\n addEventListener(type: K, listener: (this: SVGPolygonElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGPolygonElement: {\n prototype: SVGPolygonElement;\n new(): SVGPolygonElement;\n};\n\ninterface SVGPolylineElement extends SVGGraphicsElement, SVGAnimatedPoints {\n addEventListener(type: K, listener: (this: SVGPolylineElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGPolylineElement: {\n prototype: SVGPolylineElement;\n new(): SVGPolylineElement;\n};\n\ninterface SVGPreserveAspectRatio {\n align: number;\n meetOrSlice: number;\n readonly SVG_MEETORSLICE_MEET: number;\n readonly SVG_MEETORSLICE_SLICE: number;\n readonly SVG_MEETORSLICE_UNKNOWN: number;\n readonly SVG_PRESERVEASPECTRATIO_NONE: number;\n readonly SVG_PRESERVEASPECTRATIO_UNKNOWN: number;\n readonly SVG_PRESERVEASPECTRATIO_XMAXYMAX: number;\n readonly SVG_PRESERVEASPECTRATIO_XMAXYMID: number;\n readonly SVG_PRESERVEASPECTRATIO_XMAXYMIN: number;\n readonly SVG_PRESERVEASPECTRATIO_XMIDYMAX: number;\n readonly SVG_PRESERVEASPECTRATIO_XMIDYMID: number;\n readonly SVG_PRESERVEASPECTRATIO_XMIDYMIN: number;\n readonly SVG_PRESERVEASPECTRATIO_XMINYMAX: number;\n readonly SVG_PRESERVEASPECTRATIO_XMINYMID: number;\n readonly SVG_PRESERVEASPECTRATIO_XMINYMIN: number;\n}\n\ndeclare var SVGPreserveAspectRatio: {\n prototype: SVGPreserveAspectRatio;\n new(): SVGPreserveAspectRatio;\n readonly SVG_MEETORSLICE_MEET: number;\n readonly SVG_MEETORSLICE_SLICE: number;\n readonly SVG_MEETORSLICE_UNKNOWN: number;\n readonly SVG_PRESERVEASPECTRATIO_NONE: number;\n readonly SVG_PRESERVEASPECTRATIO_UNKNOWN: number;\n readonly SVG_PRESERVEASPECTRATIO_XMAXYMAX: number;\n readonly SVG_PRESERVEASPECTRATIO_XMAXYMID: number;\n readonly SVG_PRESERVEASPECTRATIO_XMAXYMIN: number;\n readonly SVG_PRESERVEASPECTRATIO_XMIDYMAX: number;\n readonly SVG_PRESERVEASPECTRATIO_XMIDYMID: number;\n readonly SVG_PRESERVEASPECTRATIO_XMIDYMIN: number;\n readonly SVG_PRESERVEASPECTRATIO_XMINYMAX: number;\n readonly SVG_PRESERVEASPECTRATIO_XMINYMID: number;\n readonly SVG_PRESERVEASPECTRATIO_XMINYMIN: number;\n};\n\ninterface SVGRadialGradientElement extends SVGGradientElement {\n readonly cx: SVGAnimatedLength;\n readonly cy: SVGAnimatedLength;\n readonly fx: SVGAnimatedLength;\n readonly fy: SVGAnimatedLength;\n readonly r: SVGAnimatedLength;\n addEventListener(type: K, listener: (this: SVGRadialGradientElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGRadialGradientElement: {\n prototype: SVGRadialGradientElement;\n new(): SVGRadialGradientElement;\n};\n\ninterface SVGRect {\n height: number;\n width: number;\n x: number;\n y: number;\n}\n\ndeclare var SVGRect: {\n prototype: SVGRect;\n new(): SVGRect;\n};\n\ninterface SVGRectElement extends SVGGraphicsElement {\n readonly height: SVGAnimatedLength;\n readonly rx: SVGAnimatedLength;\n readonly ry: SVGAnimatedLength;\n readonly width: SVGAnimatedLength;\n readonly x: SVGAnimatedLength;\n readonly y: SVGAnimatedLength;\n addEventListener(type: K, listener: (this: SVGRectElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGRectElement: {\n prototype: SVGRectElement;\n new(): SVGRectElement;\n};\n\ninterface SVGScriptElement extends SVGElement, SVGURIReference {\n type: string;\n addEventListener(type: K, listener: (this: SVGScriptElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGScriptElement: {\n prototype: SVGScriptElement;\n new(): SVGScriptElement;\n};\n\ninterface SVGStopElement extends SVGElement {\n readonly offset: SVGAnimatedNumber;\n addEventListener(type: K, listener: (this: SVGStopElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGStopElement: {\n prototype: SVGStopElement;\n new(): SVGStopElement;\n};\n\ninterface SVGStringList {\n readonly numberOfItems: number;\n appendItem(newItem: string): string;\n clear(): void;\n getItem(index: number): string;\n initialize(newItem: string): string;\n insertItemBefore(newItem: string, index: number): string;\n removeItem(index: number): string;\n replaceItem(newItem: string, index: number): string;\n}\n\ndeclare var SVGStringList: {\n prototype: SVGStringList;\n new(): SVGStringList;\n};\n\ninterface SVGStyleElement extends SVGElement {\n disabled: boolean;\n media: string;\n title: string;\n type: string;\n addEventListener(type: K, listener: (this: SVGStyleElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGStyleElement: {\n prototype: SVGStyleElement;\n new(): SVGStyleElement;\n};\n\ninterface SVGSVGElementEventMap extends SVGElementEventMap {\n \"SVGAbort\": Event;\n \"SVGError\": Event;\n \"resize\": UIEvent;\n \"scroll\": UIEvent;\n \"SVGUnload\": Event;\n \"SVGZoom\": SVGZoomEvent;\n}\n\ninterface SVGSVGElement extends SVGGraphicsElement, DocumentEvent, SVGFitToViewBox, SVGZoomAndPan {\n contentScriptType: string;\n contentStyleType: string;\n currentScale: number;\n readonly currentTranslate: SVGPoint;\n readonly height: SVGAnimatedLength;\n onabort: (this: SVGSVGElement, ev: Event) => any;\n onerror: (this: SVGSVGElement, ev: Event) => any;\n onresize: (this: SVGSVGElement, ev: UIEvent) => any;\n onscroll: (this: SVGSVGElement, ev: UIEvent) => any;\n onunload: (this: SVGSVGElement, ev: Event) => any;\n onzoom: (this: SVGSVGElement, ev: SVGZoomEvent) => any;\n readonly pixelUnitToMillimeterX: number;\n readonly pixelUnitToMillimeterY: number;\n readonly screenPixelToMillimeterX: number;\n readonly screenPixelToMillimeterY: number;\n readonly viewport: SVGRect;\n readonly width: SVGAnimatedLength;\n readonly x: SVGAnimatedLength;\n readonly y: SVGAnimatedLength;\n checkEnclosure(element: SVGElement, rect: SVGRect): boolean;\n checkIntersection(element: SVGElement, rect: SVGRect): boolean;\n createSVGAngle(): SVGAngle;\n createSVGLength(): SVGLength;\n createSVGMatrix(): SVGMatrix;\n createSVGNumber(): SVGNumber;\n createSVGPoint(): SVGPoint;\n createSVGRect(): SVGRect;\n createSVGTransform(): SVGTransform;\n createSVGTransformFromMatrix(matrix: SVGMatrix): SVGTransform;\n deselectAll(): void;\n forceRedraw(): void;\n getComputedStyle(elt: Element, pseudoElt?: string): CSSStyleDeclaration;\n getCurrentTime(): number;\n getElementById(elementId: string): Element;\n getEnclosureList(rect: SVGRect, referenceElement: SVGElement): NodeListOf;\n getIntersectionList(rect: SVGRect, referenceElement: SVGElement): NodeListOf;\n pauseAnimations(): void;\n setCurrentTime(seconds: number): void;\n suspendRedraw(maxWaitMilliseconds: number): number;\n unpauseAnimations(): void;\n unsuspendRedraw(suspendHandleID: number): void;\n unsuspendRedrawAll(): void;\n addEventListener(type: K, listener: (this: SVGSVGElement, ev: SVGSVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGSVGElement: {\n prototype: SVGSVGElement;\n new(): SVGSVGElement;\n};\n\ninterface SVGSwitchElement extends SVGGraphicsElement {\n addEventListener(type: K, listener: (this: SVGSwitchElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGSwitchElement: {\n prototype: SVGSwitchElement;\n new(): SVGSwitchElement;\n};\n\ninterface SVGSymbolElement extends SVGElement, SVGFitToViewBox {\n addEventListener(type: K, listener: (this: SVGSymbolElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGSymbolElement: {\n prototype: SVGSymbolElement;\n new(): SVGSymbolElement;\n};\n\ninterface SVGTextContentElement extends SVGGraphicsElement {\n readonly lengthAdjust: SVGAnimatedEnumeration;\n readonly textLength: SVGAnimatedLength;\n getCharNumAtPosition(point: SVGPoint): number;\n getComputedTextLength(): number;\n getEndPositionOfChar(charnum: number): SVGPoint;\n getExtentOfChar(charnum: number): SVGRect;\n getNumberOfChars(): number;\n getRotationOfChar(charnum: number): number;\n getStartPositionOfChar(charnum: number): SVGPoint;\n getSubStringLength(charnum: number, nchars: number): number;\n selectSubString(charnum: number, nchars: number): void;\n readonly LENGTHADJUST_SPACING: number;\n readonly LENGTHADJUST_SPACINGANDGLYPHS: number;\n readonly LENGTHADJUST_UNKNOWN: number;\n addEventListener(type: K, listener: (this: SVGTextContentElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGTextContentElement: {\n prototype: SVGTextContentElement;\n new(): SVGTextContentElement;\n readonly LENGTHADJUST_SPACING: number;\n readonly LENGTHADJUST_SPACINGANDGLYPHS: number;\n readonly LENGTHADJUST_UNKNOWN: number;\n};\n\ninterface SVGTextElement extends SVGTextPositioningElement {\n addEventListener(type: K, listener: (this: SVGTextElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGTextElement: {\n prototype: SVGTextElement;\n new(): SVGTextElement;\n};\n\ninterface SVGTextPathElement extends SVGTextContentElement, SVGURIReference {\n readonly method: SVGAnimatedEnumeration;\n readonly spacing: SVGAnimatedEnumeration;\n readonly startOffset: SVGAnimatedLength;\n readonly TEXTPATH_METHODTYPE_ALIGN: number;\n readonly TEXTPATH_METHODTYPE_STRETCH: number;\n readonly TEXTPATH_METHODTYPE_UNKNOWN: number;\n readonly TEXTPATH_SPACINGTYPE_AUTO: number;\n readonly TEXTPATH_SPACINGTYPE_EXACT: number;\n readonly TEXTPATH_SPACINGTYPE_UNKNOWN: number;\n addEventListener(type: K, listener: (this: SVGTextPathElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGTextPathElement: {\n prototype: SVGTextPathElement;\n new(): SVGTextPathElement;\n readonly TEXTPATH_METHODTYPE_ALIGN: number;\n readonly TEXTPATH_METHODTYPE_STRETCH: number;\n readonly TEXTPATH_METHODTYPE_UNKNOWN: number;\n readonly TEXTPATH_SPACINGTYPE_AUTO: number;\n readonly TEXTPATH_SPACINGTYPE_EXACT: number;\n readonly TEXTPATH_SPACINGTYPE_UNKNOWN: number;\n};\n\ninterface SVGTextPositioningElement extends SVGTextContentElement {\n readonly dx: SVGAnimatedLengthList;\n readonly dy: SVGAnimatedLengthList;\n readonly rotate: SVGAnimatedNumberList;\n readonly x: SVGAnimatedLengthList;\n readonly y: SVGAnimatedLengthList;\n addEventListener(type: K, listener: (this: SVGTextPositioningElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGTextPositioningElement: {\n prototype: SVGTextPositioningElement;\n new(): SVGTextPositioningElement;\n};\n\ninterface SVGTitleElement extends SVGElement {\n addEventListener(type: K, listener: (this: SVGTitleElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGTitleElement: {\n prototype: SVGTitleElement;\n new(): SVGTitleElement;\n};\n\ninterface SVGTransform {\n readonly angle: number;\n readonly matrix: SVGMatrix;\n readonly type: number;\n setMatrix(matrix: SVGMatrix): void;\n setRotate(angle: number, cx: number, cy: number): void;\n setScale(sx: number, sy: number): void;\n setSkewX(angle: number): void;\n setSkewY(angle: number): void;\n setTranslate(tx: number, ty: number): void;\n readonly SVG_TRANSFORM_MATRIX: number;\n readonly SVG_TRANSFORM_ROTATE: number;\n readonly SVG_TRANSFORM_SCALE: number;\n readonly SVG_TRANSFORM_SKEWX: number;\n readonly SVG_TRANSFORM_SKEWY: number;\n readonly SVG_TRANSFORM_TRANSLATE: number;\n readonly SVG_TRANSFORM_UNKNOWN: number;\n}\n\ndeclare var SVGTransform: {\n prototype: SVGTransform;\n new(): SVGTransform;\n readonly SVG_TRANSFORM_MATRIX: number;\n readonly SVG_TRANSFORM_ROTATE: number;\n readonly SVG_TRANSFORM_SCALE: number;\n readonly SVG_TRANSFORM_SKEWX: number;\n readonly SVG_TRANSFORM_SKEWY: number;\n readonly SVG_TRANSFORM_TRANSLATE: number;\n readonly SVG_TRANSFORM_UNKNOWN: number;\n};\n\ninterface SVGTransformList {\n readonly numberOfItems: number;\n appendItem(newItem: SVGTransform): SVGTransform;\n clear(): void;\n consolidate(): SVGTransform;\n createSVGTransformFromMatrix(matrix: SVGMatrix): SVGTransform;\n getItem(index: number): SVGTransform;\n initialize(newItem: SVGTransform): SVGTransform;\n insertItemBefore(newItem: SVGTransform, index: number): SVGTransform;\n removeItem(index: number): SVGTransform;\n replaceItem(newItem: SVGTransform, index: number): SVGTransform;\n}\n\ndeclare var SVGTransformList: {\n prototype: SVGTransformList;\n new(): SVGTransformList;\n};\n\ninterface SVGTSpanElement extends SVGTextPositioningElement {\n addEventListener(type: K, listener: (this: SVGTSpanElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGTSpanElement: {\n prototype: SVGTSpanElement;\n new(): SVGTSpanElement;\n};\n\ninterface SVGUnitTypes {\n readonly SVG_UNIT_TYPE_OBJECTBOUNDINGBOX: number;\n readonly SVG_UNIT_TYPE_UNKNOWN: number;\n readonly SVG_UNIT_TYPE_USERSPACEONUSE: number;\n}\ndeclare var SVGUnitTypes: SVGUnitTypes;\n\ninterface SVGUseElement extends SVGGraphicsElement, SVGURIReference {\n readonly animatedInstanceRoot: SVGElementInstance;\n readonly height: SVGAnimatedLength;\n readonly instanceRoot: SVGElementInstance;\n readonly width: SVGAnimatedLength;\n readonly x: SVGAnimatedLength;\n readonly y: SVGAnimatedLength;\n addEventListener(type: K, listener: (this: SVGUseElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGUseElement: {\n prototype: SVGUseElement;\n new(): SVGUseElement;\n};\n\ninterface SVGViewElement extends SVGElement, SVGZoomAndPan, SVGFitToViewBox {\n readonly viewTarget: SVGStringList;\n addEventListener(type: K, listener: (this: SVGViewElement, ev: SVGElementEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var SVGViewElement: {\n prototype: SVGViewElement;\n new(): SVGViewElement;\n};\n\ninterface SVGZoomAndPan {\n readonly zoomAndPan: number;\n}\n\ndeclare var SVGZoomAndPan: {\n readonly SVG_ZOOMANDPAN_DISABLE: number;\n readonly SVG_ZOOMANDPAN_MAGNIFY: number;\n readonly SVG_ZOOMANDPAN_UNKNOWN: number;\n};\n\ninterface SVGZoomEvent extends UIEvent {\n readonly newScale: number;\n readonly newTranslate: SVGPoint;\n readonly previousScale: number;\n readonly previousTranslate: SVGPoint;\n readonly zoomRectScreen: SVGRect;\n}\n\ndeclare var SVGZoomEvent: {\n prototype: SVGZoomEvent;\n new(): SVGZoomEvent;\n};\n\ninterface SyncManager {\n getTags(): any;\n register(tag: string): Promise;\n}\n\ndeclare var SyncManager: {\n prototype: SyncManager;\n new(): SyncManager;\n};\n\ninterface Text extends CharacterData {\n readonly wholeText: string;\n readonly assignedSlot: HTMLSlotElement | null;\n splitText(offset: number): Text;\n}\n\ndeclare var Text: {\n prototype: Text;\n new(data?: string): Text;\n};\n\ninterface TextEvent extends UIEvent {\n readonly data: string;\n readonly inputMethod: number;\n readonly locale: string;\n initTextEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, viewArg: Window, dataArg: string, inputMethod: number, locale: string): void;\n readonly DOM_INPUT_METHOD_DROP: number;\n readonly DOM_INPUT_METHOD_HANDWRITING: number;\n readonly DOM_INPUT_METHOD_IME: number;\n readonly DOM_INPUT_METHOD_KEYBOARD: number;\n readonly DOM_INPUT_METHOD_MULTIMODAL: number;\n readonly DOM_INPUT_METHOD_OPTION: number;\n readonly DOM_INPUT_METHOD_PASTE: number;\n readonly DOM_INPUT_METHOD_SCRIPT: number;\n readonly DOM_INPUT_METHOD_UNKNOWN: number;\n readonly DOM_INPUT_METHOD_VOICE: number;\n}\n\ndeclare var TextEvent: {\n prototype: TextEvent;\n new(): TextEvent;\n readonly DOM_INPUT_METHOD_DROP: number;\n readonly DOM_INPUT_METHOD_HANDWRITING: number;\n readonly DOM_INPUT_METHOD_IME: number;\n readonly DOM_INPUT_METHOD_KEYBOARD: number;\n readonly DOM_INPUT_METHOD_MULTIMODAL: number;\n readonly DOM_INPUT_METHOD_OPTION: number;\n readonly DOM_INPUT_METHOD_PASTE: number;\n readonly DOM_INPUT_METHOD_SCRIPT: number;\n readonly DOM_INPUT_METHOD_UNKNOWN: number;\n readonly DOM_INPUT_METHOD_VOICE: number;\n};\n\ninterface TextMetrics {\n readonly width: number;\n}\n\ndeclare var TextMetrics: {\n prototype: TextMetrics;\n new(): TextMetrics;\n};\n\ninterface TextTrackEventMap {\n \"cuechange\": Event;\n \"error\": Event;\n \"load\": Event;\n}\n\ninterface TextTrack extends EventTarget {\n readonly activeCues: TextTrackCueList;\n readonly cues: TextTrackCueList;\n readonly inBandMetadataTrackDispatchType: string;\n readonly kind: string;\n readonly label: string;\n readonly language: string;\n mode: any;\n oncuechange: (this: TextTrack, ev: Event) => any;\n onerror: (this: TextTrack, ev: Event) => any;\n onload: (this: TextTrack, ev: Event) => any;\n readonly readyState: number;\n addCue(cue: TextTrackCue): void;\n removeCue(cue: TextTrackCue): void;\n readonly DISABLED: number;\n readonly ERROR: number;\n readonly HIDDEN: number;\n readonly LOADED: number;\n readonly LOADING: number;\n readonly NONE: number;\n readonly SHOWING: number;\n addEventListener(type: K, listener: (this: TextTrack, ev: TextTrackEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var TextTrack: {\n prototype: TextTrack;\n new(): TextTrack;\n readonly DISABLED: number;\n readonly ERROR: number;\n readonly HIDDEN: number;\n readonly LOADED: number;\n readonly LOADING: number;\n readonly NONE: number;\n readonly SHOWING: number;\n};\n\ninterface TextTrackCueEventMap {\n \"enter\": Event;\n \"exit\": Event;\n}\n\ninterface TextTrackCue extends EventTarget {\n endTime: number;\n id: string;\n onenter: (this: TextTrackCue, ev: Event) => any;\n onexit: (this: TextTrackCue, ev: Event) => any;\n pauseOnExit: boolean;\n startTime: number;\n text: string;\n readonly track: TextTrack;\n getCueAsHTML(): DocumentFragment;\n addEventListener(type: K, listener: (this: TextTrackCue, ev: TextTrackCueEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var TextTrackCue: {\n prototype: TextTrackCue;\n new(startTime: number, endTime: number, text: string): TextTrackCue;\n};\n\ninterface TextTrackCueList {\n readonly length: number;\n getCueById(id: string): TextTrackCue;\n item(index: number): TextTrackCue;\n [index: number]: TextTrackCue;\n}\n\ndeclare var TextTrackCueList: {\n prototype: TextTrackCueList;\n new(): TextTrackCueList;\n};\n\ninterface TextTrackListEventMap {\n \"addtrack\": TrackEvent;\n}\n\ninterface TextTrackList extends EventTarget {\n readonly length: number;\n onaddtrack: ((this: TextTrackList, ev: TrackEvent) => any) | null;\n item(index: number): TextTrack;\n addEventListener(type: K, listener: (this: TextTrackList, ev: TextTrackListEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n [index: number]: TextTrack;\n}\n\ndeclare var TextTrackList: {\n prototype: TextTrackList;\n new(): TextTrackList;\n};\n\ninterface TimeRanges {\n readonly length: number;\n end(index: number): number;\n start(index: number): number;\n}\n\ndeclare var TimeRanges: {\n prototype: TimeRanges;\n new(): TimeRanges;\n};\n\ninterface Touch {\n readonly clientX: number;\n readonly clientY: number;\n readonly identifier: number;\n readonly pageX: number;\n readonly pageY: number;\n readonly screenX: number;\n readonly screenY: number;\n readonly target: EventTarget;\n}\n\ndeclare var Touch: {\n prototype: Touch;\n new(): Touch;\n};\n\ninterface TouchEvent extends UIEvent {\n readonly altKey: boolean;\n readonly changedTouches: TouchList;\n readonly charCode: number;\n readonly ctrlKey: boolean;\n readonly keyCode: number;\n readonly metaKey: boolean;\n readonly shiftKey: boolean;\n readonly targetTouches: TouchList;\n readonly touches: TouchList;\n readonly which: number;\n}\n\ndeclare var TouchEvent: {\n prototype: TouchEvent;\n new(type: string, touchEventInit?: TouchEventInit): TouchEvent;\n};\n\ninterface TouchList {\n readonly length: number;\n item(index: number): Touch | null;\n [index: number]: Touch;\n}\n\ndeclare var TouchList: {\n prototype: TouchList;\n new(): TouchList;\n};\n\ninterface TrackEvent extends Event {\n readonly track: VideoTrack | AudioTrack | TextTrack | null;\n}\n\ndeclare var TrackEvent: {\n prototype: TrackEvent;\n new(typeArg: string, eventInitDict?: TrackEventInit): TrackEvent;\n};\n\ninterface TransitionEvent extends Event {\n readonly elapsedTime: number;\n readonly propertyName: string;\n initTransitionEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, propertyNameArg: string, elapsedTimeArg: number): void;\n}\n\ndeclare var TransitionEvent: {\n prototype: TransitionEvent;\n new(typeArg: string, eventInitDict?: TransitionEventInit): TransitionEvent;\n};\n\ninterface TreeWalker {\n currentNode: Node;\n readonly expandEntityReferences: boolean;\n readonly filter: NodeFilter;\n readonly root: Node;\n readonly whatToShow: number;\n firstChild(): Node;\n lastChild(): Node;\n nextNode(): Node;\n nextSibling(): Node;\n parentNode(): Node;\n previousNode(): Node;\n previousSibling(): Node;\n}\n\ndeclare var TreeWalker: {\n prototype: TreeWalker;\n new(): TreeWalker;\n};\n\ninterface UIEvent extends Event {\n readonly detail: number;\n readonly view: Window;\n initUIEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, viewArg: Window, detailArg: number): void;\n}\n\ndeclare var UIEvent: {\n prototype: UIEvent;\n new(typeArg: string, eventInitDict?: UIEventInit): UIEvent;\n};\n\ninterface UnviewableContentIdentifiedEvent extends NavigationEventWithReferrer {\n readonly mediaType: string;\n}\n\ndeclare var UnviewableContentIdentifiedEvent: {\n prototype: UnviewableContentIdentifiedEvent;\n new(): UnviewableContentIdentifiedEvent;\n};\n\ninterface URL {\n hash: string;\n host: string;\n hostname: string;\n href: string;\n readonly origin: string;\n password: string;\n pathname: string;\n port: string;\n protocol: string;\n search: string;\n username: string;\n readonly searchParams: URLSearchParams;\n toString(): string;\n}\n\ndeclare var URL: {\n prototype: URL;\n new(url: string, base?: string): URL;\n createObjectURL(object: any, options?: ObjectURLOptions): string;\n revokeObjectURL(url: string): void;\n};\n\ninterface ValidityState {\n readonly badInput: boolean;\n readonly customError: boolean;\n readonly patternMismatch: boolean;\n readonly rangeOverflow: boolean;\n readonly rangeUnderflow: boolean;\n readonly stepMismatch: boolean;\n readonly tooLong: boolean;\n readonly typeMismatch: boolean;\n readonly valid: boolean;\n readonly valueMissing: boolean;\n}\n\ndeclare var ValidityState: {\n prototype: ValidityState;\n new(): ValidityState;\n};\n\ninterface VideoPlaybackQuality {\n readonly corruptedVideoFrames: number;\n readonly creationTime: number;\n readonly droppedVideoFrames: number;\n readonly totalFrameDelay: number;\n readonly totalVideoFrames: number;\n}\n\ndeclare var VideoPlaybackQuality: {\n prototype: VideoPlaybackQuality;\n new(): VideoPlaybackQuality;\n};\n\ninterface VideoTrack {\n readonly id: string;\n kind: string;\n readonly label: string;\n language: string;\n selected: boolean;\n readonly sourceBuffer: SourceBuffer;\n}\n\ndeclare var VideoTrack: {\n prototype: VideoTrack;\n new(): VideoTrack;\n};\n\ninterface VideoTrackListEventMap {\n \"addtrack\": TrackEvent;\n \"change\": Event;\n \"removetrack\": TrackEvent;\n}\n\ninterface VideoTrackList extends EventTarget {\n readonly length: number;\n onaddtrack: (this: VideoTrackList, ev: TrackEvent) => any;\n onchange: (this: VideoTrackList, ev: Event) => any;\n onremovetrack: (this: VideoTrackList, ev: TrackEvent) => any;\n readonly selectedIndex: number;\n getTrackById(id: string): VideoTrack | null;\n item(index: number): VideoTrack;\n addEventListener(type: K, listener: (this: VideoTrackList, ev: VideoTrackListEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n [index: number]: VideoTrack;\n}\n\ndeclare var VideoTrackList: {\n prototype: VideoTrackList;\n new(): VideoTrackList;\n};\n\ninterface WaveShaperNode extends AudioNode {\n curve: Float32Array | null;\n oversample: OverSampleType;\n}\n\ndeclare var WaveShaperNode: {\n prototype: WaveShaperNode;\n new(): WaveShaperNode;\n};\n\ninterface WebAuthentication {\n getAssertion(assertionChallenge: any, options?: AssertionOptions): Promise;\n makeCredential(accountInformation: Account, cryptoParameters: ScopedCredentialParameters[], attestationChallenge: any, options?: ScopedCredentialOptions): Promise;\n}\n\ndeclare var WebAuthentication: {\n prototype: WebAuthentication;\n new(): WebAuthentication;\n};\n\ninterface WebAuthnAssertion {\n readonly authenticatorData: ArrayBuffer;\n readonly clientData: ArrayBuffer;\n readonly credential: ScopedCredential;\n readonly signature: ArrayBuffer;\n}\n\ndeclare var WebAuthnAssertion: {\n prototype: WebAuthnAssertion;\n new(): WebAuthnAssertion;\n};\n\ninterface WEBGL_compressed_texture_s3tc {\n readonly COMPRESSED_RGB_S3TC_DXT1_EXT: number;\n readonly COMPRESSED_RGBA_S3TC_DXT1_EXT: number;\n readonly COMPRESSED_RGBA_S3TC_DXT3_EXT: number;\n readonly COMPRESSED_RGBA_S3TC_DXT5_EXT: number;\n}\n\ndeclare var WEBGL_compressed_texture_s3tc: {\n prototype: WEBGL_compressed_texture_s3tc;\n new(): WEBGL_compressed_texture_s3tc;\n readonly COMPRESSED_RGB_S3TC_DXT1_EXT: number;\n readonly COMPRESSED_RGBA_S3TC_DXT1_EXT: number;\n readonly COMPRESSED_RGBA_S3TC_DXT3_EXT: number;\n readonly COMPRESSED_RGBA_S3TC_DXT5_EXT: number;\n};\n\ninterface WEBGL_debug_renderer_info {\n readonly UNMASKED_RENDERER_WEBGL: number;\n readonly UNMASKED_VENDOR_WEBGL: number;\n}\n\ndeclare var WEBGL_debug_renderer_info: {\n prototype: WEBGL_debug_renderer_info;\n new(): WEBGL_debug_renderer_info;\n readonly UNMASKED_RENDERER_WEBGL: number;\n readonly UNMASKED_VENDOR_WEBGL: number;\n};\n\ninterface WEBGL_depth_texture {\n readonly UNSIGNED_INT_24_8_WEBGL: number;\n}\n\ndeclare var WEBGL_depth_texture: {\n prototype: WEBGL_depth_texture;\n new(): WEBGL_depth_texture;\n readonly UNSIGNED_INT_24_8_WEBGL: number;\n};\n\ninterface WebGLActiveInfo {\n readonly name: string;\n readonly size: number;\n readonly type: number;\n}\n\ndeclare var WebGLActiveInfo: {\n prototype: WebGLActiveInfo;\n new(): WebGLActiveInfo;\n};\n\ninterface WebGLBuffer extends WebGLObject {\n}\n\ndeclare var WebGLBuffer: {\n prototype: WebGLBuffer;\n new(): WebGLBuffer;\n};\n\ninterface WebGLContextEvent extends Event {\n readonly statusMessage: string;\n}\n\ndeclare var WebGLContextEvent: {\n prototype: WebGLContextEvent;\n new(typeArg: string, eventInitDict?: WebGLContextEventInit): WebGLContextEvent;\n};\n\ninterface WebGLFramebuffer extends WebGLObject {\n}\n\ndeclare var WebGLFramebuffer: {\n prototype: WebGLFramebuffer;\n new(): WebGLFramebuffer;\n};\n\ninterface WebGLObject {\n}\n\ndeclare var WebGLObject: {\n prototype: WebGLObject;\n new(): WebGLObject;\n};\n\ninterface WebGLProgram extends WebGLObject {\n}\n\ndeclare var WebGLProgram: {\n prototype: WebGLProgram;\n new(): WebGLProgram;\n};\n\ninterface WebGLRenderbuffer extends WebGLObject {\n}\n\ndeclare var WebGLRenderbuffer: {\n prototype: WebGLRenderbuffer;\n new(): WebGLRenderbuffer;\n};\n\ninterface WebGLRenderingContext {\n readonly canvas: HTMLCanvasElement;\n readonly drawingBufferHeight: number;\n readonly drawingBufferWidth: number;\n activeTexture(texture: number): void;\n attachShader(program: WebGLProgram | null, shader: WebGLShader | null): void;\n bindAttribLocation(program: WebGLProgram | null, index: number, name: string): void;\n bindBuffer(target: number, buffer: WebGLBuffer | null): void;\n bindFramebuffer(target: number, framebuffer: WebGLFramebuffer | null): void;\n bindRenderbuffer(target: number, renderbuffer: WebGLRenderbuffer | null): void;\n bindTexture(target: number, texture: WebGLTexture | null): void;\n blendColor(red: number, green: number, blue: number, alpha: number): void;\n blendEquation(mode: number): void;\n blendEquationSeparate(modeRGB: number, modeAlpha: number): void;\n blendFunc(sfactor: number, dfactor: number): void;\n blendFuncSeparate(srcRGB: number, dstRGB: number, srcAlpha: number, dstAlpha: number): void;\n bufferData(target: number, size: number | ArrayBufferView | ArrayBuffer, usage: number): void;\n bufferSubData(target: number, offset: number, data: ArrayBufferView | ArrayBuffer): void;\n checkFramebufferStatus(target: number): number;\n clear(mask: number): void;\n clearColor(red: number, green: number, blue: number, alpha: number): void;\n clearDepth(depth: number): void;\n clearStencil(s: number): void;\n colorMask(red: boolean, green: boolean, blue: boolean, alpha: boolean): void;\n compileShader(shader: WebGLShader | null): void;\n compressedTexImage2D(target: number, level: number, internalformat: number, width: number, height: number, border: number, data: ArrayBufferView): void;\n compressedTexSubImage2D(target: number, level: number, xoffset: number, yoffset: number, width: number, height: number, format: number, data: ArrayBufferView): void;\n copyTexImage2D(target: number, level: number, internalformat: number, x: number, y: number, width: number, height: number, border: number): void;\n copyTexSubImage2D(target: number, level: number, xoffset: number, yoffset: number, x: number, y: number, width: number, height: number): void;\n createBuffer(): WebGLBuffer | null;\n createFramebuffer(): WebGLFramebuffer | null;\n createProgram(): WebGLProgram | null;\n createRenderbuffer(): WebGLRenderbuffer | null;\n createShader(type: number): WebGLShader | null;\n createTexture(): WebGLTexture | null;\n cullFace(mode: number): void;\n deleteBuffer(buffer: WebGLBuffer | null): void;\n deleteFramebuffer(framebuffer: WebGLFramebuffer | null): void;\n deleteProgram(program: WebGLProgram | null): void;\n deleteRenderbuffer(renderbuffer: WebGLRenderbuffer | null): void;\n deleteShader(shader: WebGLShader | null): void;\n deleteTexture(texture: WebGLTexture | null): void;\n depthFunc(func: number): void;\n depthMask(flag: boolean): void;\n depthRange(zNear: number, zFar: number): void;\n detachShader(program: WebGLProgram | null, shader: WebGLShader | null): void;\n disable(cap: number): void;\n disableVertexAttribArray(index: number): void;\n drawArrays(mode: number, first: number, count: number): void;\n drawElements(mode: number, count: number, type: number, offset: number): void;\n enable(cap: number): void;\n enableVertexAttribArray(index: number): void;\n finish(): void;\n flush(): void;\n framebufferRenderbuffer(target: number, attachment: number, renderbuffertarget: number, renderbuffer: WebGLRenderbuffer | null): void;\n framebufferTexture2D(target: number, attachment: number, textarget: number, texture: WebGLTexture | null, level: number): void;\n frontFace(mode: number): void;\n generateMipmap(target: number): void;\n getActiveAttrib(program: WebGLProgram | null, index: number): WebGLActiveInfo | null;\n getActiveUniform(program: WebGLProgram | null, index: number): WebGLActiveInfo | null;\n getAttachedShaders(program: WebGLProgram | null): WebGLShader[] | null;\n getAttribLocation(program: WebGLProgram | null, name: string): number;\n getBufferParameter(target: number, pname: number): any;\n getContextAttributes(): WebGLContextAttributes;\n getError(): number;\n getExtension(name: string): any;\n getFramebufferAttachmentParameter(target: number, attachment: number, pname: number): any;\n getParameter(pname: number): any;\n getProgramInfoLog(program: WebGLProgram | null): string | null;\n getProgramParameter(program: WebGLProgram | null, pname: number): any;\n getRenderbufferParameter(target: number, pname: number): any;\n getShaderInfoLog(shader: WebGLShader | null): string | null;\n getShaderParameter(shader: WebGLShader | null, pname: number): any;\n getShaderPrecisionFormat(shadertype: number, precisiontype: number): WebGLShaderPrecisionFormat | null;\n getShaderSource(shader: WebGLShader | null): string | null;\n getSupportedExtensions(): string[] | null;\n getTexParameter(target: number, pname: number): any;\n getUniform(program: WebGLProgram | null, location: WebGLUniformLocation | null): any;\n getUniformLocation(program: WebGLProgram | null, name: string): WebGLUniformLocation | null;\n getVertexAttrib(index: number, pname: number): any;\n getVertexAttribOffset(index: number, pname: number): number;\n hint(target: number, mode: number): void;\n isBuffer(buffer: WebGLBuffer | null): boolean;\n isContextLost(): boolean;\n isEnabled(cap: number): boolean;\n isFramebuffer(framebuffer: WebGLFramebuffer | null): boolean;\n isProgram(program: WebGLProgram | null): boolean;\n isRenderbuffer(renderbuffer: WebGLRenderbuffer | null): boolean;\n isShader(shader: WebGLShader | null): boolean;\n isTexture(texture: WebGLTexture | null): boolean;\n lineWidth(width: number): void;\n linkProgram(program: WebGLProgram | null): void;\n pixelStorei(pname: number, param: number | boolean): void;\n polygonOffset(factor: number, units: number): void;\n readPixels(x: number, y: number, width: number, height: number, format: number, type: number, pixels: ArrayBufferView | null): void;\n renderbufferStorage(target: number, internalformat: number, width: number, height: number): void;\n sampleCoverage(value: number, invert: boolean): void;\n scissor(x: number, y: number, width: number, height: number): void;\n shaderSource(shader: WebGLShader | null, source: string): void;\n stencilFunc(func: number, ref: number, mask: number): void;\n stencilFuncSeparate(face: number, func: number, ref: number, mask: number): void;\n stencilMask(mask: number): void;\n stencilMaskSeparate(face: number, mask: number): void;\n stencilOp(fail: number, zfail: number, zpass: number): void;\n stencilOpSeparate(face: number, fail: number, zfail: number, zpass: number): void;\n texImage2D(target: number, level: number, internalformat: number, width: number, height: number, border: number, format: number, type: number, pixels: ArrayBufferView | null): void;\n texImage2D(target: number, level: number, internalformat: number, format: number, type: number, pixels: ImageBitmap | ImageData | HTMLVideoElement | HTMLImageElement | HTMLCanvasElement): void;\n texParameterf(target: number, pname: number, param: number): void;\n texParameteri(target: number, pname: number, param: number): void;\n texSubImage2D(target: number, level: number, xoffset: number, yoffset: number, width: number, height: number, format: number, type: number, pixels: ArrayBufferView | null): void;\n texSubImage2D(target: number, level: number, xoffset: number, yoffset: number, format: number, type: number, pixels: ImageBitmap | ImageData | HTMLVideoElement | HTMLImageElement | HTMLCanvasElement): void;\n uniform1f(location: WebGLUniformLocation | null, x: number): void;\n uniform1fv(location: WebGLUniformLocation, v: Float32Array | number[]): void;\n uniform1i(location: WebGLUniformLocation | null, x: number): void;\n uniform1iv(location: WebGLUniformLocation, v: Int32Array | number[]): void;\n uniform2f(location: WebGLUniformLocation | null, x: number, y: number): void;\n uniform2fv(location: WebGLUniformLocation, v: Float32Array | number[]): void;\n uniform2i(location: WebGLUniformLocation | null, x: number, y: number): void;\n uniform2iv(location: WebGLUniformLocation, v: Int32Array | number[]): void;\n uniform3f(location: WebGLUniformLocation | null, x: number, y: number, z: number): void;\n uniform3fv(location: WebGLUniformLocation, v: Float32Array | number[]): void;\n uniform3i(location: WebGLUniformLocation | null, x: number, y: number, z: number): void;\n uniform3iv(location: WebGLUniformLocation, v: Int32Array | number[]): void;\n uniform4f(location: WebGLUniformLocation | null, x: number, y: number, z: number, w: number): void;\n uniform4fv(location: WebGLUniformLocation, v: Float32Array | number[]): void;\n uniform4i(location: WebGLUniformLocation | null, x: number, y: number, z: number, w: number): void;\n uniform4iv(location: WebGLUniformLocation, v: Int32Array | number[]): void;\n uniformMatrix2fv(location: WebGLUniformLocation, transpose: boolean, value: Float32Array | number[]): void;\n uniformMatrix3fv(location: WebGLUniformLocation, transpose: boolean, value: Float32Array | number[]): void;\n uniformMatrix4fv(location: WebGLUniformLocation, transpose: boolean, value: Float32Array | number[]): void;\n useProgram(program: WebGLProgram | null): void;\n validateProgram(program: WebGLProgram | null): void;\n vertexAttrib1f(indx: number, x: number): void;\n vertexAttrib1fv(indx: number, values: Float32Array | number[]): void;\n vertexAttrib2f(indx: number, x: number, y: number): void;\n vertexAttrib2fv(indx: number, values: Float32Array | number[]): void;\n vertexAttrib3f(indx: number, x: number, y: number, z: number): void;\n vertexAttrib3fv(indx: number, values: Float32Array | number[]): void;\n vertexAttrib4f(indx: number, x: number, y: number, z: number, w: number): void;\n vertexAttrib4fv(indx: number, values: Float32Array | number[]): void;\n vertexAttribPointer(indx: number, size: number, type: number, normalized: boolean, stride: number, offset: number): void;\n viewport(x: number, y: number, width: number, height: number): void;\n readonly ACTIVE_ATTRIBUTES: number;\n readonly ACTIVE_TEXTURE: number;\n readonly ACTIVE_UNIFORMS: number;\n readonly ALIASED_LINE_WIDTH_RANGE: number;\n readonly ALIASED_POINT_SIZE_RANGE: number;\n readonly ALPHA: number;\n readonly ALPHA_BITS: number;\n readonly ALWAYS: number;\n readonly ARRAY_BUFFER: number;\n readonly ARRAY_BUFFER_BINDING: number;\n readonly ATTACHED_SHADERS: number;\n readonly BACK: number;\n readonly BLEND: number;\n readonly BLEND_COLOR: number;\n readonly BLEND_DST_ALPHA: number;\n readonly BLEND_DST_RGB: number;\n readonly BLEND_EQUATION: number;\n readonly BLEND_EQUATION_ALPHA: number;\n readonly BLEND_EQUATION_RGB: number;\n readonly BLEND_SRC_ALPHA: number;\n readonly BLEND_SRC_RGB: number;\n readonly BLUE_BITS: number;\n readonly BOOL: number;\n readonly BOOL_VEC2: number;\n readonly BOOL_VEC3: number;\n readonly BOOL_VEC4: number;\n readonly BROWSER_DEFAULT_WEBGL: number;\n readonly BUFFER_SIZE: number;\n readonly BUFFER_USAGE: number;\n readonly BYTE: number;\n readonly CCW: number;\n readonly CLAMP_TO_EDGE: number;\n readonly COLOR_ATTACHMENT0: number;\n readonly COLOR_BUFFER_BIT: number;\n readonly COLOR_CLEAR_VALUE: number;\n readonly COLOR_WRITEMASK: number;\n readonly COMPILE_STATUS: number;\n readonly COMPRESSED_TEXTURE_FORMATS: number;\n readonly CONSTANT_ALPHA: number;\n readonly CONSTANT_COLOR: number;\n readonly CONTEXT_LOST_WEBGL: number;\n readonly CULL_FACE: number;\n readonly CULL_FACE_MODE: number;\n readonly CURRENT_PROGRAM: number;\n readonly CURRENT_VERTEX_ATTRIB: number;\n readonly CW: number;\n readonly DECR: number;\n readonly DECR_WRAP: number;\n readonly DELETE_STATUS: number;\n readonly DEPTH_ATTACHMENT: number;\n readonly DEPTH_BITS: number;\n readonly DEPTH_BUFFER_BIT: number;\n readonly DEPTH_CLEAR_VALUE: number;\n readonly DEPTH_COMPONENT: number;\n readonly DEPTH_COMPONENT16: number;\n readonly DEPTH_FUNC: number;\n readonly DEPTH_RANGE: number;\n readonly DEPTH_STENCIL: number;\n readonly DEPTH_STENCIL_ATTACHMENT: number;\n readonly DEPTH_TEST: number;\n readonly DEPTH_WRITEMASK: number;\n readonly DITHER: number;\n readonly DONT_CARE: number;\n readonly DST_ALPHA: number;\n readonly DST_COLOR: number;\n readonly DYNAMIC_DRAW: number;\n readonly ELEMENT_ARRAY_BUFFER: number;\n readonly ELEMENT_ARRAY_BUFFER_BINDING: number;\n readonly EQUAL: number;\n readonly FASTEST: number;\n readonly FLOAT: number;\n readonly FLOAT_MAT2: number;\n readonly FLOAT_MAT3: number;\n readonly FLOAT_MAT4: number;\n readonly FLOAT_VEC2: number;\n readonly FLOAT_VEC3: number;\n readonly FLOAT_VEC4: number;\n readonly FRAGMENT_SHADER: number;\n readonly FRAMEBUFFER: number;\n readonly FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: number;\n readonly FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: number;\n readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: number;\n readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: number;\n readonly FRAMEBUFFER_BINDING: number;\n readonly FRAMEBUFFER_COMPLETE: number;\n readonly FRAMEBUFFER_INCOMPLETE_ATTACHMENT: number;\n readonly FRAMEBUFFER_INCOMPLETE_DIMENSIONS: number;\n readonly FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: number;\n readonly FRAMEBUFFER_UNSUPPORTED: number;\n readonly FRONT: number;\n readonly FRONT_AND_BACK: number;\n readonly FRONT_FACE: number;\n readonly FUNC_ADD: number;\n readonly FUNC_REVERSE_SUBTRACT: number;\n readonly FUNC_SUBTRACT: number;\n readonly GENERATE_MIPMAP_HINT: number;\n readonly GEQUAL: number;\n readonly GREATER: number;\n readonly GREEN_BITS: number;\n readonly HIGH_FLOAT: number;\n readonly HIGH_INT: number;\n readonly IMPLEMENTATION_COLOR_READ_FORMAT: number;\n readonly IMPLEMENTATION_COLOR_READ_TYPE: number;\n readonly INCR: number;\n readonly INCR_WRAP: number;\n readonly INT: number;\n readonly INT_VEC2: number;\n readonly INT_VEC3: number;\n readonly INT_VEC4: number;\n readonly INVALID_ENUM: number;\n readonly INVALID_FRAMEBUFFER_OPERATION: number;\n readonly INVALID_OPERATION: number;\n readonly INVALID_VALUE: number;\n readonly INVERT: number;\n readonly KEEP: number;\n readonly LEQUAL: number;\n readonly LESS: number;\n readonly LINE_LOOP: number;\n readonly LINE_STRIP: number;\n readonly LINE_WIDTH: number;\n readonly LINEAR: number;\n readonly LINEAR_MIPMAP_LINEAR: number;\n readonly LINEAR_MIPMAP_NEAREST: number;\n readonly LINES: number;\n readonly LINK_STATUS: number;\n readonly LOW_FLOAT: number;\n readonly LOW_INT: number;\n readonly LUMINANCE: number;\n readonly LUMINANCE_ALPHA: number;\n readonly MAX_COMBINED_TEXTURE_IMAGE_UNITS: number;\n readonly MAX_CUBE_MAP_TEXTURE_SIZE: number;\n readonly MAX_FRAGMENT_UNIFORM_VECTORS: number;\n readonly MAX_RENDERBUFFER_SIZE: number;\n readonly MAX_TEXTURE_IMAGE_UNITS: number;\n readonly MAX_TEXTURE_SIZE: number;\n readonly MAX_VARYING_VECTORS: number;\n readonly MAX_VERTEX_ATTRIBS: number;\n readonly MAX_VERTEX_TEXTURE_IMAGE_UNITS: number;\n readonly MAX_VERTEX_UNIFORM_VECTORS: number;\n readonly MAX_VIEWPORT_DIMS: number;\n readonly MEDIUM_FLOAT: number;\n readonly MEDIUM_INT: number;\n readonly MIRRORED_REPEAT: number;\n readonly NEAREST: number;\n readonly NEAREST_MIPMAP_LINEAR: number;\n readonly NEAREST_MIPMAP_NEAREST: number;\n readonly NEVER: number;\n readonly NICEST: number;\n readonly NO_ERROR: number;\n readonly NONE: number;\n readonly NOTEQUAL: number;\n readonly ONE: number;\n readonly ONE_MINUS_CONSTANT_ALPHA: number;\n readonly ONE_MINUS_CONSTANT_COLOR: number;\n readonly ONE_MINUS_DST_ALPHA: number;\n readonly ONE_MINUS_DST_COLOR: number;\n readonly ONE_MINUS_SRC_ALPHA: number;\n readonly ONE_MINUS_SRC_COLOR: number;\n readonly OUT_OF_MEMORY: number;\n readonly PACK_ALIGNMENT: number;\n readonly POINTS: number;\n readonly POLYGON_OFFSET_FACTOR: number;\n readonly POLYGON_OFFSET_FILL: number;\n readonly POLYGON_OFFSET_UNITS: number;\n readonly RED_BITS: number;\n readonly RENDERBUFFER: number;\n readonly RENDERBUFFER_ALPHA_SIZE: number;\n readonly RENDERBUFFER_BINDING: number;\n readonly RENDERBUFFER_BLUE_SIZE: number;\n readonly RENDERBUFFER_DEPTH_SIZE: number;\n readonly RENDERBUFFER_GREEN_SIZE: number;\n readonly RENDERBUFFER_HEIGHT: number;\n readonly RENDERBUFFER_INTERNAL_FORMAT: number;\n readonly RENDERBUFFER_RED_SIZE: number;\n readonly RENDERBUFFER_STENCIL_SIZE: number;\n readonly RENDERBUFFER_WIDTH: number;\n readonly RENDERER: number;\n readonly REPEAT: number;\n readonly REPLACE: number;\n readonly RGB: number;\n readonly RGB5_A1: number;\n readonly RGB565: number;\n readonly RGBA: number;\n readonly RGBA4: number;\n readonly SAMPLE_ALPHA_TO_COVERAGE: number;\n readonly SAMPLE_BUFFERS: number;\n readonly SAMPLE_COVERAGE: number;\n readonly SAMPLE_COVERAGE_INVERT: number;\n readonly SAMPLE_COVERAGE_VALUE: number;\n readonly SAMPLER_2D: number;\n readonly SAMPLER_CUBE: number;\n readonly SAMPLES: number;\n readonly SCISSOR_BOX: number;\n readonly SCISSOR_TEST: number;\n readonly SHADER_TYPE: number;\n readonly SHADING_LANGUAGE_VERSION: number;\n readonly SHORT: number;\n readonly SRC_ALPHA: number;\n readonly SRC_ALPHA_SATURATE: number;\n readonly SRC_COLOR: number;\n readonly STATIC_DRAW: number;\n readonly STENCIL_ATTACHMENT: number;\n readonly STENCIL_BACK_FAIL: number;\n readonly STENCIL_BACK_FUNC: number;\n readonly STENCIL_BACK_PASS_DEPTH_FAIL: number;\n readonly STENCIL_BACK_PASS_DEPTH_PASS: number;\n readonly STENCIL_BACK_REF: number;\n readonly STENCIL_BACK_VALUE_MASK: number;\n readonly STENCIL_BACK_WRITEMASK: number;\n readonly STENCIL_BITS: number;\n readonly STENCIL_BUFFER_BIT: number;\n readonly STENCIL_CLEAR_VALUE: number;\n readonly STENCIL_FAIL: number;\n readonly STENCIL_FUNC: number;\n readonly STENCIL_INDEX: number;\n readonly STENCIL_INDEX8: number;\n readonly STENCIL_PASS_DEPTH_FAIL: number;\n readonly STENCIL_PASS_DEPTH_PASS: number;\n readonly STENCIL_REF: number;\n readonly STENCIL_TEST: number;\n readonly STENCIL_VALUE_MASK: number;\n readonly STENCIL_WRITEMASK: number;\n readonly STREAM_DRAW: number;\n readonly SUBPIXEL_BITS: number;\n readonly TEXTURE: number;\n readonly TEXTURE_2D: number;\n readonly TEXTURE_BINDING_2D: number;\n readonly TEXTURE_BINDING_CUBE_MAP: number;\n readonly TEXTURE_CUBE_MAP: number;\n readonly TEXTURE_CUBE_MAP_NEGATIVE_X: number;\n readonly TEXTURE_CUBE_MAP_NEGATIVE_Y: number;\n readonly TEXTURE_CUBE_MAP_NEGATIVE_Z: number;\n readonly TEXTURE_CUBE_MAP_POSITIVE_X: number;\n readonly TEXTURE_CUBE_MAP_POSITIVE_Y: number;\n readonly TEXTURE_CUBE_MAP_POSITIVE_Z: number;\n readonly TEXTURE_MAG_FILTER: number;\n readonly TEXTURE_MIN_FILTER: number;\n readonly TEXTURE_WRAP_S: number;\n readonly TEXTURE_WRAP_T: number;\n readonly TEXTURE0: number;\n readonly TEXTURE1: number;\n readonly TEXTURE10: number;\n readonly TEXTURE11: number;\n readonly TEXTURE12: number;\n readonly TEXTURE13: number;\n readonly TEXTURE14: number;\n readonly TEXTURE15: number;\n readonly TEXTURE16: number;\n readonly TEXTURE17: number;\n readonly TEXTURE18: number;\n readonly TEXTURE19: number;\n readonly TEXTURE2: number;\n readonly TEXTURE20: number;\n readonly TEXTURE21: number;\n readonly TEXTURE22: number;\n readonly TEXTURE23: number;\n readonly TEXTURE24: number;\n readonly TEXTURE25: number;\n readonly TEXTURE26: number;\n readonly TEXTURE27: number;\n readonly TEXTURE28: number;\n readonly TEXTURE29: number;\n readonly TEXTURE3: number;\n readonly TEXTURE30: number;\n readonly TEXTURE31: number;\n readonly TEXTURE4: number;\n readonly TEXTURE5: number;\n readonly TEXTURE6: number;\n readonly TEXTURE7: number;\n readonly TEXTURE8: number;\n readonly TEXTURE9: number;\n readonly TRIANGLE_FAN: number;\n readonly TRIANGLE_STRIP: number;\n readonly TRIANGLES: number;\n readonly UNPACK_ALIGNMENT: number;\n readonly UNPACK_COLORSPACE_CONVERSION_WEBGL: number;\n readonly UNPACK_FLIP_Y_WEBGL: number;\n readonly UNPACK_PREMULTIPLY_ALPHA_WEBGL: number;\n readonly UNSIGNED_BYTE: number;\n readonly UNSIGNED_INT: number;\n readonly UNSIGNED_SHORT: number;\n readonly UNSIGNED_SHORT_4_4_4_4: number;\n readonly UNSIGNED_SHORT_5_5_5_1: number;\n readonly UNSIGNED_SHORT_5_6_5: number;\n readonly VALIDATE_STATUS: number;\n readonly VENDOR: number;\n readonly VERSION: number;\n readonly VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: number;\n readonly VERTEX_ATTRIB_ARRAY_ENABLED: number;\n readonly VERTEX_ATTRIB_ARRAY_NORMALIZED: number;\n readonly VERTEX_ATTRIB_ARRAY_POINTER: number;\n readonly VERTEX_ATTRIB_ARRAY_SIZE: number;\n readonly VERTEX_ATTRIB_ARRAY_STRIDE: number;\n readonly VERTEX_ATTRIB_ARRAY_TYPE: number;\n readonly VERTEX_SHADER: number;\n readonly VIEWPORT: number;\n readonly ZERO: number;\n}\n\ndeclare var WebGLRenderingContext: {\n prototype: WebGLRenderingContext;\n new(): WebGLRenderingContext;\n readonly ACTIVE_ATTRIBUTES: number;\n readonly ACTIVE_TEXTURE: number;\n readonly ACTIVE_UNIFORMS: number;\n readonly ALIASED_LINE_WIDTH_RANGE: number;\n readonly ALIASED_POINT_SIZE_RANGE: number;\n readonly ALPHA: number;\n readonly ALPHA_BITS: number;\n readonly ALWAYS: number;\n readonly ARRAY_BUFFER: number;\n readonly ARRAY_BUFFER_BINDING: number;\n readonly ATTACHED_SHADERS: number;\n readonly BACK: number;\n readonly BLEND: number;\n readonly BLEND_COLOR: number;\n readonly BLEND_DST_ALPHA: number;\n readonly BLEND_DST_RGB: number;\n readonly BLEND_EQUATION: number;\n readonly BLEND_EQUATION_ALPHA: number;\n readonly BLEND_EQUATION_RGB: number;\n readonly BLEND_SRC_ALPHA: number;\n readonly BLEND_SRC_RGB: number;\n readonly BLUE_BITS: number;\n readonly BOOL: number;\n readonly BOOL_VEC2: number;\n readonly BOOL_VEC3: number;\n readonly BOOL_VEC4: number;\n readonly BROWSER_DEFAULT_WEBGL: number;\n readonly BUFFER_SIZE: number;\n readonly BUFFER_USAGE: number;\n readonly BYTE: number;\n readonly CCW: number;\n readonly CLAMP_TO_EDGE: number;\n readonly COLOR_ATTACHMENT0: number;\n readonly COLOR_BUFFER_BIT: number;\n readonly COLOR_CLEAR_VALUE: number;\n readonly COLOR_WRITEMASK: number;\n readonly COMPILE_STATUS: number;\n readonly COMPRESSED_TEXTURE_FORMATS: number;\n readonly CONSTANT_ALPHA: number;\n readonly CONSTANT_COLOR: number;\n readonly CONTEXT_LOST_WEBGL: number;\n readonly CULL_FACE: number;\n readonly CULL_FACE_MODE: number;\n readonly CURRENT_PROGRAM: number;\n readonly CURRENT_VERTEX_ATTRIB: number;\n readonly CW: number;\n readonly DECR: number;\n readonly DECR_WRAP: number;\n readonly DELETE_STATUS: number;\n readonly DEPTH_ATTACHMENT: number;\n readonly DEPTH_BITS: number;\n readonly DEPTH_BUFFER_BIT: number;\n readonly DEPTH_CLEAR_VALUE: number;\n readonly DEPTH_COMPONENT: number;\n readonly DEPTH_COMPONENT16: number;\n readonly DEPTH_FUNC: number;\n readonly DEPTH_RANGE: number;\n readonly DEPTH_STENCIL: number;\n readonly DEPTH_STENCIL_ATTACHMENT: number;\n readonly DEPTH_TEST: number;\n readonly DEPTH_WRITEMASK: number;\n readonly DITHER: number;\n readonly DONT_CARE: number;\n readonly DST_ALPHA: number;\n readonly DST_COLOR: number;\n readonly DYNAMIC_DRAW: number;\n readonly ELEMENT_ARRAY_BUFFER: number;\n readonly ELEMENT_ARRAY_BUFFER_BINDING: number;\n readonly EQUAL: number;\n readonly FASTEST: number;\n readonly FLOAT: number;\n readonly FLOAT_MAT2: number;\n readonly FLOAT_MAT3: number;\n readonly FLOAT_MAT4: number;\n readonly FLOAT_VEC2: number;\n readonly FLOAT_VEC3: number;\n readonly FLOAT_VEC4: number;\n readonly FRAGMENT_SHADER: number;\n readonly FRAMEBUFFER: number;\n readonly FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: number;\n readonly FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: number;\n readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: number;\n readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: number;\n readonly FRAMEBUFFER_BINDING: number;\n readonly FRAMEBUFFER_COMPLETE: number;\n readonly FRAMEBUFFER_INCOMPLETE_ATTACHMENT: number;\n readonly FRAMEBUFFER_INCOMPLETE_DIMENSIONS: number;\n readonly FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: number;\n readonly FRAMEBUFFER_UNSUPPORTED: number;\n readonly FRONT: number;\n readonly FRONT_AND_BACK: number;\n readonly FRONT_FACE: number;\n readonly FUNC_ADD: number;\n readonly FUNC_REVERSE_SUBTRACT: number;\n readonly FUNC_SUBTRACT: number;\n readonly GENERATE_MIPMAP_HINT: number;\n readonly GEQUAL: number;\n readonly GREATER: number;\n readonly GREEN_BITS: number;\n readonly HIGH_FLOAT: number;\n readonly HIGH_INT: number;\n readonly IMPLEMENTATION_COLOR_READ_FORMAT: number;\n readonly IMPLEMENTATION_COLOR_READ_TYPE: number;\n readonly INCR: number;\n readonly INCR_WRAP: number;\n readonly INT: number;\n readonly INT_VEC2: number;\n readonly INT_VEC3: number;\n readonly INT_VEC4: number;\n readonly INVALID_ENUM: number;\n readonly INVALID_FRAMEBUFFER_OPERATION: number;\n readonly INVALID_OPERATION: number;\n readonly INVALID_VALUE: number;\n readonly INVERT: number;\n readonly KEEP: number;\n readonly LEQUAL: number;\n readonly LESS: number;\n readonly LINE_LOOP: number;\n readonly LINE_STRIP: number;\n readonly LINE_WIDTH: number;\n readonly LINEAR: number;\n readonly LINEAR_MIPMAP_LINEAR: number;\n readonly LINEAR_MIPMAP_NEAREST: number;\n readonly LINES: number;\n readonly LINK_STATUS: number;\n readonly LOW_FLOAT: number;\n readonly LOW_INT: number;\n readonly LUMINANCE: number;\n readonly LUMINANCE_ALPHA: number;\n readonly MAX_COMBINED_TEXTURE_IMAGE_UNITS: number;\n readonly MAX_CUBE_MAP_TEXTURE_SIZE: number;\n readonly MAX_FRAGMENT_UNIFORM_VECTORS: number;\n readonly MAX_RENDERBUFFER_SIZE: number;\n readonly MAX_TEXTURE_IMAGE_UNITS: number;\n readonly MAX_TEXTURE_SIZE: number;\n readonly MAX_VARYING_VECTORS: number;\n readonly MAX_VERTEX_ATTRIBS: number;\n readonly MAX_VERTEX_TEXTURE_IMAGE_UNITS: number;\n readonly MAX_VERTEX_UNIFORM_VECTORS: number;\n readonly MAX_VIEWPORT_DIMS: number;\n readonly MEDIUM_FLOAT: number;\n readonly MEDIUM_INT: number;\n readonly MIRRORED_REPEAT: number;\n readonly NEAREST: number;\n readonly NEAREST_MIPMAP_LINEAR: number;\n readonly NEAREST_MIPMAP_NEAREST: number;\n readonly NEVER: number;\n readonly NICEST: number;\n readonly NO_ERROR: number;\n readonly NONE: number;\n readonly NOTEQUAL: number;\n readonly ONE: number;\n readonly ONE_MINUS_CONSTANT_ALPHA: number;\n readonly ONE_MINUS_CONSTANT_COLOR: number;\n readonly ONE_MINUS_DST_ALPHA: number;\n readonly ONE_MINUS_DST_COLOR: number;\n readonly ONE_MINUS_SRC_ALPHA: number;\n readonly ONE_MINUS_SRC_COLOR: number;\n readonly OUT_OF_MEMORY: number;\n readonly PACK_ALIGNMENT: number;\n readonly POINTS: number;\n readonly POLYGON_OFFSET_FACTOR: number;\n readonly POLYGON_OFFSET_FILL: number;\n readonly POLYGON_OFFSET_UNITS: number;\n readonly RED_BITS: number;\n readonly RENDERBUFFER: number;\n readonly RENDERBUFFER_ALPHA_SIZE: number;\n readonly RENDERBUFFER_BINDING: number;\n readonly RENDERBUFFER_BLUE_SIZE: number;\n readonly RENDERBUFFER_DEPTH_SIZE: number;\n readonly RENDERBUFFER_GREEN_SIZE: number;\n readonly RENDERBUFFER_HEIGHT: number;\n readonly RENDERBUFFER_INTERNAL_FORMAT: number;\n readonly RENDERBUFFER_RED_SIZE: number;\n readonly RENDERBUFFER_STENCIL_SIZE: number;\n readonly RENDERBUFFER_WIDTH: number;\n readonly RENDERER: number;\n readonly REPEAT: number;\n readonly REPLACE: number;\n readonly RGB: number;\n readonly RGB5_A1: number;\n readonly RGB565: number;\n readonly RGBA: number;\n readonly RGBA4: number;\n readonly SAMPLE_ALPHA_TO_COVERAGE: number;\n readonly SAMPLE_BUFFERS: number;\n readonly SAMPLE_COVERAGE: number;\n readonly SAMPLE_COVERAGE_INVERT: number;\n readonly SAMPLE_COVERAGE_VALUE: number;\n readonly SAMPLER_2D: number;\n readonly SAMPLER_CUBE: number;\n readonly SAMPLES: number;\n readonly SCISSOR_BOX: number;\n readonly SCISSOR_TEST: number;\n readonly SHADER_TYPE: number;\n readonly SHADING_LANGUAGE_VERSION: number;\n readonly SHORT: number;\n readonly SRC_ALPHA: number;\n readonly SRC_ALPHA_SATURATE: number;\n readonly SRC_COLOR: number;\n readonly STATIC_DRAW: number;\n readonly STENCIL_ATTACHMENT: number;\n readonly STENCIL_BACK_FAIL: number;\n readonly STENCIL_BACK_FUNC: number;\n readonly STENCIL_BACK_PASS_DEPTH_FAIL: number;\n readonly STENCIL_BACK_PASS_DEPTH_PASS: number;\n readonly STENCIL_BACK_REF: number;\n readonly STENCIL_BACK_VALUE_MASK: number;\n readonly STENCIL_BACK_WRITEMASK: number;\n readonly STENCIL_BITS: number;\n readonly STENCIL_BUFFER_BIT: number;\n readonly STENCIL_CLEAR_VALUE: number;\n readonly STENCIL_FAIL: number;\n readonly STENCIL_FUNC: number;\n readonly STENCIL_INDEX: number;\n readonly STENCIL_INDEX8: number;\n readonly STENCIL_PASS_DEPTH_FAIL: number;\n readonly STENCIL_PASS_DEPTH_PASS: number;\n readonly STENCIL_REF: number;\n readonly STENCIL_TEST: number;\n readonly STENCIL_VALUE_MASK: number;\n readonly STENCIL_WRITEMASK: number;\n readonly STREAM_DRAW: number;\n readonly SUBPIXEL_BITS: number;\n readonly TEXTURE: number;\n readonly TEXTURE_2D: number;\n readonly TEXTURE_BINDING_2D: number;\n readonly TEXTURE_BINDING_CUBE_MAP: number;\n readonly TEXTURE_CUBE_MAP: number;\n readonly TEXTURE_CUBE_MAP_NEGATIVE_X: number;\n readonly TEXTURE_CUBE_MAP_NEGATIVE_Y: number;\n readonly TEXTURE_CUBE_MAP_NEGATIVE_Z: number;\n readonly TEXTURE_CUBE_MAP_POSITIVE_X: number;\n readonly TEXTURE_CUBE_MAP_POSITIVE_Y: number;\n readonly TEXTURE_CUBE_MAP_POSITIVE_Z: number;\n readonly TEXTURE_MAG_FILTER: number;\n readonly TEXTURE_MIN_FILTER: number;\n readonly TEXTURE_WRAP_S: number;\n readonly TEXTURE_WRAP_T: number;\n readonly TEXTURE0: number;\n readonly TEXTURE1: number;\n readonly TEXTURE10: number;\n readonly TEXTURE11: number;\n readonly TEXTURE12: number;\n readonly TEXTURE13: number;\n readonly TEXTURE14: number;\n readonly TEXTURE15: number;\n readonly TEXTURE16: number;\n readonly TEXTURE17: number;\n readonly TEXTURE18: number;\n readonly TEXTURE19: number;\n readonly TEXTURE2: number;\n readonly TEXTURE20: number;\n readonly TEXTURE21: number;\n readonly TEXTURE22: number;\n readonly TEXTURE23: number;\n readonly TEXTURE24: number;\n readonly TEXTURE25: number;\n readonly TEXTURE26: number;\n readonly TEXTURE27: number;\n readonly TEXTURE28: number;\n readonly TEXTURE29: number;\n readonly TEXTURE3: number;\n readonly TEXTURE30: number;\n readonly TEXTURE31: number;\n readonly TEXTURE4: number;\n readonly TEXTURE5: number;\n readonly TEXTURE6: number;\n readonly TEXTURE7: number;\n readonly TEXTURE8: number;\n readonly TEXTURE9: number;\n readonly TRIANGLE_FAN: number;\n readonly TRIANGLE_STRIP: number;\n readonly TRIANGLES: number;\n readonly UNPACK_ALIGNMENT: number;\n readonly UNPACK_COLORSPACE_CONVERSION_WEBGL: number;\n readonly UNPACK_FLIP_Y_WEBGL: number;\n readonly UNPACK_PREMULTIPLY_ALPHA_WEBGL: number;\n readonly UNSIGNED_BYTE: number;\n readonly UNSIGNED_INT: number;\n readonly UNSIGNED_SHORT: number;\n readonly UNSIGNED_SHORT_4_4_4_4: number;\n readonly UNSIGNED_SHORT_5_5_5_1: number;\n readonly UNSIGNED_SHORT_5_6_5: number;\n readonly VALIDATE_STATUS: number;\n readonly VENDOR: number;\n readonly VERSION: number;\n readonly VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: number;\n readonly VERTEX_ATTRIB_ARRAY_ENABLED: number;\n readonly VERTEX_ATTRIB_ARRAY_NORMALIZED: number;\n readonly VERTEX_ATTRIB_ARRAY_POINTER: number;\n readonly VERTEX_ATTRIB_ARRAY_SIZE: number;\n readonly VERTEX_ATTRIB_ARRAY_STRIDE: number;\n readonly VERTEX_ATTRIB_ARRAY_TYPE: number;\n readonly VERTEX_SHADER: number;\n readonly VIEWPORT: number;\n readonly ZERO: number;\n};\n\ninterface WebGLShader extends WebGLObject {\n}\n\ndeclare var WebGLShader: {\n prototype: WebGLShader;\n new(): WebGLShader;\n};\n\ninterface WebGLShaderPrecisionFormat {\n readonly precision: number;\n readonly rangeMax: number;\n readonly rangeMin: number;\n}\n\ndeclare var WebGLShaderPrecisionFormat: {\n prototype: WebGLShaderPrecisionFormat;\n new(): WebGLShaderPrecisionFormat;\n};\n\ninterface WebGLTexture extends WebGLObject {\n}\n\ndeclare var WebGLTexture: {\n prototype: WebGLTexture;\n new(): WebGLTexture;\n};\n\ninterface WebGLUniformLocation {\n}\n\ndeclare var WebGLUniformLocation: {\n prototype: WebGLUniformLocation;\n new(): WebGLUniformLocation;\n};\n\ninterface WebKitCSSMatrix {\n a: number;\n b: number;\n c: number;\n d: number;\n e: number;\n f: number;\n m11: number;\n m12: number;\n m13: number;\n m14: number;\n m21: number;\n m22: number;\n m23: number;\n m24: number;\n m31: number;\n m32: number;\n m33: number;\n m34: number;\n m41: number;\n m42: number;\n m43: number;\n m44: number;\n inverse(): WebKitCSSMatrix;\n multiply(secondMatrix: WebKitCSSMatrix): WebKitCSSMatrix;\n rotate(angleX: number, angleY?: number, angleZ?: number): WebKitCSSMatrix;\n rotateAxisAngle(x: number, y: number, z: number, angle: number): WebKitCSSMatrix;\n scale(scaleX: number, scaleY?: number, scaleZ?: number): WebKitCSSMatrix;\n setMatrixValue(value: string): void;\n skewX(angle: number): WebKitCSSMatrix;\n skewY(angle: number): WebKitCSSMatrix;\n toString(): string;\n translate(x: number, y: number, z?: number): WebKitCSSMatrix;\n}\n\ndeclare var WebKitCSSMatrix: {\n prototype: WebKitCSSMatrix;\n new(text?: string): WebKitCSSMatrix;\n};\n\ninterface WebKitDirectoryEntry extends WebKitEntry {\n createReader(): WebKitDirectoryReader;\n}\n\ndeclare var WebKitDirectoryEntry: {\n prototype: WebKitDirectoryEntry;\n new(): WebKitDirectoryEntry;\n};\n\ninterface WebKitDirectoryReader {\n readEntries(successCallback: WebKitEntriesCallback, errorCallback?: WebKitErrorCallback): void;\n}\n\ndeclare var WebKitDirectoryReader: {\n prototype: WebKitDirectoryReader;\n new(): WebKitDirectoryReader;\n};\n\ninterface WebKitEntry {\n readonly filesystem: WebKitFileSystem;\n readonly fullPath: string;\n readonly isDirectory: boolean;\n readonly isFile: boolean;\n readonly name: string;\n}\n\ndeclare var WebKitEntry: {\n prototype: WebKitEntry;\n new(): WebKitEntry;\n};\n\ninterface WebKitFileEntry extends WebKitEntry {\n file(successCallback: WebKitFileCallback, errorCallback?: WebKitErrorCallback): void;\n}\n\ndeclare var WebKitFileEntry: {\n prototype: WebKitFileEntry;\n new(): WebKitFileEntry;\n};\n\ninterface WebKitFileSystem {\n readonly name: string;\n readonly root: WebKitDirectoryEntry;\n}\n\ndeclare var WebKitFileSystem: {\n prototype: WebKitFileSystem;\n new(): WebKitFileSystem;\n};\n\ninterface WebKitPoint {\n x: number;\n y: number;\n}\n\ndeclare var WebKitPoint: {\n prototype: WebKitPoint;\n new(x?: number, y?: number): WebKitPoint;\n};\n\ninterface webkitRTCPeerConnection extends RTCPeerConnection {\n addEventListener(type: K, listener: (this: webkitRTCPeerConnection, ev: RTCPeerConnectionEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var webkitRTCPeerConnection: {\n prototype: webkitRTCPeerConnection;\n new(configuration: RTCConfiguration): webkitRTCPeerConnection;\n};\n\ninterface WebSocketEventMap {\n \"close\": CloseEvent;\n \"error\": Event;\n \"message\": MessageEvent;\n \"open\": Event;\n}\n\ninterface WebSocket extends EventTarget {\n binaryType: string;\n readonly bufferedAmount: number;\n readonly extensions: string;\n onclose: (this: WebSocket, ev: CloseEvent) => any;\n onerror: (this: WebSocket, ev: Event) => any;\n onmessage: (this: WebSocket, ev: MessageEvent) => any;\n onopen: (this: WebSocket, ev: Event) => any;\n readonly protocol: string;\n readonly readyState: number;\n readonly url: string;\n close(code?: number, reason?: string): void;\n send(data: any): void;\n readonly CLOSED: number;\n readonly CLOSING: number;\n readonly CONNECTING: number;\n readonly OPEN: number;\n addEventListener(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var WebSocket: {\n prototype: WebSocket;\n new(url: string, protocols?: string | string[]): WebSocket;\n readonly CLOSED: number;\n readonly CLOSING: number;\n readonly CONNECTING: number;\n readonly OPEN: number;\n};\n\ninterface WheelEvent extends MouseEvent {\n readonly deltaMode: number;\n readonly deltaX: number;\n readonly deltaY: number;\n readonly deltaZ: number;\n readonly wheelDelta: number;\n readonly wheelDeltaX: number;\n readonly wheelDeltaY: number;\n getCurrentPoint(element: Element): void;\n initWheelEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, viewArg: Window, detailArg: number, screenXArg: number, screenYArg: number, clientXArg: number, clientYArg: number, buttonArg: number, relatedTargetArg: EventTarget, modifiersListArg: string, deltaXArg: number, deltaYArg: number, deltaZArg: number, deltaMode: number): void;\n readonly DOM_DELTA_LINE: number;\n readonly DOM_DELTA_PAGE: number;\n readonly DOM_DELTA_PIXEL: number;\n}\n\ndeclare var WheelEvent: {\n prototype: WheelEvent;\n new(typeArg: string, eventInitDict?: WheelEventInit): WheelEvent;\n readonly DOM_DELTA_LINE: number;\n readonly DOM_DELTA_PAGE: number;\n readonly DOM_DELTA_PIXEL: number;\n};\n\ninterface WindowEventMap extends GlobalEventHandlersEventMap {\n \"abort\": UIEvent;\n \"afterprint\": Event;\n \"beforeprint\": Event;\n \"beforeunload\": BeforeUnloadEvent;\n \"blur\": FocusEvent;\n \"canplay\": Event;\n \"canplaythrough\": Event;\n \"change\": Event;\n \"click\": MouseEvent;\n \"compassneedscalibration\": Event;\n \"contextmenu\": PointerEvent;\n \"dblclick\": MouseEvent;\n \"devicelight\": DeviceLightEvent;\n \"devicemotion\": DeviceMotionEvent;\n \"deviceorientation\": DeviceOrientationEvent;\n \"drag\": DragEvent;\n \"dragend\": DragEvent;\n \"dragenter\": DragEvent;\n \"dragleave\": DragEvent;\n \"dragover\": DragEvent;\n \"dragstart\": DragEvent;\n \"drop\": DragEvent;\n \"durationchange\": Event;\n \"emptied\": Event;\n \"ended\": MediaStreamErrorEvent;\n \"error\": ErrorEvent;\n \"focus\": FocusEvent;\n \"hashchange\": HashChangeEvent;\n \"input\": Event;\n \"invalid\": Event;\n \"keydown\": KeyboardEvent;\n \"keypress\": KeyboardEvent;\n \"keyup\": KeyboardEvent;\n \"load\": Event;\n \"loadeddata\": Event;\n \"loadedmetadata\": Event;\n \"loadstart\": Event;\n \"message\": MessageEvent;\n \"mousedown\": MouseEvent;\n \"mouseenter\": MouseEvent;\n \"mouseleave\": MouseEvent;\n \"mousemove\": MouseEvent;\n \"mouseout\": MouseEvent;\n \"mouseover\": MouseEvent;\n \"mouseup\": MouseEvent;\n \"mousewheel\": WheelEvent;\n \"MSGestureChange\": MSGestureEvent;\n \"MSGestureDoubleTap\": MSGestureEvent;\n \"MSGestureEnd\": MSGestureEvent;\n \"MSGestureHold\": MSGestureEvent;\n \"MSGestureStart\": MSGestureEvent;\n \"MSGestureTap\": MSGestureEvent;\n \"MSInertiaStart\": MSGestureEvent;\n \"MSPointerCancel\": MSPointerEvent;\n \"MSPointerDown\": MSPointerEvent;\n \"MSPointerEnter\": MSPointerEvent;\n \"MSPointerLeave\": MSPointerEvent;\n \"MSPointerMove\": MSPointerEvent;\n \"MSPointerOut\": MSPointerEvent;\n \"MSPointerOver\": MSPointerEvent;\n \"MSPointerUp\": MSPointerEvent;\n \"offline\": Event;\n \"online\": Event;\n \"orientationchange\": Event;\n \"pagehide\": PageTransitionEvent;\n \"pageshow\": PageTransitionEvent;\n \"pause\": Event;\n \"play\": Event;\n \"playing\": Event;\n \"popstate\": PopStateEvent;\n \"progress\": ProgressEvent;\n \"ratechange\": Event;\n \"readystatechange\": ProgressEvent;\n \"reset\": Event;\n \"resize\": UIEvent;\n \"scroll\": UIEvent;\n \"seeked\": Event;\n \"seeking\": Event;\n \"select\": UIEvent;\n \"stalled\": Event;\n \"storage\": StorageEvent;\n \"submit\": Event;\n \"suspend\": Event;\n \"timeupdate\": Event;\n \"touchcancel\": TouchEvent;\n \"touchend\": TouchEvent;\n \"touchmove\": TouchEvent;\n \"touchstart\": TouchEvent;\n \"unload\": Event;\n \"volumechange\": Event;\n \"waiting\": Event;\n}\n\ninterface Window extends EventTarget, WindowTimers, WindowSessionStorage, WindowLocalStorage, WindowConsole, GlobalEventHandlers, IDBEnvironment, WindowBase64, GlobalFetch {\n readonly applicationCache: ApplicationCache;\n readonly caches: CacheStorage;\n readonly clientInformation: Navigator;\n readonly closed: boolean;\n readonly crypto: Crypto;\n defaultStatus: string;\n readonly devicePixelRatio: number;\n readonly document: Document;\n readonly doNotTrack: string;\n event: Event | undefined;\n readonly external: External;\n readonly frameElement: Element;\n readonly frames: Window;\n readonly history: History;\n readonly innerHeight: number;\n readonly innerWidth: number;\n readonly isSecureContext: boolean;\n readonly length: number;\n readonly location: Location;\n readonly locationbar: BarProp;\n readonly menubar: BarProp;\n readonly msContentScript: ExtensionScriptApis;\n readonly msCredentials: MSCredentials;\n name: string;\n readonly navigator: Navigator;\n offscreenBuffering: string | boolean;\n onabort: (this: Window, ev: UIEvent) => any;\n onafterprint: (this: Window, ev: Event) => any;\n onbeforeprint: (this: Window, ev: Event) => any;\n onbeforeunload: (this: Window, ev: BeforeUnloadEvent) => any;\n onblur: (this: Window, ev: FocusEvent) => any;\n oncanplay: (this: Window, ev: Event) => any;\n oncanplaythrough: (this: Window, ev: Event) => any;\n onchange: (this: Window, ev: Event) => any;\n onclick: (this: Window, ev: MouseEvent) => any;\n oncompassneedscalibration: (this: Window, ev: Event) => any;\n oncontextmenu: (this: Window, ev: PointerEvent) => any;\n ondblclick: (this: Window, ev: MouseEvent) => any;\n ondevicelight: (this: Window, ev: DeviceLightEvent) => any;\n ondevicemotion: (this: Window, ev: DeviceMotionEvent) => any;\n ondeviceorientation: (this: Window, ev: DeviceOrientationEvent) => any;\n ondrag: (this: Window, ev: DragEvent) => any;\n ondragend: (this: Window, ev: DragEvent) => any;\n ondragenter: (this: Window, ev: DragEvent) => any;\n ondragleave: (this: Window, ev: DragEvent) => any;\n ondragover: (this: Window, ev: DragEvent) => any;\n ondragstart: (this: Window, ev: DragEvent) => any;\n ondrop: (this: Window, ev: DragEvent) => any;\n ondurationchange: (this: Window, ev: Event) => any;\n onemptied: (this: Window, ev: Event) => any;\n onended: (this: Window, ev: MediaStreamErrorEvent) => any;\n onerror: ErrorEventHandler;\n onfocus: (this: Window, ev: FocusEvent) => any;\n onhashchange: (this: Window, ev: HashChangeEvent) => any;\n oninput: (this: Window, ev: Event) => any;\n oninvalid: (this: Window, ev: Event) => any;\n onkeydown: (this: Window, ev: KeyboardEvent) => any;\n onkeypress: (this: Window, ev: KeyboardEvent) => any;\n onkeyup: (this: Window, ev: KeyboardEvent) => any;\n onload: (this: Window, ev: Event) => any;\n onloadeddata: (this: Window, ev: Event) => any;\n onloadedmetadata: (this: Window, ev: Event) => any;\n onloadstart: (this: Window, ev: Event) => any;\n onmessage: (this: Window, ev: MessageEvent) => any;\n onmousedown: (this: Window, ev: MouseEvent) => any;\n onmouseenter: (this: Window, ev: MouseEvent) => any;\n onmouseleave: (this: Window, ev: MouseEvent) => any;\n onmousemove: (this: Window, ev: MouseEvent) => any;\n onmouseout: (this: Window, ev: MouseEvent) => any;\n onmouseover: (this: Window, ev: MouseEvent) => any;\n onmouseup: (this: Window, ev: MouseEvent) => any;\n onmousewheel: (this: Window, ev: WheelEvent) => any;\n onmsgesturechange: (this: Window, ev: MSGestureEvent) => any;\n onmsgesturedoubletap: (this: Window, ev: MSGestureEvent) => any;\n onmsgestureend: (this: Window, ev: MSGestureEvent) => any;\n onmsgesturehold: (this: Window, ev: MSGestureEvent) => any;\n onmsgesturestart: (this: Window, ev: MSGestureEvent) => any;\n onmsgesturetap: (this: Window, ev: MSGestureEvent) => any;\n onmsinertiastart: (this: Window, ev: MSGestureEvent) => any;\n onmspointercancel: (this: Window, ev: MSPointerEvent) => any;\n onmspointerdown: (this: Window, ev: MSPointerEvent) => any;\n onmspointerenter: (this: Window, ev: MSPointerEvent) => any;\n onmspointerleave: (this: Window, ev: MSPointerEvent) => any;\n onmspointermove: (this: Window, ev: MSPointerEvent) => any;\n onmspointerout: (this: Window, ev: MSPointerEvent) => any;\n onmspointerover: (this: Window, ev: MSPointerEvent) => any;\n onmspointerup: (this: Window, ev: MSPointerEvent) => any;\n onoffline: (this: Window, ev: Event) => any;\n ononline: (this: Window, ev: Event) => any;\n onorientationchange: (this: Window, ev: Event) => any;\n onpagehide: (this: Window, ev: PageTransitionEvent) => any;\n onpageshow: (this: Window, ev: PageTransitionEvent) => any;\n onpause: (this: Window, ev: Event) => any;\n onplay: (this: Window, ev: Event) => any;\n onplaying: (this: Window, ev: Event) => any;\n onpopstate: (this: Window, ev: PopStateEvent) => any;\n onprogress: (this: Window, ev: ProgressEvent) => any;\n onratechange: (this: Window, ev: Event) => any;\n onreadystatechange: (this: Window, ev: ProgressEvent) => any;\n onreset: (this: Window, ev: Event) => any;\n onresize: (this: Window, ev: UIEvent) => any;\n onscroll: (this: Window, ev: UIEvent) => any;\n onseeked: (this: Window, ev: Event) => any;\n onseeking: (this: Window, ev: Event) => any;\n onselect: (this: Window, ev: UIEvent) => any;\n onstalled: (this: Window, ev: Event) => any;\n onstorage: (this: Window, ev: StorageEvent) => any;\n onsubmit: (this: Window, ev: Event) => any;\n onsuspend: (this: Window, ev: Event) => any;\n ontimeupdate: (this: Window, ev: Event) => any;\n ontouchcancel: (ev: TouchEvent) => any;\n ontouchend: (ev: TouchEvent) => any;\n ontouchmove: (ev: TouchEvent) => any;\n ontouchstart: (ev: TouchEvent) => any;\n onunload: (this: Window, ev: Event) => any;\n onvolumechange: (this: Window, ev: Event) => any;\n onwaiting: (this: Window, ev: Event) => any;\n opener: any;\n orientation: string | number;\n readonly outerHeight: number;\n readonly outerWidth: number;\n readonly pageXOffset: number;\n readonly pageYOffset: number;\n readonly parent: Window;\n readonly performance: Performance;\n readonly personalbar: BarProp;\n readonly screen: Screen;\n readonly screenLeft: number;\n readonly screenTop: number;\n readonly screenX: number;\n readonly screenY: number;\n readonly scrollbars: BarProp;\n readonly scrollX: number;\n readonly scrollY: number;\n readonly self: Window;\n readonly speechSynthesis: SpeechSynthesis;\n status: string;\n readonly statusbar: BarProp;\n readonly styleMedia: StyleMedia;\n readonly toolbar: BarProp;\n readonly top: Window;\n readonly window: Window;\n URL: typeof URL;\n URLSearchParams: typeof URLSearchParams;\n Blob: typeof Blob;\n customElements: CustomElementRegistry;\n alert(message?: any): void;\n blur(): void;\n cancelAnimationFrame(handle: number): void;\n captureEvents(): void;\n close(): void;\n confirm(message?: string): boolean;\n departFocus(navigationReason: NavigationReason, origin: FocusNavigationOrigin): void;\n focus(): void;\n getComputedStyle(elt: Element, pseudoElt?: string): CSSStyleDeclaration;\n getMatchedCSSRules(elt: Element, pseudoElt?: string): CSSRuleList;\n getSelection(): Selection;\n matchMedia(mediaQuery: string): MediaQueryList;\n moveBy(x?: number, y?: number): void;\n moveTo(x?: number, y?: number): void;\n msWriteProfilerMark(profilerMarkName: string): void;\n open(url?: string, target?: string, features?: string, replace?: boolean): Window;\n postMessage(message: any, targetOrigin: string, transfer?: any[]): void;\n print(): void;\n prompt(message?: string, _default?: string): string | null;\n releaseEvents(): void;\n requestAnimationFrame(callback: FrameRequestCallback): number;\n resizeBy(x?: number, y?: number): void;\n resizeTo(x?: number, y?: number): void;\n scroll(x?: number, y?: number): void;\n scrollBy(x?: number, y?: number): void;\n scrollTo(x?: number, y?: number): void;\n stop(): void;\n webkitCancelAnimationFrame(handle: number): void;\n webkitConvertPointFromNodeToPage(node: Node, pt: WebKitPoint): WebKitPoint;\n webkitConvertPointFromPageToNode(node: Node, pt: WebKitPoint): WebKitPoint;\n webkitRequestAnimationFrame(callback: FrameRequestCallback): number;\n createImageBitmap(image: HTMLImageElement | SVGImageElement | HTMLVideoElement | HTMLCanvasElement | ImageBitmap | ImageData | Blob, options?: ImageBitmapOptions): Promise;\n createImageBitmap(image: HTMLImageElement | SVGImageElement | HTMLVideoElement | HTMLCanvasElement | ImageBitmap | ImageData | Blob, sx: number, sy: number, sw: number, sh: number, options?: ImageBitmapOptions): Promise;\n scroll(options?: ScrollToOptions): void;\n scrollTo(options?: ScrollToOptions): void;\n scrollBy(options?: ScrollToOptions): void;\n addEventListener(type: K, listener: (this: Window, ev: WindowEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var Window: {\n prototype: Window;\n new(): Window;\n};\n\ninterface WorkerEventMap extends AbstractWorkerEventMap {\n \"message\": MessageEvent;\n}\n\ninterface Worker extends EventTarget, AbstractWorker {\n onmessage: (this: Worker, ev: MessageEvent) => any;\n postMessage(message: any, transfer?: any[]): void;\n terminate(): void;\n addEventListener(type: K, listener: (this: Worker, ev: WorkerEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var Worker: {\n prototype: Worker;\n new(stringUrl: string): Worker;\n};\n\ninterface XMLDocument extends Document {\n addEventListener(type: K, listener: (this: XMLDocument, ev: DocumentEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var XMLDocument: {\n prototype: XMLDocument;\n new(): XMLDocument;\n};\n\ninterface XMLHttpRequestEventMap extends XMLHttpRequestEventTargetEventMap {\n \"readystatechange\": Event;\n}\n\ninterface XMLHttpRequest extends EventTarget, XMLHttpRequestEventTarget {\n onreadystatechange: (this: XMLHttpRequest, ev: Event) => any;\n readonly readyState: number;\n readonly response: any;\n readonly responseText: string;\n responseType: XMLHttpRequestResponseType;\n readonly responseURL: string;\n readonly responseXML: Document | null;\n readonly status: number;\n readonly statusText: string;\n timeout: number;\n readonly upload: XMLHttpRequestUpload;\n withCredentials: boolean;\n msCaching?: string;\n abort(): void;\n getAllResponseHeaders(): string;\n getResponseHeader(header: string): string | null;\n msCachingEnabled(): boolean;\n open(method: string, url: string, async?: boolean, user?: string, password?: string): void;\n overrideMimeType(mime: string): void;\n send(data?: Document): void;\n send(data?: string): void;\n send(data?: any): void;\n setRequestHeader(header: string, value: string): void;\n readonly DONE: number;\n readonly HEADERS_RECEIVED: number;\n readonly LOADING: number;\n readonly OPENED: number;\n readonly UNSENT: number;\n addEventListener(type: K, listener: (this: XMLHttpRequest, ev: XMLHttpRequestEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var XMLHttpRequest: {\n prototype: XMLHttpRequest;\n new(): XMLHttpRequest;\n readonly DONE: number;\n readonly HEADERS_RECEIVED: number;\n readonly LOADING: number;\n readonly OPENED: number;\n readonly UNSENT: number;\n};\n\ninterface XMLHttpRequestUpload extends EventTarget, XMLHttpRequestEventTarget {\n addEventListener(type: K, listener: (this: XMLHttpRequestUpload, ev: XMLHttpRequestEventTargetEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ndeclare var XMLHttpRequestUpload: {\n prototype: XMLHttpRequestUpload;\n new(): XMLHttpRequestUpload;\n};\n\ninterface XMLSerializer {\n serializeToString(target: Node): string;\n}\n\ndeclare var XMLSerializer: {\n prototype: XMLSerializer;\n new(): XMLSerializer;\n};\n\ninterface XPathEvaluator {\n createExpression(expression: string, resolver: XPathNSResolver): XPathExpression;\n createNSResolver(nodeResolver?: Node): XPathNSResolver;\n evaluate(expression: string, contextNode: Node, resolver: XPathNSResolver | null, type: number, result: XPathResult | null): XPathResult;\n}\n\ndeclare var XPathEvaluator: {\n prototype: XPathEvaluator;\n new(): XPathEvaluator;\n};\n\ninterface XPathExpression {\n evaluate(contextNode: Node, type: number, result: XPathResult | null): XPathResult;\n}\n\ndeclare var XPathExpression: {\n prototype: XPathExpression;\n new(): XPathExpression;\n};\n\ninterface XPathNSResolver {\n lookupNamespaceURI(prefix: string): string;\n}\n\ndeclare var XPathNSResolver: {\n prototype: XPathNSResolver;\n new(): XPathNSResolver;\n};\n\ninterface XPathResult {\n readonly booleanValue: boolean;\n readonly invalidIteratorState: boolean;\n readonly numberValue: number;\n readonly resultType: number;\n readonly singleNodeValue: Node;\n readonly snapshotLength: number;\n readonly stringValue: string;\n iterateNext(): Node;\n snapshotItem(index: number): Node;\n readonly ANY_TYPE: number;\n readonly ANY_UNORDERED_NODE_TYPE: number;\n readonly BOOLEAN_TYPE: number;\n readonly FIRST_ORDERED_NODE_TYPE: number;\n readonly NUMBER_TYPE: number;\n readonly ORDERED_NODE_ITERATOR_TYPE: number;\n readonly ORDERED_NODE_SNAPSHOT_TYPE: number;\n readonly STRING_TYPE: number;\n readonly UNORDERED_NODE_ITERATOR_TYPE: number;\n readonly UNORDERED_NODE_SNAPSHOT_TYPE: number;\n}\n\ndeclare var XPathResult: {\n prototype: XPathResult;\n new(): XPathResult;\n readonly ANY_TYPE: number;\n readonly ANY_UNORDERED_NODE_TYPE: number;\n readonly BOOLEAN_TYPE: number;\n readonly FIRST_ORDERED_NODE_TYPE: number;\n readonly NUMBER_TYPE: number;\n readonly ORDERED_NODE_ITERATOR_TYPE: number;\n readonly ORDERED_NODE_SNAPSHOT_TYPE: number;\n readonly STRING_TYPE: number;\n readonly UNORDERED_NODE_ITERATOR_TYPE: number;\n readonly UNORDERED_NODE_SNAPSHOT_TYPE: number;\n};\n\ninterface XSLTProcessor {\n clearParameters(): void;\n getParameter(namespaceURI: string, localName: string): any;\n importStylesheet(style: Node): void;\n removeParameter(namespaceURI: string, localName: string): void;\n reset(): void;\n setParameter(namespaceURI: string, localName: string, value: any): void;\n transformToDocument(source: Node): Document;\n transformToFragment(source: Node, document: Document): DocumentFragment;\n}\n\ndeclare var XSLTProcessor: {\n prototype: XSLTProcessor;\n new(): XSLTProcessor;\n};\n\ninterface AbstractWorkerEventMap {\n \"error\": ErrorEvent;\n}\n\ninterface AbstractWorker {\n onerror: (this: AbstractWorker, ev: ErrorEvent) => any;\n addEventListener(type: K, listener: (this: AbstractWorker, ev: AbstractWorkerEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ninterface Body {\n readonly bodyUsed: boolean;\n arrayBuffer(): Promise;\n blob(): Promise;\n json(): Promise;\n text(): Promise;\n formData(): Promise;\n}\n\ninterface CanvasPathMethods {\n arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, anticlockwise?: boolean): void;\n arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): void;\n bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): void;\n closePath(): void;\n ellipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, anticlockwise?: boolean): void;\n lineTo(x: number, y: number): void;\n moveTo(x: number, y: number): void;\n quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): void;\n rect(x: number, y: number, w: number, h: number): void;\n}\n\ninterface ChildNode {\n remove(): void;\n}\n\ninterface DocumentEvent {\n createEvent(eventInterface: \"AnimationEvent\"): AnimationEvent;\n createEvent(eventInterface: \"AudioProcessingEvent\"): AudioProcessingEvent;\n createEvent(eventInterface: \"BeforeUnloadEvent\"): BeforeUnloadEvent;\n createEvent(eventInterface: \"ClipboardEvent\"): ClipboardEvent;\n createEvent(eventInterface: \"CloseEvent\"): CloseEvent;\n createEvent(eventInterface: \"CompositionEvent\"): CompositionEvent;\n createEvent(eventInterface: \"CustomEvent\"): CustomEvent;\n createEvent(eventInterface: \"DeviceLightEvent\"): DeviceLightEvent;\n createEvent(eventInterface: \"DeviceMotionEvent\"): DeviceMotionEvent;\n createEvent(eventInterface: \"DeviceOrientationEvent\"): DeviceOrientationEvent;\n createEvent(eventInterface: \"DragEvent\"): DragEvent;\n createEvent(eventInterface: \"ErrorEvent\"): ErrorEvent;\n createEvent(eventInterface: \"Event\"): Event;\n createEvent(eventInterface: \"Events\"): Event;\n createEvent(eventInterface: \"FocusEvent\"): FocusEvent;\n createEvent(eventInterface: \"FocusNavigationEvent\"): FocusNavigationEvent;\n createEvent(eventInterface: \"GamepadEvent\"): GamepadEvent;\n createEvent(eventInterface: \"HashChangeEvent\"): HashChangeEvent;\n createEvent(eventInterface: \"IDBVersionChangeEvent\"): IDBVersionChangeEvent;\n createEvent(eventInterface: \"KeyboardEvent\"): KeyboardEvent;\n createEvent(eventInterface: \"ListeningStateChangedEvent\"): ListeningStateChangedEvent;\n createEvent(eventInterface: \"LongRunningScriptDetectedEvent\"): LongRunningScriptDetectedEvent;\n createEvent(eventInterface: \"MSGestureEvent\"): MSGestureEvent;\n createEvent(eventInterface: \"MSManipulationEvent\"): MSManipulationEvent;\n createEvent(eventInterface: \"MSMediaKeyMessageEvent\"): MSMediaKeyMessageEvent;\n createEvent(eventInterface: \"MSMediaKeyNeededEvent\"): MSMediaKeyNeededEvent;\n createEvent(eventInterface: \"MSPointerEvent\"): MSPointerEvent;\n createEvent(eventInterface: \"MSSiteModeEvent\"): MSSiteModeEvent;\n createEvent(eventInterface: \"MediaEncryptedEvent\"): MediaEncryptedEvent;\n createEvent(eventInterface: \"MediaKeyMessageEvent\"): MediaKeyMessageEvent;\n createEvent(eventInterface: \"MediaStreamErrorEvent\"): MediaStreamErrorEvent;\n createEvent(eventInterface: \"MediaStreamEvent\"): MediaStreamEvent;\n createEvent(eventInterface: \"MediaStreamTrackEvent\"): MediaStreamTrackEvent;\n createEvent(eventInterface: \"MessageEvent\"): MessageEvent;\n createEvent(eventInterface: \"MouseEvent\"): MouseEvent;\n createEvent(eventInterface: \"MouseEvents\"): MouseEvent;\n createEvent(eventInterface: \"MutationEvent\"): MutationEvent;\n createEvent(eventInterface: \"MutationEvents\"): MutationEvent;\n createEvent(eventInterface: \"NavigationCompletedEvent\"): NavigationCompletedEvent;\n createEvent(eventInterface: \"NavigationEvent\"): NavigationEvent;\n createEvent(eventInterface: \"NavigationEventWithReferrer\"): NavigationEventWithReferrer;\n createEvent(eventInterface: \"OfflineAudioCompletionEvent\"): OfflineAudioCompletionEvent;\n createEvent(eventInterface: \"OverflowEvent\"): OverflowEvent;\n createEvent(eventInterface: \"PageTransitionEvent\"): PageTransitionEvent;\n createEvent(eventInterface: \"PaymentRequestUpdateEvent\"): PaymentRequestUpdateEvent;\n createEvent(eventInterface: \"PermissionRequestedEvent\"): PermissionRequestedEvent;\n createEvent(eventInterface: \"PointerEvent\"): PointerEvent;\n createEvent(eventInterface: \"PopStateEvent\"): PopStateEvent;\n createEvent(eventInterface: \"ProgressEvent\"): ProgressEvent;\n createEvent(eventInterface: \"RTCDTMFToneChangeEvent\"): RTCDTMFToneChangeEvent;\n createEvent(eventInterface: \"RTCDtlsTransportStateChangedEvent\"): RTCDtlsTransportStateChangedEvent;\n createEvent(eventInterface: \"RTCIceCandidatePairChangedEvent\"): RTCIceCandidatePairChangedEvent;\n createEvent(eventInterface: \"RTCIceGathererEvent\"): RTCIceGathererEvent;\n createEvent(eventInterface: \"RTCIceTransportStateChangedEvent\"): RTCIceTransportStateChangedEvent;\n createEvent(eventInterface: \"RTCPeerConnectionIceEvent\"): RTCPeerConnectionIceEvent;\n createEvent(eventInterface: \"RTCSsrcConflictEvent\"): RTCSsrcConflictEvent;\n createEvent(eventInterface: \"SVGZoomEvent\"): SVGZoomEvent;\n createEvent(eventInterface: \"SVGZoomEvents\"): SVGZoomEvent;\n createEvent(eventInterface: \"ScriptNotifyEvent\"): ScriptNotifyEvent;\n createEvent(eventInterface: \"ServiceWorkerMessageEvent\"): ServiceWorkerMessageEvent;\n createEvent(eventInterface: \"SpeechSynthesisEvent\"): SpeechSynthesisEvent;\n createEvent(eventInterface: \"StorageEvent\"): StorageEvent;\n createEvent(eventInterface: \"TextEvent\"): TextEvent;\n createEvent(eventInterface: \"TouchEvent\"): TouchEvent;\n createEvent(eventInterface: \"TrackEvent\"): TrackEvent;\n createEvent(eventInterface: \"TransitionEvent\"): TransitionEvent;\n createEvent(eventInterface: \"UIEvent\"): UIEvent;\n createEvent(eventInterface: \"UIEvents\"): UIEvent;\n createEvent(eventInterface: \"UnviewableContentIdentifiedEvent\"): UnviewableContentIdentifiedEvent;\n createEvent(eventInterface: \"WebGLContextEvent\"): WebGLContextEvent;\n createEvent(eventInterface: \"WheelEvent\"): WheelEvent;\n createEvent(eventInterface: string): Event;\n}\n\ninterface DOML2DeprecatedColorProperty {\n color: string;\n}\n\ninterface DOML2DeprecatedSizeProperty {\n size: number;\n}\n\ninterface ElementTraversal {\n readonly childElementCount: number;\n readonly firstElementChild: Element | null;\n readonly lastElementChild: Element | null;\n readonly nextElementSibling: Element | null;\n readonly previousElementSibling: Element | null;\n}\n\ninterface GetSVGDocument {\n getSVGDocument(): Document;\n}\n\ninterface GlobalEventHandlersEventMap {\n \"pointercancel\": PointerEvent;\n \"pointerdown\": PointerEvent;\n \"pointerenter\": PointerEvent;\n \"pointerleave\": PointerEvent;\n \"pointermove\": PointerEvent;\n \"pointerout\": PointerEvent;\n \"pointerover\": PointerEvent;\n \"pointerup\": PointerEvent;\n \"wheel\": WheelEvent;\n}\n\ninterface GlobalEventHandlers {\n onpointercancel: (this: GlobalEventHandlers, ev: PointerEvent) => any;\n onpointerdown: (this: GlobalEventHandlers, ev: PointerEvent) => any;\n onpointerenter: (this: GlobalEventHandlers, ev: PointerEvent) => any;\n onpointerleave: (this: GlobalEventHandlers, ev: PointerEvent) => any;\n onpointermove: (this: GlobalEventHandlers, ev: PointerEvent) => any;\n onpointerout: (this: GlobalEventHandlers, ev: PointerEvent) => any;\n onpointerover: (this: GlobalEventHandlers, ev: PointerEvent) => any;\n onpointerup: (this: GlobalEventHandlers, ev: PointerEvent) => any;\n onwheel: (this: GlobalEventHandlers, ev: WheelEvent) => any;\n addEventListener(type: K, listener: (this: GlobalEventHandlers, ev: GlobalEventHandlersEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ninterface GlobalFetch {\n fetch(input: RequestInfo, init?: RequestInit): Promise;\n}\n\ninterface HTMLTableAlignment {\n /**\n * Sets or retrieves a value that you can use to implement your own ch functionality for the object.\n */\n ch: string;\n /**\n * Sets or retrieves a value that you can use to implement your own chOff functionality for the object.\n */\n chOff: string;\n /**\n * Sets or retrieves how text and other content are vertically aligned within the object that contains them.\n */\n vAlign: string;\n}\n\ninterface IDBEnvironment {\n readonly indexedDB: IDBFactory;\n}\n\ninterface LinkStyle {\n readonly sheet: StyleSheet;\n}\n\ninterface MSBaseReaderEventMap {\n \"abort\": Event;\n \"error\": ErrorEvent;\n \"load\": Event;\n \"loadend\": ProgressEvent;\n \"loadstart\": Event;\n \"progress\": ProgressEvent;\n}\n\ninterface MSBaseReader {\n onabort: (this: MSBaseReader, ev: Event) => any;\n onerror: (this: MSBaseReader, ev: ErrorEvent) => any;\n onload: (this: MSBaseReader, ev: Event) => any;\n onloadend: (this: MSBaseReader, ev: ProgressEvent) => any;\n onloadstart: (this: MSBaseReader, ev: Event) => any;\n onprogress: (this: MSBaseReader, ev: ProgressEvent) => any;\n readonly readyState: number;\n readonly result: any;\n abort(): void;\n readonly DONE: number;\n readonly EMPTY: number;\n readonly LOADING: number;\n addEventListener(type: K, listener: (this: MSBaseReader, ev: MSBaseReaderEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ninterface MSFileSaver {\n msSaveBlob(blob: any, defaultName?: string): boolean;\n msSaveOrOpenBlob(blob: any, defaultName?: string): boolean;\n}\n\ninterface MSNavigatorDoNotTrack {\n confirmSiteSpecificTrackingException(args: ConfirmSiteSpecificExceptionsInformation): boolean;\n confirmWebWideTrackingException(args: ExceptionInformation): boolean;\n removeSiteSpecificTrackingException(args: ExceptionInformation): void;\n removeWebWideTrackingException(args: ExceptionInformation): void;\n storeSiteSpecificTrackingException(args: StoreSiteSpecificExceptionsInformation): void;\n storeWebWideTrackingException(args: StoreExceptionsInformation): void;\n}\n\ninterface NavigatorBeacon {\n sendBeacon(url: USVString, data?: BodyInit): boolean;\n}\n\ninterface NavigatorConcurrentHardware {\n readonly hardwareConcurrency: number;\n}\n\ninterface NavigatorContentUtils {\n}\n\ninterface NavigatorGeolocation {\n readonly geolocation: Geolocation;\n}\n\ninterface NavigatorID {\n readonly appCodeName: string;\n readonly appName: string;\n readonly appVersion: string;\n readonly platform: string;\n readonly product: string;\n readonly productSub: string;\n readonly userAgent: string;\n readonly vendor: string;\n readonly vendorSub: string;\n}\n\ninterface NavigatorOnLine {\n readonly onLine: boolean;\n}\n\ninterface NavigatorStorageUtils {\n}\n\ninterface NavigatorUserMedia {\n readonly mediaDevices: MediaDevices;\n getUserMedia(constraints: MediaStreamConstraints, successCallback: NavigatorUserMediaSuccessCallback, errorCallback: NavigatorUserMediaErrorCallback): void;\n}\n\ninterface NodeSelector {\n querySelector(selectors: K): ElementTagNameMap[K] | null;\n querySelector(selectors: string): Element | null;\n querySelectorAll(selectors: K): ElementListTagNameMap[K];\n querySelectorAll(selectors: string): NodeListOf;\n}\n\ninterface RandomSource {\n getRandomValues(array: ArrayBufferView): ArrayBufferView;\n}\n\ninterface SVGAnimatedPoints {\n readonly animatedPoints: SVGPointList;\n readonly points: SVGPointList;\n}\n\ninterface SVGFilterPrimitiveStandardAttributes {\n readonly height: SVGAnimatedLength;\n readonly result: SVGAnimatedString;\n readonly width: SVGAnimatedLength;\n readonly x: SVGAnimatedLength;\n readonly y: SVGAnimatedLength;\n}\n\ninterface SVGFitToViewBox {\n readonly preserveAspectRatio: SVGAnimatedPreserveAspectRatio;\n readonly viewBox: SVGAnimatedRect;\n}\n\ninterface SVGTests {\n readonly requiredExtensions: SVGStringList;\n readonly requiredFeatures: SVGStringList;\n readonly systemLanguage: SVGStringList;\n hasExtension(extension: string): boolean;\n}\n\ninterface SVGURIReference {\n readonly href: SVGAnimatedString;\n}\n\ninterface WindowBase64 {\n atob(encodedString: string): string;\n btoa(rawString: string): string;\n}\n\ninterface WindowConsole {\n readonly console: Console;\n}\n\ninterface WindowLocalStorage {\n readonly localStorage: Storage;\n}\n\ninterface WindowSessionStorage {\n readonly sessionStorage: Storage;\n}\n\ninterface WindowTimers extends Object, WindowTimersExtension {\n clearInterval(handle: number): void;\n clearTimeout(handle: number): void;\n setInterval(handler: (...args: any[]) => void, timeout: number): number;\n setInterval(handler: any, timeout?: any, ...args: any[]): number;\n setTimeout(handler: (...args: any[]) => void, timeout: number): number;\n setTimeout(handler: any, timeout?: any, ...args: any[]): number;\n}\n\ninterface WindowTimersExtension {\n clearImmediate(handle: number): void;\n setImmediate(handler: (...args: any[]) => void): number;\n setImmediate(handler: any, ...args: any[]): number;\n}\n\ninterface XMLHttpRequestEventTargetEventMap {\n \"abort\": Event;\n \"error\": ErrorEvent;\n \"load\": Event;\n \"loadend\": ProgressEvent;\n \"loadstart\": Event;\n \"progress\": ProgressEvent;\n \"timeout\": ProgressEvent;\n}\n\ninterface XMLHttpRequestEventTarget {\n onabort: (this: XMLHttpRequestEventTarget, ev: Event) => any;\n onerror: (this: XMLHttpRequestEventTarget, ev: ErrorEvent) => any;\n onload: (this: XMLHttpRequestEventTarget, ev: Event) => any;\n onloadend: (this: XMLHttpRequestEventTarget, ev: ProgressEvent) => any;\n onloadstart: (this: XMLHttpRequestEventTarget, ev: Event) => any;\n onprogress: (this: XMLHttpRequestEventTarget, ev: ProgressEvent) => any;\n ontimeout: (this: XMLHttpRequestEventTarget, ev: ProgressEvent) => any;\n addEventListener(type: K, listener: (this: XMLHttpRequestEventTarget, ev: XMLHttpRequestEventTargetEventMap[K]) => any, useCapture?: boolean): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\n}\n\ninterface ErrorEventInit {\n message?: string;\n filename?: string;\n lineno?: number;\n conlno?: number;\n error?: any;\n}\n\ninterface StorageEventInit extends EventInit {\n key?: string;\n oldValue?: string;\n newValue?: string;\n url: string;\n storageArea?: Storage;\n}\n\ninterface Canvas2DContextAttributes {\n alpha?: boolean;\n willReadFrequently?: boolean;\n storage?: boolean;\n [attribute: string]: boolean | string | undefined;\n}\n\ninterface ImageBitmapOptions {\n imageOrientation?: \"none\" | \"flipY\";\n premultiplyAlpha?: \"none\" | \"premultiply\" | \"default\";\n colorSpaceConversion?: \"none\" | \"default\";\n resizeWidth?: number;\n resizeHeight?: number;\n resizeQuality?: \"pixelated\" | \"low\" | \"medium\" | \"high\";\n}\n\ninterface ImageBitmap {\n readonly width: number;\n readonly height: number;\n close(): void;\n}\n\ninterface URLSearchParams {\n /**\n * Appends a specified key/value pair as a new search parameter.\n */\n append(name: string, value: string): void;\n /**\n * Deletes the given search parameter, and its associated value, from the list of all search parameters.\n */\n delete(name: string): void;\n /**\n * Returns the first value associated to the given search parameter.\n */\n get(name: string): string | null;\n /**\n * Returns all the values association with a given search parameter.\n */\n getAll(name: string): string[];\n /**\n * Returns a Boolean indicating if such a search parameter exists.\n */\n has(name: string): boolean;\n /**\n * Sets the value associated to a given search parameter to the given value. If there were several values, delete the others.\n */\n set(name: string, value: string): void;\n}\n\ndeclare var URLSearchParams: {\n prototype: URLSearchParams;\n /**\n * Constructor returning a URLSearchParams object.\n */\n new (init?: string | URLSearchParams): URLSearchParams;\n};\n\ninterface NodeListOf extends NodeList {\n length: number;\n item(index: number): TNode;\n [index: number]: TNode;\n}\n\ninterface HTMLCollectionOf extends HTMLCollection {\n item(index: number): T;\n namedItem(name: string): T;\n [index: number]: T;\n}\n\ninterface BlobPropertyBag {\n type?: string;\n endings?: string;\n}\n\ninterface FilePropertyBag {\n type?: string;\n lastModified?: number;\n}\n\ninterface EventListenerObject {\n handleEvent(evt: Event): void;\n}\n\ninterface ProgressEventInit extends EventInit {\n lengthComputable?: boolean;\n loaded?: number;\n total?: number;\n}\n\ninterface ScrollOptions {\n behavior?: ScrollBehavior;\n}\n\ninterface ScrollToOptions extends ScrollOptions {\n left?: number;\n top?: number;\n}\n\ninterface ScrollIntoViewOptions extends ScrollOptions {\n block?: ScrollLogicalPosition;\n inline?: ScrollLogicalPosition;\n}\n\ninterface ClipboardEventInit extends EventInit {\n data?: string;\n dataType?: string;\n}\n\ninterface IDBArrayKey extends Array {\n}\n\ninterface RsaKeyGenParams extends Algorithm {\n modulusLength: number;\n publicExponent: Uint8Array;\n}\n\ninterface RsaHashedKeyGenParams extends RsaKeyGenParams {\n hash: AlgorithmIdentifier;\n}\n\ninterface RsaKeyAlgorithm extends KeyAlgorithm {\n modulusLength: number;\n publicExponent: Uint8Array;\n}\n\ninterface RsaHashedKeyAlgorithm extends RsaKeyAlgorithm {\n hash: AlgorithmIdentifier;\n}\n\ninterface RsaHashedImportParams {\n hash: AlgorithmIdentifier;\n}\n\ninterface RsaPssParams {\n saltLength: number;\n}\n\ninterface RsaOaepParams extends Algorithm {\n label?: BufferSource;\n}\n\ninterface EcdsaParams extends Algorithm {\n hash: AlgorithmIdentifier;\n}\n\ninterface EcKeyGenParams extends Algorithm {\n namedCurve: string;\n}\n\ninterface EcKeyAlgorithm extends KeyAlgorithm {\n typedCurve: string;\n}\n\ninterface EcKeyImportParams {\n namedCurve: string;\n}\n\ninterface EcdhKeyDeriveParams extends Algorithm {\n public: CryptoKey;\n}\n\ninterface AesCtrParams extends Algorithm {\n counter: BufferSource;\n length: number;\n}\n\ninterface AesKeyAlgorithm extends KeyAlgorithm {\n length: number;\n}\n\ninterface AesKeyGenParams extends Algorithm {\n length: number;\n}\n\ninterface AesDerivedKeyParams extends Algorithm {\n length: number;\n}\n\ninterface AesCbcParams extends Algorithm {\n iv: BufferSource;\n}\n\ninterface AesCmacParams extends Algorithm {\n length: number;\n}\n\ninterface AesGcmParams extends Algorithm {\n iv: BufferSource;\n additionalData?: BufferSource;\n tagLength?: number;\n}\n\ninterface AesCfbParams extends Algorithm {\n iv: BufferSource;\n}\n\ninterface HmacImportParams extends Algorithm {\n hash?: AlgorithmIdentifier;\n length?: number;\n}\n\ninterface HmacKeyAlgorithm extends KeyAlgorithm {\n hash: AlgorithmIdentifier;\n length: number;\n}\n\ninterface HmacKeyGenParams extends Algorithm {\n hash: AlgorithmIdentifier;\n length?: number;\n}\n\ninterface DhKeyGenParams extends Algorithm {\n prime: Uint8Array;\n generator: Uint8Array;\n}\n\ninterface DhKeyAlgorithm extends KeyAlgorithm {\n prime: Uint8Array;\n generator: Uint8Array;\n}\n\ninterface DhKeyDeriveParams extends Algorithm {\n public: CryptoKey;\n}\n\ninterface DhImportKeyParams extends Algorithm {\n prime: Uint8Array;\n generator: Uint8Array;\n}\n\ninterface ConcatParams extends Algorithm {\n hash?: AlgorithmIdentifier;\n algorithmId: Uint8Array;\n partyUInfo: Uint8Array;\n partyVInfo: Uint8Array;\n publicInfo?: Uint8Array;\n privateInfo?: Uint8Array;\n}\n\ninterface HkdfCtrParams extends Algorithm {\n hash: AlgorithmIdentifier;\n label: BufferSource;\n context: BufferSource;\n}\n\ninterface Pbkdf2Params extends Algorithm {\n salt: BufferSource;\n iterations: number;\n hash: AlgorithmIdentifier;\n}\n\ninterface RsaOtherPrimesInfo {\n r: string;\n d: string;\n t: string;\n}\n\ninterface JsonWebKey {\n kty: string;\n use?: string;\n key_ops?: string[];\n alg?: string;\n kid?: string;\n x5u?: string;\n x5c?: string;\n x5t?: string;\n ext?: boolean;\n crv?: string;\n x?: string;\n y?: string;\n d?: string;\n n?: string;\n e?: string;\n p?: string;\n q?: string;\n dp?: string;\n dq?: string;\n qi?: string;\n oth?: RsaOtherPrimesInfo[];\n k?: string;\n}\n\ninterface ParentNode {\n readonly children: HTMLCollection;\n readonly firstElementChild: Element | null;\n readonly lastElementChild: Element | null;\n readonly childElementCount: number;\n}\n\ninterface DocumentOrShadowRoot {\n readonly activeElement: Element | null;\n readonly stylesheets: StyleSheetList;\n getSelection(): Selection | null;\n elementFromPoint(x: number, y: number): Element | null;\n elementsFromPoint(x: number, y: number): Element[];\n}\n\ninterface ShadowRoot extends DocumentOrShadowRoot, DocumentFragment {\n readonly host: Element;\n innerHTML: string;\n}\n\ninterface ShadowRootInit {\n mode: \"open\" | \"closed\";\n delegatesFocus?: boolean;\n}\n\ninterface HTMLSlotElement extends HTMLElement {\n name: string;\n assignedNodes(options?: AssignedNodesOptions): Node[];\n}\n\ninterface AssignedNodesOptions {\n flatten?: boolean;\n}\n\ninterface ElementDefinitionOptions {\n extends: string;\n}\n\ninterface CustomElementRegistry {\n define(name: string, constructor: Function, options?: ElementDefinitionOptions): void;\n get(name: string): any;\n whenDefined(name: string): PromiseLike;\n}\n\ninterface PromiseRejectionEvent extends Event {\n readonly promise: PromiseLike;\n readonly reason: any;\n}\n\ninterface PromiseRejectionEventInit extends EventInit {\n promise: PromiseLike;\n reason?: any;\n}\n\ninterface EventListenerOptions {\n capture?: boolean;\n}\n\ninterface AddEventListenerOptions extends EventListenerOptions {\n passive?: boolean;\n once?: boolean;\n}\n\ninterface TouchEventInit extends EventModifierInit {\n touches?: Touch[];\n targetTouches?: Touch[];\n changedTouches?: Touch[];\n}\n\ndeclare type EventListenerOrEventListenerObject = EventListener | EventListenerObject;\n\ninterface DecodeErrorCallback {\n (error: DOMException): void;\n}\ninterface DecodeSuccessCallback {\n (decodedData: AudioBuffer): void;\n}\ninterface ErrorEventHandler {\n (message: string, filename?: string, lineno?: number, colno?: number, error?: Error): void;\n}\ninterface ForEachCallback {\n (keyId: any, status: MediaKeyStatus): void;\n}\ninterface FrameRequestCallback {\n (time: number): void;\n}\ninterface FunctionStringCallback {\n (data: string): void;\n}\ninterface IntersectionObserverCallback {\n (entries: IntersectionObserverEntry[], observer: IntersectionObserver): void;\n}\ninterface MediaQueryListListener {\n (mql: MediaQueryList): void;\n}\ninterface MSExecAtPriorityFunctionCallback {\n (...args: any[]): any;\n}\ninterface MSLaunchUriCallback {\n (): void;\n}\ninterface MSUnsafeFunctionCallback {\n (): any;\n}\ninterface MutationCallback {\n (mutations: MutationRecord[], observer: MutationObserver): void;\n}\ninterface NavigatorUserMediaErrorCallback {\n (error: MediaStreamError): void;\n}\ninterface NavigatorUserMediaSuccessCallback {\n (stream: MediaStream): void;\n}\ninterface NotificationPermissionCallback {\n (permission: NotificationPermission): void;\n}\ninterface PositionCallback {\n (position: Position): void;\n}\ninterface PositionErrorCallback {\n (error: PositionError): void;\n}\ninterface RTCPeerConnectionErrorCallback {\n (error: DOMError): void;\n}\ninterface RTCSessionDescriptionCallback {\n (sdp: RTCSessionDescription): void;\n}\ninterface RTCStatsCallback {\n (report: RTCStatsReport): void;\n}\ninterface VoidFunction {\n (): void;\n}\ninterface HTMLElementTagNameMap {\n \"a\": HTMLAnchorElement;\n \"applet\": HTMLAppletElement;\n \"area\": HTMLAreaElement;\n \"audio\": HTMLAudioElement;\n \"base\": HTMLBaseElement;\n \"basefont\": HTMLBaseFontElement;\n \"blockquote\": HTMLQuoteElement;\n \"body\": HTMLBodyElement;\n \"br\": HTMLBRElement;\n \"button\": HTMLButtonElement;\n \"canvas\": HTMLCanvasElement;\n \"caption\": HTMLTableCaptionElement;\n \"col\": HTMLTableColElement;\n \"colgroup\": HTMLTableColElement;\n \"data\": HTMLDataElement;\n \"datalist\": HTMLDataListElement;\n \"del\": HTMLModElement;\n \"dir\": HTMLDirectoryElement;\n \"div\": HTMLDivElement;\n \"dl\": HTMLDListElement;\n \"embed\": HTMLEmbedElement;\n \"fieldset\": HTMLFieldSetElement;\n \"font\": HTMLFontElement;\n \"form\": HTMLFormElement;\n \"frame\": HTMLFrameElement;\n \"frameset\": HTMLFrameSetElement;\n \"h1\": HTMLHeadingElement;\n \"h2\": HTMLHeadingElement;\n \"h3\": HTMLHeadingElement;\n \"h4\": HTMLHeadingElement;\n \"h5\": HTMLHeadingElement;\n \"h6\": HTMLHeadingElement;\n \"head\": HTMLHeadElement;\n \"hr\": HTMLHRElement;\n \"html\": HTMLHtmlElement;\n \"iframe\": HTMLIFrameElement;\n \"img\": HTMLImageElement;\n \"input\": HTMLInputElement;\n \"ins\": HTMLModElement;\n \"isindex\": HTMLUnknownElement;\n \"label\": HTMLLabelElement;\n \"legend\": HTMLLegendElement;\n \"li\": HTMLLIElement;\n \"link\": HTMLLinkElement;\n \"listing\": HTMLPreElement;\n \"map\": HTMLMapElement;\n \"marquee\": HTMLMarqueeElement;\n \"menu\": HTMLMenuElement;\n \"meta\": HTMLMetaElement;\n \"meter\": HTMLMeterElement;\n \"nextid\": HTMLUnknownElement;\n \"object\": HTMLObjectElement;\n \"ol\": HTMLOListElement;\n \"optgroup\": HTMLOptGroupElement;\n \"option\": HTMLOptionElement;\n \"output\": HTMLOutputElement;\n \"p\": HTMLParagraphElement;\n \"param\": HTMLParamElement;\n \"picture\": HTMLPictureElement;\n \"pre\": HTMLPreElement;\n \"progress\": HTMLProgressElement;\n \"q\": HTMLQuoteElement;\n \"script\": HTMLScriptElement;\n \"select\": HTMLSelectElement;\n \"source\": HTMLSourceElement;\n \"span\": HTMLSpanElement;\n \"style\": HTMLStyleElement;\n \"table\": HTMLTableElement;\n \"tbody\": HTMLTableSectionElement;\n \"td\": HTMLTableDataCellElement;\n \"template\": HTMLTemplateElement;\n \"textarea\": HTMLTextAreaElement;\n \"tfoot\": HTMLTableSectionElement;\n \"th\": HTMLTableHeaderCellElement;\n \"thead\": HTMLTableSectionElement;\n \"time\": HTMLTimeElement;\n \"title\": HTMLTitleElement;\n \"tr\": HTMLTableRowElement;\n \"track\": HTMLTrackElement;\n \"ul\": HTMLUListElement;\n \"video\": HTMLVideoElement;\n \"x-ms-webview\": MSHTMLWebViewElement;\n \"xmp\": HTMLPreElement;\n}\n\ninterface ElementTagNameMap extends HTMLElementTagNameMap {\n \"abbr\": HTMLElement;\n \"acronym\": HTMLElement;\n \"address\": HTMLElement;\n \"article\": HTMLElement;\n \"aside\": HTMLElement;\n \"b\": HTMLElement;\n \"bdo\": HTMLElement;\n \"big\": HTMLElement;\n \"center\": HTMLElement;\n \"circle\": SVGCircleElement;\n \"cite\": HTMLElement;\n \"clippath\": SVGClipPathElement;\n \"code\": HTMLElement;\n \"dd\": HTMLElement;\n \"defs\": SVGDefsElement;\n \"desc\": SVGDescElement;\n \"dfn\": HTMLElement;\n \"dt\": HTMLElement;\n \"ellipse\": SVGEllipseElement;\n \"em\": HTMLElement;\n \"feblend\": SVGFEBlendElement;\n \"fecolormatrix\": SVGFEColorMatrixElement;\n \"fecomponenttransfer\": SVGFEComponentTransferElement;\n \"fecomposite\": SVGFECompositeElement;\n \"feconvolvematrix\": SVGFEConvolveMatrixElement;\n \"fediffuselighting\": SVGFEDiffuseLightingElement;\n \"fedisplacementmap\": SVGFEDisplacementMapElement;\n \"fedistantlight\": SVGFEDistantLightElement;\n \"feflood\": SVGFEFloodElement;\n \"fefunca\": SVGFEFuncAElement;\n \"fefuncb\": SVGFEFuncBElement;\n \"fefuncg\": SVGFEFuncGElement;\n \"fefuncr\": SVGFEFuncRElement;\n \"fegaussianblur\": SVGFEGaussianBlurElement;\n \"feimage\": SVGFEImageElement;\n \"femerge\": SVGFEMergeElement;\n \"femergenode\": SVGFEMergeNodeElement;\n \"femorphology\": SVGFEMorphologyElement;\n \"feoffset\": SVGFEOffsetElement;\n \"fepointlight\": SVGFEPointLightElement;\n \"fespecularlighting\": SVGFESpecularLightingElement;\n \"fespotlight\": SVGFESpotLightElement;\n \"fetile\": SVGFETileElement;\n \"feturbulence\": SVGFETurbulenceElement;\n \"figcaption\": HTMLElement;\n \"figure\": HTMLElement;\n \"filter\": SVGFilterElement;\n \"footer\": HTMLElement;\n \"foreignobject\": SVGForeignObjectElement;\n \"g\": SVGGElement;\n \"header\": HTMLElement;\n \"hgroup\": HTMLElement;\n \"i\": HTMLElement;\n \"image\": SVGImageElement;\n \"kbd\": HTMLElement;\n \"keygen\": HTMLElement;\n \"line\": SVGLineElement;\n \"lineargradient\": SVGLinearGradientElement;\n \"mark\": HTMLElement;\n \"marker\": SVGMarkerElement;\n \"mask\": SVGMaskElement;\n \"metadata\": SVGMetadataElement;\n \"nav\": HTMLElement;\n \"nobr\": HTMLElement;\n \"noframes\": HTMLElement;\n \"noscript\": HTMLElement;\n \"path\": SVGPathElement;\n \"pattern\": SVGPatternElement;\n \"plaintext\": HTMLElement;\n \"polygon\": SVGPolygonElement;\n \"polyline\": SVGPolylineElement;\n \"radialgradient\": SVGRadialGradientElement;\n \"rect\": SVGRectElement;\n \"rt\": HTMLElement;\n \"ruby\": HTMLElement;\n \"s\": HTMLElement;\n \"samp\": HTMLElement;\n \"section\": HTMLElement;\n \"small\": HTMLElement;\n \"stop\": SVGStopElement;\n \"strike\": HTMLElement;\n \"strong\": HTMLElement;\n \"sub\": HTMLElement;\n \"sup\": HTMLElement;\n \"svg\": SVGSVGElement;\n \"switch\": SVGSwitchElement;\n \"symbol\": SVGSymbolElement;\n \"text\": SVGTextElement;\n \"textpath\": SVGTextPathElement;\n \"tspan\": SVGTSpanElement;\n \"tt\": HTMLElement;\n \"u\": HTMLElement;\n \"use\": SVGUseElement;\n \"var\": HTMLElement;\n \"view\": SVGViewElement;\n \"wbr\": HTMLElement;\n}\n\ntype ElementListTagNameMap = {\n [key in keyof ElementTagNameMap]: NodeListOf\n};\n\ndeclare var Audio: { new(src?: string): HTMLAudioElement; };\ndeclare var Image: { new(width?: number, height?: number): HTMLImageElement; };\ndeclare var Option: { new(text?: string, value?: string, defaultSelected?: boolean, selected?: boolean): HTMLOptionElement; };\ndeclare var applicationCache: ApplicationCache;\ndeclare var caches: CacheStorage;\ndeclare var clientInformation: Navigator;\ndeclare var closed: boolean;\ndeclare var crypto: Crypto;\ndeclare var defaultStatus: string;\ndeclare var devicePixelRatio: number;\ndeclare var document: Document;\ndeclare var doNotTrack: string;\ndeclare var event: Event | undefined;\ndeclare var external: External;\ndeclare var frameElement: Element;\ndeclare var frames: Window;\ndeclare var history: History;\ndeclare var innerHeight: number;\ndeclare var innerWidth: number;\ndeclare var isSecureContext: boolean;\ndeclare var length: number;\ndeclare var location: Location;\ndeclare var locationbar: BarProp;\ndeclare var menubar: BarProp;\ndeclare var msContentScript: ExtensionScriptApis;\ndeclare var msCredentials: MSCredentials;\ndeclare const name: never;\ndeclare var navigator: Navigator;\ndeclare var offscreenBuffering: string | boolean;\ndeclare var onabort: (this: Window, ev: UIEvent) => any;\ndeclare var onafterprint: (this: Window, ev: Event) => any;\ndeclare var onbeforeprint: (this: Window, ev: Event) => any;\ndeclare var onbeforeunload: (this: Window, ev: BeforeUnloadEvent) => any;\ndeclare var onblur: (this: Window, ev: FocusEvent) => any;\ndeclare var oncanplay: (this: Window, ev: Event) => any;\ndeclare var oncanplaythrough: (this: Window, ev: Event) => any;\ndeclare var onchange: (this: Window, ev: Event) => any;\ndeclare var onclick: (this: Window, ev: MouseEvent) => any;\ndeclare var oncompassneedscalibration: (this: Window, ev: Event) => any;\ndeclare var oncontextmenu: (this: Window, ev: PointerEvent) => any;\ndeclare var ondblclick: (this: Window, ev: MouseEvent) => any;\ndeclare var ondevicelight: (this: Window, ev: DeviceLightEvent) => any;\ndeclare var ondevicemotion: (this: Window, ev: DeviceMotionEvent) => any;\ndeclare var ondeviceorientation: (this: Window, ev: DeviceOrientationEvent) => any;\ndeclare var ondrag: (this: Window, ev: DragEvent) => any;\ndeclare var ondragend: (this: Window, ev: DragEvent) => any;\ndeclare var ondragenter: (this: Window, ev: DragEvent) => any;\ndeclare var ondragleave: (this: Window, ev: DragEvent) => any;\ndeclare var ondragover: (this: Window, ev: DragEvent) => any;\ndeclare var ondragstart: (this: Window, ev: DragEvent) => any;\ndeclare var ondrop: (this: Window, ev: DragEvent) => any;\ndeclare var ondurationchange: (this: Window, ev: Event) => any;\ndeclare var onemptied: (this: Window, ev: Event) => any;\ndeclare var onended: (this: Window, ev: MediaStreamErrorEvent) => any;\ndeclare var onerror: ErrorEventHandler;\ndeclare var onfocus: (this: Window, ev: FocusEvent) => any;\ndeclare var onhashchange: (this: Window, ev: HashChangeEvent) => any;\ndeclare var oninput: (this: Window, ev: Event) => any;\ndeclare var oninvalid: (this: Window, ev: Event) => any;\ndeclare var onkeydown: (this: Window, ev: KeyboardEvent) => any;\ndeclare var onkeypress: (this: Window, ev: KeyboardEvent) => any;\ndeclare var onkeyup: (this: Window, ev: KeyboardEvent) => any;\ndeclare var onload: (this: Window, ev: Event) => any;\ndeclare var onloadeddata: (this: Window, ev: Event) => any;\ndeclare var onloadedmetadata: (this: Window, ev: Event) => any;\ndeclare var onloadstart: (this: Window, ev: Event) => any;\ndeclare var onmessage: (this: Window, ev: MessageEvent) => any;\ndeclare var onmousedown: (this: Window, ev: MouseEvent) => any;\ndeclare var onmouseenter: (this: Window, ev: MouseEvent) => any;\ndeclare var onmouseleave: (this: Window, ev: MouseEvent) => any;\ndeclare var onmousemove: (this: Window, ev: MouseEvent) => any;\ndeclare var onmouseout: (this: Window, ev: MouseEvent) => any;\ndeclare var onmouseover: (this: Window, ev: MouseEvent) => any;\ndeclare var onmouseup: (this: Window, ev: MouseEvent) => any;\ndeclare var onmousewheel: (this: Window, ev: WheelEvent) => any;\ndeclare var onmsgesturechange: (this: Window, ev: MSGestureEvent) => any;\ndeclare var onmsgesturedoubletap: (this: Window, ev: MSGestureEvent) => any;\ndeclare var onmsgestureend: (this: Window, ev: MSGestureEvent) => any;\ndeclare var onmsgesturehold: (this: Window, ev: MSGestureEvent) => any;\ndeclare var onmsgesturestart: (this: Window, ev: MSGestureEvent) => any;\ndeclare var onmsgesturetap: (this: Window, ev: MSGestureEvent) => any;\ndeclare var onmsinertiastart: (this: Window, ev: MSGestureEvent) => any;\ndeclare var onmspointercancel: (this: Window, ev: MSPointerEvent) => any;\ndeclare var onmspointerdown: (this: Window, ev: MSPointerEvent) => any;\ndeclare var onmspointerenter: (this: Window, ev: MSPointerEvent) => any;\ndeclare var onmspointerleave: (this: Window, ev: MSPointerEvent) => any;\ndeclare var onmspointermove: (this: Window, ev: MSPointerEvent) => any;\ndeclare var onmspointerout: (this: Window, ev: MSPointerEvent) => any;\ndeclare var onmspointerover: (this: Window, ev: MSPointerEvent) => any;\ndeclare var onmspointerup: (this: Window, ev: MSPointerEvent) => any;\ndeclare var onoffline: (this: Window, ev: Event) => any;\ndeclare var ononline: (this: Window, ev: Event) => any;\ndeclare var onorientationchange: (this: Window, ev: Event) => any;\ndeclare var onpagehide: (this: Window, ev: PageTransitionEvent) => any;\ndeclare var onpageshow: (this: Window, ev: PageTransitionEvent) => any;\ndeclare var onpause: (this: Window, ev: Event) => any;\ndeclare var onplay: (this: Window, ev: Event) => any;\ndeclare var onplaying: (this: Window, ev: Event) => any;\ndeclare var onpopstate: (this: Window, ev: PopStateEvent) => any;\ndeclare var onprogress: (this: Window, ev: ProgressEvent) => any;\ndeclare var onratechange: (this: Window, ev: Event) => any;\ndeclare var onreadystatechange: (this: Window, ev: ProgressEvent) => any;\ndeclare var onreset: (this: Window, ev: Event) => any;\ndeclare var onresize: (this: Window, ev: UIEvent) => any;\ndeclare var onscroll: (this: Window, ev: UIEvent) => any;\ndeclare var onseeked: (this: Window, ev: Event) => any;\ndeclare var onseeking: (this: Window, ev: Event) => any;\ndeclare var onselect: (this: Window, ev: UIEvent) => any;\ndeclare var onstalled: (this: Window, ev: Event) => any;\ndeclare var onstorage: (this: Window, ev: StorageEvent) => any;\ndeclare var onsubmit: (this: Window, ev: Event) => any;\ndeclare var onsuspend: (this: Window, ev: Event) => any;\ndeclare var ontimeupdate: (this: Window, ev: Event) => any;\ndeclare var ontouchcancel: (ev: TouchEvent) => any;\ndeclare var ontouchend: (ev: TouchEvent) => any;\ndeclare var ontouchmove: (ev: TouchEvent) => any;\ndeclare var ontouchstart: (ev: TouchEvent) => any;\ndeclare var onunload: (this: Window, ev: Event) => any;\ndeclare var onvolumechange: (this: Window, ev: Event) => any;\ndeclare var onwaiting: (this: Window, ev: Event) => any;\ndeclare var opener: any;\ndeclare var orientation: string | number;\ndeclare var outerHeight: number;\ndeclare var outerWidth: number;\ndeclare var pageXOffset: number;\ndeclare var pageYOffset: number;\ndeclare var parent: Window;\ndeclare var performance: Performance;\ndeclare var personalbar: BarProp;\ndeclare var screen: Screen;\ndeclare var screenLeft: number;\ndeclare var screenTop: number;\ndeclare var screenX: number;\ndeclare var screenY: number;\ndeclare var scrollbars: BarProp;\ndeclare var scrollX: number;\ndeclare var scrollY: number;\ndeclare var self: Window;\ndeclare var speechSynthesis: SpeechSynthesis;\ndeclare var status: string;\ndeclare var statusbar: BarProp;\ndeclare var styleMedia: StyleMedia;\ndeclare var toolbar: BarProp;\ndeclare var top: Window;\ndeclare var window: Window;\ndeclare var customElements: CustomElementRegistry;\ndeclare function alert(message?: any): void;\ndeclare function blur(): void;\ndeclare function cancelAnimationFrame(handle: number): void;\ndeclare function captureEvents(): void;\ndeclare function close(): void;\ndeclare function confirm(message?: string): boolean;\ndeclare function departFocus(navigationReason: NavigationReason, origin: FocusNavigationOrigin): void;\ndeclare function focus(): void;\ndeclare function getComputedStyle(elt: Element, pseudoElt?: string): CSSStyleDeclaration;\ndeclare function getMatchedCSSRules(elt: Element, pseudoElt?: string): CSSRuleList;\ndeclare function getSelection(): Selection;\ndeclare function matchMedia(mediaQuery: string): MediaQueryList;\ndeclare function moveBy(x?: number, y?: number): void;\ndeclare function moveTo(x?: number, y?: number): void;\ndeclare function msWriteProfilerMark(profilerMarkName: string): void;\ndeclare function open(url?: string, target?: string, features?: string, replace?: boolean): Window;\ndeclare function postMessage(message: any, targetOrigin: string, transfer?: any[]): void;\ndeclare function print(): void;\ndeclare function prompt(message?: string, _default?: string): string | null;\ndeclare function releaseEvents(): void;\ndeclare function requestAnimationFrame(callback: FrameRequestCallback): number;\ndeclare function resizeBy(x?: number, y?: number): void;\ndeclare function resizeTo(x?: number, y?: number): void;\ndeclare function scroll(x?: number, y?: number): void;\ndeclare function scrollBy(x?: number, y?: number): void;\ndeclare function scrollTo(x?: number, y?: number): void;\ndeclare function stop(): void;\ndeclare function webkitCancelAnimationFrame(handle: number): void;\ndeclare function webkitConvertPointFromNodeToPage(node: Node, pt: WebKitPoint): WebKitPoint;\ndeclare function webkitConvertPointFromPageToNode(node: Node, pt: WebKitPoint): WebKitPoint;\ndeclare function webkitRequestAnimationFrame(callback: FrameRequestCallback): number;\ndeclare function createImageBitmap(image: HTMLImageElement | SVGImageElement | HTMLVideoElement | HTMLCanvasElement | ImageBitmap | ImageData | Blob, options?: ImageBitmapOptions): Promise;\ndeclare function createImageBitmap(image: HTMLImageElement | SVGImageElement | HTMLVideoElement | HTMLCanvasElement | ImageBitmap | ImageData | Blob, sx: number, sy: number, sw: number, sh: number, options?: ImageBitmapOptions): Promise;\ndeclare function scroll(options?: ScrollToOptions): void;\ndeclare function scrollTo(options?: ScrollToOptions): void;\ndeclare function scrollBy(options?: ScrollToOptions): void;\ndeclare function toString(): string;\ndeclare function dispatchEvent(evt: Event): boolean;\ndeclare function removeEventListener(type: string, listener?: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\ndeclare function clearInterval(handle: number): void;\ndeclare function clearTimeout(handle: number): void;\ndeclare function setInterval(handler: (...args: any[]) => void, timeout: number): number;\ndeclare function setInterval(handler: any, timeout?: any, ...args: any[]): number;\ndeclare function setTimeout(handler: (...args: any[]) => void, timeout: number): number;\ndeclare function setTimeout(handler: any, timeout?: any, ...args: any[]): number;\ndeclare function clearImmediate(handle: number): void;\ndeclare function setImmediate(handler: (...args: any[]) => void): number;\ndeclare function setImmediate(handler: any, ...args: any[]): number;\ndeclare var sessionStorage: Storage;\ndeclare var localStorage: Storage;\ndeclare var console: Console;\ndeclare var onpointercancel: (this: Window, ev: PointerEvent) => any;\ndeclare var onpointerdown: (this: Window, ev: PointerEvent) => any;\ndeclare var onpointerenter: (this: Window, ev: PointerEvent) => any;\ndeclare var onpointerleave: (this: Window, ev: PointerEvent) => any;\ndeclare var onpointermove: (this: Window, ev: PointerEvent) => any;\ndeclare var onpointerout: (this: Window, ev: PointerEvent) => any;\ndeclare var onpointerover: (this: Window, ev: PointerEvent) => any;\ndeclare var onpointerup: (this: Window, ev: PointerEvent) => any;\ndeclare var onwheel: (this: Window, ev: WheelEvent) => any;\ndeclare var indexedDB: IDBFactory;\ndeclare function atob(encodedString: string): string;\ndeclare function btoa(rawString: string): string;\ndeclare function fetch(input: RequestInfo, init?: RequestInit): Promise;\ndeclare function addEventListener(type: K, listener: (this: Window, ev: WindowEventMap[K]) => any, useCapture?: boolean): void;\ndeclare function addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\ntype AAGUID = string;\ntype AlgorithmIdentifier = string | Algorithm;\ntype BodyInit = any;\ntype ByteString = string;\ntype ConstrainBoolean = boolean | ConstrainBooleanParameters;\ntype ConstrainDOMString = string | string[] | ConstrainDOMStringParameters;\ntype ConstrainDouble = number | ConstrainDoubleRange;\ntype ConstrainLong = number | ConstrainLongRange;\ntype CryptoOperationData = ArrayBufferView;\ntype GLbitfield = number;\ntype GLboolean = boolean;\ntype GLbyte = number;\ntype GLclampf = number;\ntype GLenum = number;\ntype GLfloat = number;\ntype GLint = number;\ntype GLintptr = number;\ntype GLshort = number;\ntype GLsizei = number;\ntype GLsizeiptr = number;\ntype GLubyte = number;\ntype GLuint = number;\ntype GLushort = number;\ntype HeadersInit = any;\ntype IDBKeyPath = string;\ntype KeyFormat = string;\ntype KeyType = string;\ntype KeyUsage = string;\ntype MSInboundPayload = MSVideoRecvPayload | MSAudioRecvPayload;\ntype MSLocalClientEvent = MSLocalClientEventBase | MSAudioLocalClientEvent;\ntype MSOutboundPayload = MSVideoSendPayload | MSAudioSendPayload;\ntype RTCIceGatherCandidate = RTCIceCandidateDictionary | RTCIceCandidateComplete;\ntype RTCTransport = RTCDtlsTransport | RTCSrtpSdesTransport;\ntype RequestInfo = Request | string;\ntype USVString = string;\ntype payloadtype = number;\ntype ScrollBehavior = \"auto\" | \"instant\" | \"smooth\";\ntype ScrollLogicalPosition = \"start\" | \"center\" | \"end\" | \"nearest\";\ntype IDBValidKey = number | string | Date | IDBArrayKey;\ntype BufferSource = ArrayBuffer | ArrayBufferView;\ntype MouseWheelEvent = WheelEvent;\ntype ScrollRestoration = \"auto\" | \"manual\";\ntype FormDataEntryValue = string | File;\ntype InsertPosition = \"beforebegin\" | \"afterbegin\" | \"beforeend\" | \"afterend\";\ntype AppendMode = \"segments\" | \"sequence\";\ntype AudioContextState = \"suspended\" | \"running\" | \"closed\";\ntype BiquadFilterType = \"lowpass\" | \"highpass\" | \"bandpass\" | \"lowshelf\" | \"highshelf\" | \"peaking\" | \"notch\" | \"allpass\";\ntype CanvasFillRule = \"nonzero\" | \"evenodd\";\ntype ChannelCountMode = \"max\" | \"clamped-max\" | \"explicit\";\ntype ChannelInterpretation = \"speakers\" | \"discrete\";\ntype DistanceModelType = \"linear\" | \"inverse\" | \"exponential\";\ntype ExpandGranularity = \"character\" | \"word\" | \"sentence\" | \"textedit\";\ntype GamepadInputEmulationType = \"mouse\" | \"keyboard\" | \"gamepad\";\ntype IDBCursorDirection = \"next\" | \"nextunique\" | \"prev\" | \"prevunique\";\ntype IDBRequestReadyState = \"pending\" | \"done\";\ntype IDBTransactionMode = \"readonly\" | \"readwrite\" | \"versionchange\";\ntype ListeningState = \"inactive\" | \"active\" | \"disambiguation\";\ntype MediaDeviceKind = \"audioinput\" | \"audiooutput\" | \"videoinput\";\ntype MediaKeyMessageType = \"license-request\" | \"license-renewal\" | \"license-release\" | \"individualization-request\";\ntype MediaKeySessionType = \"temporary\" | \"persistent-license\" | \"persistent-release-message\";\ntype MediaKeysRequirement = \"required\" | \"optional\" | \"not-allowed\";\ntype MediaKeyStatus = \"usable\" | \"expired\" | \"output-downscaled\" | \"output-not-allowed\" | \"status-pending\" | \"internal-error\";\ntype MediaStreamTrackState = \"live\" | \"ended\";\ntype MSCredentialType = \"FIDO_2_0\";\ntype MSIceAddrType = \"os\" | \"stun\" | \"turn\" | \"peer-derived\";\ntype MSIceType = \"failed\" | \"direct\" | \"relay\";\ntype MSStatsType = \"description\" | \"localclientevent\" | \"inbound-network\" | \"outbound-network\" | \"inbound-payload\" | \"outbound-payload\" | \"transportdiagnostics\";\ntype MSTransportType = \"Embedded\" | \"USB\" | \"NFC\" | \"BT\";\ntype MSWebViewPermissionState = \"unknown\" | \"defer\" | \"allow\" | \"deny\";\ntype MSWebViewPermissionType = \"geolocation\" | \"unlimitedIndexedDBQuota\" | \"media\" | \"pointerlock\" | \"webnotifications\";\ntype NavigationReason = \"up\" | \"down\" | \"left\" | \"right\";\ntype NavigationType = \"navigate\" | \"reload\" | \"back_forward\" | \"prerender\";\ntype NotificationDirection = \"auto\" | \"ltr\" | \"rtl\";\ntype NotificationPermission = \"default\" | \"denied\" | \"granted\";\ntype OscillatorType = \"sine\" | \"square\" | \"sawtooth\" | \"triangle\" | \"custom\";\ntype OverSampleType = \"none\" | \"2x\" | \"4x\";\ntype PanningModelType = \"equalpower\";\ntype PaymentComplete = \"success\" | \"fail\" | \"\";\ntype PaymentShippingType = \"shipping\" | \"delivery\" | \"pickup\";\ntype PushEncryptionKeyName = \"p256dh\" | \"auth\";\ntype PushPermissionState = \"granted\" | \"denied\" | \"prompt\";\ntype ReferrerPolicy = \"\" | \"no-referrer\" | \"no-referrer-when-downgrade\" | \"origin-only\" | \"origin-when-cross-origin\" | \"unsafe-url\";\ntype RequestCache = \"default\" | \"no-store\" | \"reload\" | \"no-cache\" | \"force-cache\";\ntype RequestCredentials = \"omit\" | \"same-origin\" | \"include\";\ntype RequestDestination = \"\" | \"document\" | \"sharedworker\" | \"subresource\" | \"unknown\" | \"worker\";\ntype RequestMode = \"navigate\" | \"same-origin\" | \"no-cors\" | \"cors\";\ntype RequestRedirect = \"follow\" | \"error\" | \"manual\";\ntype RequestType = \"\" | \"audio\" | \"font\" | \"image\" | \"script\" | \"style\" | \"track\" | \"video\";\ntype ResponseType = \"basic\" | \"cors\" | \"default\" | \"error\" | \"opaque\" | \"opaqueredirect\";\ntype RTCBundlePolicy = \"balanced\" | \"max-compat\" | \"max-bundle\";\ntype RTCDegradationPreference = \"maintain-framerate\" | \"maintain-resolution\" | \"balanced\";\ntype RTCDtlsRole = \"auto\" | \"client\" | \"server\";\ntype RTCDtlsTransportState = \"new\" | \"connecting\" | \"connected\" | \"closed\";\ntype RTCIceCandidateType = \"host\" | \"srflx\" | \"prflx\" | \"relay\";\ntype RTCIceComponent = \"RTP\" | \"RTCP\";\ntype RTCIceConnectionState = \"new\" | \"checking\" | \"connected\" | \"completed\" | \"failed\" | \"disconnected\" | \"closed\";\ntype RTCIceGathererState = \"new\" | \"gathering\" | \"complete\";\ntype RTCIceGatheringState = \"new\" | \"gathering\" | \"complete\";\ntype RTCIceGatherPolicy = \"all\" | \"nohost\" | \"relay\";\ntype RTCIceProtocol = \"udp\" | \"tcp\";\ntype RTCIceRole = \"controlling\" | \"controlled\";\ntype RTCIceTcpCandidateType = \"active\" | \"passive\" | \"so\";\ntype RTCIceTransportPolicy = \"none\" | \"relay\" | \"all\";\ntype RTCIceTransportState = \"new\" | \"checking\" | \"connected\" | \"completed\" | \"disconnected\" | \"closed\";\ntype RTCSdpType = \"offer\" | \"pranswer\" | \"answer\";\ntype RTCSignalingState = \"stable\" | \"have-local-offer\" | \"have-remote-offer\" | \"have-local-pranswer\" | \"have-remote-pranswer\" | \"closed\";\ntype RTCStatsIceCandidatePairState = \"frozen\" | \"waiting\" | \"inprogress\" | \"failed\" | \"succeeded\" | \"cancelled\";\ntype RTCStatsIceCandidateType = \"host\" | \"serverreflexive\" | \"peerreflexive\" | \"relayed\";\ntype RTCStatsType = \"inboundrtp\" | \"outboundrtp\" | \"session\" | \"datachannel\" | \"track\" | \"transport\" | \"candidatepair\" | \"localcandidate\" | \"remotecandidate\";\ntype ScopedCredentialType = \"ScopedCred\";\ntype ServiceWorkerState = \"installing\" | \"installed\" | \"activating\" | \"activated\" | \"redundant\";\ntype Transport = \"usb\" | \"nfc\" | \"ble\";\ntype VideoFacingModeEnum = \"user\" | \"environment\" | \"left\" | \"right\";\ntype VisibilityState = \"hidden\" | \"visible\" | \"prerender\" | \"unloaded\";\ntype XMLHttpRequestResponseType = \"\" | \"arraybuffer\" | \"blob\" | \"document\" | \"json\" | \"text\";", + "type": 3 + }, + { + "name": "node_modules/@dojo/cli-export-project/exportProject.d.ts", + "text": "import * as resolveCwd from 'resolve-cwd';\nimport { ExportArgs } from './main';\nexport declare let requireResolve: typeof resolveCwd;\nexport declare type StringMap = {\n [pkg: string]: string;\n};\n/**\n * An async function which resolves when a project bundle has been output for the specified path\n */\nexport default function exportProject({content, index, out, project: root, verbose: verboseFlag}: ExportArgs): Promise;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/cli-export-project/interfaces/dojorc.d.ts", + "text": "export interface BuildWebpackJson {\n\t'locale'?: string;\n\t'messageBundles'?: string | string[];\n\t'supportedLocales'?: string | string[];\n\t'watch'?: boolean;\n\t'port'?: number;\n\t'element'?: string;\n\t'elementPrefix'?: string;\n\t'withTests'?: boolean;\n\t'debug'?: boolean;\n\t'disableLazyWidgetDetection'?: boolean;\n\t'bundles'?: { [bundle: string]: string[] };\n}\n\nexport interface DojoRcJson {\n\t'build-webpack'?: BuildWebpackJson;\n\t[k: string]: any;\n}\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/cli-export-project/interfaces/interfaces.d.ts", + "text": "declare module 'resolve-cwd' {\n\tmodule resolve { }\n\tfunction resolve(path: string): string;\n\texport = resolve;\n}\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/cli-export-project/interfaces/package.json.d.ts", + "text": "/**\n * A person who has been involved in creating or maintaining this package\n */\nexport interface Person {\n\t'name': string;\n\t'url'?: string;\n\t'email'?: string;\n\t[k: string]: any;\n}\nexport type ScriptsPublishAfter = string;\nexport type ScriptsInstallAfter = string;\nexport type ScriptsUninstallBefore = string;\nexport type ScriptsVersionBefore = string;\nexport type ScriptsTest = string;\nexport type ScriptsStop = string;\nexport type ScriptsStart = string;\nexport type ScriptsRestart = string;\n/**\n * Dependencies are specified with a simple hash of package name to version range. The version range is a string which has one or more space-separated descriptors. Dependencies can also be identified with a tarball or git URL.\n */\nexport interface Dependency {\n\t[k: string]: string;\n}\nexport interface CoreProperties {\n\t/**\n\t * The name of the package.\n\t */\n\t'name'?: string;\n\t/**\n\t * Version must be parseable by node-semver, which is bundled with npm as a dependency.\n\t */\n\t'version'?: string;\n\t/**\n\t * This helps people discover your package, as it's listed in 'npm search'.\n\t */\n\t'description'?: string;\n\t/**\n\t * This helps people discover your package as it's listed in 'npm search'.\n\t */\n\t'keywords'?: string[];\n\t/**\n\t * The url to the project homepage.\n\t */\n\t'homepage'?: string;\n\t/**\n\t * The url to your project's issue tracker and / or the email address to which issues should be reported. These are helpful for people who encounter issues with your package.\n\t */\n\t'bugs'?: {\n\t\t/**\n\t\t * The url to your project's issue tracker.\n\t\t */\n\t\t'url'?: string;\n\t\t/**\n\t\t * The email address to which issues should be reported.\n\t\t */\n\t\t'email'?: string;\n\t\t[k: string]: any;\n\t};\n\t/**\n\t * You should specify a license for your package so that people know how they are permitted to use it, and any restrictions you're placing on it.\n\t */\n\t'license'?: string;\n\t/**\n\t * You should specify a license for your package so that people know how they are permitted to use it, and any restrictions you're placing on it.\n\t */\n\t'licenses'?: {\n\t\t'type'?: string;\n\t\t'url'?: string;\n\t\t[k: string]: any;\n\t}[];\n\t/**\n\t * A person who has been involved in creating or maintaining this package\n\t */\n\t'author'?: Person;\n\t/**\n\t * A list of people who contributed to this package.\n\t */\n\t'contributors'?: Person[];\n\t/**\n\t * A list of people who maintains this package.\n\t */\n\t'maintainers'?: Person[];\n\t/**\n\t * The 'files' field is an array of files to include in your project. If you name a folder in the array, then it will also include the files inside that folder.\n\t */\n\t'files'?: string[];\n\t/**\n\t * The main field is a module ID that is the primary entry point to your program.\n\t */\n\t'main'?: string;\n\t'bin'?: {\n\t\t[k: string]: string;\n\t};\n\t/**\n\t * Specify either a single file or an array of filenames to put in place for the man program to find.\n\t */\n\t'man'?: any[] | string;\n\t'directories'?: {\n\t\t/**\n\t\t * If you specify a 'bin' directory, then all the files in that folder will be used as the 'bin' hash.\n\t\t */\n\t\t'bin'?: string;\n\t\t/**\n\t\t * Put markdown files in here. Eventually, these will be displayed nicely, maybe, someday.\n\t\t */\n\t\t'doc'?: string;\n\t\t/**\n\t\t * Put example scripts in here. Someday, it might be exposed in some clever way.\n\t\t */\n\t\t'example'?: string;\n\t\t/**\n\t\t * Tell people where the bulk of your library is. Nothing special is done with the lib folder in any way, but it's useful meta info.\n\t\t */\n\t\t'lib'?: string;\n\t\t/**\n\t\t * A folder that is full of man pages. Sugar to generate a 'man' array by walking the folder.\n\t\t */\n\t\t'man'?: string;\n\t\t'test'?: string;\n\t\t[k: string]: any;\n\t};\n\t/**\n\t * Specify the place where your code lives. This is helpful for people who want to contribute.\n\t */\n\t'repository'?: {\n\t\t'type'?: string;\n\t\t'url'?: string;\n\t\t[k: string]: any;\n\t};\n\t/**\n\t * The 'scripts' member is an object hash of script commands that are run at various times in the lifecycle of your package. The key is the lifecycle event, and the value is the command to run at that point.\n\t */\n\t'scripts'?: {\n\t\t/**\n\t\t * Run BEFORE the package is published (Also run on local npm install without any arguments)\n\t\t */\n\t\t'prepublish'?: string;\n\t\t/**\n\t\t * Run AFTER the package is published\n\t\t */\n\t\t'publish'?: ScriptsPublishAfter;\n\t\t/**\n\t\t * Run AFTER the package is published\n\t\t */\n\t\t'postpublish'?: ScriptsPublishAfter;\n\t\t/**\n\t\t * Run BEFORE the package is installed\n\t\t */\n\t\t'preinstall'?: string;\n\t\t/**\n\t\t * Run AFTER the package is installed\n\t\t */\n\t\t'install'?: ScriptsInstallAfter;\n\t\t/**\n\t\t * Run AFTER the package is installed\n\t\t */\n\t\t'postinstall'?: ScriptsInstallAfter;\n\t\t/**\n\t\t * Run BEFORE the package is uninstalled\n\t\t */\n\t\t'preuninstall'?: ScriptsUninstallBefore;\n\t\t/**\n\t\t * Run BEFORE the package is uninstalled\n\t\t */\n\t\t'uninstall'?: ScriptsUninstallBefore;\n\t\t/**\n\t\t * Run AFTER the package is uninstalled\n\t\t */\n\t\t'postuninstall'?: string;\n\t\t/**\n\t\t * Run BEFORE bump the package version\n\t\t */\n\t\t'preversion'?: ScriptsVersionBefore;\n\t\t/**\n\t\t * Run BEFORE bump the package version\n\t\t */\n\t\t'version'?: ScriptsVersionBefore;\n\t\t/**\n\t\t * Run AFTER bump the package version\n\t\t */\n\t\t'postversion'?: string;\n\t\t/**\n\t\t * Run by the 'npm test' command\n\t\t */\n\t\t'pretest'?: ScriptsTest;\n\t\t/**\n\t\t * Run by the 'npm test' command\n\t\t */\n\t\t'test'?: ScriptsTest;\n\t\t/**\n\t\t * Run by the 'npm test' command\n\t\t */\n\t\t'posttest'?: ScriptsTest;\n\t\t/**\n\t\t * Run by the 'npm stop' command\n\t\t */\n\t\t'prestop'?: ScriptsStop;\n\t\t/**\n\t\t * Run by the 'npm stop' command\n\t\t */\n\t\t'stop'?: ScriptsStop;\n\t\t/**\n\t\t * Run by the 'npm stop' command\n\t\t */\n\t\t'poststop'?: ScriptsStop;\n\t\t/**\n\t\t * Run by the 'npm start' command\n\t\t */\n\t\t'prestart'?: ScriptsStart;\n\t\t/**\n\t\t * Run by the 'npm start' command\n\t\t */\n\t\t'start'?: ScriptsStart;\n\t\t/**\n\t\t * Run by the 'npm start' command\n\t\t */\n\t\t'poststart'?: ScriptsStart;\n\t\t/**\n\t\t * Run by the 'npm restart' command. Note: 'npm restart' will run the stop and start scripts if no restart script is provided.\n\t\t */\n\t\t'prerestart'?: ScriptsRestart;\n\t\t/**\n\t\t * Run by the 'npm restart' command. Note: 'npm restart' will run the stop and start scripts if no restart script is provided.\n\t\t */\n\t\t'restart'?: ScriptsRestart;\n\t\t/**\n\t\t * Run by the 'npm restart' command. Note: 'npm restart' will run the stop and start scripts if no restart script is provided.\n\t\t */\n\t\t'postrestart'?: ScriptsRestart;\n\t\t[k: string]: string | undefined;\n\t};\n\t/**\n\t * A 'config' hash can be used to set configuration parameters used in package scripts that persist across upgrades.\n\t */\n\t'config'?: any;\n\t/**\n\t * Dependencies are specified with a simple hash of package name to version range. The version range is a string which has one or more space-separated descriptors. Dependencies can also be identified with a tarball or git URL.\n\t */\n\t'dependencies'?: Dependency;\n\t/**\n\t * Dependencies are specified with a simple hash of package name to version range. The version range is a string which has one or more space-separated descriptors. Dependencies can also be identified with a tarball or git URL.\n\t */\n\t'devDependencies'?: Dependency;\n\t/**\n\t * Dependencies are specified with a simple hash of package name to version range. The version range is a string which has one or more space-separated descriptors. Dependencies can also be identified with a tarball or git URL.\n\t */\n\t'optionalDependencies'?: Dependency;\n\t/**\n\t * Dependencies are specified with a simple hash of package name to version range. The version range is a string which has one or more space-separated descriptors. Dependencies can also be identified with a tarball or git URL.\n\t */\n\t'peerDependencies'?: Dependency;\n\t'engines'?: {\n\t\t[k: string]: string;\n\t};\n\t'engineStrict'?: boolean;\n\t/**\n\t * You can specify which operating systems your module will run on\n\t */\n\t'os'?: string[];\n\t/**\n\t * If your code only runs on certain cpu architectures, you can specify which ones.\n\t */\n\t'cpu'?: string[];\n\t/**\n\t * If your package is primarily a command-line application that should be installed globally, then set this value to true to provide a warning if it is installed locally.\n\t */\n\t'preferGlobal'?: boolean;\n\t/**\n\t * If set to true, then npm will refuse to publish it.\n\t */\n\t'private'?: boolean;\n\t'publishConfig'?: any;\n\t'dist'?: {\n\t\t'shasum'?: string;\n\t\t'tarball'?: string;\n\t\t[k: string]: any;\n\t};\n\t'readme'?: string;\n\t[k: string]: any;\n}\nexport interface JspmDefinition {\n\t'jspm'?: CoreProperties;\n\t[k: string]: any;\n}\nexport interface TypingsDefinition {\n\t'typings'?: string;\n\t'types'?: string;\n\t[k: string]: any;\n}\nexport type BundledDependency = string[];\nexport type JsonSchemaForNpmPackageJsonFiles = CoreProperties & JspmDefinition & TypingsDefinition & {\n\t/**\n\t * Array of package names that will be bundled when publishing the package.\n\t */\n\t'bundleDependencies'?: BundledDependency;\n\t[k: string]: any;\n};\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/cli-export-project/interfaces/project.json.d.ts", + "text": "import { JsonSchemaForNpmPackageJsonFiles as PackageJson } from './package.json';\nimport { JsonSchemaForTheTypeScriptCompilersConfigurationFile as TsconfigJson } from './tsconfig.json';\nimport { JsonSchemaForTheTsLintConfigurationFiles as TslintJson } from './tslint.json';\nimport { DojoRcJson } from './dojorc';\n\nexport interface ProjectJson {\n\n\t/**\n\t * The package dependencies for the project, either `production` or `development`\n\t */\n\tdependencies: {\n\t\t/**\n\t\t * A map of production dependencies, where the package name is the key and the value is the semver of the package\n\t\t */\n\t\tproduction: {\n\t\t\t[pkg: string]: string;\n\t\t},\n\n\t\t/**\n\t\t * A map of development dependencies, where the package name is the key and the value is the semver of the package\n\t\t */\n\t\tdevelopment: {\n\t\t\t[pkg: string]: string;\n\t\t}\n\t};\n\n\t/**\n\t * The .dojorc for the project\n\t */\n\tdojorc?: DojoRcJson;\n\n\t/**\n\t * Files that are part of the environment but are not exposed for editing\n\t *\n\t * Typically these are TypeScript definition files and libraries that are needed\n\t * to provide context to edit and compile the project files\n\t */\n\tenvironmentFiles: ProjectFile[];\n\n\t/**\n\t * These are the editable project files\n\t */\n\tfiles: ProjectFile[];\n\n\t/**\n\t * The filename of the HTML document for the project to load when running it\n\t */\n\tindex: string;\n\n\t/**\n\t * The package.json for the project\n\t */\n\tpackage: PackageJson;\n\n\t/**\n\t * The tsconfig.json for the project\n\t */\n\ttsconfig: TsconfigJson;\n\n\t/**\n\t * The tslint.json for the project\n\t */\n\ttslint?: TslintJson;\n}\n\nexport interface ProjectFile {\n\ttype: ProjectFileType;\n\tname: string;\n\ttext: string;\n}\n\nexport const enum ProjectFileType {\n\tTypeScript = 1,\n\tDefinition,\n\tLib,\n\tJavaScript,\n\tCSS,\n\tHTML,\n\tMarkdown,\n\tJSON,\n\tXML,\n\tSourceMap,\n\tPlainText\n}\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/cli-export-project/interfaces/tsconfig.json.d.ts", + "text": "export interface CompilerOptionsDefinition {\n\t/**\n\t * Instructs the TypeScript compiler how to compile .ts files.\n\t */\n\t'compilerOptions'?: {\n\t\t/**\n\t\t * The character set of the input files.\n\t\t */\n\t\t'charset'?: string;\n\t\t/**\n\t\t * Generates corresponding d.ts files.\n\t\t */\n\t\t'declaration'?: boolean;\n\t\t/**\n\t\t * Specify output directory for generated declaration files. Requires TypeScript version 2.0 or later.\n\t\t */\n\t\t'declarationDir'?: string;\n\t\t/**\n\t\t * Show diagnostic information.\n\t\t */\n\t\t'diagnostics'?: boolean;\n\t\t/**\n\t\t * Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files.\n\t\t */\n\t\t'emitBOM'?: boolean;\n\t\t/**\n\t\t * Emit a single file with source maps instead of having a separate file.\n\t\t */\n\t\t'inlineSourceMap'?: boolean;\n\t\t/**\n\t\t * Emit the source alongside the sourcemaps within a single file; requires --inlineSourceMap to be set.\n\t\t */\n\t\t'inlineSources'?: boolean;\n\t\t/**\n\t\t * Specify JSX code generation: 'preserve', 'react', or 'react-native'.\n\t\t */\n\t\t'jsx'?: 'preserve' | 'react' | 'react-native';\n\t\t/**\n\t\t * Specifies the object invoked for createElement and __spread when targeting 'react' JSX emit.\n\t\t */\n\t\t'reactNamespace'?: string;\n\t\t/**\n\t\t * Print names of files part of the compilation.\n\t\t */\n\t\t'listFiles'?: boolean;\n\t\t/**\n\t\t * The locale to use to show error messages, e.g. en-us.\n\t\t */\n\t\t'locale'?: string;\n\t\t/**\n\t\t * Specifies the location where debugger should locate map files instead of generated locations\n\t\t */\n\t\t'mapRoot'?: string;\n\t\t/**\n\t\t * Specify module code generation: 'none', 'CommonJS', 'Amd', 'System', 'UMD', or 'es2015'.\n\t\t */\n\t\t'module'?: 'commonjs' | 'amd' | 'umd' | 'system' | 'es6' | 'es2015' | 'none';\n\t\t/**\n\t\t * Specifies the end of line sequence to be used when emitting files: 'CRLF' (dos) or 'LF' (unix).\n\t\t */\n\t\t'newLine'?: 'CRLF' | 'LF';\n\t\t/**\n\t\t * Do not emit output.\n\t\t */\n\t\t'noEmit'?: boolean;\n\t\t/**\n\t\t * Do not generate custom helper functions like __extends in compiled output.\n\t\t */\n\t\t'noEmitHelpers'?: boolean;\n\t\t/**\n\t\t * Do not emit outputs if any type checking errors were reported.\n\t\t */\n\t\t'noEmitOnError'?: boolean;\n\t\t/**\n\t\t * Warn on expressions and declarations with an implied 'any' type.\n\t\t */\n\t\t'noImplicitAny'?: boolean;\n\t\t/**\n\t\t * Raise error on 'this' expressions with an implied any type.\n\t\t */\n\t\t'noImplicitThis'?: boolean;\n\t\t/**\n\t\t * Report errors on unused locals. Requires TypeScript version 2.0 or later.\n\t\t */\n\t\t'noUnusedLocals'?: boolean;\n\t\t/**\n\t\t * Report errors on unused parameters. Requires TypeScript version 2.0 or later.\n\t\t */\n\t\t'noUnusedParameters'?: boolean;\n\t\t/**\n\t\t * Do not include the default library file (lib.d.ts).\n\t\t */\n\t\t'noLib'?: boolean;\n\t\t/**\n\t\t * Do not add triple-slash references or module import targets to the list of compiled files.\n\t\t */\n\t\t'noResolve'?: boolean;\n\t\t'skipDefaultLibCheck'?: boolean;\n\t\t/**\n\t\t * Skip type checking of declaration files. Requires TypeScript version 2.0 or later.\n\t\t */\n\t\t'skipLibCheck'?: boolean;\n\t\t/**\n\t\t * Concatenate and emit output to single file.\n\t\t */\n\t\t'outFile'?: string;\n\t\t/**\n\t\t * Redirect output structure to the directory.\n\t\t */\n\t\t'outDir'?: string;\n\t\t/**\n\t\t * Do not erase const enum declarations in generated code.\n\t\t */\n\t\t'preserveConstEnums'?: boolean;\n\t\t/**\n\t\t * Stylize errors and messages using color and context (experimental).\n\t\t */\n\t\t'pretty'?: boolean;\n\t\t/**\n\t\t * Do not emit comments to output.\n\t\t */\n\t\t'removeComments'?: boolean;\n\t\t/**\n\t\t * Specifies the root directory of input files. Use to control the output directory structure with --outDir.\n\t\t */\n\t\t'rootDir'?: string;\n\t\t/**\n\t\t * Unconditionally emit imports for unresolved files.\n\t\t */\n\t\t'isolatedModules'?: boolean;\n\t\t/**\n\t\t * Generates corresponding '.map' file.\n\t\t */\n\t\t'sourceMap'?: boolean;\n\t\t/**\n\t\t * Specifies the location where debugger should locate TypeScript files instead of source locations.\n\t\t */\n\t\t'sourceRoot'?: string;\n\t\t/**\n\t\t * Suppress excess property checks for object literals.\n\t\t */\n\t\t'suppressExcessPropertyErrors'?: boolean;\n\t\t/**\n\t\t * Suppress noImplicitAny errors for indexing objects lacking index signatures.\n\t\t */\n\t\t'suppressImplicitAnyIndexErrors'?: boolean;\n\t\t/**\n\t\t * Do not emit declarations for code that has an '@internal' annotation.\n\t\t */\n\t\t'stripInternal'?: boolean;\n\t\t/**\n\t\t * Specify ECMAScript target version. Permitted values are 'es3', 'es5', 'es2015', 'es2016', 'es2017' or 'esnext'.\n\t\t */\n\t\t'target'?: 'es3' | 'es5' | 'es2015' | 'es2016' | 'es2017' | 'esnext' | any;\n\t\t/**\n\t\t * Watch input files.\n\t\t */\n\t\t'watch'?: boolean;\n\t\t/**\n\t\t * Enables experimental support for ES7 decorators.\n\t\t */\n\t\t'experimentalDecorators'?: boolean;\n\t\t/**\n\t\t * Emit design-type metadata for decorated declarations in source.\n\t\t */\n\t\t'emitDecoratorMetadata'?: boolean;\n\t\t/**\n\t\t * Specifies module resolution strategy: 'node' (Node) or 'classic' (TypeScript pre 1.6) .\n\t\t */\n\t\t'moduleResolution'?: string;\n\t\t/**\n\t\t * Do not report errors on unused labels.\n\t\t */\n\t\t'allowUnusedLabels'?: boolean;\n\t\t/**\n\t\t * Report error when not all code paths in function return a value.\n\t\t */\n\t\t'noImplicitReturns'?: boolean;\n\t\t/**\n\t\t * Report errors for fallthrough cases in switch statement.\n\t\t */\n\t\t'noFallthroughCasesInSwitch'?: boolean;\n\t\t/**\n\t\t * Do not report errors on unreachable code.\n\t\t */\n\t\t'allowUnreachableCode'?: boolean;\n\t\t/**\n\t\t * Disallow inconsistently-cased references to the same file.\n\t\t */\n\t\t'forceConsistentCasingInFileNames'?: boolean;\n\t\t/**\n\t\t * Base directory to resolve non-relative module names.\n\t\t */\n\t\t'baseUrl'?: string;\n\t\t/**\n\t\t * Specify path mapping to be computed relative to baseUrl option.\n\t\t */\n\t\t'paths'?: Object;\n\t\t/**\n\t\t * Specify list of root directories to be used when resolving modules.\n\t\t */\n\t\t'rootDirs'?: string[];\n\t\t/**\n\t\t * Specify list of directories for type definition files to be included. Requires TypeScript version 2.0 or later.\n\t\t */\n\t\t'typeRoots'?: string[];\n\t\t/**\n\t\t * Type declaration files to be included in compilation. Requires TypeScript version 2.0 or later.\n\t\t */\n\t\t'types'?: string[];\n\t\t/**\n\t\t * Enable tracing of the name resolution process.\n\t\t */\n\t\t'traceResolution'?: boolean;\n\t\t/**\n\t\t * Allow javascript files to be compiled.\n\t\t */\n\t\t'allowJs'?: boolean;\n\t\t/**\n\t\t * Allow default imports from modules with no default export. This does not affect code emit, just typechecking.\n\t\t */\n\t\t'allowSyntheticDefaultImports'?: boolean;\n\t\t/**\n\t\t * Do not emit 'use strict' directives in module output.\n\t\t */\n\t\t'noImplicitUseStrict'?: boolean;\n\t\t/**\n\t\t * Enable to list all emitted files. Requires TypeScript version 2.0 or later.\n\t\t */\n\t\t'listEmittedFiles'?: boolean;\n\t\t/**\n\t\t * Specify library file to be included in the compilation. Requires TypeScript version 2.0 or later.\n\t\t */\n\t\t'lib'?: ('es5' | 'es6' | 'es2015' | 'es7' | 'es2016' | 'es2017' | 'esnext' | 'dom' | 'dom.iterable' | 'webworker' | 'scripthost' | 'es2015.core' | 'es2015.collection' | 'es2015.generator' | 'es2015.iterable' | 'es2015.promise' | 'es2015.proxy' | 'es2015.reflect' | 'es2015.symbol' | 'es2015.symbol.wellknown' | 'es2016.array.include' | 'es2017.object' | 'es2017.sharedmemory' | 'esnext.asynciterable')[];\n\t\t/**\n\t\t * Enable strict null checks. Requires TypeScript version 2.0 or later.\n\t\t */\n\t\t'strictNullChecks'?: boolean;\n\t\t/**\n\t\t * The maximum dependency depth to search under node_modules and load JavaScript files. Only applicable with --allowJs.\n\t\t */\n\t\t'maxNodeModuleJsDepth'?: number;\n\t\t/**\n\t\t * Import emit helpers (e.g. '__extends', '__rest', etc..) from tslib. Requires TypeScript version 2.1 or later.\n\t\t */\n\t\t'importHelpers'?: boolean;\n\t\t/**\n\t\t * Specify the JSX factory function to use when targeting react JSX emit, e.g. 'React.createElement' or 'h'. Requires TypeScript version 2.1 or later.\n\t\t */\n\t\t'jsxFactory'?: string;\n\t\t/**\n\t\t * Parse in strict mode and emit 'use strict' for each source file. Requires TypeScript version 2.1 or later.\n\t\t */\n\t\t'alwaysStrict'?: boolean;\n\t\t/**\n\t\t * Enable all strict type checking options. Requires TypeScript version 2.3 or later.\n\t\t */\n\t\t'strict'?: boolean;\n\t\t/**\n\t\t * Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. Requires TypeScript version 2.3 or later.\n\t\t */\n\t\t'downlevelIteration'?: boolean;\n\t\t/**\n\t\t * Report errors in .js files. Requires TypeScript version 2.3 or later.\n\t\t */\n\t\t'checkJs'?: boolean;\n\t\t[k: string]: any;\n\t};\n\t[k: string]: any;\n}\nexport interface CompileOnSaveDefinition {\n\t/**\n\t * Enable Compile-on-Save for this project.\n\t */\n\t'compileOnSave'?: boolean;\n\t[k: string]: any;\n}\nexport interface TypeAcquisitionDefinition {\n\t/**\n\t * Auto type (.d.ts) acquisition options for this project. Requires TypeScript version 2.1 or later.\n\t */\n\t'typeAcquisition'?: {\n\t\t/**\n\t\t * Enable auto type acquisition\n\t\t */\n\t\t'enable'?: boolean;\n\t\t/**\n\t\t * Specifies a list of type declarations to be included in auto type acquisition. Ex. ['jquery', 'lodash']\n\t\t */\n\t\t'include'?: string[];\n\t\t/**\n\t\t * Specifies a list of type declarations to be excluded from auto type acquisition. Ex. ['jquery', 'lodash']\n\t\t */\n\t\t'exclude'?: string[];\n\t\t[k: string]: any;\n\t};\n\t[k: string]: any;\n}\nexport interface ExtendsDefinition {\n\t/**\n\t * Path to base configuration file to inherit from. Requires TypeScript version 2.1 or later.\n\t */\n\t'extends'?: string;\n\t[k: string]: any;\n}\nexport interface FilesDefinition {\n\t/**\n\t * If no 'files' or 'include' property is present in a tsconfig.json, the compiler defaults to including all files in the containing directory and subdirectories except those specified by 'exclude'. When a 'files' property is specified, only those files and those specified by 'include' are included.\n\t */\n\t'files'?: string[];\n\t[k: string]: any;\n}\nexport interface ExcludeDefinition {\n\t/**\n\t * Specifies a list of files to be excluded from compilation. The 'exclude' property only affects the files included via the 'include' property and not the 'files' property. Glob patterns require TypeScript version 2.0 or later.\n\t */\n\t'exclude'?: string[];\n\t[k: string]: any;\n}\nexport interface IncludeDefinition {\n\t/**\n\t * Specifies a list of glob patterns that match files to be included in compilation. If no 'files' or 'include' property is present in a tsconfig.json, the compiler defaults to including all files in the containing directory and subdirectories except those specified by 'exclude'. Requires TypeScript version 2.0 or later.\n\t */\n\t'include'?: string[];\n\t[k: string]: any;\n}\nexport type JsonSchemaForTheTypeScriptCompilersConfigurationFile = CompilerOptionsDefinition & CompileOnSaveDefinition & TypeAcquisitionDefinition & ExtendsDefinition & FilesDefinition & IncludeDefinition;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/cli-export-project/interfaces/tslint.json.d.ts", + "text": "export interface Ruledefinitions {\n\t/**\n\t * Enforces function overloads to be consecutive\n\t */\n\t'adjacent-overload-signatures'?: boolean;\n\t/**\n\t * Enforces vertical alignment for parameters, arguments and/or statements\n\t */\n\t'align'?: (true | false | 'parameters' | 'arguments' | 'statements')[];\n\t/**\n\t * Requires using either 'T[]' or 'Array' for arrays\n\t */\n\t'array-type'?: (true | false | 'array' | 'array-simple' | 'generic')[];\n\t/**\n\t * Requires parentheses around the parameters of arrow function definitions\n\t */\n\t'arrow-parens'?: boolean | any[];\n\t/**\n\t * Bans the use of specific functions or global methods\n\t */\n\t'ban'?: boolean | any[];\n\t/**\n\t * Enforces PascalCased class and interface names\n\t */\n\t'class-name'?: boolean;\n\t/**\n\t * Enforces rules for single-line comments\n\t */\n\t'comment-format'?: (true | false | 'check-space' | 'check-lowercase' | 'check-uppercase' | {\n\t\t/**\n\t\t * Words that will be ignored at the beginning of comment\n\t\t */\n\t\t'ignore-words'?: string[];\n\t\t/**\n\t\t * RegExp pattern that will be ignored at the beginning of comment\n\t\t */\n\t\t'ignore-pattern'?: string;\n\t})[];\n\t/**\n\t * Enforces documentation for important items be filled out\n\t */\n\t'completed-docs'?: (true | false | 'classes' | 'functions' | 'methods' | 'properties')[];\n\t/**\n\t * Enforces all components having the suffix of 'Component'\n\t */\n\t'component-class-suffix'?: boolean;\n\t/**\n\t * Enforces naming conventions for components\n\t */\n\t'component-selector-name'?: (true | false | 'camelCase' | 'kebab-case')[];\n\t/**\n\t * Enforces all components to have a uniform prefix\n\t */\n\t'component-selector-prefix'?: (boolean | string)[];\n\t/**\n\t * Enforces the type of a component\n\t */\n\t'component-selector-type'?: (true | false | 'attribute' | 'element')[];\n\t/**\n\t * Enforces braces for if/for/do/while statements\n\t */\n\t'curly'?: boolean;\n\t/**\n\t * Enforces a threshold of cyclomatic complexity\n\t */\n\t'cyclomatic-complexity'?: (boolean | number)[];\n\t/**\n\t * Enforces all components having the suffix of 'Directive'\n\t */\n\t'directive-class-suffix'?: boolean;\n\t/**\n\t * Enforces naming conventions for directives\n\t */\n\t'directive-selector-name'?: (true | false | 'camelCase' | 'kebab-case')[];\n\t/**\n\t * Enforces all directives to have a uniform prefix\n\t */\n\t'directive-selector-prefix'?: (boolean | string)[];\n\t/**\n\t * Enforces the type of a directive\n\t */\n\t'directive-selector-type'?: (true | false | 'attribute' | 'element')[];\n\t/**\n\t * Enforces the file to end with a newline\n\t */\n\t'eofline'?: boolean;\n\t/**\n\t * Enforces a certain header comment for all files, matched by a regular expression\n\t */\n\t'file-header'?: (boolean | string)[];\n\t/**\n\t * Enforces a for...in statement to be filtered with an if statement\n\t */\n\t'forin'?: boolean;\n\t/**\n\t * Enforces consistent indentation levels\n\t */\n\t'indent'?: (boolean | number | string)[];\n\t/**\n\t * Enforces the rule that interface names must or must not begin with a capital 'I'\n\t */\n\t'interface-name'?: (true | false | 'always-prefix' | 'never-prefix')[];\n\t/**\n\t * Enforces basic format rules for jsdoc comments\n\t */\n\t'jsdoc-format'?: boolean;\n\t/**\n\t * Enforces labels only on sensible statements\n\t */\n\t'label-position'?: boolean;\n\t/**\n\t * Enforces a consistent linebreak styl\n\t */\n\t'linebreak-style'?: (true | false | 'CRLF' | 'LF')[];\n\t/**\n\t * A file may not contain more than the specified number of classes\n\t */\n\t'max-classes-per-file'?: (boolean | number)[];\n\t/**\n\t * Requires files to remain under a certain number of lines\n\t */\n\t'max-file-line-count'?: (boolean | number)[];\n\t/**\n\t * Sets the maximum length of a line\n\t */\n\t'max-line-length'?: (boolean | number)[];\n\t/**\n\t * Enforces using explicit visibility on class members\n\t */\n\t'member-access'?: any[] | boolean;\n\t/**\n\t * Enforces chosen member ordering\n\t */\n\t'member-ordering'?: (Object | boolean | string)[];\n\t/**\n\t * Requires parentheses when invoking a constructor via the `new` keyword\n\t */\n\t'new-parens'?: boolean;\n\t/**\n\t * Requires the use of `as Type` for type assertions instead of ``\n\t */\n\t'no-angle-bracket-type-assertion'?: boolean;\n\t/**\n\t * Disallows usages of any as a type decoration\n\t */\n\t'no-any'?: boolean;\n\t/**\n\t * Disallows access to arguments.callee\n\t */\n\t'no-arg'?: boolean;\n\t/**\n\t * Disallows bitwise operators\n\t */\n\t'no-bitwise'?: boolean;\n\t/**\n\t * Disallows any type of assignment in any conditionals; this applies to do-while, for, if, and while statements\n\t */\n\t'no-conditional-assignment'?: boolean;\n\t/**\n\t * Disallows one or more blank lines in a row\n\t */\n\t'no-consecutive-blank-lines'?: (boolean | number)[];\n\t/**\n\t * Disallows access to the specified functions on console\n\t */\n\t'no-console'?: (true | false | 'assert' | 'count' | 'debug' | 'dir' | 'dirxml' | 'error' | 'group' | 'groupCollapsed' | 'groupEnd' | 'info' | 'log' | 'profile' | 'profileEnd' | 'table' | 'time' | 'timeEnd' | 'timeStamp' | 'trace' | 'warn')[];\n\t/**\n\t * Disallows access to the constructors of String, Number and Boolean\n\t */\n\t'no-construct'?: boolean;\n\t/**\n\t * Disallows debugger statements\n\t */\n\t'no-debugger'?: boolean;\n\t/**\n\t * Disallows default exports in ES6-style modules\n\t */\n\t'no-default-export'?: boolean;\n\t/**\n\t * Disallows duplicate variable declarations in the same block scope\n\t */\n\t'no-duplicate-variable'?: boolean;\n\t/**\n\t * Disallows empty blocks\n\t */\n\t'no-empty'?: boolean;\n\t/**\n\t * Disallows `eval` function invocations\n\t */\n\t'no-eval'?: boolean;\n\t/**\n\t * Disallows iterating over an array with a for-in loop\n\t */\n\t'no-for-in-array'?: boolean;\n\t/**\n\t * Disallows explicit type declarations for variables or parameters initialized to a number, string, or boolean\n\t */\n\t'no-inferrable-types'?: (true | false | 'ignore-params')[];\n\t/**\n\t * Disallows internal module, use namespace instead\n\t */\n\t'no-internal-module'?: boolean;\n\t/**\n\t * Disallows using the `this` keyword outside of classes\n\t */\n\t'no-invalid-this'?: any;\n\t/**\n\t * Disallows mergeable namespaces in the same file\n\t */\n\t'no-mergeable-namespace'?: boolean;\n\t/**\n\t * Disallows use of internal `module`s and `namespace`s\n\t */\n\t'no-namespace'?: any;\n\t/**\n\t * Disallows use of the `null` keyword literal\n\t */\n\t'no-null-keyword'?: boolean;\n\t/**\n\t * Disallows parameter properties in class constructors\n\t */\n\t'no-parameter-properties'?: boolean;\n\t/**\n\t * Disallows `/// ` imports (use ES6-style imports instead)\n\t */\n\t'no-reference'?: boolean;\n\t/**\n\t * Disallows require() style imports\n\t */\n\t'no-require-imports'?: boolean;\n\t/**\n\t * Disallows shadowing variable declarations\n\t */\n\t'no-shadowed-variable'?: boolean;\n\t/**\n\t * Disallows object access via string literals\n\t */\n\t'no-string-literal'?: boolean;\n\t/**\n\t * Disallows falling through case statements\n\t */\n\t'no-switch-case-fall-through'?: boolean;\n\t/**\n\t * Disallows trailing whitespace at the end of a line\n\t */\n\t'no-trailing-whitespace'?: boolean;\n\t/**\n\t * Disallows control flow statements, such as `return`, `continue`, `break` and `throws` in finally blocks\n\t */\n\t'no-unsafe-finally'?: boolean;\n\t/**\n\t * Disallows unused expression statements\n\t */\n\t'no-unused-expression'?: boolean;\n\t/**\n\t * Disallows unused 'new' expression statements\n\t */\n\t'no-unused-new'?: boolean;\n\t/**\n\t * Disallows unused imports, variables, functions and private class members\n\t */\n\t'no-unused-variable'?: any[] | boolean;\n\t/**\n\t * Disallows usage of variables before their declaration\n\t */\n\t'no-use-before-declare'?: boolean;\n\t/**\n\t * Disallows usage of the var keyword, use let or const instead\n\t */\n\t'no-var-keyword'?: boolean;\n\t/**\n\t * Disallows the use of require statements except in import statements\n\t */\n\t'no-var-requires'?: boolean;\n\t/**\n\t * Enforces consistent object literal property quote style\n\t */\n\t'object-literal-key-quotes'?: (true | false | 'always' | 'as-needed' | 'consistent' | 'consistent-as-needed')[];\n\t/**\n\t * Enforces use of ES6 object literal shorthand when possible\n\t */\n\t'object-literal-shorthand'?: boolean;\n\t/**\n\t * Requires keys in object literals to be sorted alphabetically\n\t */\n\t'object-literal-sort-keys'?: boolean;\n\t/**\n\t * Enforces the specified tokens to be on the same line as the expression preceding it\n\t */\n\t'one-line'?: (true | false | 'check-open-brace' | 'check-catch' | 'check-finally' | 'check-else' | 'check-whitespace')[];\n\t/**\n\t * Disallows multiple variable definitions in the same declaration statement\n\t */\n\t'one-variable-per-declaration'?: (true | false | 'ignore-for-loop')[];\n\t/**\n\t * Disallows traditional (non-arrow) function expressions\n\t */\n\t'only-arrow-functions'?: (true | false | 'allow-declarations' | 'allow-named-functions')[];\n\t/**\n\t * Requires that import statements be alphabetized\n\t */\n\t'ordered-imports'?: (Object | boolean | string)[];\n\t/**\n\t * Recommends a 'for-of' loop over a standard 'for' loop if the index is only used to access the array being iterated\n\t */\n\t'prefer-for-of'?: boolean;\n\t/**\n\t * Enforces consistent single or double quoted string literals\n\t */\n\t'quotemark'?: (true | false | 'double' | 'single' | 'jsx-double' | 'jsx-single' | 'avoid-escape')[];\n\t/**\n\t * Enforces the radix parameter of parseInt\n\t */\n\t'radix'?: boolean;\n\t/**\n\t * When adding two variables, operands must both be of type number or of type string\n\t */\n\t'restrict-plus-operands'?: boolean;\n\t/**\n\t * Enforces semicolons at the end of every statement\n\t */\n\t'semicolon'?: (true | false | 'always' | 'never' | 'ignore-bound-class-methods' | 'ignore-interfaces')[];\n\t/**\n\t * Enforces a default case in switch statements\n\t */\n\t'switch-default'?: boolean;\n\t/**\n\t * Requires or disallows trailing commas in array and object literals, destructuring assignments, function and tuple typings, named imports and function parameters\n\t */\n\t'trailing-comma'?: (Object | boolean | string)[];\n\t/**\n\t * Enforces === and !== in favor of == and !=\n\t */\n\t'triple-equals'?: any[] | boolean;\n\t/**\n\t * Enforces type definitions to exist\n\t */\n\t'typedef'?: (true | false | 'call-signature' | 'parameter' | 'arrow-parameter' | 'property-declaration' | 'variable-declaration' | 'member-variable-declaration')[];\n\t/**\n\t * Enforces spacing whitespace for type definitions\n\t */\n\t'typedef-whitespace'?: (Object | boolean)[];\n\t/**\n\t * Enforces use of the `isNaN()` function to check for NaN references instead of a comparison to the `NaN` constant\n\t */\n\t'use-isnan'?: boolean;\n\t/**\n\t * Allows only camelCased or UPPER_CASED variable names\n\t */\n\t'variable-name'?: any[] | boolean;\n\t/**\n\t * Enforces spacing whitespace\n\t */\n\t'whitespace'?: (true | false | 'check-branch' | 'check-decl' | 'check-operator' | 'check-module' | 'check-separator' | 'check-type' | 'check-typecast')[];\n\t[k: string]: any;\n}\nexport interface Jsruledefinitions {\n\t/**\n\t * Enforces vertical alignment for parameters, arguments and/or statements\n\t */\n\t'align'?: (true | false | 'parameters' | 'arguments' | 'statements')[];\n\t/**\n\t * Requires parentheses around the parameters of arrow function definitions\n\t */\n\t'arrow-parens'?: boolean;\n\t/**\n\t * Bans the use of specific functions or global methods\n\t */\n\t'ban'?: boolean | any[];\n\t/**\n\t * Enforces PascalCased class and interface names\n\t */\n\t'class-name'?: boolean;\n\t/**\n\t * Enforces rules for single-line comments\n\t */\n\t'comment-format'?: (true | false | 'check-space' | 'check-lowercase' | 'check-uppercase')[];\n\t/**\n\t * Enforces documentation for important items be filled out\n\t */\n\t'completed-docs'?: (true | false | 'classes' | 'functions' | 'methods' | 'properties')[];\n\t/**\n\t * Enforces all components having the suffix of 'Component'\n\t */\n\t'component-class-suffix'?: boolean;\n\t/**\n\t * Enforces naming conventions for components\n\t */\n\t'component-selector-name'?: (true | false | 'camelCase' | 'kebab-case')[];\n\t/**\n\t * Enforces all components to have a uniform prefix\n\t */\n\t'component-selector-prefix'?: (boolean | string)[];\n\t/**\n\t * Enforces the type of a component\n\t */\n\t'component-selector-type'?: (true | false | 'attribute' | 'element')[];\n\t/**\n\t * Enforces braces for if/for/do/while statements\n\t */\n\t'curly'?: boolean;\n\t/**\n\t * Enforces a threshold of cyclomatic complexity\n\t */\n\t'cyclomatic-complexity'?: (boolean | number)[];\n\t/**\n\t * Enforces all components having the suffix of 'Directive'\n\t */\n\t'directive-class-suffix'?: boolean;\n\t/**\n\t * Enforces naming conventions for directives\n\t */\n\t'directive-selector-name'?: (true | false | 'camelCase' | 'kebab-case')[];\n\t/**\n\t * Enforces all directives to have a uniform prefix\n\t */\n\t'directive-selector-prefix'?: (boolean | string)[];\n\t/**\n\t * Enforces the type of a directive\n\t */\n\t'directive-selector-type'?: (true | false | 'attribute' | 'element')[];\n\t/**\n\t * Enforces the file to end with a newline\n\t */\n\t'eofline'?: boolean;\n\t/**\n\t * Enforces a certain header comment for all files, matched by a regular expression\n\t */\n\t'file-header'?: (boolean | string)[];\n\t/**\n\t * Enforces a for...in statement to be filtered with an if statement\n\t */\n\t'forin'?: boolean;\n\t/**\n\t * Enforces consistent indentation levels\n\t */\n\t'indent'?: (boolean | number | string)[];\n\t/**\n\t * Enforces basic format rules for jsdoc comments\n\t */\n\t'jsdoc-format'?: boolean;\n\t/**\n\t * Enforces labels only on sensible statements\n\t */\n\t'label-position'?: boolean;\n\t/**\n\t * Enforces a consistent linebreak styl\n\t */\n\t'linebreak-style'?: (true | false | 'CRLF' | 'LF')[];\n\t/**\n\t * A file may not contain more than the specified number of classes\n\t */\n\t'max-classes-per-file'?: (boolean | number)[];\n\t/**\n\t * Requires files to remain under a certain number of lines\n\t */\n\t'max-file-line-count'?: (boolean | number)[];\n\t/**\n\t * Sets the maximum length of a line\n\t */\n\t'max-line-length'?: (boolean | number)[];\n\t/**\n\t * Requires parentheses when invoking a constructor via the `new` keyword\n\t */\n\t'new-parens'?: boolean;\n\t/**\n\t * Disallows access to arguments.callee\n\t */\n\t'no-arg'?: boolean;\n\t/**\n\t * Disallows bitwise operators\n\t */\n\t'no-bitwise'?: boolean;\n\t/**\n\t * Disallows any type of assignment in any conditionals; this applies to do-while, for, if, and while statements\n\t */\n\t'no-conditional-assignment'?: boolean;\n\t/**\n\t * Disallows one or more blank lines in a row\n\t */\n\t'no-consecutive-blank-lines'?: (boolean | number)[];\n\t/**\n\t * Disallows access to the specified functions on console\n\t */\n\t'no-console'?: (true | false | 'assert' | 'count' | 'debug' | 'dir' | 'dirxml' | 'error' | 'group' | 'groupCollapsed' | 'groupEnd' | 'info' | 'log' | 'profile' | 'profileEnd' | 'table' | 'time' | 'timeEnd' | 'timeStamp' | 'trace' | 'warn')[];\n\t/**\n\t * Disallows access to the constructors of String, Number and Boolean\n\t */\n\t'no-construct'?: boolean;\n\t/**\n\t * Disallows debugger statements\n\t */\n\t'no-debugger'?: boolean;\n\t/**\n\t * Disallows default exports in ES6-style modules\n\t */\n\t'no-default-export'?: boolean;\n\t/**\n\t * Disallows duplicate variable declarations in the same block scope\n\t */\n\t'no-duplicate-variable'?: boolean;\n\t/**\n\t * Disallows empty blocks\n\t */\n\t'no-empty'?: boolean;\n\t/**\n\t * Disallows `eval` function invocations\n\t */\n\t'no-eval'?: boolean;\n\t/**\n\t * Disallows iterating over an array with a for-in loop\n\t */\n\t'no-for-in-array'?: boolean;\n\t/**\n\t * Disallows using the `this` keyword outside of classes\n\t */\n\t'no-invalid-this'?: any;\n\t/**\n\t * Disallows use of the `null` keyword literal\n\t */\n\t'no-null-keyword'?: boolean;\n\t/**\n\t * Disallows `/// ` imports (use ES6-style imports instead)\n\t */\n\t'no-reference'?: boolean;\n\t/**\n\t * Disallows require() style imports\n\t */\n\t'no-require-imports'?: boolean;\n\t/**\n\t * Disallows shadowing variable declarations\n\t */\n\t'no-shadowed-variable'?: boolean;\n\t/**\n\t * Disallows object access via string literals\n\t */\n\t'no-string-literal'?: boolean;\n\t/**\n\t * Disallows falling through case statements\n\t */\n\t'no-switch-case-fall-through'?: boolean;\n\t/**\n\t * Disallows trailing whitespace at the end of a line\n\t */\n\t'no-trailing-whitespace'?: boolean;\n\t/**\n\t * Disallows control flow statements, such as `return`, `continue`, `break` and `throws` in finally blocks\n\t */\n\t'no-unsafe-finally'?: boolean;\n\t/**\n\t * Disallows unused expression statements\n\t */\n\t'no-unused-expression'?: boolean;\n\t/**\n\t * Disallows unused 'new' expression statements\n\t */\n\t'no-unused-new'?: boolean;\n\t/**\n\t * Disallows usage of variables before their declaration\n\t */\n\t'no-use-before-declare'?: boolean;\n\t/**\n\t * Disallows usage of the var keyword, use let or const instead\n\t */\n\t'no-var-keyword'?: boolean;\n\t/**\n\t * Enforces consistent object literal property quote style\n\t */\n\t'object-literal-key-quotes'?: (true | false | 'always' | 'as-needed')[];\n\t/**\n\t * Enforces use of ES6 object literal shorthand when possible\n\t */\n\t'object-literal-shorthand'?: boolean;\n\t/**\n\t * Requires keys in object literals to be sorted alphabetically\n\t */\n\t'object-literal-sort-keys'?: boolean;\n\t/**\n\t * Enforces the specified tokens to be on the same line as the expression preceding it\n\t */\n\t'one-line'?: (true | false | 'check-open-brace' | 'check-catch' | 'check-finally' | 'check-else' | 'check-whitespace')[];\n\t/**\n\t * Disallows multiple variable definitions in the same declaration statement\n\t */\n\t'one-variable-per-declaration'?: (true | false | 'ignore-for-loop')[];\n\t/**\n\t * Disallows traditional (non-arrow) function expressions\n\t */\n\t'only-arrow-functions'?: (true | false | 'allow-declarations')[];\n\t/**\n\t * Requires that import statements be alphabetized\n\t */\n\t'ordered-imports'?: (Object | boolean | string)[];\n\t/**\n\t * Recommends a 'for-of' loop over a standard 'for' loop if the index is only used to access the array being iterated\n\t */\n\t'prefer-for-of'?: boolean;\n\t/**\n\t * Enforces consistent single or double quoted string literals\n\t */\n\t'quotemark'?: (true | false | 'double' | 'single' | 'jsx-double' | 'jsx-single' | 'avoid-escape')[];\n\t/**\n\t * Enforces the radix parameter of parseInt\n\t */\n\t'radix'?: boolean;\n\t/**\n\t * When adding two variables, operands must both be of type number or of type string\n\t */\n\t'restrict-plus-operands'?: boolean;\n\t/**\n\t * Enforces semicolons at the end of every statement\n\t */\n\t'semicolon'?: (true | false | 'always' | 'never' | 'ignore-bound-class-methods' | 'ignore-interfaces')[];\n\t/**\n\t * Enforces a default case in switch statements\n\t */\n\t'switch-default'?: boolean;\n\t/**\n\t * Requires or disallows trailing commas in array and object literals, destructuring assignments, function and tuple typings, named imports and function parameters\n\t */\n\t'trailing-comma'?: (Object | boolean | string)[];\n\t/**\n\t * Enforces === and !== in favor of == and !=\n\t */\n\t'triple-equals'?: any[] | boolean;\n\t/**\n\t * Enforces use of the `isNaN()` function to check for NaN references instead of a comparison to the `NaN` constant\n\t */\n\t'use-isnan'?: boolean;\n\t/**\n\t * Allows only camelCased or UPPER_CASED variable names\n\t */\n\t'variable-name'?: any[] | boolean;\n\t/**\n\t * Enforces spacing whitespace\n\t */\n\t'whitespace'?: (true | false | 'check-branch' | 'check-decl' | 'check-operator' | 'check-module' | 'check-separator' | 'check-type' | 'check-typecast')[];\n\t[k: string]: any;\n}\nexport interface JsonSchemaForTheTsLintConfigurationFiles {\n\t/**\n\t * The directory where the codelytics rules live\n\t */\n\t'rulesDirectory'?: string[];\n\t'rules'?: Ruledefinitions;\n\t'jsRules'?: Jsruledefinitions;\n\t/**\n\t * Extend another configuration (built in config OR a node resolvable .json file)\n\t */\n\t'extends'?: any[] | string;\n\t[k: string]: any;\n}\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/cli-export-project/log.d.ts", + "text": "export declare let verboseFlag: boolean;\n/**\n * Log a message to the console\n * @param text The message to be logged\n */\nexport declare function log(...text: any[]): void;\n/**\n * Log a message to the console if verbose messages are desired\n * @param text The message to be logged\n */\nexport declare function verbose(...text: any[]): void;\n/**\n * Indents a message\n * @param num the number of indents\n * @param message an optional message to add at the end\n */\nexport declare function indent(num?: number, message?: string): string;\nexport declare function setVerbose(verbose: boolean): void;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/cli-export-project/main.d.ts", + "text": "import { Command } from '@dojo/interfaces/cli';\nexport interface ExportArgs {\n content: string | undefined;\n out: string;\n index: string | undefined;\n project: string;\n verbose: boolean;\n}\ndeclare const command: Command;\nexport default command;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/core/aspect.d.ts", + "text": "import { Handle } from '@dojo/interfaces/core';\n/**\n * An object that provides the necessary APIs to be MapLike\n */\nexport interface MapLike {\n get(key: K): V;\n set(key: K, value?: V): this;\n}\nexport interface Indexable {\n [method: string]: any;\n}\n/**\n * The types of objects or maps where advice can be applied\n */\nexport declare type Targetable = MapLike | Indexable;\nexport interface JoinPointDispatchAdvice {\n before?: JoinPointBeforeAdvice[];\n after?: JoinPointAfterAdvice[];\n readonly joinPoint: Function;\n}\nexport interface JoinPointAfterAdvice {\n /**\n * Advice which is applied *after*, receiving the result and arguments from the join point.\n *\n * @param result The result from the function being advised\n * @param args The arguments that were supplied to the advised function\n * @returns The value returned from the advice is then the result of calling the method\n */\n (result: T, ...args: any[]): T;\n}\nexport interface JoinPointAroundAdvice {\n /**\n * Advice which is applied *around*. The advising function receives the original function and\n * needs to return a new function which will then invoke the original function.\n *\n * @param origFn The original function\n * @returns A new function which will invoke the original function.\n */\n (origFn: GenericFunction): (...args: any[]) => T;\n}\nexport interface JoinPointBeforeAdvice {\n /**\n * Advice which is applied *before*, receiving the original arguments, if the advising\n * function returns a value, it is passed further along taking the place of the original\n * arguments.\n *\n * @param args The arguments the method was called with\n */\n (...args: any[]): any[] | void;\n}\nexport interface GenericFunction {\n (...args: any[]): T;\n}\n/**\n * Attaches \"after\" advice to be executed after the original method.\n * The advising function will receive the original method's return value and arguments object.\n * The value it returns will be returned from the method when it is called (even if the return value is undefined).\n *\n * @param target Object whose method will be aspected\n * @param methodName Name of method to aspect\n * @param advice Advising function which will receive the original method's return value and arguments object\n * @return A handle which will remove the aspect when destroy is called\n */\nexport declare function after(target: Targetable, methodName: string, advice: (originalReturn: any, originalArgs: IArguments) => any): Handle;\n/**\n * Apply advice *after* the supplied joinPoint (function)\n *\n * @param joinPoint A function that should have advice applied to\n * @param advice The after advice\n */\nexport declare function after, T>(joinPoint: F, advice: JoinPointAfterAdvice): F;\n/**\n * Apply advice *around* the supplied joinPoint (function)\n *\n * @param joinPoint A function that should have advice applied to\n * @param advice The around advice\n */\nexport declare function aroundJoinPoint, T>(joinPoint: F, advice: JoinPointAroundAdvice): F;\n/**\n * Attaches \"around\" advice around the original method.\n *\n * @param target Object whose method will be aspected\n * @param methodName Name of method to aspect\n * @param advice Advising function which will receive the original function\n * @return A handle which will remove the aspect when destroy is called\n */\nexport declare function aroundObject(target: Targetable, methodName: string, advice: ((previous: Function) => Function)): Handle;\n/**\n * Attaches \"around\" advice around the original method.\n *\n * @param target Object whose method will be aspected\n * @param methodName Name of method to aspect\n * @param advice Advising function which will receive the original function\n * @return A handle which will remove the aspect when destroy is called\n */\nexport declare function around(target: Targetable, methodName: string, advice: ((previous: Function) => Function)): Handle;\n/**\n * Apply advice *around* the supplied joinPoint (function)\n *\n * @param joinPoint A function that should have advice applied to\n * @param advice The around advice\n */\nexport declare function around, T>(joinPoint: F, advice: JoinPointAroundAdvice): F;\n/**\n * Apply advice *before* the supplied joinPoint (function)\n *\n * @param joinPoint A function that should have advice applied to\n * @param advice The before advice\n */\nexport declare function beforeJoinPoint>(joinPoint: F, advice: JoinPointBeforeAdvice): F;\n/**\n * Attaches \"before\" advice to be executed before the original method.\n *\n * @param target Object whose method will be aspected\n * @param methodName Name of method to aspect\n * @param advice Advising function which will receive the same arguments as the original, and may return new arguments\n * @return A handle which will remove the aspect when destroy is called\n */\nexport declare function beforeObject(target: Targetable, methodName: string, advice: (...originalArgs: any[]) => any[] | void): Handle;\n/**\n * Attaches \"before\" advice to be executed before the original method.\n *\n * @param target Object whose method will be aspected\n * @param methodName Name of method to aspect\n * @param advice Advising function which will receive the same arguments as the original, and may return new arguments\n * @return A handle which will remove the aspect when destroy is called\n */\nexport declare function before(target: Targetable, methodName: string, advice: (...originalArgs: any[]) => any[] | void): Handle;\n/**\n * Apply advice *before* the supplied joinPoint (function)\n *\n * @param joinPoint A function that should have advice applied to\n * @param advice The before advice\n */\nexport declare function before>(joinPoint: F, advice: JoinPointBeforeAdvice): F;\n/**\n * Attaches advice to be executed after the original method.\n * The advising function will receive the same arguments as the original method.\n * The value it returns will be returned from the method when it is called *unless* its return value is undefined.\n *\n * @param target Object whose method will be aspected\n * @param methodName Name of method to aspect\n * @param advice Advising function which will receive the same arguments as the original method\n * @return A handle which will remove the aspect when destroy is called\n */\nexport declare function on(target: Targetable, methodName: string, advice: (...originalArgs: any[]) => any): Handle;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/core/async/ExtensiblePromise.d.ts", + "text": "import { Thenable } from '@dojo/shim/interfaces';\nimport { Iterable } from '@dojo/shim/iterator';\nimport { Executor } from '@dojo/shim/Promise';\nimport '@dojo/shim/Symbol';\n/**\n * Take a list of values, and if any are ExtensiblePromise objects, insert the wrapped Promise in its place,\n * otherwise use the original object. We use this to help use the native Promise methods like `all` and `race`.\n *\n * @param iterable The list of objects to iterate over\n * @returns {any[]} The list of objects, as an array, with ExtensiblePromises being replaced by Promises.\n */\nexport declare function unwrapPromises(iterable: Iterable | any[]): any[];\nexport declare type DictionaryOfPromises = {\n [_: string]: T | Promise | Thenable;\n};\nexport declare type ListOfPromises = Iterable<(T | Thenable)>;\n/**\n * An extensible base to allow Promises to be extended in ES5. This class basically wraps a native Promise object,\n * giving an API like a native promise.\n */\nexport default class ExtensiblePromise {\n /**\n * Return a rejected promise wrapped in an ExtensiblePromise\n *\n * @param reason The reason for the rejection\n * @returns An extensible promise\n */\n static reject(reason?: any): ExtensiblePromise;\n /**\n * Return a resolved promise wrapped in an ExtensiblePromise\n *\n * @param value The value to resolve the promise with\n *\n * @returns An extensible promise\n */\n static resolve

>(): P;\n /**\n * Return a resolved promise wrapped in an ExtensiblePromise\n *\n * @param value The value to resolve the promise with\n *\n * @returns An extensible promise\n */\n static resolve>(value: T | PromiseLike): P;\n /**\n * Return a ExtensiblePromise that resolves when all of the passed in objects have resolved. When used with a key/value\n * pair, the returned promise's argument is a key/value pair of the original keys with their resolved values.\n *\n * @example\n * ExtensiblePromise.all({ one: 1, two: 2 }).then(results => console.log(results));\n * // { one: 1, two: 2 }\n *\n * @param iterable An iterable of values to resolve, or a key/value pair of values to resolve. These can be Promises, ExtensiblePromises, or other objects\n * @returns An extensible promise\n */\n static all(iterable: DictionaryOfPromises): ExtensiblePromise<{\n [key: string]: T;\n }>;\n /**\n * Return a ExtensiblePromise that resolves when all of the passed in objects have resolved. When used with a key/value\n * pair, the returned promise's argument is a key/value pair of the original keys with their resolved values.\n *\n * @example\n * ExtensiblePromise.all({ one: 1, two: 2 }).then(results => console.log(results));\n * // { one: 1, two: 2 }\n *\n * @param iterable An iterable of values to resolve, or a key/value pair of values to resolve. These can be Promises, ExtensiblePromises, or other objects\n * @returns An extensible promise\n */\n static all(iterable: (T | Thenable)[]): ExtensiblePromise;\n /**\n * Return a ExtensiblePromise that resolves when all of the passed in objects have resolved. When used with a key/value\n * pair, the returned promise's argument is a key/value pair of the original keys with their resolved values.\n *\n * @example\n * ExtensiblePromise.all({ one: 1, two: 2 }).then(results => console.log(results));\n * // { one: 1, two: 2 }\n *\n * @param iterable An iterable of values to resolve, or a key/value pair of values to resolve. These can be Promises, ExtensiblePromises, or other objects\n * @returns An extensible promise\n */\n static all(iterable: T | Thenable): ExtensiblePromise;\n /**\n * Return a ExtensiblePromise that resolves when all of the passed in objects have resolved. When used with a key/value\n * pair, the returned promise's argument is a key/value pair of the original keys with their resolved values.\n *\n * @example\n * ExtensiblePromise.all({ one: 1, two: 2 }).then(results => console.log(results));\n * // { one: 1, two: 2 }\n *\n * @param iterable An iterable of values to resolve, or a key/value pair of values to resolve. These can be Promises, ExtensiblePromises, or other objects\n * @returns An extensible promise\n */\n static all(iterable: ListOfPromises): ExtensiblePromise;\n /**\n * Return a ExtensiblePromise that resolves when one of the passed in objects have resolved\n *\n * @param iterable An iterable of values to resolve. These can be Promises, ExtensiblePromises, or other objects\n * @returns {ExtensiblePromise}\n */\n static race(iterable: Iterable<(T | PromiseLike)> | (T | PromiseLike)[]): ExtensiblePromise;\n /**\n * @type {Promise}\n * The wrapped promise\n */\n readonly _promise: Promise;\n /**\n * Creates a new extended Promise.\n *\n * @constructor\n *\n * @param executor\n * The executor function is called immediately when the Promise is instantiated. It is responsible for\n * starting the asynchronous operation when it is invoked.\n *\n * The executor must call either the passed `resolve` function when the asynchronous operation has completed\n * successfully, or the `reject` function when the operation fails.\n */\n constructor(executor: Executor);\n /**\n * Adds a callback to be invoked when the wrapped Promise is rejected.\n *\n * @param {Function} onRejected A function to call to handle the error. The parameter to the function will be the caught error.\n *\n * @returns {ExtensiblePromise}\n */\n catch(onRejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): ExtensiblePromise;\n /**\n * Adds a callback to be invoked when the wrapped Promise resolves or is rejected.\n *\n * @param {Function} onFulfilled A function to call to handle the resolution. The paramter to the function will be the resolved value, if any.\n * @param {Function} onRejected A function to call to handle the error. The parameter to the function will be the caught error.\n *\n * @returns {ExtensiblePromise}\n */\n then(onFulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onRejected?: ((reason: any) => TResult2 | PromiseLike | void) | undefined | null): ExtensiblePromise;\n readonly [Symbol.toStringTag]: 'Promise';\n}\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/core/async/iteration.d.ts", + "text": "import { Iterable } from '@dojo/shim/iterator';\nimport { Thenable } from '@dojo/shim/interfaces';\n/**\n * Test whether all elements in the array pass the provided callback\n * @param items a collection of synchronous/asynchronous values\n * @param callback a synchronous/asynchronous test\n * @return eventually returns true if all values pass; otherwise false\n */\nexport declare function every(items: Iterable> | (T | Promise)[], callback: Filterer): Promise;\n/**\n * Returns an array of elements which pass the provided callback\n * @param items a collection of synchronous/asynchronous values\n * @param callback a synchronous/asynchronous test\n * @return eventually returns a new array with only values that have passed\n */\nexport declare function filter(items: Iterable> | (T | Promise)[], callback: Filterer): Promise;\n/**\n * Find the first value matching a filter function\n * @param items a collection of synchronous/asynchronous values\n * @param callback a synchronous/asynchronous test\n * @return a promise eventually containing the item or undefined if a match is not found\n */\nexport declare function find(items: Iterable> | (T | Promise)[], callback: Filterer): Promise;\n/**\n * Find the first index with a value matching the filter function\n * @param items a collection of synchronous/asynchronous values\n * @param callback a synchronous/asynchronous test\n * @return a promise eventually containing the index of the matching item or -1 if a match is not found\n */\nexport declare function findIndex(items: Iterable> | (T | Thenable)[], callback: Filterer): Promise;\n/**\n * transform a list of items using a mapper function\n * @param items a collection of synchronous/asynchronous values\n * @param callback a synchronous/asynchronous transform function\n * @return a promise eventually containing a collection of each transformed value\n */\nexport declare function map(items: Iterable> | (T | Promise)[], callback: Mapper): Promise;\n/**\n * reduce a list of items down to a single value\n * @param items a collection of synchronous/asynchronous values\n * @param callback a synchronous/asynchronous reducer function\n * @param [initialValue] the first value to pass to the callback\n * @return a promise eventually containing a value that is the result of the reduction\n */\nexport declare function reduce(this: any, items: Iterable> | (T | Promise)[], callback: Reducer, initialValue?: U): Promise;\nexport declare function reduceRight(this: any, items: Iterable> | (T | Promise)[], callback: Reducer, initialValue?: U): Promise;\nexport declare function series(items: Iterable> | (T | Promise)[], operation: Mapper): Promise;\nexport declare function some(items: Iterable> | Array>, callback: Filterer): Promise;\nexport interface Filterer extends Mapper {\n}\nexport interface Mapper {\n (value: T, index: number, array: T[]): (U | Thenable);\n}\nexport interface Reducer {\n (previousValue: U, currentValue: T, index: number, array: T[]): (U | Thenable);\n}\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/core/async/Task.d.ts", + "text": "import { Thenable } from '@dojo/shim/interfaces';\nimport { Iterable } from '@dojo/shim/iterator';\nimport { Executor } from '@dojo/shim/Promise';\nimport ExtensiblePromise, { DictionaryOfPromises, ListOfPromises } from './ExtensiblePromise';\n/**\n * Describe the internal state of a task.\n */\nexport declare const enum State {\n Fulfilled = 0,\n Pending = 1,\n Rejected = 2,\n Canceled = 3,\n}\n/**\n * A type guard that determines if `value` is a `Task`\n * @param value The value to guard\n */\nexport declare function isTask(value: any): value is Task;\n/**\n * Returns true if a given value has a `then` method.\n * @param {any} value The value to check if is Thenable\n * @returns {is Thenable} A type guard if the value is thenable\n */\nexport declare function isThenable(value: any): value is Thenable;\n/**\n * Task is an extension of Promise that supports cancellation and the Task#finally method.\n */\nexport default class Task extends ExtensiblePromise {\n /**\n * Return a Task that resolves when one of the passed in objects have resolved\n *\n * @param iterable An iterable of values to resolve. These can be Promises, ExtensiblePromises, or other objects\n * @returns {Task}\n */\n static race(iterable: Iterable<(T | Thenable)> | (T | Thenable)[]): Task;\n /**\n * Return a rejected promise wrapped in a Task\n *\n * @param reason The reason for the rejection\n * @returns A task\n */\n static reject(reason?: Error): Task;\n /**\n * Return a resolved task.\n *\n * @param value The value to resolve with\n *\n * @return A task\n */\n static resolve(): Task;\n /**\n * Return a resolved task.\n *\n * @param value The value to resolve with\n *\n * @return A task\n */\n static resolve(value: (T | Thenable)): Task;\n /**\n * Return a ExtensiblePromise that resolves when all of the passed in objects have resolved. When used with a key/value\n * pair, the returned promise's argument is a key/value pair of the original keys with their resolved values.\n *\n * @example\n * ExtensiblePromise.all({ one: 1, two: 2 }).then(results => console.log(results));\n * // { one: 1, two: 2 }\n *\n * @param iterable An iterable of values to resolve, or a key/value pair of values to resolve. These can be Promises, ExtensiblePromises, or other objects\n * @returns An extensible promise\n */\n static all(iterable: DictionaryOfPromises): Task<{\n [key: string]: T;\n }>;\n /**\n * Return a ExtensiblePromise that resolves when all of the passed in objects have resolved. When used with a key/value\n * pair, the returned promise's argument is a key/value pair of the original keys with their resolved values.\n *\n * @example\n * ExtensiblePromise.all({ one: 1, two: 2 }).then(results => console.log(results));\n * // { one: 1, two: 2 }\n *\n * @param iterable An iterable of values to resolve, or a key/value pair of values to resolve. These can be Promises, ExtensiblePromises, or other objects\n * @returns An extensible promise\n */\n static all(iterable: (T | Thenable)[]): Task;\n /**\n * Return a ExtensiblePromise that resolves when all of the passed in objects have resolved. When used with a key/value\n * pair, the returned promise's argument is a key/value pair of the original keys with their resolved values.\n *\n * @example\n * ExtensiblePromise.all({ one: 1, two: 2 }).then(results => console.log(results));\n * // { one: 1, two: 2 }\n *\n * @param iterable An iterable of values to resolve, or a key/value pair of values to resolve. These can be Promises, ExtensiblePromises, or other objects\n * @returns An extensible promise\n */\n static all(iterable: T | Thenable): Task;\n /**\n * Return a ExtensiblePromise that resolves when all of the passed in objects have resolved. When used with a key/value\n * pair, the returned promise's argument is a key/value pair of the original keys with their resolved values.\n *\n * @example\n * ExtensiblePromise.all({ one: 1, two: 2 }).then(results => console.log(results));\n * // { one: 1, two: 2 }\n *\n * @param iterable An iterable of values to resolve, or a key/value pair of values to resolve. These can be Promises, ExtensiblePromises, or other objects\n * @returns An extensible promise\n */\n static all(iterable: ListOfPromises): Task;\n /**\n * A cancelation handler that will be called if this task is canceled.\n */\n private canceler;\n /**\n * Children of this Task (i.e., Tasks that were created from this Task with `then` or `catch`).\n */\n private readonly children;\n /**\n * The finally callback for this Task (if it was created by a call to `finally`).\n */\n private _finally;\n /**\n * The state of the task\n */\n protected _state: State;\n readonly state: State;\n /**\n * @constructor\n *\n * Create a new task. Executor is run immediately. The canceler will be called when the task is canceled.\n *\n * @param executor Method that initiates some task\n * @param canceler Method to call when the task is canceled\n *\n */\n constructor(executor: Executor, canceler?: () => void);\n /**\n * Propagates cancellation down through a Task tree. The Task's state is immediately set to canceled. If a Thenable\n * finally task was passed in, it is resolved before calling this Task's finally callback; otherwise, this Task's\n * finally callback is immediately executed. `_cancel` is called for each child Task, passing in the value returned\n * by this Task's finally callback or a Promise chain that will eventually resolve to that value.\n */\n private _cancel(finallyTask?);\n /**\n * Immediately cancels this task if it has not already resolved. This Task and any descendants are synchronously set\n * to the Canceled state and any `finally` added downstream from the canceled Task are invoked.\n */\n cancel(): void;\n catch(onRejected?: ((reason: any) => TResult | PromiseLike) | undefined): Task;\n /**\n * Allows for cleanup actions to be performed after resolution of a Promise.\n */\n finally(callback: () => void): Task;\n /**\n * Adds a callback to be invoked when the Task resolves or is rejected.\n *\n * @param onFulfilled A function to call to handle the resolution. The paramter to the function will be the resolved value, if any.\n * @param onRejected A function to call to handle the error. The parameter to the function will be the caught error.\n *\n * @returns A task\n */\n then(onFulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onRejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): Task;\n}\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/core/async/timing.d.ts", + "text": "import Promise from './ExtensiblePromise';\nimport { Thenable } from '@dojo/shim/interfaces';\n/**\n * Used for delaying a Promise chain for a specific number of milliseconds.\n *\n * @param milliseconds the number of milliseconds to delay\n * @return {function (value: T | (() => T | Thenable)): Promise} a function producing a promise that eventually returns the value or executes the value function passed to it; usable with Thenable.then()\n */\nexport declare function delay(milliseconds: number): Identity;\nexport interface Identity {\n (value?: T | (() => T | Thenable)): Promise;\n}\n/**\n * Reject a promise chain if a result hasn't been found before the timeout\n *\n * @param milliseconds after this number of milliseconds a rejection will be returned\n * @param reason The reason for the rejection\n * @return {function(T): Promise} a function that produces a promise that is rejected or resolved based on your timeout\n */\nexport declare function timeout(milliseconds: number, reason: Error): Identity;\n/**\n * A Promise that will reject itself automatically after a time.\n * Useful for combining with other promises in Promise.race.\n */\nexport declare class DelayedRejection extends Promise {\n /**\n * @param milliseconds the number of milliseconds to wait before triggering a rejection\n * @param reason the reason for the rejection\n */\n constructor(milliseconds: number, reason?: Error);\n}\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/core/base64.d.ts", + "text": "/**\n * Take a string encoded in base64 and decode it\n * @param encodedString The base64 encoded string\n */\nexport declare const decode: (encodedString: string) => string;\n/**\n * Take a string and encode it to base64\n * @param rawString The string to encode\n */\nexport declare const encode: (rawString: string) => string;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/core/compare.d.ts", + "text": "import Set from '@dojo/shim/Set';\nexport declare type IgnorePropertyFunction = (name: string, a: any, b: any) => boolean;\nexport interface DiffOptions {\n /**\n * Allow functions to be values. Values will be considered equal if the `typeof` both values are `function`.\n * When adding or updating the property, the value of the property of `a` will be used in the record, which\n * will be a reference to the function.\n */\n allowFunctionValues?: boolean;\n /**\n * An array of strings or regular expressions which flag certain properties to be ignored. Alternatively\n * a function, which returns `true` to have the property ignored or `false` to diff the property.\n */\n ignoreProperties?: (string | RegExp)[] | IgnorePropertyFunction;\n /**\n * An array of strings or regular expressions which flag certain values to be ignored. For flagged properties,\n * if the property is present in both `a` and `b` the value will be ignored. If adding the property,\n * whatever the value of the property of `a` will be used, which could be a reference.\n */\n ignorePropertyValues?: (string | RegExp)[] | IgnorePropertyFunction;\n}\n/**\n * Interface for a generic constructor function\n */\nexport interface Constructor {\n new (...args: any[]): object;\n prototype: object;\n}\n/**\n * A partial property descriptor that provides the property descriptor flags supported by the\n * complex property construction of `patch()`\n *\n * All properties are value properties, with the value being supplied by the `ConstructRecord`\n */\nexport interface ConstructDescriptor {\n /**\n * Is the property configurable?\n */\n configurable?: boolean;\n /**\n * Is the property enumerable?\n */\n enumerable?: boolean;\n /**\n * Is the property configurable?\n */\n writable?: boolean;\n}\n/**\n * A record that describes a constructor function and arguments necessary to create an instance of\n * an object\n */\nexport interface AnonymousConstructRecord {\n /**\n * Any arguments to pass to the constructor function\n */\n args?: any[];\n /**\n * The constructor function to use to create the instance\n */\n Ctor: Constructor;\n /**\n * The partial descriptor that is used to set the value of the instance\n */\n descriptor?: ConstructDescriptor;\n /**\n * Any patches to properties that need to occur on the instance\n */\n propertyRecords?: (ConstructRecord | PatchRecord)[];\n}\nexport interface ConstructRecord extends AnonymousConstructRecord {\n /**\n * The name of the property on the Object\n */\n name: string;\n}\n/**\n * A record that describes the mutations necessary to a property of an object to make that property look\n * like another\n */\nexport declare type PatchRecord = {\n /**\n * The name of the property on the Object\n */\n name: string;\n /**\n * The type of the patch\n */\n type: 'delete';\n} | {\n /**\n * A property descriptor that describes the property in `name`\n */\n descriptor: PropertyDescriptor;\n /**\n * The name of the property on the Object\n */\n name: string;\n /**\n * The type of the patch\n */\n type: 'add' | 'update';\n /**\n * Additional patch records which describe the value of the property\n */\n valueRecords?: (ConstructRecord | PatchRecord | SpliceRecord)[];\n};\n/**\n * The different types of patch records supported\n */\nexport declare type PatchTypes = 'add' | 'update' | 'delete';\n/**\n * A record that describes a splice operation to perform on an array to make the array look like another array\n */\nexport interface SpliceRecord {\n /**\n * Any items that are being added to the array\n */\n add?: any[];\n /**\n * The number of items in the array to delete\n */\n deleteCount: number;\n /**\n * The type, set to `splice`\n */\n type: 'splice';\n /**\n * The index of where to start the splice\n */\n start: number;\n}\n/**\n * A record that describes how to instantiate a new object via a constructor function\n * @param Ctor The constructor function\n * @param args Any arguments to be passed to the constructor function\n */\nexport declare function createConstructRecord(Ctor: Constructor, args?: any[], descriptor?: ConstructDescriptor): AnonymousConstructRecord;\n/**\n * A function that returns a constructor record or `undefined` when diffing a value\n */\nexport declare type CustomDiffFunction = (value: T, nameOrIndex: string | number, parent: object) => AnonymousConstructRecord | void;\n/**\n * A class which is used when making a custom comparison of a non-plain object or array\n */\nexport declare class CustomDiff {\n private _differ;\n constructor(diff: CustomDiffFunction);\n /**\n * Get the difference of the `value`\n * @param value The value to diff\n * @param nameOrIndex A `string` if comparing a property or a `number` if comparing an array element\n * @param parent The outer parent that this value is part of\n */\n diff(value: T, nameOrIndex: string | number, parent: object): ConstructRecord | void;\n}\n/**\n * Takes two plain objects to be compared, as well as options customizing the behavior of the comparison, and returns\n * two new objects that contain only those properties that should be compared. If a property is ignored\n * it will not be included in either returned object. If a property's value should be ignored it will be excluded\n * if it is present in both objects.\n * @param a The first object to compare\n * @param b The second object to compare\n * @param options An options bag indicating which properties should be ignored or have their values ignored, if any.\n */\nexport declare function getComparableObjects(a: any, b: any, options: DiffOptions): {\n comparableA: {\n [key: string]: any;\n };\n comparableB: {\n [key: string]: any;\n };\n ignore: Set;\n};\n/**\n * Compares two plain objects or arrays and return a set of records which describe the differences between the two\n *\n * The records describe what would need to be applied to the second argument to make it look like the first argument\n *\n * @param a The plain object or array to compare with\n * @param b The plain object or array to compare to\n * @param options An options bag that allows configuration of the behaviour of `diff()`\n */\nexport declare function diff(a: any, b: any, options?: DiffOptions): (ConstructRecord | PatchRecord | SpliceRecord)[];\n/**\n * Apply a set of patch records to a target.\n *\n * @param target The plain object or array that the patch records should be applied to\n * @param records A set of patch records to be applied to the target\n */\nexport declare function patch(target: any, records: (ConstructRecord | PatchRecord | SpliceRecord)[]): any;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/core/DateObject.d.ts", + "text": "export interface KwArgs {\n dayOfMonth?: number;\n hours?: number;\n milliseconds?: number;\n minutes?: number;\n month: number;\n seconds?: number;\n year: number;\n}\nexport interface OperationKwArgs {\n days?: number;\n hours?: number;\n milliseconds?: number;\n minutes?: number;\n months?: number;\n seconds?: number;\n years?: number;\n}\n/**\n * The properties of a complete date\n */\nexport interface DateProperties {\n dayOfMonth: number;\n readonly dayOfWeek: number;\n readonly daysInMonth: number;\n hours: number;\n readonly isLeapYear: boolean;\n milliseconds: number;\n minutes: number;\n month: number;\n seconds: number;\n year: number;\n}\nexport default class DateObject implements DateProperties {\n static parse(str: string): DateObject;\n static now(): DateObject;\n private readonly _date;\n readonly utc: DateProperties;\n constructor(value: number);\n constructor(value: string);\n constructor(value: Date);\n constructor(value: KwArgs);\n constructor();\n readonly isLeapYear: boolean;\n readonly daysInMonth: number;\n year: number;\n month: number;\n dayOfMonth: number;\n hours: number;\n minutes: number;\n seconds: number;\n milliseconds: number;\n time: number;\n readonly dayOfWeek: number;\n readonly timezoneOffset: number;\n add(value: number): DateObject;\n add(value: OperationKwArgs): DateObject;\n compare(value: DateObject): number;\n compareDate(value: KwArgs): number;\n compareTime(value: KwArgs): number;\n toString(): string;\n toDateString(): string;\n toTimeString(): string;\n toLocaleString(): string;\n toLocaleDateString(): string;\n toLocaleTimeString(): string;\n toISOString(): string;\n toJSON(key?: any): string;\n valueOf(): number;\n}\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/core/Destroyable.d.ts", + "text": "import { Handle } from '@dojo/interfaces/core';\nexport declare class Destroyable {\n /**\n * register handles for the instance\n */\n private handles;\n /**\n * @constructor\n */\n constructor();\n /**\n * Register handles for the instance that will be destroyed when `this.destroy` is called\n *\n * @param {Handle} handle The handle to add for the instance\n * @returns {Handle} a handle for the handle, removes the handle for the instance and calls destroy\n */\n own(handle: Handle): Handle;\n /**\n * Destrpys all handers registered for the instance\n *\n * @returns {Promise;\n}\nexport default Destroyable;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/core/global.d.ts", + "text": "import globalObject from '@dojo/shim/global';\nexport default globalObject;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/core/Evented.d.ts", + "text": "import { EventedListenerOrArray, EventedListenersMap } from '@dojo/interfaces/bases';\nimport { EventTargettedObject, EventErrorObject, Handle } from '@dojo/interfaces/core';\nimport Map from '@dojo/shim/Map';\nimport { Destroyable } from './Destroyable';\n/**\n * The base event object, which provides a `type` property\n */\nexport interface EventObject {\n /**\n * The type of the event\n */\n readonly type: string | symbol;\n}\nexport interface EventedCallback {\n /**\n * A callback that takes an `event` argument\n *\n * @param event The event object\n */\n (event: E): boolean | void;\n}\n/**\n * Interface for Evented constructor options\n */\nexport interface EventedOptions {\n /**\n * Optional listeners to add\n */\n listeners?: EventedListenersMap;\n}\nexport interface BaseEventedEvents {\n /**\n * Regsister a callback for a specific event type\n *\n * @param listeners map of listeners\n */\n (listeners: EventedListenersMap): Handle;\n /**\n * @param type the type of the event\n * @param listener the listener to attach\n */\n (type: string | symbol, listener: EventedListenerOrArray>): Handle;\n /**\n * @param type the type for `error`\n * @param listener the listener to attach\n */\n (type: 'error', listener: EventedListenerOrArray>): Handle;\n}\nexport interface Evented {\n on: BaseEventedEvents;\n}\n/**\n * Determines is the event type glob has been matched\n *\n * @returns boolean that indicates if the glob is matched\n */\nexport declare function isGlobMatch(globString: string | symbol, targetString: string | symbol): boolean;\n/**\n * Event Class\n */\nexport declare class Evented extends Destroyable implements Evented {\n /**\n * map of listeners keyed by event type\n */\n protected listenersMap: Map>;\n /**\n * @constructor\n * @param options The constructor argurments\n */\n constructor(options?: EventedOptions);\n /**\n * Emits the event objet for the specified type\n *\n * @param event the event to emit\n */\n emit(event: E): void;\n /**\n * Catch all handler for various call signatures. The signatures are defined in\n * `BaseEventedEvents`. You can add your own event type -> handler types by extending\n * `BaseEventedEvents`. See example for details.\n *\n * @param args\n *\n * @example\n *\n * interface WidgetBaseEvents extends BaseEventedEvents {\n * (type: 'properties:changed', handler: PropertiesChangedHandler): Handle;\n * }\n * class WidgetBase extends Evented {\n * on: WidgetBaseEvents;\n * }\n *\n * @return {any}\n */\n on: BaseEventedEvents;\n}\nexport default Evented;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/core/has.d.ts", + "text": "import has from '@dojo/shim/support/has';\nexport * from '@dojo/shim/support/has';\nexport default has;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/core/IdentityRegistry.d.ts", + "text": "import { Iterable, IterableIterator } from '@dojo/shim/iterator';\nimport { Handle } from '@dojo/interfaces/core';\nimport '@dojo/shim/Symbol';\n/**\n * Registry identities can be strings or symbols. Note that the empty string is allowed.\n */\nexport declare type Identity = string | symbol;\n/**\n * A registry of values, mapped by identities.\n */\nexport default class IdentityRegistry implements Iterable<[Identity, V]> {\n constructor();\n /**\n * Look up a value by its identifier.\n *\n * Throws if no value has been registered for the given identifier.\n *\n * @param id The identifier\n * @return The value\n */\n get(id: Identity): V;\n /**\n * Determine whether the value has been registered.\n * @param value The value\n * @return `true` if the value has been registered, `false` otherwise\n */\n contains(value: V): boolean;\n /**\n * Remove from the registry the value for a given identifier.\n * @param id The identifier\n * @return `true` if the value was removed, `false` otherwise\n */\n delete(id: Identity): boolean;\n /**\n * Determine whether a value has been registered for the given identifier.\n * @param id The identifier\n * @return `true` if a value has been registered, `false` otherwise\n */\n has(id: Identity): boolean;\n /**\n * Look up the identifier for which the given value has been registered.\n *\n * Throws if the value hasn't been registered.\n *\n * @param value The value\n * @return The identifier otherwise\n */\n identify(value: V): Identity | undefined;\n /**\n * Register a new value with a new identity.\n *\n * Throws if a different value has already been registered for the given identity,\n * or if the value has already been registered with a different identity.\n *\n * @param id The identifier\n * @param value The value\n * @return A handle for deregistering the value. Note that when called repeatedly with\n * the same identifier and value combination, the same handle is returned\n */\n register(id: Identity, value: V): Handle;\n entries(): IterableIterator<[Identity, V]>;\n values(): IterableIterator;\n ids(): IterableIterator;\n [Symbol.iterator](): IterableIterator<[Identity, V]>;\n}\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/core/interfaces.d.ts", + "text": "/**\n * A general interface that can be used to renference a general index map of values of a particular type\n */\nexport interface Hash {\n [id: string]: T;\n}\n/**\n * A base map of styles where each key is the name of the style attribute and the value is a string\n * which represents the style\n */\nexport interface StylesMap {\n [style: string]: string;\n}\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/core/instrument.d.ts", + "text": "export interface DeprecatedOptions {\n /**\n * The message to use when warning\n */\n message?: string;\n /**\n * The name of the method or function to use\n */\n name?: string;\n /**\n * An alternative function to log the warning to\n */\n warn?: (...args: any[]) => void;\n /**\n * Reference an URL for more information when warning\n */\n url?: string;\n}\n/**\n * A function that will console warn that a function has been deprecated\n *\n * @param options Provide options which change the display of the message\n */\nexport declare function deprecated({message, name, warn, url}?: DeprecatedOptions): void;\n/**\n * A function that generates before advice that can be used to warn when an API has been deprecated\n *\n * @param options Provide options which change the display of the message\n */\nexport declare function deprecatedAdvice(options?: DeprecatedOptions): (...args: any[]) => any[];\n/**\n * A method decorator that will console warn when a method if invoked that is deprecated\n *\n * @param options Provide options which change the display of the message\n */\nexport declare function deprecatedDecorator(options?: DeprecatedOptions): MethodDecorator;\n/**\n * A function that will set the warn function that will be used instead of `console.warn` when\n * logging warning messages\n *\n * @param warn The function (or `undefined`) to use instead of `console.warn`\n */\nexport declare function setWarn(warn?: ((message?: any, ...optionalParams: any[]) => void)): void;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/core/lang.d.ts", + "text": "import { Handle } from '@dojo/interfaces/core';\nexport { assign } from '@dojo/shim/object';\n/**\n * Creates a new object from the given prototype, and copies all enumerable own properties of one or more\n * source objects to the newly created target object.\n *\n * @param prototype The prototype to create a new object from\n * @param mixins Any number of objects whose enumerable own properties will be copied to the created object\n * @return The new object\n */\nexport declare function create(prototype: T, mixin1: U, mixin2: V, mixin3: W, mixin4: X, mixin5: Y, mixin6: Z): T & U & V & W & X & Y & Z;\nexport declare function create(prototype: T, mixin1: U, mixin2: V, mixin3: W, mixin4: X, mixin5: Y): T & U & V & W & X & Y;\nexport declare function create(prototype: T, mixin1: U, mixin2: V, mixin3: W, mixin4: X): T & U & V & W & X;\nexport declare function create(prototype: T, mixin1: U, mixin2: V, mixin3: W): T & U & V & W;\nexport declare function create(prototype: T, mixin1: U, mixin2: V): T & U & V;\nexport declare function create(prototype: T, mixin: U): T & U;\nexport declare function create(prototype: T): T;\n/**\n * Copies the values of all enumerable own properties of one or more source objects to the target object,\n * recursively copying all nested objects and arrays as well.\n *\n * @param target The target object to receive values from source objects\n * @param sources Any number of objects whose enumerable own properties will be copied to the target object\n * @return The modified target object\n */\nexport declare function deepAssign(target: T, source1: U, source2: V, source3: W, source4: X, source5: Y, source6: Z): T & U & V & W & X & Y & Z;\nexport declare function deepAssign(target: T, source1: U, source2: V, source3: W, source4: X, source5: Y): T & U & V & W & X & Y;\nexport declare function deepAssign(target: T, source1: U, source2: V, source3: W, source4: X): T & U & V & W & X;\nexport declare function deepAssign(target: T, source1: U, source2: V, source3: W): T & U & V & W;\nexport declare function deepAssign(target: T, source1: U, source2: V): T & U & V;\nexport declare function deepAssign(target: T, source: U): T & U;\n/**\n * Copies the values of all enumerable (own or inherited) properties of one or more source objects to the\n * target object, recursively copying all nested objects and arrays as well.\n *\n * @param target The target object to receive values from source objects\n * @param sources Any number of objects whose enumerable properties will be copied to the target object\n * @return The modified target object\n */\nexport declare function deepMixin(target: T, source1: U, source2: V, source3: W, source4: X, source5: Y, source6: Z): T & U & V & W & X & Y & Z;\nexport declare function deepMixin(target: T, source1: U, source2: V, source3: W, source4: X, source5: Y): T & U & V & W & X & Y;\nexport declare function deepMixin(target: T, source1: U, source2: V, source3: W, source4: X): T & U & V & W & X;\nexport declare function deepMixin(target: T, source1: U, source2: V, source3: W): T & U & V & W;\nexport declare function deepMixin(target: T, source1: U, source2: V): T & U & V;\nexport declare function deepMixin(target: T, source: U): T & U;\n/**\n * Creates a new object using the provided source's prototype as the prototype for the new object, and then\n * deep copies the provided source's values into the new target.\n *\n * @param source The object to duplicate\n * @return The new object\n */\nexport declare function duplicate(source: T): T;\n/**\n * Determines whether two values are the same value.\n *\n * @param a First value to compare\n * @param b Second value to compare\n * @return true if the values are the same; false otherwise\n */\nexport declare function isIdentical(a: any, b: any): boolean;\n/**\n * Returns a function that binds a method to the specified object at runtime. This is similar to\n * `Function.prototype.bind`, but instead of a function it takes the name of a method on an object.\n * As a result, the function returned by `lateBind` will always call the function currently assigned to\n * the specified property on the object as of the moment the function it returns is called.\n *\n * @param instance The context object\n * @param method The name of the method on the context object to bind to itself\n * @param suppliedArgs An optional array of values to prepend to the `instance[method]` arguments list\n * @return The bound function\n */\nexport declare function lateBind(instance: {}, method: string, ...suppliedArgs: any[]): (...args: any[]) => any;\n/**\n * Copies the values of all enumerable (own or inherited) properties of one or more source objects to the\n * target object.\n *\n * @return The modified target object\n */\nexport declare function mixin(target: T, source1: U, source2: V, source3: W, source4: X, source5: Y, source6: Z): T & U & V & W & X & Y & Z;\nexport declare function mixin(target: T, source1: U, source2: V, source3: W, source4: X, source5: Y): T & U & V & W & X & Y;\nexport declare function mixin(target: T, source1: U, source2: V, source3: W, source4: X): T & U & V & W & X;\nexport declare function mixin(target: T, source1: U, source2: V, source3: W): T & U & V & W;\nexport declare function mixin(target: T, source1: U, source2: V): T & U & V;\nexport declare function mixin(target: T, source: U): T & U;\n/**\n * Returns a function which invokes the given function with the given arguments prepended to its argument list.\n * Like `Function.prototype.bind`, but does not alter execution context.\n *\n * @param targetFunction The function that needs to be bound\n * @param suppliedArgs An optional array of arguments to prepend to the `targetFunction` arguments list\n * @return The bound function\n */\nexport declare function partial(targetFunction: (...args: any[]) => any, ...suppliedArgs: any[]): (...args: any[]) => any;\n/**\n * Returns an object with a destroy method that, when called, calls the passed-in destructor.\n * This is intended to provide a unified interface for creating \"remove\" / \"destroy\" handlers for\n * event listeners, timers, etc.\n *\n * @param destructor A function that will be called when the handle's `destroy` method is invoked\n * @return The handle object\n */\nexport declare function createHandle(destructor: () => void): Handle;\n/**\n * Returns a single handle that can be used to destroy multiple handles simultaneously.\n *\n * @param handles An array of handles with `destroy` methods\n * @return The handle object\n */\nexport declare function createCompositeHandle(...handles: Handle[]): Handle;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/core/List.d.ts", + "text": "import { Iterable, IterableIterator } from '@dojo/shim/iterator';\nexport default class List {\n [Symbol.iterator](): IterableIterator;\n readonly size: number;\n constructor(source?: Iterable | ArrayLike);\n add(value: T): this;\n clear(): void;\n delete(idx: number): boolean;\n entries(): IterableIterator<[number, T]>;\n forEach(fn: (value: T, idx: number, list: this) => void, thisArg?: any): void;\n has(idx: number): boolean;\n includes(value: T): boolean;\n indexOf(value: T): number;\n join(separator?: string): string;\n keys(): IterableIterator;\n lastIndexOf(value: T): number;\n push(value: T): void;\n pop(): T | undefined;\n splice(start: number, deleteCount?: number, ...newItems: T[]): T[];\n values(): IterableIterator;\n}\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/core/load.d.ts", + "text": "import { Require } from '@dojo/interfaces/loader';\nimport { isPlugin, useDefault } from './load/util';\nexport interface NodeRequire {\n (moduleId: string): any;\n}\nexport declare type Require = Require | NodeRequire;\nexport interface Load {\n (require: Require, ...moduleIds: string[]): Promise;\n (...moduleIds: string[]): Promise;\n}\ndeclare const load: Load;\nexport default load;\nexport { isPlugin, useDefault };\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/core/load/webpack.d.ts", + "text": "import { isPlugin, useDefault } from './util';\n/**\n * A webpack-specific function that replaces `@dojo/core/load` in its builds. In order for a module to be loaded,\n * it must first be included in a webpack chunk, whether that chunk is included in the main build, or lazy-loaded.\n * Note that this module is not intended for direct use, but rather is intended for use by a webpack plugin\n * that sets the module ID map used to translate resolved module paths to webpack module IDs.\n *\n * @param contextRequire\n * An optional function that returns the base path to use when resolving relative module IDs.\n *\n * @param ...mids\n * One or more IDs for modules to load.\n *\n * @return\n * A promise to the loaded module values.\n */\nexport default function load(contextRequire: () => string, ...mids: string[]): Promise;\nexport default function load(...mids: string[]): Promise;\nexport { isPlugin, useDefault };\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/core/load/util.d.ts", + "text": "import { Load } from '../load';\nexport interface LoadPlugin {\n /**\n * An optional method that normmalizes a resource id.\n *\n * @param resourceId\n * The raw resource id.\n *\n * @param resolver\n * A method that can resolve an id to an absolute path. Depending on the environment, this will\n * usually be either `require.toUrl` or `require.resolve`.\n */\n normalize?: (resourceId: string, resolver: (resourceId: string) => string) => string;\n /**\n * A method that loads the specified resource.\n *\n * @param resourceId\n * The id of the resource to load.\n *\n * @param load\n * The `load` method that was used to load and execute the plugin.\n *\n * @return\n * A promise that resolves to the loaded resource.\n */\n load(resourceId: string, load: Load): Promise;\n}\nexport declare function isPlugin(value: any): value is LoadPlugin;\nexport declare function useDefault(modules: any[]): any[];\nexport declare function useDefault(module: any): any;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/core/main.d.ts", + "text": "import * as aspect from './aspect';\nimport DateObject from './DateObject';\nimport Evented from './Evented';\nimport IdentityRegistry from './IdentityRegistry';\nimport * as lang from './lang';\nimport * as base64 from './base64';\nimport load from './load';\nimport MatchRegistry from './MatchRegistry';\nimport on, { emit } from './on';\nimport * as queue from './queue';\nimport request from './request';\nimport Scheduler from './Scheduler';\nimport * as stringExtras from './stringExtras';\nimport * as text from './text';\nimport UrlSearchParams from './UrlSearchParams';\nimport * as util from './util';\nimport * as iteration from './async/iteration';\nimport Task from './async/Task';\nimport * as timing from './async/timing';\ndeclare const async: {\n iteration: typeof iteration;\n Task: typeof Task;\n timing: typeof timing;\n};\nexport { aspect, async, base64, DateObject, emit, Evented, IdentityRegistry, lang, load, MatchRegistry, on, queue, request, Scheduler, stringExtras, text, UrlSearchParams, util };\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/core/MatchRegistry.d.ts", + "text": "import { Handle } from '@dojo/interfaces/core';\n/**\n * A registry of values tagged with matchers.\n */\nexport default class MatchRegistry {\n protected _defaultValue: T | undefined;\n private readonly _entries;\n /**\n * Construct a new MatchRegistry, optionally containing a given default value.\n */\n constructor(defaultValue?: T);\n /**\n * Return the first entry in this registry that matches the given arguments. If no entry matches and the registry\n * was created with a default value, that value will be returned. Otherwise, an exception is thrown.\n *\n * @param ...args Arguments that will be used to select a matching value.\n * @returns the matching value, or a default value if one exists.\n */\n match(...args: any[]): T;\n /**\n * Register a test + value pair with this registry.\n *\n * @param test The test that will be used to determine if the registered value matches a set of arguments.\n * @param value A value being registered.\n * @param first If true, the newly registered test and value will be the first entry in the registry.\n */\n register(test: Test | null, value: T | null, first?: boolean): Handle;\n}\n/**\n * The interface that a test function must implement.\n */\nexport interface Test {\n (...args: any[]): boolean | null;\n}\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/core/MultiMap.d.ts", + "text": "import { Iterable, IterableIterator } from '@dojo/shim/iterator';\nimport Map from '@dojo/shim/Map';\nimport '@dojo/shim/Symbol';\n/**\n * A map implmentation that supports multiple keys for specific value.\n *\n * @param T Accepts the type of the value\n */\nexport default class MultiMap implements Map {\n private _map;\n private _key;\n /**\n * @constructor\n *\n * @param iterator an array or iterator of tuples to initialize the map with.\n */\n constructor(iterable?: ArrayLike<[any[], T]> | Iterable<[any[], T]>);\n /**\n * Sets the value for the array of keys provided\n *\n * @param keys The array of keys to store the value against\n * @param value the value of the map entry\n *\n * @return the multi map instance\n */\n set(keys: any[], value: T): this;\n /**\n * Returns the value entry for the array of keys\n *\n * @param keys The array of keys to look up the value for\n *\n * @return The value if found otherwise `undefined`\n */\n get(keys: any[]): T | undefined;\n /**\n * Returns a boolean indicating if the key exists in the map\n *\n * @return boolean true if the key exists otherwise false\n */\n has(keys: any[]): boolean;\n /**\n * Returns the size of the map, based on the number of unique keys\n */\n readonly size: number;\n /**\n * Deletes the entry for the key provided.\n *\n * @param keys the key of the entry to remove\n * @return boolean trus if the entry was deleted, false if the entry was not found\n */\n delete(keys: any[]): boolean;\n /**\n * Return an iterator that yields each value in the map\n *\n * @return An iterator containing the instance's values.\n */\n values(): IterableIterator;\n /**\n * Return an iterator that yields each key array in the map\n *\n * @return An iterator containing the instance's keys.\n */\n keys(): IterableIterator;\n /**\n * Returns an iterator that yields each key/value pair as an array.\n *\n * @return An iterator for each key/value pair in the instance.\n */\n entries(): IterableIterator<[any[], T]>;\n /**\n * Executes a given function for each map entry. The function\n * is invoked with three arguments: the element value, the\n * element key, and the associated Map instance.\n *\n * @param callback The function to execute for each map entry,\n * @param context The value to use for `this` for each execution of the calback\n */\n forEach(callback: (value: T, key: any[], mapInstance: MultiMap) => any, context?: {}): void;\n /**\n * Deletes all keys and their associated values.\n */\n clear(): void;\n [Symbol.iterator](): IterableIterator<[any[], T]>;\n [Symbol.toStringTag]: string;\n}\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/core/on.d.ts", + "text": "import { Handle } from '@dojo/interfaces/core';\nimport Evented, { EventObject } from './Evented';\nexport interface EventCallback {\n (event: EventObject): void;\n}\nexport interface EventEmitter {\n on(event: string, listener: EventCallback): EventEmitter;\n removeListener(event: string, listener: EventCallback): EventEmitter;\n}\n/**\n * Provides a normalized mechanism for dispatching events for event emitters, Evented objects, or DOM nodes.\n * @param target The target to emit the event from\n * @param event The event object to emit\n * @return Boolean indicating if preventDefault was called on the event object (only relevant for DOM events;\n * always false for other event emitters)\n */\nexport declare function emit(target: Evented | EventTarget | EventEmitter, event: T | EventObject): boolean;\n/**\n * Provides a normalized mechanism for listening to events from event emitters, Evented objects, or DOM nodes.\n * @param target Target to listen for event on\n * @param type Event event type(s) to listen for; may a string or an array of strings\n * @param listener Callback to handle the event when it fires\n * @param capture Whether the listener should be registered in the capture phase (DOM events only)\n * @return A handle which will remove the listener when destroy is called\n */\nexport default function on(target: EventTarget, type: string | string[], listener: EventCallback, capture?: boolean): Handle;\nexport default function on(target: EventEmitter | Evented, type: string | string[], listener: EventCallback): Handle;\n/**\n * Provides a mechanism for listening to the next occurrence of an event from event\n * emitters, Evented objects, or DOM nodes.\n * @param target Target to listen for event on\n * @param type Event event type(s) to listen for; may be a string or an array of strings\n * @param listener Callback to handle the event when it fires\n * @param capture Whether the listener should be registered in the capture phase (DOM events only)\n * @return A handle which will remove the listener when destroy is called\n */\nexport declare function once(target: EventTarget, type: string | string[], listener: EventCallback, capture?: boolean): Handle;\nexport declare function once(target: EventEmitter | Evented, type: string | string[], listener: EventCallback): Handle;\nexport interface PausableHandle extends Handle {\n pause(): void;\n resume(): void;\n}\n/**\n * Provides a mechanism for creating pausable listeners for events from event emitters, Evented objects, or DOM nodes.\n * @param target Target to listen for event on\n * @param type Event event type(s) to listen for; may a string or an array of strings\n * @param listener Callback to handle the event when it fires\n * @param capture Whether the listener should be registered in the capture phase (DOM events only)\n * @return A handle with additional pause and resume methods; the listener will never fire when paused\n */\nexport declare function pausable(target: EventTarget, type: string | string[], listener: EventCallback, capture?: boolean): PausableHandle;\nexport declare function pausable(target: EventEmitter | Evented, type: string | string[], listener: EventCallback): PausableHandle;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/core/Observable.d.ts", + "text": "import ObservableShim, { ObservableObject, Subscribable, SubscriptionObserver } from '@dojo/shim/Observable';\nimport { Iterable } from '@dojo/shim/iterator';\nexport default class Observable extends ObservableShim {\n static of(...items: T[]): Observable;\n static from(item: Iterable | ArrayLike | ObservableObject): Observable;\n static defer(deferFunction: () => Subscribable): Observable;\n toPromise(): Promise;\n map(mapFunction: (x: T) => U): Observable;\n filter(filterFunction: (x: T) => boolean): Observable;\n toArray(): Observable;\n mergeAll(concurrent: number): Observable;\n}\nexport { Observable, Subscribable, SubscriptionObserver as Observer };\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/core/queue.d.ts", + "text": "export * from '@dojo/shim/support/queue';\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/core/QueuingEvented.d.ts", + "text": "import Evented, { EventObject } from './Evented';\n/**\n * An implementation of the Evented class that queues up events when no listeners are\n * listening. When a listener is subscribed, the queue will be published to the listener.\n * When the queue is full, the oldest events will be discarded to make room for the newest ones.\n *\n * @property maxEvents The number of events to queue before old events are discarded. If zero (default), an unlimited number of events is queued.\n */\nexport default class QueuingEvented extends Evented {\n private _queue;\n private _originalOn;\n maxEvents: number;\n constructor();\n emit(event: E): void;\n}\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/core/request.d.ts", + "text": "import Task from './async/Task';\nimport { RequestOptions, Response, Provider, UploadObservableTask } from './request/interfaces';\nimport ProviderRegistry from './request/ProviderRegistry';\nexport declare const providerRegistry: ProviderRegistry;\ndeclare const request: {\n (url: string, options?: RequestOptions): Task;\n delete(url: string, options?: RequestOptions): Task;\n get(url: string, options?: RequestOptions): Task;\n head(url: string, options?: RequestOptions): Task;\n options(url: string, options?: RequestOptions): Task;\n post(url: string, options?: RequestOptions): UploadObservableTask;\n put(url: string, options?: RequestOptions): UploadObservableTask;\n setDefaultProvider(provider: Provider): void;\n};\nexport default request;\nexport * from './request/interfaces';\nexport { default as Headers } from './request/Headers';\nexport { default as TimeoutError } from './request/TimeoutError';\nexport { default as Response, ResponseData } from './request/Response';\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/core/request/Headers.d.ts", + "text": "import { Headers as HeadersInterface } from './interfaces';\nimport { IterableIterator } from '@dojo/shim/iterator';\nimport Map from '@dojo/shim/Map';\nexport default class Headers implements HeadersInterface {\n protected map: Map;\n constructor(headers?: {\n [key: string]: string;\n } | HeadersInterface);\n append(name: string, value: string): void;\n delete(name: string): void;\n entries(): IterableIterator<[string, string]>;\n get(name: string): string | null;\n getAll(name: string): string[];\n has(name: string): boolean;\n keys(): IterableIterator;\n set(name: string, value: string): void;\n values(): IterableIterator;\n [Symbol.iterator](): IterableIterator<[string, string]>;\n}\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/core/request/interfaces.d.ts", + "text": "import { IterableIterator } from '@dojo/shim/iterator';\nimport Task from '../async/Task';\nimport UrlSearchParams, { ParamList } from '../UrlSearchParams';\nimport Observable from '../Observable';\n\nexport interface Body {\n\treadonly bodyUsed: boolean;\n\n\tarrayBuffer(): Task;\n\tblob(): Task;\n\tformData(): Task;\n\tjson(): Task;\n\ttext(): Task;\n}\n\nexport interface Headers {\n\tappend(name: string, value: string): void;\n\tdelete(name: string): void;\n\tentries(): IterableIterator<[string, string]>;\n\tget(name: string): string | null;\n\tgetAll(name: string): string[];\n\thas(name: string): boolean;\n\tkeys(): IterableIterator;\n\tset(name: string, value: string): void;\n\tvalues(): IterableIterator;\n\t[Symbol.iterator](): IterableIterator<[string, string]>;\n}\n\nexport interface UploadObservableTask extends Task {\n\tupload: Observable;\n}\n\nexport type Provider = (url: string, options?: RequestOptions) => UploadObservableTask;\n\nexport type ProviderTest = (url: string, options?: RequestOptions) => boolean | null;\n\nexport interface RequestOptions {\n\t/**\n\t * Enable cache busting (default false). Cache busting will make a new URL by appending a parameter to the\n\t * requested URL\n\t */\n\tcacheBust?: boolean;\n\tcredentials?: 'omit' | 'same-origin' | 'include';\n\t/**\n\t * Body to send along with the http request\n\t */\n\tbody?: Blob | BufferSource | FormData | UrlSearchParams | string;\n\t/**\n\t * Headers to send along with the http request\n\t */\n\theaders?: Headers | { [key: string]: string; };\n\t/**\n\t * HTTP method\n\t */\n\tmethod?: string;\n\t/**\n\t * Password for HTTP authentication\n\t */\n\tpassword?: string;\n\t/**\n\t * Number of milliseconds before the request times out and is canceled\n\t */\n\ttimeout?: number;\n\t/**\n\t * User for HTTP authentication\n\t */\n\tuser?: string;\n\t/**\n\t * Optional query parameter(s) for the URL. The requested url will have these query parameters appended.\n\t */\n\tquery?: string | ParamList;\n}\n\nexport interface Response extends Body {\n\treadonly headers: Headers;\n\treadonly ok: boolean;\n\treadonly status: number;\n\treadonly statusText: string;\n\treadonly url: string;\n\n\treadonly download: Observable;\n\treadonly data: Observable;\n}\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/core/request/ProviderRegistry.d.ts", + "text": "import { Provider, ProviderTest } from './interfaces';\nimport MatchRegistry from '../MatchRegistry';\nimport { Handle } from '@dojo/interfaces/core';\nexport default class ProviderRegistry extends MatchRegistry {\n setDefaultProvider(provider: Provider): void;\n register(test: string | RegExp | ProviderTest | null, value: Provider, first?: boolean): Handle;\n}\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/core/request/providers/node.d.ts", + "text": "/// \nimport * as http from 'http';\nimport Task from '../../async/Task';\nimport Headers from '../Headers';\nimport { RequestOptions, UploadObservableTask } from '../interfaces';\nimport Response from '../Response';\nimport { Readable } from 'stream';\nimport Observable from '../../Observable';\n/**\n * Request options specific to a node request. For HTTPS options, see\n * https://nodejs.org/api/tls.html#tls_tls_connect_options_callback for more details.\n */\nexport interface NodeRequestOptions extends RequestOptions {\n /**\n * User-agent header\n */\n agent?: any;\n /**\n * If specified, the request body is read from the stream specified here, rather than from the `body` field.\n */\n bodyStream?: Readable;\n /**\n * HTTPS optionally override the trusted CA certificates\n */\n ca?: any;\n /**\n * HTTPS optional cert chains in PEM format. One cert chain should be provided per private key.\n */\n cert?: string;\n /**\n * HTTPS optional cipher suite specification\n */\n ciphers?: string;\n dataEncoding?: string;\n /**\n * Whether or not to automatically follow redirects (default true)\n */\n followRedirects?: boolean;\n /**\n * HTTPS optional private key in PEM format.\n */\n key?: string;\n /**\n * Local interface to bind for network connections.\n */\n localAddress?: string;\n /**\n * HTTPS optional shared passphrase used for a single private key and/or a PFX.\n */\n passphrase?: string;\n /**\n * HTTPS optional PFX or PKCS12 encoded private key and certificate chain.\n */\n pfx?: any;\n /**\n * Optional proxy address. If specified, requests will be sent through this url.\n */\n proxy?: string;\n /**\n * HTTPS If not false the server will reject any connection which is not authorized with the list of supplied CAs\n */\n rejectUnauthorized?: boolean;\n /**\n * HTTPS optional SSL method to use, default is \"SSLv23_method\"\n */\n secureProtocol?: string;\n /**\n * Unix Domain Socket (use one of host:port or socketPath)\n */\n socketPath?: string;\n /**\n * Whether or not to add the gzip and deflate accept headers (default true)\n */\n acceptCompression?: boolean;\n /**\n * A set of options to set on the HTTP request\n */\n socketOptions?: {\n /**\n * Enable/disable keep-alive functionality, and optionally set the initial delay before the first keepalive probe is sent on an idle socket.\n */\n keepAlive?: number;\n /**\n * Disables the Nagle algorithm. By default TCP connections use the Nagle algorithm, they buffer data before sending it off.\n */\n noDelay?: boolean;\n /**\n * Number of milliseconds before the HTTP request times out\n */\n timeout?: number;\n };\n /**\n * Stream encoding on incoming HTTP response\n */\n streamEncoding?: string;\n /**\n * Options to control redirect follow logic\n */\n redirectOptions?: {\n /**\n * The limit to the number of redirects that will be followed (default 15). This is used to prevent infinite\n * redirect loops.\n */\n limit?: number;\n count?: number;\n /**\n * Whether or not to keep the original HTTP method during 301 redirects (default false).\n */\n keepOriginalMethod?: boolean;\n };\n}\n/**\n * Turn a node native response object into something that resembles the fetch api\n */\nexport declare class NodeResponse extends Response {\n readonly headers: Headers;\n readonly ok: boolean;\n readonly status: number;\n readonly statusText: string;\n downloadBody: boolean;\n readonly bodyUsed: boolean;\n readonly nativeResponse: http.IncomingMessage;\n readonly requestOptions: NodeRequestOptions;\n readonly url: string;\n readonly download: Observable;\n readonly data: Observable;\n constructor(response: http.IncomingMessage);\n arrayBuffer(): Task;\n blob(): Task;\n formData(): Task;\n text(): Task;\n}\nexport declare function getAuth(proxyAuth: string | undefined, options: NodeRequestOptions): string | undefined;\nexport default function node(url: string, options?: NodeRequestOptions): UploadObservableTask;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/core/request/providers/xhr.d.ts", + "text": "import Task from '../../async/Task';\nimport Observable from '../../Observable';\nimport Headers from '../Headers';\nimport { RequestOptions, UploadObservableTask } from '../interfaces';\nimport Response from '../Response';\n/**\n * Request options specific to an XHR request\n */\nexport interface XhrRequestOptions extends RequestOptions {\n /**\n * Controls whether or not the request is synchronous (blocks the main thread) or asynchronous (default).\n */\n blockMainThread?: boolean;\n /**\n * Controls whether or not the X-Requested-With header is added to the request (default true). Set to false to not\n * include the header.\n */\n includeRequestedWithHeader?: boolean;\n}\n/**\n * Wraps an XHR request in a response that mimics the fetch API\n */\nexport declare class XhrResponse extends Response {\n readonly headers: Headers;\n readonly ok: boolean;\n readonly status: number;\n readonly statusText: string;\n readonly bodyUsed: boolean;\n readonly nativeResponse: XMLHttpRequest;\n readonly requestOptions: XhrRequestOptions;\n readonly url: string;\n readonly download: Observable;\n readonly data: Observable;\n constructor(request: XMLHttpRequest);\n arrayBuffer(): Task;\n blob(): Task;\n formData(): Task;\n text(): Task;\n xml(): Task;\n}\nexport default function xhr(url: string, options?: XhrRequestOptions): UploadObservableTask;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/core/request/Response.d.ts", + "text": "import Task from '../async/Task';\nimport Headers from './Headers';\nimport { Response as ResponseInterface, RequestOptions } from './interfaces';\nimport Observable from '../Observable';\nexport interface ResponseData {\n task: Task;\n used: boolean;\n}\ndeclare abstract class Response implements ResponseInterface {\n readonly abstract headers: Headers;\n readonly abstract ok: boolean;\n readonly abstract status: number;\n readonly abstract statusText: string;\n readonly abstract url: string;\n readonly abstract bodyUsed: boolean;\n readonly requestOptions: RequestOptions;\n readonly abstract download: Observable;\n readonly abstract data: Observable;\n json(): Task;\n abstract arrayBuffer(): Task;\n abstract blob(): Task;\n abstract formData(): Task;\n abstract text(): Task;\n}\nexport default Response;\nexport declare function getFileReaderPromise(reader: FileReader): Promise;\nexport declare function getTextFromBlob(blob: Blob): Promise;\nexport declare function getArrayBufferFromBlob(blob: Blob): Promise;\nexport declare function getTextFromArrayBuffer(buffer: ArrayBuffer): string;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/core/request/SubscriptionPool.d.ts", + "text": "import { SubscriptionObserver } from '@dojo/shim/Observable';\nexport default class SubscriptionPool {\n private _observers;\n private _queue;\n private _queueMaxLength;\n constructor(maxLength?: number);\n add(subscription: SubscriptionObserver): () => void;\n next(value: T): void;\n complete(): void;\n}\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/core/request/TimeoutError.d.ts", + "text": "export default class TimeoutError implements Error {\n readonly message: string;\n readonly name: string;\n constructor(message?: string);\n}\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/core/request/util.d.ts", + "text": "import { RequestOptions } from './interfaces';\n/**\n * Returns a URL formatted with optional query string and cache-busting segments.\n *\n * @param url The base URL.\n * @param options The RequestOptions used to generate the query string or cacheBust.\n */\nexport declare function generateRequestUrl(url: string, options?: RequestOptions): string;\nexport declare function getStringFromFormData(formData: any): string;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/core/Scheduler.d.ts", + "text": "import { Handle } from '@dojo/interfaces/core';\nimport { QueueItem } from './queue';\nexport interface KwArgs {\n deferWhileProcessing?: boolean;\n queueFunction?: (callback: (...args: any[]) => any) => Handle;\n}\nexport default class Scheduler {\n protected readonly _boundDispatch: () => void;\n protected _deferred: QueueItem[] | null;\n protected _isProcessing: boolean;\n protected readonly _queue: QueueItem[];\n protected _task: Handle | null;\n /**\n * Determines whether any callbacks registered during should be added to the current batch (`false`)\n * or deferred until the next batch (`true`, default).\n */\n deferWhileProcessing: boolean | undefined;\n /**\n * Allows users to specify the function that should be used to schedule callbacks.\n * If no function is provided, then `queueTask` will be used.\n */\n queueFunction: (callback: (...args: any[]) => any) => Handle;\n protected _defer(callback: (...args: any[]) => void): Handle;\n protected _dispatch(): void;\n protected _schedule(item: QueueItem): void;\n constructor(kwArgs?: KwArgs);\n schedule(callback: (...args: any[]) => void): Handle;\n}\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/core/stringExtras.d.ts", + "text": "/**\n * Escapes a string so that it can safely be passed to the RegExp constructor.\n * @param text The string to be escaped\n * @return The escaped string\n */\nexport declare function escapeRegExp(text: string): string;\n/**\n * Sanitizes a string to protect against tag injection.\n * @param xml The string to be escaped\n * @param forAttribute Whether to also escape ', \", and > in addition to < and &\n * @return The escaped string\n */\nexport declare function escapeXml(xml: string, forAttribute?: boolean): string;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/core/text.d.ts", + "text": "import { Config, Require } from '@dojo/interfaces/loader';\nexport declare function get(url: string): Promise;\nexport declare function normalize(id: string, toAbsMid: (moduleId: string) => string): string;\nexport declare function load(id: string, require: Require, load: (value?: any) => void, config?: Config): void;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/core/UrlSearchParams.d.ts", + "text": "import { Hash } from '@dojo/interfaces/core';\n/**\n * Object with string keys and string or string array values that describes a query string.\n */\nexport declare type ParamList = Hash;\n/**\n * Represents a set of URL query search parameters.\n */\nexport default class UrlSearchParams {\n /**\n * Constructs a new UrlSearchParams from a query string, an object of parameters and values, or another\n * UrlSearchParams.\n */\n constructor(input?: string | ParamList | UrlSearchParams);\n /**\n * Maps property keys to arrays of values. The value for any property that has been set will be an array containing\n * at least one item. Properties that have been deleted will have a value of 'undefined'.\n */\n protected readonly _list: Hash;\n /**\n * Appends a new value to the set of values for a key.\n * @param key The key to add a value for\n * @param value The value to add\n */\n append(key: string, value: string): void;\n /**\n * Deletes all values for a key.\n * @param key The key whose values are to be removed\n */\n delete(key: string): void;\n /**\n * Returns the first value associated with a key.\n * @param key The key to return the first value for\n * @return The first string value for the key\n */\n get(key: string): string | undefined;\n /**\n * Returns all the values associated with a key.\n * @param key The key to return all values for\n * @return An array of strings containing all values for the key\n */\n getAll(key: string): string[] | undefined;\n /**\n * Returns true if a key has been set to any value, false otherwise.\n * @param key The key to test for existence\n * @return A boolean indicating if the key has been set\n */\n has(key: string): boolean;\n /**\n * Returns an array of all keys which have been set.\n * @return An array of strings containing all keys set in the UrlSearchParams instance\n */\n keys(): string[];\n /**\n * Sets the value associated with a key.\n * @param key The key to set the value of\n */\n set(key: string, value: string): void;\n /**\n * Returns this object's data as an encoded query string.\n * @return A string in application/x-www-form-urlencoded format containing all of the set keys/values\n */\n toString(): string;\n}\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/core/util.d.ts", + "text": "import { Handle } from '@dojo/interfaces/core';\n/**\n * Wraps a setTimeout call in a handle, allowing the timeout to be cleared by calling destroy.\n *\n * @param callback Callback to be called when the timeout elapses\n * @param delay Number of milliseconds to wait before calling the callback\n * @return Handle which can be destroyed to clear the timeout\n */\nexport declare function createTimer(callback: (...args: any[]) => void, delay?: number): Handle;\n/**\n * Wraps a callback, returning a function which fires after no further calls are received over a set interval.\n *\n * @param callback Callback to wrap\n * @param delay Number of milliseconds to wait after any invocations before calling the original callback\n * @return Debounced function\n */\nexport declare function debounce void>(callback: T, delay: number): T;\n/**\n * Wraps a callback, returning a function which fires at most once per set interval.\n *\n * @param callback Callback to wrap\n * @param delay Number of milliseconds to wait before allowing the original callback to be called again\n * @return Throttled function\n */\nexport declare function throttle void>(callback: T, delay: number): T;\n/**\n * Like throttle, but calls the callback at the end of each interval rather than the beginning.\n * Useful for e.g. resize or scroll events, when debounce would appear unresponsive.\n *\n * @param callback Callback to wrap\n * @param delay Number of milliseconds to wait before calling the original callback and allowing it to be called again\n * @return Throttled function\n */\nexport declare function throttleAfter void>(callback: T, delay: number): T;\nexport declare function guaranteeMinimumTimeout(callback: (...args: any[]) => void, delay?: number): Handle;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/core/uuid.d.ts", + "text": "/**\n * Returns a v4 compliant UUID.\n *\n * @returns {string}\n */\nexport default function uuid(): string;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/has/has.d.ts", + "text": "import { Require, Config } from './loader';\n/**\n * The valid return types from a feature test\n */\nexport declare type FeatureTestResult = boolean | string | number | undefined | void;\n/**\n * A function that tests for a feature and returns a result\n */\nexport declare type FeatureTest = () => FeatureTestResult;\nexport declare type FeatureTestThenable = PromiseLike;\n/**\n * A cache of results of feature tests\n */\nexport declare const testCache: {\n [feature: string]: FeatureTestResult;\n};\n/**\n * A cache of the un-resolved feature tests\n */\nexport declare const testFunctions: {\n [feature: string]: FeatureTest;\n};\nexport interface StaticHasFeatures {\n [feature: string]: FeatureTestResult;\n}\nexport interface DojoHasEnvironment {\n /**\n * Static features defined in the enviornment that should be used by the `has` module\n * instead of run-time detection.\n */\n staticFeatures?: StaticHasFeatures | (() => StaticHasFeatures);\n}\ndeclare global {\n interface Window {\n /**\n * The `dojo/has` enviornment which provides configuration when the module is\n * loaded.\n */\n DojoHasEnvironment?: DojoHasEnvironment;\n }\n}\nexport declare function load(resourceId: string, require: Require, load: (value?: any) => void, config?: Config): void;\n/**\n * AMD plugin function.\n *\n * Resolves resourceId into a module id based on possibly-nested tenary expression that branches on has feature test\n * value(s).\n *\n * @param resourceId The id of the module\n * @param normalize Resolves a relative module id into an absolute module id\n */\nexport declare function normalize(resourceId: string, normalize: (moduleId: string) => string): string | null;\n/**\n * Check if a feature has already been registered\n *\n * @param feature the name of the feature\n */\nexport declare function exists(feature: string): boolean;\n/**\n * Register a new test for a named feature.\n *\n * @example\n * has.add('dom-addeventlistener', !!document.addEventListener);\n *\n * @example\n * has.add('touch-events', function () {\n * return 'ontouchstart' in document\n * });\n *\n * @param feature the name of the feature\n * @param value the value reported of the feature, or a function that will be executed once on first test\n * @param overwrite if an existing value should be overwritten. Defaults to false.\n */\nexport declare function add(feature: string, value: FeatureTest | FeatureTestResult | FeatureTestThenable, overwrite?: boolean): void;\n/**\n * Return the current value of a named feature.\n *\n * @param feature The name (if a string) or identifier (if an integer) of the feature to test.\n */\nexport default function has(feature: string): FeatureTestResult;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/has/loader.d.ts", + "text": "export interface Config {\n baseUrl?: string;\n map?: ModuleMap;\n packages?: Package[];\n paths?: {\n [path: string]: string;\n };\n pkgs?: {\n [path: string]: Package;\n };\n}\nexport interface ModuleMap extends ModuleMapItem {\n [sourceMid: string]: ModuleMapReplacement;\n}\nexport interface ModuleMapItem {\n [mid: string]: any;\n}\nexport interface ModuleMapReplacement extends ModuleMapItem {\n [findMid: string]: string;\n}\nexport interface Package {\n location?: string;\n main?: string;\n name?: string;\n}\nexport interface Require {\n (dependencies: string[], callback: RequireCallback): void;\n (moduleId: string): ModuleType;\n toAbsMid(moduleId: string): string;\n toUrl(path: string): string;\n}\nexport interface Has {\n (name: string): any;\n add(name: string, value: (global: Window, document?: HTMLDocument, element?: HTMLDivElement) => any, now?: boolean, force?: boolean): void;\n add(name: string, value: any, now?: boolean, force?: boolean): void;\n}\nexport declare type SignalType = 'error';\nexport interface RootRequire extends Require {\n has: Has;\n on(type: SignalType, listener: any): {\n remove: () => void;\n };\n config(config: Config): void;\n inspect?(name: string): any;\n nodeRequire?(id: string): any;\n undef(moduleId: string): void;\n}\nexport interface RequireCallback {\n (...modules: any[]): void;\n}\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/has/main.d.ts", + "text": "import has from './has';\nexport * from './has';\nexport default has;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/i18n/cldr/load.d.ts", + "text": "import { CldrData, CldrGroup, LocaleData, isLoaded, mainPackages, reset, supplementalPackages } from './load/default';\n/**\n * Load the specified CLDR data with the i18n ecosystem.\n *\n * @param contextRequire\n * An optional contextual require that can be used to resolve relative paths.\n *\n * @param data\n * Either a data object to load directly, or an array of URLs to CLDR data objects. Note that the response for\n * dynamically-loaded data must satisfy the `CldrData` interface.\n *\n * @return\n * A promise that resolves once all data have been loaded and registered.\n */\nexport default function loadCldrData(contextRequire: Function, data: CldrData | string[]): Promise;\nexport default function loadCldrData(data: CldrData | string[]): Promise;\nexport { CldrData, CldrGroup, LocaleData, isLoaded, mainPackages, reset, supplementalPackages };\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/i18n/cldr/load/default.d.ts", + "text": "import 'cldrjs/dist/cldr/unresolved';\nexport interface CldrData {\n main?: LocaleData;\n supplemental?: any;\n}\nexport declare type CldrGroup = 'main' | 'supplemental';\nexport interface LocaleData {\n [locale: string]: any;\n}\n/**\n * A list of all required CLDR packages for an individual locale.\n */\nexport declare const mainPackages: ReadonlyArray;\n/**\n * A list of all required CLDR supplement packages.\n */\nexport declare const supplementalPackages: ReadonlyArray;\n/**\n * Determine whether a particular CLDR package has been loaded.\n *\n * Example: to check that `supplemental.likelySubtags` has been loaded, `isLoaded` would be called as\n * `isLoaded('supplemental', 'likelySubtags')`.\n *\n * @param groupName\n * The group to check; either \"main\" or \"supplemental\".\n *\n * @param ...args\n * Any remaining keys in the path to the desired package.\n *\n * @return\n * `true` if the deepest value exists; `false` otherwise.\n */\nexport declare function isLoaded(groupName: CldrGroup, ...args: string[]): boolean;\n/**\n * Load the specified CLDR data with the i18n ecosystem.\n *\n * @param data\n * A data object containing `main` and/or `supplemental` objects with CLDR data.\n */\nexport default function loadCldrData(data: CldrData): Promise;\n/**\n * Clear the load cache, either the entire cache for the specified group. After calling this method,\n * `isLoaded` will return false for keys within the specified group(s).\n *\n * @param group\n * An optional group name. If not provided, then both the \"main\" and \"supplemental\" caches will be cleared.\n */\nexport declare function reset(group?: CldrGroup): void;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/i18n/cldr/load/webpack.d.ts", + "text": "import '@dojo/shim/Promise';\nimport { CldrData, LocaleData, mainPackages, reset, supplementalPackages } from './default';\n/**\n * A webpack-specific function used to load CLDR data from a preset cache.\n */\nexport default function loadCldrData(contextRequire: Function, data: CldrData | string[]): Promise;\nexport default function loadCldrData(data: CldrData | string[]): Promise;\n/**\n * A light wrapper around the base `isLoaded` method that ensures the injected CLDR data have been registered\n * with the i18n ecosystem.\n */\nexport declare function isLoaded(groupName: 'main' | 'supplemental', ...args: string[]): boolean;\nexport { CldrData, LocaleData, mainPackages, reset, supplementalPackages };\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/i18n/cldr/locales.d.ts", + "text": "/**\n * A list of `cldr-data/main` directories used to load the correct CLDR data for a given locale.\n */\ndeclare const localesList: string[];\nexport default localesList;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/i18n/date.d.ts", + "text": "import 'globalize';\nimport 'globalize/dist/globalize/date';\nimport 'globalize/dist/globalize/relative-time';\nimport { NumberFormatter } from './number';\nexport declare type DateLength = 'short' | 'medium' | 'long' | 'full';\nexport declare type RelativeTimeLength = 'short' | 'narrow';\nexport interface DateFormatter {\n /**\n * Any function that converts a date object into a string.\n */\n (value: Date): string;\n}\nexport declare type DateFormatterOptions = {\n /**\n * String value indicating a skeleton, eg. { skeleton: \"GyMMMd\" }.\n * Skeleton provides a more flexible formatting mechanism than the predefined list full, long, medium, or short represented by date, time, or datetime.\n * Instead, they are an open-ended list of patterns containing only date field information, and in a canonical order.\n */\n skeleton?: string;\n /**\n * One of the following String values: full, long, medium, or short, eg. { date: \"full\" }.\n */\n date?: DateLength;\n /**\n * One of the following String values: full, long, medium, or short, eg. { time: \"full\" }.\n */\n time?: DateLength;\n /**\n * One of the following String values: full, long, medium, or short, eg. { datetime: \"full\" }\n */\n datetime?: DateLength;\n};\nexport interface DateParser {\n /**\n * Any function that parses a Date object from a string.\n */\n (value: string): Date;\n}\nexport declare type RelativeTimeFormatterOptions = {\n /**\n * eg. \"short\" or \"narrow\". Or falsy for default long form\n */\n form?: RelativeTimeLength;\n};\n/**\n * Format a date according to the specified options for the specified or current locale.\n *\n * @param value\n * The date to format.\n *\n * @param options\n * An optional object of formatting options.\n *\n * @param locale\n * An optional locale. Defaults to the root locale.\n *\n * @return\n * The formatted date string.\n */\nexport declare function formatDate(value: Date, options?: DateFormatterOptions, locale?: string): string;\nexport declare function formatDate(value: Date, locale?: string): string;\n/**\n * Format a number as a unit of relative time for the specified unit and optional locale.\n * E.g., `formatRelativeTime(1, 'week', { form: 'short' }, 'fr'` (\"la semaine prochaine\")\n *\n * @param value\n * The relative unit number. Positive numbers indicate future events (e.g., \"in 2 days\") while negative numbers\n * represent past events (e.g., \"1 day ago\").\n *\n * @param unit\n * E.g., \"week\", \"day\", \"month\", etc.\n *\n * @param options\n * An optional object of formatting options.\n *\n * @param locale\n * An optional locale. Defaults to the current locale.\n */\nexport declare function formatRelativeTime(value: number, unit: string, options?: RelativeTimeFormatterOptions, locale?: string): string;\nexport declare function formatRelativeTime(value: number, unit: string, locale?: string): string;\n/**\n * Return a date formatter that accepts a date and formats it according to the specified options for the\n * specified or current locale.\n *\n * @param options\n * An optional object of formatting options.\n *\n * @param locale\n * The optional locale. Defaults to the root locale.\n *\n * @return\n * A function that accepts a date and returns a formatted date string.\n */\nexport declare function getDateFormatter(options?: DateFormatterOptions, locale?: string): DateFormatter;\nexport declare function getDateFormatter(locale?: string): DateFormatter;\n/**\n * Return a function that parses a string into a date object, according any optional settings or locale.\n *\n * @param options\n * An optional config that describes the format of the string.\n *\n * @param locale\n * The optional locale. Defaults to the root locale.\n *\n * @return\n * A function that accepts a string and returns a date object.\n */\nexport declare function getDateParser(options?: DateFormatterOptions, locale?: string): DateParser;\nexport declare function getDateParser(locale?: string): DateParser;\n/**\n * Format a number as a unit of relative time for the specified unit and optional locale.\n * E.g., `formatRelativeTime(1, 'week', { form: 'short' }, 'fr'` (\"la semaine prochaine\")\n *\n * @param unit\n * E.g., \"week\", \"day\", \"month\", etc.\n *\n * @param options\n * An optional object of formatting options.\n *\n * @param locale\n * The optional locale. Defaults to the root locale.\n *\n * @return\n * A function that accepts a relative time number and returns a formatted string. Positive numbers indicate future\n * events (e.g., \"in 2 days\") while negative numbers represent past events (e.g., \"1 day ago\").\n */\nexport declare function getRelativeTimeFormatter(unit: string, options?: RelativeTimeFormatterOptions, locale?: string): NumberFormatter;\nexport declare function getRelativeTimeFormatter(unit: string, locale?: string): NumberFormatter;\n/**\n * Convert a string into a date object, according any optional settings or locale.\n *\n * @param value\n * The date string to convert.\n *\n * @param options\n * An optional config that describes the format of the string.\n *\n * @param locale\n * The optional locale. Defaults to the root locale.\n *\n * @return\n * The formatted date.\n */\nexport declare function parseDate(value: string, options?: DateFormatterOptions, locale?: string): Date;\nexport declare function parseDate(value: string, locale?: string): Date;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/i18n/i18n.d.ts", + "text": "import { Observer, Subscription } from '@dojo/shim/Observable';\n/**\n * A default bundle used as basis for loading locale-specific bundles.\n */\nexport interface Bundle {\n /**\n * The absolute module ID used by the loader to resolve paths to locale-specific paths. This MUST follow the format\n * \"{basePath}{separator}{filename}\". For example, if the module ID for a bundle is \"nls/common\", the loader will\n * look for locale-specific bundles at \"nls/{locale}/common\".\n */\n readonly bundlePath: string;\n /**\n * A list of supported locales. Any included locale MUST have an associated bundle.\n */\n readonly locales?: string[];\n /**\n * The map of default messages that will be used when locale-specific messages are unavailable.\n * Note that any message key used in the i18n system MUST have a default specified here.\n */\n readonly messages: T;\n}\n/**\n * Options object passed to message formatters and used for token replacement.\n */\nexport interface FormatOptions {\n [key: string]: any;\n}\nexport interface I18n {\n (bundle: Bundle, locale?: string): Promise;\n /**\n * The current namespace as set via `switchLocale`. Defaults to `systemLocale`.\n */\n readonly locale: string;\n}\n/**\n * Describes a compiled ICU message formatter function.\n */\nexport interface MessageFormatter {\n (options?: FormatOptions): string;\n}\n/**\n * An object of keys to locale messages.\n */\nexport interface Messages {\n [key: string]: string;\n}\n/**\n * Return a formatted message.\n *\n * If both the \"supplemental/likelySubtags\" and \"supplemental/plurals-type-cardinal\" CLDR data have been loaded, then\n * the ICU message format is supported. Otherwise, a simple token-replacement mechanism is used.\n *\n * Usage:\n * formatMessage(bundle.bundlePath, 'guestInfo', {\n * host: 'Bill',\n * guest: 'John'\n * }, 'fr');\n *\n * @param bundlePath\n * The message's bundle path.\n *\n * @param key\n * The message's key.\n *\n * @param options\n * An optional value used by the formatter to replace tokens with values.\n *\n * @param locale\n * An optional locale for the formatter. If no locale is supplied, or if the locale is not supported, the\n * default locale is used.\n *\n * @return\n * The formatted message.\n */\nexport declare function formatMessage(bundlePath: string, key: string, options?: FormatOptions, locale?: string): string;\n/**\n * Return the cached messages for the specified bundle and locale. If messages have not been previously loaded for the\n * specified locale, no value will be returned. If messages for the specified locale were added via\n * `setLocaleMessages`, then those messages will be returned regardless of whether the locale is listed in the bundle's\n * `locales` array.\n *\n * @param bundle\n * The default bundle that is used to determine where the locale-specific bundles are located.\n *\n * @param locale\n * The locale of the desired messages.\n *\n * @return The cached messages object, if it exists.\n */\nexport declare function getCachedMessages(bundle: Bundle, locale: string): T | void;\n/**\n * Return a function that formats a specific message, and takes an optional value for token replacement.\n *\n * If both the \"supplemental/likelySubtags\" and \"supplemental/plurals-type-cardinal\" CLDR data have been loaded, then\n * the returned function will have ICU message format support. Otherwise, the returned function will perform a simple\n * token replacement on the message string.\n *\n * Usage:\n * const formatter = getMessageFormatter(bundlePath, 'guestInfo', 'fr');\n * const message = formatter({\n * host: 'Miles',\n * gender: 'male',\n * guest: 'Oscar',\n * guestCount: '15'\n * });\n *\n * @param bundlePath\n * The message's bundle path.\n *\n * @param key\n * The message's key.\n *\n * @param locale\n * An optional locale for the formatter. If no locale is supplied, or if the locale is not supported, the\n * default locale is used.\n *\n * @return\n * The message formatter.\n */\nexport declare function getMessageFormatter(bundlePath: string, key: string, locale?: string): MessageFormatter;\ndeclare const _default: I18n;\nexport default _default;\n/**\n * Invalidate the cache for a particular bundle, or invalidate the entire cache. Note that cached messages for all\n * locales for a given bundle will be cleared.\n *\n * @param bundlePath\n * The optional path of the bundle to invalidate. If no path is provided, then the cache is cleared for all bundles.\n */\nexport declare function invalidate(bundlePath?: string): void;\n/**\n * Register an observer to be notified when the root locale changes.\n *\n * @param observer\n * The observer whose `next` method will receive the locale string on updates, and whose `error` method will receive\n * an Error object if the locale switch fails.\n *\n * @return\n * A subscription object that can be used to unsubscribe from updates.\n */\nexport declare const observeLocale: (observer: Observer) => Subscription;\n/**\n * Pre-load locale-specific messages into the i18n system.\n *\n * @param bundle\n * The default bundle that is used to merge locale-specific messages with the default messages.\n *\n * @param messages\n * The messages to cache.\n *\n * @param locale\n * The locale for the messages\n */\nexport declare function setLocaleMessages(bundle: Bundle, localeMessages: T, locale: string): void;\n/**\n * Change the root locale, and notify any registered observers.\n *\n * @param locale\n * The new locale.\n */\nexport declare function switchLocale(locale: string): void;\n/**\n * The default environment locale.\n *\n * It should be noted that while the system locale will be normalized to a single\n * format when loading message bundles, this value represents the unaltered\n * locale returned directly by the environment.\n */\nexport declare const systemLocale: string;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/i18n/main.d.ts", + "text": "import { DateFormatterOptions, DateLength, formatDate, formatRelativeTime, getDateFormatter, getDateParser, getRelativeTimeFormatter, parseDate, RelativeTimeFormatterOptions, RelativeTimeLength } from './date';\nimport i18n, { Bundle, formatMessage, getCachedMessages, getMessageFormatter, I18n, invalidate, MessageFormatter, Messages, setLocaleMessages, switchLocale, systemLocale } from './i18n';\nimport { CurrencyFormatterOptions, CurrencyStyleOption, formatCurrency, formatNumber, getCurrencyFormatter, getNumberFormatter, getNumberParser, getPluralGenerator, NumberFormatterOptions, NumberParserOptions, NumberStyleOption, parseNumber, PluralGeneratorOptions, PluralGroup, pluralize, PluralTypeOption, RoundNumberOption } from './number';\nimport { formatUnit, getUnitFormatter, UnitFormatterOptions, UnitLength } from './unit';\nimport { generateLocales, normalizeLocale } from './util/main';\nimport loadCldrData from './cldr/load';\nexport default i18n;\nexport { Bundle, CurrencyFormatterOptions, CurrencyStyleOption, DateFormatterOptions, DateLength, formatCurrency, formatDate, formatMessage, formatNumber, formatRelativeTime, formatUnit, generateLocales, getCachedMessages, getCurrencyFormatter, getDateFormatter, getDateParser, getMessageFormatter, getNumberFormatter, getNumberParser, getPluralGenerator, getRelativeTimeFormatter, getUnitFormatter, I18n, invalidate, loadCldrData, MessageFormatter, Messages, normalizeLocale, NumberFormatterOptions, NumberParserOptions, NumberStyleOption, parseDate, parseNumber, PluralGeneratorOptions, PluralGroup, pluralize, PluralTypeOption, RelativeTimeFormatterOptions, RelativeTimeLength, RoundNumberOption, setLocaleMessages, switchLocale, systemLocale, UnitFormatterOptions, UnitLength };\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/i18n/number.d.ts", + "text": "import 'globalize';\nimport 'globalize/dist/globalize/currency';\nimport 'globalize/dist/globalize/number';\nimport 'globalize/dist/globalize/plural';\nexport declare type CurrencyStyleOption = 'accounting' | 'code' | 'name' | 'symbol';\nexport declare type NumberStyleOption = 'decimal' | 'percent';\nexport declare type PluralGroup = 'zero' | 'one' | 'two' | 'few' | 'many' | 'other';\nexport declare type PluralTypeOption = 'cardinal' | 'ordinal';\nexport declare type RoundNumberOption = 'ceil' | 'floor' | 'round' | 'truncate';\nexport interface CommonNumberFormatterOptions {\n /**\n * Non-negative integer Number value indicating the minimum integer digits to be used. Numbers will be padded with\n * leading zeroes if necessary.\n */\n minimumIntegerDigits?: number;\n /**\n * Non-negative integer Number values indicating the minimum and maximum fraction digits to be used.\n * Numbers will be rounded or padded with trailing zeroes if necessary.\n * Either one or both of these properties must be present.\n * If they are, they will override minimum and maximum fraction digits derived from the CLDR patterns.\n */\n minimumFractionDigits?: number;\n /**\n * Non-negative integer Number values indicating the minimum and maximum fraction digits to be used.\n * Numbers will be rounded or padded with trailing zeroes if necessary.\n * Either one or both of these properties must be present.\n * If they are, they will override minimum and maximum fraction digits derived from the CLDR patterns.\n */\n maximumFractionDigits?: number;\n /**\n * Positive integer Number values indicating the minimum and maximum fraction digits to be shown.\n * Either none or both of these properties are present\n * If they are, they override minimum and maximum integer and fraction digits.\n * The formatter uses however many integer and fraction digits are required to display the specified number of\n * significant digits.\n */\n minimumSignificantDigits?: number;\n /**\n * Positive integer Number values indicating the minimum and maximum fraction digits to be shown.\n * Either none or both of these properties are present.\n * If they are, they override minimum and maximum integer and fraction digits.\n * The formatter uses however many integer and fraction digits are required to display the specified number of\n * significant digits.\n */\n maximumSignificantDigits?: number;\n /**\n * String with rounding method ceil, floor, round (default), or truncate.\n */\n round?: RoundNumberOption;\n /**\n * Boolean (default is true) value indicating whether a grouping separator should be used.\n */\n useGrouping?: boolean;\n}\nexport declare type CurrencyFormatterOptions = CommonNumberFormatterOptions & {\n /**\n * symbol (default), accounting, code or name.\n */\n style?: CurrencyStyleOption;\n};\nexport interface NumberFormatter {\n /**\n * Any function that formats a number as string.\n */\n (value: number): string;\n}\nexport declare type NumberFormatterOptions = CommonNumberFormatterOptions & {\n /**\n * decimal (default), or percent\n */\n style?: NumberStyleOption;\n};\nexport interface NumberParser {\n /**\n * Any function that parses a number value from a string.\n */\n (value: string): number;\n}\nexport declare type NumberParserOptions = {\n /**\n * decimal (default), or percent.\n */\n style?: NumberStyleOption;\n};\nexport declare type PluralGeneratorOptions = {\n /**\n * cardinal (default), or ordinal.\n */\n type?: PluralTypeOption;\n};\n/**\n * Format a number as the specified currency, according to the specified configuration and or locale.\n *\n * @param value\n * The number to format.\n *\n * @param currency\n * The currency to which the number should be converted.\n *\n * @param options\n * An optional configuration of settings that determine how the currency string will be formatted.\n *\n * @param locale\n * An optional locale. Defaults to the root locale.\n *\n * @return\n * The formatted currency string.\n */\nexport declare function formatCurrency(value: number, currency: string, options?: CurrencyFormatterOptions, locale?: string): string;\nexport declare function formatCurrency(value: number, currency: string, locale?: string): string;\n/**\n * Format a number according to the specified configuration and or locale.\n *\n * @param value\n * The number to format.\n *\n * @param options\n * An optional configuration of settings that determine how the number string will be formatted.\n *\n * @param locale\n * An optional locale. Defaults to the root locale.\n *\n * @return\n * The formatted number string.\n */\nexport declare function formatNumber(value: number, options?: NumberFormatterOptions, locale?: string): string;\nexport declare function formatNumber(value: number, locale?: string): string;\n/**\n * Return a function that formats a number as the specified currency, according to the specified configuration\n * and or locale.\n *\n * @param currency\n * The currency to which the number should be converted.\n *\n * @param options\n * An optional configuration of settings that determine how the currency string will be formatted.\n *\n * @param locale\n * An optional locale. Defaults to the root locale.\n *\n * @return\n * A function that accepts a number and returns a formatted currency string.\n */\nexport declare function getCurrencyFormatter(currency: string, options?: CurrencyFormatterOptions, locale?: string): NumberFormatter;\nexport declare function getCurrencyFormatter(currency: string, locale?: string): NumberFormatter;\n/**\n * Return a function that formats a number according to the specified configuration and or locale.\n *\n * @param options\n * An optional configuration of settings that determine how the number string will be formatted.\n *\n * @param locale\n * An optional locale. Defaults to the root locale.\n *\n * @return\n * A function that accepts a number and returns a formatted string.\n */\nexport declare function getNumberFormatter(options?: NumberFormatterOptions, locale?: string): NumberFormatter;\nexport declare function getNumberFormatter(locale?: string): NumberFormatter;\n/**\n * Parse a number from a string based on the provided configuration and or locale.\n *\n * @param options\n * An optional config that describes the format of the string.\n *\n * @param locale\n * An optional locale. Defaults to the root locale.\n *\n * @return\n * The parsed number.\n */\nexport declare function getNumberParser(options?: NumberFormatterOptions, locale?: string): NumberParser;\nexport declare function getNumberParser(locale?: string): NumberParser;\n/**\n * Return a function that accepts a number and returns that number's plural group.\n *\n * @param options\n * An optional configuration that determines whether the numerical value should be treated as a cardinal\n * or ordinal number.\n *\n * @param locale\n * An optional locale. Defaults to the root locale.\n *\n * @return\n * A function that accepts a number and returns the corresponding plural group.\n */\nexport declare function getPluralGenerator(options?: PluralGeneratorOptions, locale?: string): NumberFormatter;\nexport declare function getPluralGenerator(locale?: string): NumberFormatter;\n/**\n * Return a function that parses a number from a string based on the provided configuration and or locale.\n *\n * @param value\n * The string to parse.\n *\n * @param options\n * An optional config that describes the format of the string.\n *\n * @param locale\n * An optional locale. Defaults to the root locale.\n *\n * @return\n * A function that accepts a string and returns a number.\n */\nexport declare function parseNumber(value: string, options?: NumberFormatterOptions, locale?: string): number;\nexport declare function parseNumber(value: string, locale?: string): number;\n/**\n * Return the plural group from a number.\n *\n * @param value\n * The number.\n *\n * @param options\n * An optional configuration that determines whether the numerical value should be treated as a cardinal\n * or ordinal number.\n *\n * @param locale\n * An optional locale. Defaults to the root locale.\n *\n * @return\n * The plural group.\n */\nexport declare function pluralize(value: number, options?: PluralGeneratorOptions, locale?: string): string;\nexport declare function pluralize(value: number, locale?: string): string;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/i18n/unit.d.ts", + "text": "import 'globalize';\nimport 'globalize/dist/globalize/unit';\nimport { NumberFormatter, NumberFormatterOptions } from './number';\nexport declare type UnitLength = 'long' | 'narrow' | 'short';\nexport declare type UnitFormatterOptions = {\n /**\n * form: [String] eg. \"long\", \"short\" or \"narrow\".\n */\n form?: UnitLength;\n /**\n * numberFormatter: [Function] a number formatter function. Defaults to Globalize .numberFormatter() for the current locale using the default options.\n */\n numberFormatter?: NumberFormatterOptions;\n};\n/**\n * Return a string formatted for the specified number, unit, and options/locale.\n *\n * @param value\n * The number of units.\n *\n * @param unit\n * The unit, singular (e.g., \"day\", \"meter\", \"foot\").\n *\n * @param options\n * An optional configuration object that determines how the number and unit are formatted.\n *\n * @param locale\n * The optional locale. Defaults to the root locale.\n *\n * @return\n * The formatted string.\n */\nexport declare function formatUnit(value: number, unit: string, options?: UnitFormatterOptions, locale?: string): string;\nexport declare function formatUnit(value: number, unit: string, locale?: string): string;\n/**\n * Return a function that formats a number according to specified unit and options/locale.\n *\n * @param unit\n * The unit, singular (e.g., \"day\", \"meter\", \"foot\").\n *\n * @param options\n * An optional configuration object that determines how the number and unit are formatted.\n *\n * @param locale\n * The optional locale. Defaults to the root locale.\n *\n * @return\n * A function that accepts a number and returns a string formatted according to the specified unit and options/locale.\n */\nexport declare function getUnitFormatter(unit: string, options?: UnitFormatterOptions, locale?: string): NumberFormatter;\nexport declare function getUnitFormatter(unit: string, locale?: string): NumberFormatter;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/i18n/util/globalize.d.ts", + "text": "export interface DelegatorOptions {\n locale?: string;\n optionsOrLocale?: O | string;\n}\nexport interface FormatterDelegatorOptions extends DelegatorOptions {\n unit?: string;\n value?: T;\n}\n/**\n * Return a Globalize.js object for the specified locale. If no locale is provided, then the root\n * locale is assumed.\n *\n * @param string\n * An optional locale for the Globalize.js object.\n *\n * @return\n * The localized Globalize.js object.\n */\nexport default function getGlobalize(locale?: string): GlobalizeStatic;\n/**\n * Call the specified Globalize.js method with the specified value, unit, and options, for the specified locale.\n *\n * @param method\n * The name of the static method on the `Globalize` object (required).\n *\n * @param args\n * An object containing any locale, options, value, or unit required by the underlying Globalize.js method.\n *\n * @return\n * The value returned by the underlying Globalize.js method.\n */\nexport declare function globalizeDelegator(method: string, args: DelegatorOptions): R;\nexport declare function globalizeDelegator(method: string, args: FormatterDelegatorOptions): R;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/i18n/util/main.d.ts", + "text": "/**\n * Retrieve a list of locales that can provide substitute for the specified locale\n * (including itself).\n *\n * For example, if 'fr-CA' is specified, then `[ 'fr', 'fr-CA' ]` is returned.\n *\n * @param locale\n * The target locale.\n *\n * @return\n * A list of locales that match the target locale.\n */\nexport declare function generateLocales(locale: string): string[];\n/**\n * Normalize a locale so that it can be converted to a bundle path.\n *\n * @param locale\n * The target locale.\n *\n * @return The normalized locale.\n */\nexport declare const normalizeLocale: (locale: string) => string;\n/**\n * Validates that the provided locale at least begins with a ISO 639.1/639.2 comptabile language subtag,\n * and that any additional subtags contain only valid characters.\n *\n * While locales should adhere to the guidelines set forth by RFC 5646 (https://tools.ietf.org/html/rfc5646),\n * only the language subtag is strictly enforced.\n *\n * @param locale\n * The locale to validate.\n *\n * @return\n * `true` if the locale is valid; `false` otherwise.\n */\nexport declare function validateLocale(locale: string): boolean;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/interfaces/abilities.d.ts", + "text": "/**\n * This definition module contains interfaces that are partial interfaces of likely larger interfaces\n * which have a very narrow ability which the a consumer might want to guard against or interface with\n *\n * It is very unlikely that these interfaces would be actually implemented as they stand\n */\n\nimport Promise from '@dojo/shim/Promise';\nimport Map from '@dojo/shim/Map';\nimport Observable from '@dojo/shim/Observable';\nimport { Destroyable, EventedListener } from './bases';\nimport { EventTargettedObject, Handle } from './core';\nimport { VNode } from './vdom';\n\n/**\n * The abstract interface for items that are Actionable\n */\nexport interface Actionable> {\n\t/**\n\t * The *do* method of an Action, which can take a `options` property of an `event`\n\t *\n\t * @param options Options passed which includes an `event` object\n\t */\n\tdo(options?: ActionableOptions): any;\n}\n\n/**\n * A base interface for typing the options which are passed to an Actionable\n */\nexport interface ActionableOptions> {\n\t[ option: string ]: any;\n\n\t/**\n\t * An event object\n\t */\n\tevent: E;\n}\n\nexport interface Invalidatable {\n\t/**\n\t * Signal to the instance that it is in an invalide state\n\t */\n\tinvalidate(): void;\n\n\t/**\n\t * Attach a listener to the invalidated event, which is emitted when the `.invalidate()` method is called\n\t *\n\t * @param type The event type to listen for\n\t * @param listener The listener to call when the event is emitted\n\t */\n\ton(type: 'invalidated', listener: EventedListener>): Handle;\n}\n\nexport interface Renderable extends Destroyable, Invalidatable {\n\t/**\n\t * The ID of the child\n\t */\n\treadonly id: string;\n\n\t/**\n\t * Takes no arguments and returns a VNode\n\t */\n\trender(): VNode;\n\n\t/**\n\t * The tag name to be used\n\t */\n\ttagName: string;\n}\n\nexport interface RenderableParent extends Renderable {\n\t/**\n\t * Append the child to the children which are managed by the parent\n\t *\n\t * @param child The child to append\n\t */\n\tappend(child: Renderable[] | Renderable): Handle;\n\n\t/* TODO: Add Insert API */\n\n\t/**\n\t * The immutable list of children *owned* by the parent\n\t */\n\treadonly children: Map;\n}\n\nexport interface ObservableStore {\n\t/**\n\t * A method that allows the return of an `Observable` interface for a particular `id`\n\t * @param id The ID to observe\n\t */\n\tobserve(id: string): Observable;\n\n\t/**\n\t * A method to retrieve item(s) by ids\n\t * @param ids The IDs of the item(s)\n\t */\n\tget(ids: string | string[]): Promise;\n}\n\nexport type ObservablePatchableStore = ObservableStore & PatchableStore;\n\nexport interface PatchableStore {\n\t/**\n\t * A method that allows an partial object to be passed to patch the object\n\t * and receive the full object back as a resolution to a Promise\n\t * @param partial The partial object to be *patched*\n\t * @param options A map of options, which includes the `id` being patched\n\t */\n\tpatch(partial: any, options?: { id?: string }): Promise;\n}\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/interfaces/cli.d.ts", + "text": "import { Argv, Options } from 'yargs';\n\nexport interface Config {\n\t[key: string]: any;\n}\n\nexport interface ConfigurationHelper {\n\tset(config: Config): void;\n\tget(): {};\n}\n\nexport interface CommandHelper {\n\trun(group: string, commandName?: string, args?: Argv): Promise;\n\texists(group: string, commandName?: string): boolean;\n}\n\nexport interface Helper {\n\tyargs: Argv;\n\tcommand: CommandHelper;\n\tcontext: any;\n\tconfiguration: ConfigurationHelper;\n}\n\nexport type OptionsHelper = (key: string, options: Options) => void;\n\nexport interface NpmPackage {\n\tdevDependencies?: {\n\t\t[name: string]: string\n\t};\n\tdependencies?: {\n\t\t[name: string]: string\n\t};\n}\n\nexport interface Alias {\n\tname: string;\n\tdescription?: string;\n\toptions: AliasOption[];\n}\n\n/**\n * Represents one alias option. The option name is the full name of the option, and not the abbreviation. For\n * example, if an option is (-w or --watch), you will specify \"watch\" as the option name.\n */\nexport interface AliasOption {\n\toption: string;\n\tvalue: string | boolean | number;\n}\n\nexport interface FileCopyConfig {\n\tpath: string;\n\tfiles: string[];\n}\n\nexport interface EjectOutput {\n\tnpm?: NpmPackage;\n\tcopy?: FileCopyConfig;\n\thints?: string[];\n}\n\n/**\n * Inbuilt commands specify their name and group - installed commands have these props parsed out of their package dir name\n */\nexport interface Command {\n\tdescription: string;\n\tregister(options: OptionsHelper, helper: Helper): void;\n\trun(helper: Helper, args?: T): Promise;\n\teject?(helper: Helper): EjectOutput;\n\tname?: string;\n\tgroup?: string;\n\talias?: Alias[] | Alias;\n}\n\nexport interface CommandError {\n\texitCode?: number;\n\tmessage: string;\n}\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/interfaces/bases.d.ts", + "text": "/**\n * These are the bases of the Dojo 2 class system, where the most common functionality is located.\n *\n * These interfaces will have specific implementations but likely have significant cross cutting concerns\n * and therefore are extracted out into this package.\n */\n\nimport Promise from '@dojo/shim/Promise';\nimport { Actionable } from './abilities';\nimport { EventErrorObject, EventObject, EventTargettedObject, EventTypedObject, Handle } from './core';\n\nexport interface Destroyable {\n\t/**\n\t * Take a handle and *own* it, which ensures that the handle's `destroy()` method is called when the\n\t * *owner* is destroyed.\n\t *\n\t * @param handle The handle to own\n\t * @returns A handle to *unown* the passed handle\n\t */\n\town(handle: Handle): Handle;\n\n\t/**\n\t * Invoke `destroy()` on any owned handles.\n\t *\n\t * @returns A promise that resolves to `true` if successful, otherwise `false`\n\t */\n\tdestroy(): Promise;\n}\n\n/**\n * A base class, which provides the functionality of emitting events and attaching listeners to those\n * events\n */\nexport interface Evented extends Destroyable {\n\t/**\n\t * Emit an event.\n\t *\n\t * The event is determined by the `event.type`, if there are no listeners for an event type,\n\t * `emit` is essentially a noop.\n\t *\n\t * @param event The `EventTargettedObject` to be delivered to listeners based on `event.type`\n\t */\n\temit(event: E): void;\n\n\t/**\n\t * Attach a map to events *types* specified by the key of the map and the value being the *listener* or\n\t * array of *listeners*.\n\t *\n\t * @param listeners An object which contains key value pairs of event types and listeners.\n\t * @returns A handle which can be used to remove the listeners\n\t */\n\ton(listeners: EventedListenersMap): Handle;\n\n\t/**\n\t * Attach a listener (or array of listeners) to an `error` event.\n\t *\n\t * @param type The type of event to listen for (`error`)\n\t * @param listener A listener or array of listeners that accept error events\n\t * @returns A handle which can be used to remove the listeners\n\t */\n\ton(type: 'error', listener: EventedListenerOrArray>): Handle;\n\n\t/**\n\t * Attach a `listener` to a particular event `type`.\n\t *\n\t * @param type The event to attach the listener to\n\t * @param listener Either a function which takes an emitted `event` object, something that is `Actionable`,\n\t * or an array of of such listeners.\n\t * @returns A handle which can be used to remove the listener\n\t */\n\ton(type: string, listener: EventedListenerOrArray>): Handle;\n}\n\n/**\n * Evented options interface\n */\nexport interface EventedOptions {\n\tlisteners?: EventedListenersMap;\n}\n\nexport interface EventedCallback {\n\t/**\n\t * A callback that takes an `event` argument\n\t *\n\t * @param event The event object\n\t */\n\t(event: E): boolean | void;\n}\n\n/**\n * Either an EventedCallback or an Actionable, which are valid listeners for Evented events\n */\nexport type EventedListener> = EventedCallback | Actionable;\n\n/**\n * A map of listeners to be applied, where the key of the map is the `event.type` to listen for\n */\nexport interface EventedListenersMap {\n\t[type: string]: EventedListenerOrArray>;\n}\n\n/**\n * A type which is either a targeted event listener or an array of listeners\n * @template T The type of target for the events\n * @template E The event type for the events\n */\nexport type EventedListenerOrArray> = EventedListener | EventedListener[];\n\nexport interface StateChangeEvent> extends EventTypedObject<'state:changed'> {\n\t/**\n\t * The state of the target\n\t */\n\tstate: S;\n\n\t/**\n\t * A Stateful instance\n\t */\n\ttarget: T;\n}\n\nexport interface State {\n\t[index: string]: any;\n}\n\n/**\n * The stateful mixin interface\n */\nexport interface StatefulMixin extends Evented {\n\t/**\n\t * A state of the instannce\n\t */\n\treadonly state: S;\n\n\t/**\n\t * Set the state on the instance.\n\t *\n\t * Set state can take a partial value, therefore if a key is ommitted from the value, it will not be changed.\n\t * To *clear* a value, set a key to `undefined`\n\t *\n\t * @param value The state (potentially partial) to be set\n\t */\n\tsetState(state: Partial): void;\n}\n\n/**\n * Stateful type\n */\nexport type Stateful = StatefulMixin & {\n\t/**\n\t * Add a listener for a `state:changed` event, which occurs whenever the state changes on the instance.\n\t *\n\t * @param type The event type to listen for\n\t * @param listener The listener that will be called when the event occurs\n\t */\n\ton(type: 'state:changed', listener: EventedListener, StateChangeEvent>>): Handle;\n};\n\n/**\n * Options for a stateful object\n */\nexport interface StatefulOptions extends EventedOptions {}\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/interfaces/core.d.ts", + "text": "/**\n * An interface for an object which provides a cancelable event API. By calling the\n * `.preventDefault()` method on the object, the event should be cancelled and not\n * proceed any further\n */\nexport interface EventCancelableObject {\n\t/**\n\t * Can the event be canceled?\n\t */\n\treadonly cancelable: boolean;\n\n\t/**\n\t * Was the event canceled?\n\t */\n\treadonly defaultPrevented: boolean;\n\n\t/**\n\t * Cancel the event\n\t */\n\tpreventDefault(): void;\n\n\t/**\n\t * The target for the event\n\t */\n\treadonly target: U;\n\n\t/**\n\t * The type of the event\n\t */\n\treadonly type: T;\n}\n\nexport interface EventErrorObject {\n\t/**\n\t * The error that is the subject of this event\n\t */\n\treadonly error: Error;\n\n\t/**\n\t * The target for the event\n\t */\n\treadonly target: T;\n\n\t/**\n\t * The type of the event\n\t */\n\treadonly type: 'error';\n}\n\n/**\n * The base event object, which provides a `type` property\n */\nexport interface EventObject {\n\t/**\n\t * The type of the event\n\t */\n\treadonly type: string;\n}\n\n/**\n * An event object which has a typed target\n */\nexport interface EventTargettedObject {\n\t/**\n\t * The target of the event\n\t */\n\treadonly target: T;\n\n\t/**\n\t * The type of the event\n\t */\n\treadonly type: string;\n}\n\n/**\n * An event object which has a string literal type\n */\nexport interface EventTypedObject {\n\t/**\n\t * The type of the event\n\t */\n\treadonly type: T;\n}\n\n/**\n * A generic definition for a factory function which, given an optional set of options will\n * return an instance of the supplied generic type\n */\nexport interface Factory {\n\t/**\n\t * Create an instance\n\t *\n\t * @param options The options used to create the instance\n\t */\n\t(options?: O): T;\n\n\t/**\n\t * The prototype that will be used when constructing the instance\n\t */\n\tprototype: T;\n}\n\n/**\n * Used for inserting an item into a posistion\n */\nexport type InsertPosition = number | 'first' | 'last' | 'before' | 'after';\n\n/**\n * Used through the toolkit as a consistent API to manage how callers can \"cleanup\"\n * when doing a function.\n */\nexport interface Handle {\n\t/**\n\t * Perform the destruction/cleanup logic associated with this handle\n\t */\n\tdestroy(): void;\n}\n\n/**\n * A general interface that can be used to renference a general index map of values of a particular type\n */\nexport interface Hash {\n\t[ id: string ]: T;\n}\n\n/**\n * A base map of styles where each key is the name of the style attribute and the value is a string\n * which represents the style\n */\nexport interface StylesMap {\n\t[style: string]: string;\n}\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/interfaces/loader.d.ts", + "text": "/**\n * The interfaces to the `@dojo/loader` AMD loader\n */\n\nexport interface Config {\n\t/**\n\t * The base URL that the loader will use to resolve modules\n\t */\n\tbaseUrl?: string;\n\n\t/**\n\t * A map of module identifiers and their replacement meta data\n\t */\n\tmap?: ModuleMap;\n\n\t/**\n\t * An array of packages that the loader should use when resolving a module ID\n\t */\n\tpackages?: Package[];\n\n\t/**\n\t * A map of paths to use when resolving modules names\n\t */\n\tpaths?: { [ path: string ]: string; };\n\n\t/**\n\t * A map of packages that the loader should use when resolving a module ID\n\t */\n\tpkgs?: { [ path: string ]: Package; };\n}\n\nexport interface Define {\n\t/**\n\t * Define a module\n\t *\n\t * @param moduleId the MID to use for the module\n\t * @param dependencies an array of MIDs this module depends upon\n\t * @param factory the factory function that will return the module\n\t */\n\t(moduleId: string, dependencies: string[], factory: Factory): void;\n\n\t/**\n\t * Define a module\n\t *\n\t * @param dependencies an array of MIDs this module depends upon\n\t * @param factory the factory function that will return the module\n\t */\n\t(dependencies: string[], factory: Factory): void;\n\n\t/**\n\t * Define a module\n\t *\n\t * @param factory the factory function that will return the module\n\t */\n\t(factory: Factory): void;\n\n\t/**\n\t * Define a module\n\t *\n\t * @param value the value for the module\n\t */\n\t(value: any): void;\n\n\t/**\n\t * Meta data about this particular AMD loader\n\t */\n\tamd: { [prop: string]: string | number | boolean };\n}\n\nexport interface Factory {\n\t/**\n\t * The module factory\n\t *\n\t * @param modules The arguments that represent the resolved versions of the module dependencies\n\t */\n\t(...modules: any[]): any;\n}\n\nexport interface Has {\n\t/**\n\t * Determine if a feature is present\n\t *\n\t * @param name the feature name to check\n\t */\n\t(name: string): any;\n\n\t/**\n\t * Register a feature test\n\t *\n\t * @param name The name of the feature to register\n\t * @param value The test for the feature\n\t * @param now If `true` the test will be executed immediatly, if not, it will be lazily executed\n\t * @param force If `true` the test value will be overwritten if already registered\n\t */\n\tadd(name: string, value: (global: Window, document?: HTMLDocument, element?: HTMLDivElement) => any,\n\t\tnow?: boolean, force?: boolean): void;\n\tadd(name: string, value: any, now?: boolean, force?: boolean): void;\n}\n\nexport interface ModuleMap extends ModuleMapItem {\n\t[ sourceMid: string ]: ModuleMapReplacement;\n}\n\nexport interface ModuleMapItem {\n\t[ mid: string ]: any;\n}\n\nexport interface ModuleMapReplacement extends ModuleMapItem {\n\t[ findMid: string ]: string;\n}\n\nexport interface Package {\n\t/**\n\t * The path to the root of the package\n\t */\n\tlocation?: string;\n\n\t/**\n\t * The main module of the package (defaults to `main.js`)\n\t */\n\tmain?: string;\n\n\t/**\n\t * The package name\n\t */\n\tname?: string;\n}\n\nexport interface Require {\n\t/**\n\t * Resolve a list of module dependencies and pass them to the callback\n\t *\n\t * @param dependencies The array of MIDs to resolve\n\t * @param callback The function to invoke with the resolved dependencies\n\t */\n\t(dependencies: string[], callback: RequireCallback): void;\n\n\t/**\n\t * Resolve and return a single module (compatability with CommonJS `require`)\n\t *\n\t * @param moduleId The module ID to resolve and return\n\t */\n\t(moduleId: string): ModuleType;\n\n\t/**\n\t * Take a relative MID and return an absolute MID\n\t *\n\t * @param moduleId The relative module ID to resolve\n\t */\n\ttoAbsMid(moduleId: string): string;\n\n\t/**\n\t * Take a path and resolve the full URL for the path\n\t *\n\t * @param path The path to resolve and return as a URL\n\t */\n\ttoUrl(path: string): string;\n}\n\nexport interface RequireCallback {\n\t/**\n\t * The `require` callback\n\t *\n\t * @param modules The arguments that represent the resolved versions of dependencies\n\t */\n\t(...modules: any[]): void;\n}\n\nexport interface RootRequire extends Require {\n\t/**\n\t * The minimalist `has` API integrated with the `@dojo/loader`\n\t */\n\thas: Has;\n\n\t/**\n\t * Register an event listener\n\t *\n\t * @param type The event type to listen for\n\t * @param listener The listener to call when the event is emitted\n\t */\n\ton(type: SignalType, listener: any): { remove: () => void };\n\n\t/**\n\t * Configure the loader\n\t *\n\t * @param config The configuration to apply to the loader\n\t */\n\tconfig(config: Config): void;\n\n\t/**\n\t * Return internal values of loader for debug purposes\n\t *\n\t * @param name The name of the internal label\n\t */\n\tinspect?(name: string): any;\n\n\t/**\n\t * If running in the node environment, a reference to the original NodeJS `require`\n\t */\n\tnodeRequire?(id: string): any;\n\n\t/**\n\t * Undefine a module, based on absolute MID that should be removed from the loader cache\n\t */\n\tundef(moduleId: string): void;\n}\n\n/**\n * The signal type for the `require.on` API\n */\nexport type SignalType = 'error';\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/interfaces/main.d.ts", + "text": "import * as abilities from './abilities';\nimport * as bases from './bases';\nimport * as core from './core';\nimport * as loader from './loader';\nimport * as shim from './shim';\nimport * as vdom from './vdom';\ndeclare const _default: {\n abilities: typeof abilities;\n bases: typeof bases;\n core: typeof core;\n loader: typeof loader;\n shim: typeof shim;\n vdom: typeof vdom;\n};\nexport = _default;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/interfaces/vdom.d.ts", + "text": "/**\n * These interfaces are derived from Maquette.\n *\n * https://github.com/AFASSoftware/maquette\n *\n * Copyright (c) 2015 Maquette contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\n/**\n * Options that may be passed when creating the [[Projector]]\n */\nexport interface ProjectorOptions {\n\t/**\n\t * A transition strategy to invoke when enterAnimation and exitAnimation properties are provided as strings.\n\t * The module `cssTransitions` in the provided `css-transitions.js` file provides such a strategy.\n\t * A transition strategy is not needed when enterAnimation and exitAnimation properties are provided as functions.\n\t */\n\treadonly transitions?: TransitionStrategy;\n\t/**\n\t * May be used to add vendor prefixes when applying inline styles when needed.\n\t * This function is called when [[styles]] is used.\n\t * This function should execute `domNode.style[styleName] = value` or do something smarter.\n\t *\n\t * @param domNode The DOM Node that needs to receive the style\n\t * @param styleName The name of the style that should be applied, for example `transform`.\n\t * @param value The value of this style, for example `rotate(45deg)`.\n\t */\n\tstyleApplyer?(domNode: HTMLElement, styleName: string, value: string): void;\n}\n\n/**\n * Options that influence how the DOM is rendered and updated.\n */\nexport interface ProjectionOptions extends ProjectorOptions {\n\t/**\n\t * Only for internal use. Used for rendering SVG Nodes.\n\t */\n\treadonly namespace?: string;\n\t/**\n\t * May be used to intercept registration of event-handlers.\n\t *\n\t * Used by the [[Projector]] to wrap eventHandler-calls to call [[scheduleRender]] as well.\n\t *\n\t * @param propertyName The name of the property to be assigned, for example onclick\n\t * @param eventHandler The function that was registered on the [[VNode]]\n\t * @param domNode The real DOM element\n\t * @param properties The whole set of properties that was put on the VNode\n\t * @returns The function that is to be placed on the DOM node as the event handler, instead of `eventHandler`.\n\t */\n\teventHandlerInterceptor?: (propertyName: string, eventHandler: Function, domNode: Node, properties: VNodeProperties) => Function;\n}\n\n/**\n * These functions are called when [[VNodeProperties.enterAnimation]] and [[VNodeProperties.exitAnimation]] are provided as strings.\n * See [[ProjectionOptions.transitions]].\n */\nexport interface TransitionStrategy {\n\t/**\n\t * Function that is called when a [[VNode]] with an `enterAnimation` string is added to an already existing parent [[VNode]].\n\t *\n\t * @param element Element that was just added to the DOM.\n\t * @param properties The properties object that was supplied to the [[h]] method\n\t * @param enterAnimation The string that was passed to [[VNodeProperties.enterAnimation]].\n\t */\n\tenter(element: Element, properties: VNodeProperties, enterAnimation: string): void;\n\t/**\n\t * Function that is called when a [[VNode]] with an `exitAnimation` string is removed from a existing parent [[VNode]] that remains.\n\t *\n\t * @param element Element that ought to be removed from to the DOM.\n\t * @param properties The properties object that was supplied to the [[h]] method that rendered this [[VNode]] the previous time.\n\t * @param exitAnimation The string that was passed to [[VNodeProperties.exitAnimation]].\n\t * @param removeElement Function that removes the element from the DOM.\n\t * This argument is provided purely for convenience.\n\t * You may use this function to remove the element when the animation is done.\n\t */\n\texit(element: Element, properties: VNodeProperties, exitAnimation: string, removeElement: () => void): void;\n}\n\n/**\n * A virtual representation of a DOM Node. Maquette assumes that [[VNode]] objects are never modified externally.\n * Instances of [[VNode]] can be created using [[h]].\n */\nexport interface VNode {\n\t/**\n\t * The CSS selector containing tagname, css classnames and id. An empty string is used to denote a text node.\n\t */\n\treadonly vnodeSelector: string;\n\t/**\n\t * Object containing attributes, properties, event handlers and more, see [[h]].\n\t */\n\treadonly properties: VNodeProperties | undefined;\n\t/**\n\t * Array of [[VNode]]s to be used as children. This array is already flattened.\n\t */\n\treadonly children: Array | undefined;\n\t/**\n\t * Used in a special case when a [[VNode]] only has one childnode which is a textnode. Only used in combination with children === undefined.\n\t */\n\treadonly text: string | undefined;\n\t/**\n\t * Used by maquette to store the domNode that was produced from this [[VNode]].\n\t */\n\tdomNode: Node | null;\n}\n\n/**\n * Object containing attributes, properties, event handlers and more that can be put on DOM nodes.\n *\n * For your convenience, all common attributes, properties and event handlers are listed here and are\n * type-checked when using Typescript.\n */\nexport interface VNodeProperties {\n\t/**\n\t * The animation to perform when this node is added to an already existing parent.\n\t * When this value is a string, you must pass a `projectionOptions.transitions` object when creating the\n\t * projector using [[createProjector]].\n\t * {@link http://maquettejs.org/docs/animations.html|More about animations}.\n\t * @param element - Element that was just added to the DOM.\n\t * @param properties - The properties object that was supplied to the [[h]] method\n\t */\n\tenterAnimation?: ((element: Element, properties?: VNodeProperties) => void) | string;\n\t/**\n\t * The animation to perform when this node is removed while its parent remains.\n\t * When this value is a string, you must pass a `projectionOptions.transitions` object when creating the projector using [[createProjector]].\n\t * {@link http://maquettejs.org/docs/animations.html|More about animations}.\n\t * @param element - Element that ought to be removed from to the DOM.\n\t * @param removeElement - Function that removes the element from the DOM.\n\t * This argument is provided purely for convenience.\n\t * You may use this function to remove the element when the animation is done.\n\t * @param properties - The properties object that was supplied to the [[h]] method that rendered this [[VNode]] the previous time.\n\t */\n\texitAnimation?: ((element: Element, removeElement: () => void, properties?: VNodeProperties) => void) | string;\n\t/**\n\t * The animation to perform when the properties of this node change.\n\t * This also includes attributes, styles, css classes. This callback is also invoked when node contains only text and that text changes.\n\t * {@link http://maquettejs.org/docs/animations.html|More about animations}.\n\t * @param element - Element that was modified in the DOM.\n\t * @param properties - The last properties object that was supplied to the [[h]] method\n\t * @param previousProperties - The previous properties object that was supplied to the [[h]] method\n\t */\n\tupdateAnimation?: (element: Element, properties?: VNodeProperties, previousProperties?: VNodeProperties) => void;\n\t/**\n\t * Callback that is executed after this node is added to the DOM. Childnodes and properties have\n\t * already been applied.\n\t * @param element - The element that was added to the DOM.\n\t * @param projectionOptions - The projection options that were used see [[createProjector]].\n\t * @param vnodeSelector - The selector passed to the [[h]] function.\n\t * @param properties - The properties passed to the [[h]] function.\n\t * @param children - The children that were created.\n\t */\n\tafterCreate?(element: Element, projectionOptions: ProjectionOptions, vnodeSelector: string, properties: VNodeProperties,\n\tchildren: VNode[]): void;\n\t/**\n\t * Callback that is executed every time this node may have been updated. Childnodes and properties\n\t * have already been updated.\n\t * @param element - The element that may have been updated in the DOM.\n\t * @param projectionOptions - The projection options that were used see [[createProjector]].\n\t * @param vnodeSelector - The selector passed to the [[h]] function.\n\t * @param properties - The properties passed to the [[h]] function.\n\t * @param children - The children for this node.\n\t */\n\tafterUpdate?(element: Element, projectionOptions: ProjectionOptions, vnodeSelector: string, properties: VNodeProperties,\n\tchildren: VNode[]): void;\n\t/**\n\t * When specified, the event handlers will be invoked with 'this' pointing to the value.\n\t * This is useful when using the prototype/class based implementation of Components.\n\t *\n\t * When no [[key]] is present, this object is also used to uniquely identify a DOM node.\n\t */\n\treadonly bind?: Object;\n\t/**\n\t * Used to uniquely identify a DOM node among siblings.\n\t * A key is required when there are more children with the same selector and these children are added or removed dynamically.\n\t * NOTE: this does not have to be a string or number, a [[Component]] Object for instance is also possible.\n\t */\n\treadonly key?: Object;\n\t/**\n\t * An object literal like `{important:true}` which allows css classes, like `important` to be added and removed\n\t * dynamically.\n\t */\n\treadonly classes?: { [index: string]: boolean | null | undefined };\n\t/**\n\t * An object literal like `{height:'100px'}` which allows styles to be changed dynamically. All values must be strings.\n\t */\n\treadonly styles?: { [index: string]: string | null | undefined };\n\n\t// From Element\n\tontouchcancel?(ev?: TouchEvent): boolean | void;\n\tontouchend?(ev?: TouchEvent): boolean | void;\n\tontouchmove?(ev?: TouchEvent): boolean | void;\n\tontouchstart?(ev?: TouchEvent): boolean | void;\n\t// From HTMLFormElement\n\treadonly action?: string;\n\treadonly encoding?: string;\n\treadonly enctype?: string;\n\treadonly method?: string;\n\treadonly name?: string;\n\treadonly target?: string;\n\t// From HTMLElement\n\tonblur?(ev?: FocusEvent): boolean | void;\n\tonchange?(ev?: Event): boolean | void;\n\tonclick?(ev?: MouseEvent): boolean | void;\n\tondblclick?(ev?: MouseEvent): boolean | void;\n\tonfocus?(ev?: FocusEvent): boolean | void;\n\toninput?(ev?: Event): boolean | void;\n\tonkeydown?(ev?: KeyboardEvent): boolean | void;\n\tonkeypress?(ev?: KeyboardEvent): boolean | void;\n\tonkeyup?(ev?: KeyboardEvent): boolean | void;\n\tonload?(ev?: Event): boolean | void;\n\tonmousedown?(ev?: MouseEvent): boolean | void;\n\tonmouseenter?(ev?: MouseEvent): boolean | void;\n\tonmouseleave?(ev?: MouseEvent): boolean | void;\n\tonmousemove?(ev?: MouseEvent): boolean | void;\n\tonmouseout?(ev?: MouseEvent): boolean | void;\n\tonmouseover?(ev?: MouseEvent): boolean | void;\n\tonmouseup?(ev?: MouseEvent): boolean | void;\n\tonmousewheel?(ev?: WheelEvent | MouseWheelEvent): boolean | void;\n\tonscroll?(ev?: UIEvent): boolean | void;\n\tonsubmit?(ev?: Event): boolean | void;\n\treadonly spellcheck?: boolean;\n\treadonly tabIndex?: number;\n\treadonly disabled?: boolean;\n\treadonly title?: string;\n\treadonly accessKey?: string;\n\treadonly id?: string;\n\t// From HTMLInputElement\n\treadonly type?: string;\n\treadonly autocomplete?: string;\n\treadonly checked?: boolean;\n\treadonly placeholder?: string;\n\treadonly readOnly?: boolean;\n\treadonly src?: string;\n\treadonly value?: string;\n\t// From HTMLImageElement\n\treadonly alt?: string;\n\treadonly srcset?: string;\n\t/**\n\t * Puts a non-interactive piece of html inside the DOM node.\n\t *\n\t * Note: if you use innerHTML, maquette cannot protect you from XSS vulnerabilities and you must make sure that the innerHTML value is safe.\n\t */\n\treadonly innerHTML?: string;\n\n\t/**\n\t * Everything that is not explicitly listed (properties and attributes that are either uncommon or custom).\n\t */\n\treadonly [index: string]: any;\n}\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/interfaces/shim.d.ts", + "text": "/**\n * ArrayLike represents a generic object which has a `length` and is number index based\n */\nexport interface ArrayLike {\n\tlength: number;\n\t[n: number]: T;\n}\n\n/**\n * Thenable represents any object with a callable `then` property.\n */\nexport interface Thenable {\n\tthen(onFulfilled?: (value: T) => U | Thenable, onRejected?: (error: any) => U | Thenable): Thenable;\n\tthen(onFulfilled?: (value: T) => U | Thenable, onRejected?: (error: any) => void): Thenable;\n}\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/loader/dojo-loader.d.ts", + "text": "declare namespace DojoLoader {\n\n\t/**\n\t * Common AMD Configuration\n\t *\n\t * See [Common Config](https://github.com/amdjs/amdjs-api/blob/master/CommonConfig.md)\n\t */\n\texport interface Config {\n\t\t/**\n\t\t * Indicates the root used for ID-to-path resolutions. Relative paths are relative to the current\n\t\t * working directory. In web browsers, the current working directory is the directory containing\n\t\t * the web page running the script.\n\t\t */\n\t\tbaseUrl?: string;\n\n\t\t/**\n\t\t * Specifies for a given module ID prefix, what module ID prefix to use in place of another\n\t\t * module ID prefix. For example, how to express \"when `bar` asks for module ID `foo`,\n\t\t * actually use module ID 'foo1.2'\".\n\t\t *\n\t\t * This sort of capability is important for larger projects which may have two sets of\n\t\t * modules that need to use two different versions of `foo`, but they still need to\n\t\t * cooperate with each other.\n\t\t *\n\t\t * This is different from `paths` config. `paths` is only for setting up root paths for\n\t\t * module IDs, not for mapping one module ID to another one.\n\t\t */\n\t\tmap?: ModuleMap;\n\n\t\t/**\n\t\t * Array of package configuration (packageConfig) objects. Package configuration is for\n\t\t * traditional CommonJS packages, which has different path lookup rules than the default\n\t\t * ID-to-path lookup rules used by an AMD loader.\n\t\t *\n\t\t * Default lookup rules are ,baseUrl + 'module/id' + .js, where paths config can be used\n\t\t * to map part of 'module/id' to another path.\n\t\t */\n\t\tpackages?: Package[];\n\n\t\t/**\n\t\t * For specifying a path for a the given module ID prefix.\n\t\t *\n\t\t * A property in the paths object is an absolute module ID prefix.\n\t\t */\n\t\tpaths?: { [ path: string ]: string; };\n\n\t\t/* TODO: We should remove internal APIs like this */\n\t\tpkgs?: { [ path: string ]: Package; };\n\n\t\tshim?: { [path: string]: ModuleShim | string[] };\n\n\t\tcrossOrigin?: false | 'anonymous' | 'use-credentials';\n\t}\n\n\tinterface Define {\n\t\t(moduleId: string, dependencies: string[], factory: Factory): void;\n\t\t(dependencies: string[], factory: Factory): void;\n\t\t(factory: Factory): void;\n\t\t(value: any): void;\n\t\tamd: { [prop: string]: string | number | boolean };\n\t}\n\n\tinterface Factory {\n\t\t(...modules: any[]): any;\n\t}\n\n\tinterface Has {\n\t\t(name: string): any;\n\t\tadd(name: string, value: (global: Window, document?: HTMLDocument, element?: HTMLDivElement) => any,\n\t\t\tnow?: boolean, force?: boolean): void;\n\t\tadd(name: string, value: any, now?: boolean, force?: boolean): void;\n\t}\n\n\tinterface LoaderError extends Error {\n\t\treadonly src: string;\n\t\treadonly info: { module: Module, url: string, parentMid: string, details?: string };\n\t}\n\n\t/**\n\t * AMD Loader Plugin API\n\t *\n\t * See [Loader Plugin API](https://github.com/amdjs/amdjs-api/blob/master/LoaderPlugins.md)\n\t */\n\tinterface LoaderPlugin {\n\t\t/**\n\t\t * A function that is called to load a resource. This is the only mandatory API method that needs\n\t\t * to be implemented for the plugin to be useful, assuming the resource IDs do not need special\n\t\t * ID normalization.\n\t\t * @param resourceId The resource ID that the plugin should load. This ID MUST be normalized.\n\t\t * @param require A local require function to use to load other modules. This require function\n\t\t * has some utilities on it:\n\t\t * * **require.toUrl('moduleId+extension')** See the `require.toUrl` API notes\n\t\t * for more information.\n\t\t * @param load A function to call once the value of the resource ID has been determined. This\n\t\t * tells the loader that the plugin is done loading the resource.\n\t\t * @param config A configuration object. This is a way for the optimizer and the web app to\n\t\t * pass configuration information to the plugin. An optimization tool may set\n\t\t * an `isBuild` property in the config to true if this plugin is being called\n\t\t * as part of an optimizer build.\n\t\t */\n\t\tload?(resourceId: string, require: Require, load: (value?: any) => void, config?: { [ prop: string ]: any; }): void;\n\n\t\t/**\n\t\t * A function to normalize the passed-in resource ID. Normalization of an module ID normally\n\t\t * means converting relative paths, like `./some/path` or `../another/path` to be non-relative,\n\t\t * absolute IDs\n\t\t * @param resourceId The resource ID to normalize.\n\t\t * @param normalize A normalization function that accepts a string ID to normalize using the\n\t\t * standard relative module normalization rules using the loader's current\n\t\t * configuration.\n\t\t */\n\t\tnormalize?(resourceId: string, normalize: (moduleId: string) => string): string;\n\t}\n\n\tinterface MapItem extends Array {\n\t\t/* prefix */ 0: string;\n\t\t/* replacement */ 1: any;\n\t\t/* regExp */ 2: RegExp;\n\t\t/* length */ 3: number;\n\t}\n\n\tinterface MapReplacement extends MapItem {\n\t\t/* replacement */ 1: string;\n\t}\n\n\tinterface MapRoot extends Array {\n\t\tstar?: MapSource;\n\t}\n\n\tinterface MapSource extends MapItem {\n\t\t/* replacement */ 1: MapReplacement[];\n\t}\n\n\t// TODO are we still abbreviating these properties?\n\t// TODO shouldn't extend for LoaderPlugin because technically `load` is not optional\n\tinterface Module extends LoaderPlugin {\n\t\tcjs: {\n\t\t\texports: any;\n\t\t\tid: string;\n\t\t\tsetExports: (exports: any) => void;\n\t\t\turi: string;\n\t\t};\n\t\tdef: Factory;\n\t\tdeps: Module[];\n\t\texecuted: any; // TODO: enum\n\t\tinjected: boolean;\n\t\tfix?: (module: Module) => void;\n\t\tgc: boolean;\n\t\tmid: string;\n\t\tpack: Package;\n\t\treq: Require;\n\t\trequire?: Require; // TODO: WTF?\n\t\tresult: any;\n\t\turl: string;\n\n\t\t// plugin interface\n\t\tloadQ?: Module[];\n\t\tplugin?: Module;\n\t\tprid: string;\n\t}\n\n\tinterface ModuleDefinitionArguments extends Array {\n\t\t0: string[];\n\t\t1: Factory;\n\t}\n\n\tinterface ModuleMap extends ModuleMapItem {\n\t\t[ sourceMid: string ]: ModuleMapReplacement | string;\n\t}\n\n\tinterface ModuleMapItem {\n\t\t[ mid: string ]: /* ModuleMapReplacement | ModuleMap */ any;\n\t}\n\n\tinterface ModuleMapReplacement extends ModuleMapItem {\n\t\t[ findMid: string ]: /* replaceMid */ string;\n\t}\n\n\tinterface ObjectMap { [ key: string ]: any; }\n\n\tinterface Package {\n\t\tlocation?: string;\n\t\tmain?: string;\n\t\tname?: string;\n\t}\n\n\tinterface PackageMap {\n\t\t[ packageId: string ]: Package;\n\t}\n\n\tinterface PathMap extends MapReplacement {}\n\n\tinterface ModuleShim {\n\t\tdeps?: string[];\n\t\texports?: string;\n\t\tinit?: (...dependencies: any[]) => any;\n\t}\n\n\tinterface Require {\n\t\t(dependencies: string[], callback: RequireCallback): void;\n\t\t(moduleId: string): ModuleType;\n\n\t\ttoAbsMid(moduleId: string): string;\n\t\ttoUrl(path: string): string;\n\t}\n\n\tinterface RequireCallback {\n\t\t(...modules: any[]): void;\n\t}\n\n\tinterface RootRequire extends Require {\n\t\tcache(cache: DojoLoader.ObjectMap): void;\n\t\thas: Has;\n\t\ton(type: SignalType, listener: any): { remove: () => void };\n\t\tconfig(config: Config): void;\n\t\tinspect?(name: string): any;\n\t\tnodeRequire?(id: string): any;\n\t\tundef(moduleId: string, recursive?: boolean): void;\n\t}\n\n\ttype SignalType = 'error';\n}\n\ndeclare const define: DojoLoader.Define;\n\ndeclare interface NodeRequire {\n\t(dependencies: string[], callback: DojoLoader.RequireCallback): void;\n\n\tconfig(config: DojoLoader.Config): void;\n\thas: DojoLoader.Has;\n\tinspect?(name: string): any;\n\tnodeRequire?: NodeRequire;\n\ton(type: DojoLoader.SignalType, listener: any): { remove: () => void };\n\ttoAbsMid(moduleId: string): string;\n\ttoUrl(path: string): string;\n\tundef(moduleId: string, recursive?: boolean): void;\n}\n\ndeclare const arguments: IArguments;\nimport ModuleShim = DojoLoader.ModuleShim;\nimport Module = DojoLoader.Module;\nimport Package = DojoLoader.Package;\ndeclare const load: (module: string) => any;\ndeclare const Packages: {} | undefined;\ndeclare const importScripts: ((url: string) => void);\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/routing/history/_alias-ambient-history.d.ts", + "text": "export declare type BrowserHistory = History;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/routing/history/HashHistory.d.ts", + "text": "import { HistoryBase } from './HistoryBase';\nimport { History, HistoryOptions } from './interfaces';\n/**\n * Options for creating HashHistory instances.\n */\nexport interface HashHistoryOptions extends HistoryOptions {\n /**\n * A DOM window object. HashHistory uses the `location` property and\n * listens to `hashchange` events. The current value is initialized to the\n * initial hash.\n */\n window: Window;\n}\nexport declare class HashHistory extends HistoryBase implements History {\n private _current;\n private _browserLocation;\n readonly current: string;\n constructor({window}?: HashHistoryOptions);\n prefix(path: string): string;\n normalizePath(path: string): string;\n set(path: string): void;\n replace(path: string): void;\n}\nexport default HashHistory;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/routing/history/interfaces.d.ts", + "text": "import { Evented } from '@dojo/core/Evented';\nimport { EventedOptions, EventedListenerOrArray, EventedListenersMap } from '@dojo/interfaces/bases';\nimport { EventTargettedObject, Handle } from '@dojo/interfaces/core';\nexport { BrowserHistory } from './_alias-ambient-history';\n/**\n * Event object that is emitted for the 'change' event.\n */\nexport interface HistoryChangeEvent extends EventTargettedObject {\n /**\n * The new (current) value of the history. This is a path string.\n */\n value: string;\n}\nexport interface History extends Evented {\n /**\n * Get the current value. This is a path string.\n *\n * Implementations may ensure that the value always starts with a slash.\n */\n readonly current: string;\n /**\n * Prefixes the value in order to create a path that can be used with a browser.\n */\n prefix(path: string): string;\n /**\n * Set the current value. If used with a browser implementation causes a new history entry\n * to be added. Fires the 'change' event.\n */\n set(path: string): void;\n /**\n * Replace the current value. If used with a browser implementation causes the current\n * history entry to be replaced. Fires the 'change' event.\n */\n replace(path: string): void;\n /**\n * Function that will normalize the path for the history manager\n */\n normalizePath(path: string): string;\n /**\n * Event emitted when the current value is changed, after the browser's history has\n * been updated.\n */\n on(type: 'change', listener: EventedListenerOrArray): Handle;\n on(type: string, listener: EventedListenerOrArray>): Handle;\n on(listeners: EventedListenersMap): Handle;\n}\nexport interface HistoryOptions extends EventedOptions {\n}\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/routing/history/HistoryBase.d.ts", + "text": "import { BaseEventedEvents, Evented } from '@dojo/core/Evented';\nimport { EventedListenerOrArray } from '@dojo/interfaces/bases';\nimport { Handle } from '@dojo/interfaces/core';\nimport { History, HistoryChangeEvent } from './interfaces';\nexport interface HistoryEvents extends BaseEventedEvents {\n (type: 'change', listener: EventedListenerOrArray): Handle;\n}\nexport declare class HistoryBase extends Evented {\n on: HistoryEvents;\n normalizePath(path: string): string;\n}\nexport default HistoryBase;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/routing/history/MemoryHistory.d.ts", + "text": "import { HistoryBase } from './HistoryBase';\nimport { History, HistoryOptions } from './interfaces';\n/**\n * Options for creating MemoryHistory instances.\n */\nexport interface MemoryHistoryOptions extends HistoryOptions {\n /**\n * The current value is set to the path.\n */\n path: string;\n}\n/**\n * A memory-backed history manager. Can be used outside of browsers.\n */\nexport declare class MemoryHistory extends HistoryBase implements History {\n private _current;\n readonly current: string;\n constructor({path: current}?: MemoryHistoryOptions);\n prefix(path: string): string;\n set(path: string): void;\n replace(path: string): void;\n}\nexport default MemoryHistory;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/routing/history/StateHistory.d.ts", + "text": "import { HistoryBase } from './HistoryBase';\nimport { History, HistoryOptions } from './interfaces';\n/**\n * Options for creating StateHistory instances.\n */\nexport interface StateHistoryOptions extends HistoryOptions {\n /**\n * A base pathname. The current value, as well as the emitted change value, will be relative to this base (though\n * starting with a slash). If not set the DOM window's location's path will be used in its entirety. If the\n * location's path is not a suffix of the base, the value will be a single slash instead.\n *\n * Must not contain fragment identifiers or search components.\n */\n base?: string;\n /**\n * A DOM window object. StateHistory uses the `history` and `location` properties and\n * listens to `popstate` events. The current value is initialized to the current path.\n */\n window: Window;\n}\n/**\n * A browser-based history manager that uses the history object to store the current value.\n *\n * This manager ensures the current value always starts with a slash.\n */\nexport declare class StateHistory extends HistoryBase implements History {\n private _base;\n private _current;\n private _browserHistory;\n readonly current: string;\n prefix(path: string): string;\n set(path: string): void;\n replace(path: string): void;\n constructor({base, window}?: StateHistoryOptions);\n}\nexport default StateHistory;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/routing/interfaces.d.ts", + "text": "import Task from '@dojo/core/async/Task';\nimport Evented, { BaseEventedEvents } from '@dojo/core/Evented';\nimport { PausableHandle } from '@dojo/core/on';\nimport UrlSearchParams from '@dojo/core/UrlSearchParams';\nimport { EventedListener, EventedOptions } from '@dojo/interfaces/bases';\nimport { EventErrorObject, EventTargettedObject, Handle, Hash } from '@dojo/interfaces/core';\nimport { Thenable } from '@dojo/interfaces/shim';\nimport { Constructor, RegistryLabel, WidgetBaseInterface } from '@dojo/widget-core/interfaces';\nimport { History } from './history/interfaces';\nimport { DeconstructedPath } from './lib/path';\n/**\n * Routes created without a `params()` function will receive a `params` object of this type.\n */\nexport interface DefaultParameters extends Parameters {\n [param: string]: string;\n}\n/**\n * Describes the context object used when dispatching. Extend this interface for custom contexts.\n */\nexport interface Context {\n}\n/**\n * Describes extracted parameters.\n */\nexport interface Parameters {\n [param: string]: any;\n}\n/**\n * Describes the object passed to various route handlers.\n */\nexport interface Request {\n /**\n * The dispatch context.\n */\n context: C;\n /**\n * The extracted parameters.\n */\n params: P;\n}\n/**\n * Component type\n */\nexport declare type Component = Constructor | RegistryLabel;\n/**\n * Outlet component options\n */\nexport interface OutletComponents {\n main?: Component;\n index?: Component;\n error?: Component;\n}\n/**\n * Options for map params callback\n */\nexport interface MapParamsOptions {\n params: any;\n type: MatchType;\n location: string;\n router: RouterInterface;\n}\n/**\n * Interface for the map params callback\n */\nexport interface MapParams {\n (options: MapParamsOptions): any;\n}\n/**\n * Outlet properties\n */\nexport interface OutletProperties {\n outlet: string;\n mainComponent?: Component;\n indexComponent?: Component;\n errorComponent?: Component;\n mapParams?: MapParams;\n}\n/**\n * An object to resume or cancel router dispatch.\n */\nexport interface DispatchDeferral {\n /**\n * Call to prevent a path from being dispatched.\n */\n cancel(): void;\n /**\n * Call to resume a path being dispatched.\n */\n resume(): void;\n}\n/**\n * Event object that is emitted for the 'navstart' event.\n */\nexport interface NavigationStartEvent extends EventTargettedObject> {\n /**\n * The path that has been navigated to.\n */\n path: string;\n /**\n * The context for the route\n */\n context: Context;\n /**\n * Call to prevent the path to be dispatched.\n */\n cancel?(): void;\n /**\n * Call to defer dispatching of the path\n * @return an object which allows the caller to resume or cancel dispatch.\n */\n defer?(): DispatchDeferral;\n}\n/**\n * Event object that is emitted for the 'error' event.\n */\nexport interface ErrorEvent extends EventErrorObject> {\n /**\n * The context that was being dispatched when the error occurred.\n */\n context: C;\n /**\n * The path that was being dispatched when the error occurred.\n */\n path: string;\n}\nexport interface RouterEvents extends BaseEventedEvents {\n /**\n * Event emitted when dispatch is called, but before routes are selected.\n */\n (type: 'navstart', listener: EventedListener, NavigationStartEvent>): Handle;\n /**\n * Event emitted when errors occur during dispatch.\n *\n * Certain errors may reject the task returned when dispatching, but this task is not always accessible and may\n * hide errors if it's canceled.\n */\n (type: 'error', listener: EventedListener, ErrorEvent>): Handle;\n}\n/**\n * Config for registering routes\n */\nexport interface RouteConfig {\n /**\n * The path of the route\n */\n path: string;\n /**\n * The optional outlet associated to the path\n */\n outlet?: string;\n /**\n * Optional child route configuration\n */\n children?: RouteConfig[];\n /**\n * Default params used to generate a link\n */\n defaultParams?: any;\n /**\n * To be used as the default route on router start up\n * if the current route doesn't match\n */\n defaultRoute?: boolean;\n}\n/**\n * Describes the result of a dispatch.\n */\nexport interface DispatchResult {\n /**\n * Whether a route requested a redirect to a different path.\n */\n redirect?: string;\n /**\n * False if dispatch was canceled (via the navstart event) or if no routes could be selected. True otherwise.\n */\n success: boolean;\n}\nexport declare type LinkParams = Hash;\n/**\n * The options for the router.\n */\nexport interface RouterOptions extends EventedOptions {\n /**\n * A Context object to be used for all requests, or a function that provides such an object, called for each\n * dispatch.\n */\n context?: C | (() => C);\n /**\n * A handler called when no routes match the dispatch path.\n * @param request An object whose `context` property contains the dispatch context. No extracted parameters\n * are available.\n */\n fallback?: (request: Request) => void | Thenable;\n /**\n * The history manager. Routes will be dispatched in response to change events emitted by the manager.\n */\n history?: History;\n /**\n * Routing configuration to set up on router creation\n */\n config?: RouteConfig[];\n}\n/**\n * The options for the router's start() method.\n */\nexport interface StartOptions {\n /**\n * Whether to immediately dispatch with the history's current value.\n */\n dispatchCurrent: boolean;\n}\n/**\n * The outlet context\n */\nexport interface OutletContext {\n /**\n * The type of match for the outlet\n */\n type: MatchType;\n /**\n * The location of the route (link)\n */\n location: string;\n /**\n * The params for the specific outlet\n */\n params: any;\n}\nexport interface RouterInterface extends Evented {\n on: RouterEvents;\n register(config: RouteConfig[], from: string | RouterInterface | RouteInterface): void;\n append(add: RouteInterface | RouteInterface[]): void;\n dispatch(context: Context, path: string): Task;\n link(routeOrOutlet: RouteInterface | string, params?: LinkParams): string;\n replacePath(path: string): void;\n setPath(path: string): void;\n hasOutlet(outletId: string): boolean;\n getOutlet(outletId: string): OutletContext | undefined;\n getCurrentParams(): Parameters;\n start(startOptions: StartOptions): PausableHandle;\n}\n/**\n * Hash object where keys are parameter names and keys are arrays of one or more\n * parameter values.\n */\nexport declare type SearchParams = Hash;\n/**\n * Describes whether a route matched.\n */\nexport interface MatchResult

{\n /**\n * Whether there are path segments that weren't matched by this route.\n */\n hasRemaining: boolean;\n /**\n * Position in the segments array that the remaining unmatched segments start.\n */\n offset: number;\n /**\n * Any extracted parameters. Only available if the route matched.\n */\n params: P;\n /**\n * Values for named segments in the path, in order of occurrence.\n */\n rawPathValues: string[];\n /**\n * Values for known named query parameters that were actually present in the\n * path.\n */\n rawSearchParams: SearchParams;\n}\n/**\n * The type of match for a route\n */\nexport declare enum MatchType {\n INDEX = 0,\n PARTIAL = 1,\n ERROR = 2,\n}\n/**\n * A request handler.\n */\nexport declare type Handler = (request: Request) => void | Thenable;\n/**\n * Describes the selection of a particular route.\n */\nexport interface Selection {\n /**\n * Which handler should be called when the route is executed.\n */\n handler: Handler;\n /**\n * The selected path.\n */\n path: DeconstructedPath;\n /**\n * The selected outlet\n */\n outlet: string | undefined;\n /**\n * The extracted parameters.\n */\n params: Parameters;\n /**\n * Values for named segments in the path, in order of occurrence.\n */\n rawPathValues: string[];\n /**\n * Values for known named query parameters that were actually present in the\n * path.\n */\n rawSearchParams: SearchParams;\n /**\n * The selected route.\n */\n route: RouteInterface;\n /**\n * The selection type\n */\n type: MatchType;\n}\nexport interface RouteInterface {\n readonly parent: RouteInterface | undefined;\n readonly path: DeconstructedPath;\n readonly outlet: string | undefined;\n readonly defaultParams: P;\n append(add: RouteInterface | RouteInterface[]): void;\n link(params?: LinkParams): string;\n match(segments: string[], hasTrailingSlash: boolean, searchParams: UrlSearchParams): null | MatchResult;\n select(context: C, segments: string[], hasTrailingSlash: boolean, searchParams: UrlSearchParams): string | Selection[];\n}\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/routing/lib/router.d.ts", + "text": "import WeakMap from '@dojo/shim/WeakMap';\nimport { Context, Parameters, RouteInterface, RouterInterface } from '../interfaces';\nexport declare const parentMap: WeakMap, RouterInterface>;\n/**\n * Whether the route has been appended to another route or router.\n */\nexport declare function hasBeenAppended(route: RouteInterface): boolean;\n/**\n * Finds the router whose route hierarchy the route has been appended to.\n *\n * Throws if the route was not appended to any router.\n */\nexport declare function findRouter(route: RouteInterface): RouterInterface;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/routing/lib/path.d.ts", + "text": "import UrlSearchParams from '@dojo/core/UrlSearchParams';\nexport interface ParsedPath {\n /**\n * Parameters extracted from the search component.\n */\n searchParams: UrlSearchParams;\n /**\n * Pathname segments.\n */\n segments: string[];\n /**\n * Whether the pathname ended with a trailing slash.\n */\n trailingSlash: boolean;\n}\n/**\n * Parses a path\n * @param path The path to parse.\n * @return The search params, pathname segments, and whether it ended with a trailing slash.\n */\nexport declare function parse(path: string): ParsedPath;\nexport interface MatchResult {\n /**\n * Whether there are remaining segments that weren't matched.\n */\n hasRemaining: boolean;\n /**\n * Position in the segments array that the remaining unmatched segments start.\n */\n offset: number;\n /**\n * Values for named segments.\n */\n values: string[];\n}\n/**\n * Determines whether a DeconstructedPath is a (partial) match for given pathname segments.\n * @param expectedSegments Part of a DeconstructedPath object.\n * @param segments Pathname segments as returned by `parse()`\n * @return A result object.\n */\nexport declare function match({expectedSegments}: DeconstructedPath, segments: string[]): MatchResult | null;\nexport interface LiteralSegment {\n literal: string;\n}\nexport interface NamedSegment {\n name: string;\n}\nexport declare type Segment = LiteralSegment | NamedSegment;\n/**\n * Determine whether the segment is a NamedSegment.\n *\n * @param segment The segment to be checked\n * @return true if the segment is a NamedSegment, false otherwise\n */\nexport declare function isNamedSegment(segment: Segment): segment is NamedSegment;\n/**\n * Describes a route path, broken down into its constituent parts.\n */\nexport interface DeconstructedPath {\n /**\n * Segments (literal and named) that are expected to be present when matching paths.\n */\n expectedSegments: Segment[];\n /**\n * Whether the pathname started with a slash.\n */\n leadingSlash: boolean;\n /**\n * Named path parameters, in the order that they occurred in the path.\n */\n parameters: string[];\n /**\n * Named query parameters, in the order that they occurred in the path.\n */\n searchParameters: string[];\n /**\n * Whether the pathname ended with a slash.\n */\n trailingSlash: boolean;\n}\n/**\n * Deconstruct a route path into its constituent parts.\n * @param path The path to deconstruct.\n * @return An object describing the path's constituent parts.\n */\nexport declare function deconstruct(path: string): DeconstructedPath;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/routing/Link.d.ts", + "text": "import { WidgetBase } from '@dojo/widget-core/WidgetBase';\nimport { Constructor, DNode, VirtualDomProperties } from '@dojo/widget-core/interfaces';\nexport interface LinkProperties extends VirtualDomProperties {\n key?: string;\n isOutlet?: boolean;\n params?: any;\n onClick?: (event: MouseEvent) => void;\n to: string;\n}\nexport declare class BaseLink extends WidgetBase {\n private _onClick(event);\n protected render(): DNode;\n}\nexport declare function createLink(routerKey: any): Constructor;\nexport declare const Link: Constructor;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/routing/main.d.ts", + "text": "import Route from './Route';\nexport { Route };\nimport Router from './Router';\nexport { Router };\nimport HashHistory from './history/HashHistory';\nimport MemoryHistory from './history/MemoryHistory';\nimport StateHistory from './history/StateHistory';\nexport declare const history: {\n HashHistory: typeof HashHistory;\n MemoryHistory: typeof MemoryHistory;\n StateHistory: typeof StateHistory;\n};\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/routing/Outlet.d.ts", + "text": "import { Constructor, RegistryLabel, WidgetBaseInterface, WidgetProperties } from '@dojo/widget-core/interfaces';\nimport { WidgetBase } from '@dojo/widget-core/WidgetBase';\nimport { Component, MapParams, OutletComponents } from './interfaces';\nexport declare function isComponent(value: any): value is Component;\nexport declare type Outlet = Constructor & Partial & Partial & WidgetProperties, null>>;\nexport declare function Outlet(outletComponents: Component | OutletComponents, outlet: string | string[], mapParams?: MapParams, key?: RegistryLabel): Outlet;\nexport default Outlet;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/routing/Route.d.ts", + "text": "import UrlSearchParams from '@dojo/core/UrlSearchParams';\nimport { Thenable } from '@dojo/shim/interfaces';\nimport { Context, DefaultParameters, LinkParams, MatchResult, Parameters, Request, RouteInterface, Selection } from './interfaces';\nimport { DeconstructedPath } from './lib/path';\n/**\n * The options for the route.\n */\nexport interface RouteOptions {\n /**\n * Path the route matches against. Pathname segments may be named, same for query parameters. Leading slashes are\n * ignored. Defaults to `/`.\n */\n path?: string;\n /**\n * The outlet associated with the path\n */\n outlet?: string;\n /**\n * If the `path` option contains a trailing slash (in the pathname component), the route will only match against\n * another pathname that contains a trailing slash, and vice-versa if the path does not contain a trailing slash.\n * Defaults to `true`, change to `false` to allow routes to match regardless of trailing slashes.\n */\n trailingSlashMustMatch?: boolean;\n /**\n * A handler called when the route is executed.\n * @param request An object whose `context` property contains the dispatch context. Extracted parameters are\n * available under `params`.\n */\n exec?(request: Request): void | Thenable;\n /**\n * If specified, causes the route to be selected if there are no nested routes that match the remainder of\n * the dispatched path. When the route is executed, this handler is called rather than `exec()`.\n * @param request An object whose `context` property contains the dispatch context. Extracted parameters are\n * available under `params`.\n */\n fallback?(request: Request): void | Thenable;\n /**\n * Callback used to determine whether the route should be selected after it's been matched.\n * @param request An object whose `context` property contains the dispatch context. Extracted parameters are\n * available under `params`.\n * @return Returning `true` causes the route to be selected. Returning a string indicates that a redirect is\n * required; the string should be the path to redirect to.\n */\n guard?(request: Request): string | boolean;\n /**\n * If specified, and the route is the final route in the hierarchy, when the route is executed, this handler is\n * called rather than `exec()`.\n * @param request An object whose `context` property contains the dispatch context. Extracted parameters are\n * available under `params`.\n */\n index?(request: Request): void | Thenable;\n /**\n * Callback used for constructing the `params` object from extracted parameters, and validating the parameters.\n * @param fromPathname Array of parameter values extracted from the pathname.\n * @param searchParams Parameters extracted from the search component.\n * @return If `null` prevents the route from being selected, else the value for the `params` object.\n */\n params?(fromPathname: string[], searchParams: UrlSearchParams): null | P;\n /**\n * Default params to use when generating a link.\n */\n defaultParams?: null | P;\n}\nexport declare class Route implements RouteInterface {\n private _path;\n private _outlet;\n private _routes;\n private _trailingSlashMustMatch;\n private _computeParams;\n private _exec?;\n private _fallback?;\n private _guard;\n private _index?;\n private _defaultParams;\n readonly parent: Route | undefined;\n readonly path: DeconstructedPath;\n readonly outlet: string | undefined;\n readonly defaultParams: P;\n constructor(options?: RouteOptions);\n append(add: Route | Route[]): void;\n link(params?: LinkParams): string;\n match(segments: string[], hasTrailingSlash: boolean, searchParams: UrlSearchParams): null | MatchResult;\n select(context: C, segments: string[], hasTrailingSlash: boolean, searchParams: UrlSearchParams): string | Selection[];\n}\nexport default Route;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/routing/RouterInjector.d.ts", + "text": "import { Registry } from '@dojo/widget-core/Registry';\nimport { RegistryLabel } from '@dojo/widget-core/interfaces';\nimport { History } from './history/interfaces';\nimport { Router } from './Router';\nimport { RouteConfig } from './interfaces';\n/**\n * Key for the router injector\n */\nexport declare const routerKey: symbol;\n/**\n * Router Injector Options\n *\n */\nexport interface RouterInjectorOptions {\n history?: History;\n key?: RegistryLabel;\n}\n/**\n * Creates a router instance for a specific History manager (default is `HashHistory`) and registers\n * the route configuration.\n *\n * @param config The route config to register for the router\n * @param registry An optional registry that defaults to the global registry\n * @param options The router injector options\n */\nexport declare function registerRouterInjector(config: RouteConfig[], registry: Registry, options?: RouterInjectorOptions): Router;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/routing/Router.d.ts", + "text": "import Task from '@dojo/core/async/Task';\nimport Evented from '@dojo/core/Evented';\nimport { PausableHandle } from '@dojo/core/on';\nimport { Context, DispatchResult, LinkParams, OutletContext, Parameters, RouteConfig, RouteInterface, RouterEvents, RouterInterface, RouterOptions, StartOptions } from './interfaces';\nexport declare const errorOutlet = \"errorOutlet\";\nexport declare class Router extends Evented implements RouterInterface {\n private _contextFactory;\n private _currentSelection;\n private _dispatchFromStart;\n private _fallback?;\n private _history?;\n private _routes;\n private _started?;\n private _outletContextMap;\n private _outletRouteMap;\n private _currentParams;\n private _defaultParams;\n private _defaultRoute;\n on: RouterEvents;\n constructor(options?: RouterOptions);\n register(config: RouteConfig[], from?: string | RouterInterface | RouteInterface): void;\n append(add: RouteInterface | RouteInterface[]): void;\n private _dispatch(context, path, canceled?, emit?);\n dispatch(context: Context, path: string): Task;\n link(routeOrOutlet: RouteInterface | string, params?: LinkParams): string;\n replacePath(path: string): void;\n setPath(path: string): void;\n hasOutlet(outletId: string): boolean;\n getOutlet(outletId: string | string[]): OutletContext | undefined;\n getCurrentParams(): Parameters;\n start(startOptions?: StartOptions): PausableHandle;\n}\nexport default Router;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/shim/array.d.ts", + "text": "import { Iterable } from './iterator';\nexport interface MapCallback {\n /**\n * A callback function when mapping\n *\n * @param element The element that is currently being mapped\n * @param index The current index of the element\n */\n (element: T, index: number): U;\n}\nexport interface FindCallback {\n /**\n * A callback function when using find\n *\n * @param element The element that is currenty being analysed\n * @param index The current index of the element that is being analysed\n * @param array The source array\n */\n (element: T, index: number, array: ArrayLike): boolean;\n}\nexport interface From {\n /**\n * The Array.from() method creates a new Array instance from an array-like or iterable object.\n *\n * @param source An array-like or iterable object to convert to an array\n * @param mapFunction A map function to call on each element in the array\n * @param thisArg The execution context for the map function\n * @return The new Array\n */\n (source: ArrayLike | Iterable, mapFunction: MapCallback, thisArg?: any): Array;\n /**\n * The Array.from() method creates a new Array instance from an array-like or iterable object.\n *\n * @param source An array-like or iterable object to convert to an array\n * @return The new Array\n */\n (source: ArrayLike | Iterable): Array;\n}\nexport declare let from: From;\n/**\n * Creates a new array from the function parameters.\n *\n * @param arguments Any number of arguments for the array\n * @return An array from the given arguments\n */\nexport declare let of: (...items: T[]) => Array;\n/**\n * Copies data internally within an array or array-like object.\n *\n * @param target The target array-like object\n * @param offset The index to start copying values to; if negative, it counts backwards from length\n * @param start The first (inclusive) index to copy; if negative, it counts backwards from length\n * @param end The last (exclusive) index to copy; if negative, it counts backwards from length\n * @return The target\n */\nexport declare let copyWithin: (target: ArrayLike, offset: number, start: number, end?: number) => ArrayLike;\n/**\n * Fills elements of an array-like object with the specified value.\n *\n * @param target The target to fill\n * @param value The value to fill each element of the target with\n * @param start The first index to fill\n * @param end The (exclusive) index at which to stop filling\n * @return The filled target\n */\nexport declare let fill: (target: ArrayLike, value: T, start?: number, end?: number) => ArrayLike;\n/**\n * Finds and returns the first instance matching the callback or undefined if one is not found.\n *\n * @param target An array-like object\n * @param callback A function returning if the current value matches a criteria\n * @param thisArg The execution context for the find function\n * @return The first element matching the callback, or undefined if one does not exist\n */\nexport declare let find: (target: ArrayLike, callback: FindCallback, thisArg?: {}) => T | undefined;\n/**\n * Performs a linear search and returns the first index whose value satisfies the passed callback,\n * or -1 if no values satisfy it.\n *\n * @param target An array-like object\n * @param callback A function returning true if the current value satisfies its criteria\n * @param thisArg The execution context for the find function\n * @return The first index whose value satisfies the passed callback, or -1 if no values satisfy it\n */\nexport declare let findIndex: (target: ArrayLike, callback: FindCallback, thisArg?: {}) => number;\n/**\n * Determines whether an array includes a given value\n *\n * @param target the target array-like object\n * @param searchElement the item to search for\n * @param fromIndex the starting index to search from\n * @return `true` if the array includes the element, otherwise `false`\n */\nexport declare let includes: (target: ArrayLike, searchElement: T, fromIndex?: number) => boolean;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/shim/browser.d.ts", + "text": "import 'pepjs';\nimport 'intersection-observer';\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/shim/global.d.ts", + "text": "declare const globalObject: any;\nexport default globalObject;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/shim/iterator.d.ts", + "text": "import './Symbol';\nexport interface IteratorResult {\n readonly done: boolean;\n readonly value: T;\n}\nexport interface Iterator {\n next(value?: any): IteratorResult;\n return?(value?: any): IteratorResult;\n throw?(e?: any): IteratorResult;\n}\nexport interface Iterable {\n [Symbol.iterator](): Iterator;\n}\nexport interface IterableIterator extends Iterator {\n [Symbol.iterator](): IterableIterator;\n}\n/**\n * A class that _shims_ an iterator interface on array like objects.\n */\nexport declare class ShimIterator {\n private _list;\n private _nextIndex;\n private _nativeIterator;\n constructor(list: ArrayLike | Iterable);\n /**\n * Return the next iteration result for the Iterator\n */\n next(): IteratorResult;\n [Symbol.iterator](): IterableIterator;\n}\n/**\n * A type guard for checking if something has an Iterable interface\n *\n * @param value The value to type guard against\n */\nexport declare function isIterable(value: any): value is Iterable;\n/**\n * A type guard for checking if something is ArrayLike\n *\n * @param value The value to type guard against\n */\nexport declare function isArrayLike(value: any): value is ArrayLike;\n/**\n * Returns the iterator for an object\n *\n * @param iterable The iterable object to return the iterator for\n */\nexport declare function get(iterable: Iterable | ArrayLike): Iterator | undefined;\nexport interface ForOfCallback {\n /**\n * A callback function for a forOf() iteration\n *\n * @param value The current value\n * @param object The object being iterated over\n * @param doBreak A function, if called, will stop the iteration\n */\n (value: T, object: Iterable | ArrayLike | string, doBreak: () => void): void;\n}\n/**\n * Shims the functionality of `for ... of` blocks\n *\n * @param iterable The object the provides an interator interface\n * @param callback The callback which will be called for each item of the iterable\n * @param thisArg Optional scope to pass the callback\n */\nexport declare function forOf(iterable: Iterable | ArrayLike | string, callback: ForOfCallback, thisArg?: any): void;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/shim/interfaces.d.ts", + "text": "export interface Handle {\n\t/**\n\t * Perform the destruction/cleanup logic associated with this handle\n\t */\n\tdestroy(): void;\n}\n\n/**\n * Something that is _thenable_\n * @deprecated Use `PromiseLike` from TypeScript lib instead\n */\nexport type Thenable = PromiseLike;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/shim/main.d.ts", + "text": "import './tslib';\nimport * as array from './array';\nimport * as iterator from './iterator';\nimport Map from './Map';\nimport * as math from './math';\nimport * as number from './number';\nimport * as object from './object';\nimport Set from './Set';\nimport * as string from './string';\nimport Symbol from './Symbol';\nimport WeakMap from './WeakMap';\nimport './Promise';\nimport './Symbol';\nexport { array, iterator, Map, math, number, object, Set, string, Symbol, WeakMap };\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/shim/Map.d.ts", + "text": "import { Iterable, IterableIterator } from './iterator';\nimport './Symbol';\nexport interface Map {\n /**\n * Deletes all keys and their associated values.\n */\n clear(): void;\n /**\n * Deletes a given key and its associated value.\n *\n * @param key The key to delete\n * @return true if the key exists, false if it does not\n */\n delete(key: K): boolean;\n /**\n * Returns an iterator that yields each key/value pair as an array.\n *\n * @return An iterator for each key/value pair in the instance.\n */\n entries(): IterableIterator<[K, V]>;\n /**\n * Executes a given function for each map entry. The function\n * is invoked with three arguments: the element value, the\n * element key, and the associated Map instance.\n *\n * @param callbackfn The function to execute for each map entry,\n * @param thisArg The value to use for `this` for each execution of the calback\n */\n forEach(callbackfn: (value: V, key: K, map: Map) => void, thisArg?: any): void;\n /**\n * Returns the value associated with a given key.\n *\n * @param key The key to look up\n * @return The value if one exists or undefined\n */\n get(key: K): V | undefined;\n /**\n * Returns an iterator that yields each key in the map.\n *\n * @return An iterator containing the instance's keys.\n */\n keys(): IterableIterator;\n /**\n * Checks for the presence of a given key.\n *\n * @param key The key to check for\n * @return true if the key exists, false if it does not\n */\n has(key: K): boolean;\n /**\n * Sets the value associated with a given key.\n *\n * @param key The key to define a value to\n * @param value The value to assign\n * @return The Map instance\n */\n set(key: K, value: V): this;\n /**\n * Returns the number of key / value pairs in the Map.\n */\n readonly size: number;\n /**\n * Returns an iterator that yields each value in the map.\n *\n * @return An iterator containing the instance's values.\n */\n values(): IterableIterator;\n /** Returns an iterable of entries in the map. */\n [Symbol.iterator](): IterableIterator<[K, V]>;\n readonly [Symbol.toStringTag]: string;\n}\nexport interface MapConstructor {\n /**\n * Creates a new Map\n *\n * @constructor\n */\n new (): Map;\n /**\n * Creates a new Map\n *\n * @constructor\n *\n * @param iterator\n * Array or iterator containing two-item tuples used to initially populate the map.\n * The first item in each tuple corresponds to the key of the map entry.\n * The second item corresponds to the value of the map entry.\n */\n new (iterator?: [K, V][]): Map;\n /**\n * Creates a new Map\n *\n * @constructor\n *\n * @param iterator\n * Array or iterator containing two-item tuples used to initially populate the map.\n * The first item in each tuple corresponds to the key of the map entry.\n * The second item corresponds to the value of the map entry.\n */\n new (iterator: Iterable<[K, V]>): Map;\n readonly prototype: Map;\n readonly [Symbol.species]: MapConstructor;\n}\nexport declare let Map: MapConstructor;\nexport default Map;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/shim/math.d.ts", + "text": "export declare const FRACTION_UNITS: number;\nexport declare const MAX_FLOAT32 = 3.4028234663852886e+38;\nexport declare const MIN_FLOAT32 = 1.401298464324817e-45;\n/**\n * Returns the hyperbolic arccosine of a number.\n *\n * @param n The number to use in calculation\n * @return The result\n */\nexport declare let acosh: (n: number) => number;\n/**\n * Returns the hyperbolic arcsine of a number.\n *\n * @param n The number to use in calculation\n * @return The result\n */\nexport declare let asinh: (n: number) => number;\n/**\n * Returns the hyperbolic arctangent of a number.\n *\n * @param n The number to use in calculation\n * @return The result\n */\nexport declare let atanh: (n: number) => number;\n/**\n * Returns the cube root of a number.\n *\n * @param n The number to use in calculation\n * @return The result\n */\nexport declare let cbrt: (n: number) => number;\n/**\n * Returns the number of leading zero bits in the 32-bit\n * binary representation of a number.\n *\n * @param n The number to use in calculation\n * @return The result\n */\nexport declare let clz32: (n: number) => number;\n/**\n * Returns the hyperbolic cosine of a number.\n *\n * @param n The number to use in calculation\n * @return The result\n */\nexport declare let cosh: (n: number) => number;\n/**\n * Returns e raised to the specified power minus one.\n *\n * @param n The number to use in calculation\n * @return The result\n */\nexport declare let expm1: (n: number) => number;\n/**\n * Returns the nearest single-precision float representation of a number.\n *\n * @param n The number to use in calculation\n * @return The result\n */\nexport declare let fround: (n: number) => number;\n/**\n * Returns the square root of the sum of squares of its arguments.\n *\n * @return The result\n */\nexport declare let hypot: (...args: number[]) => number;\n/**\n * Returns the result of the 32-bit multiplication of the two parameters.\n *\n * @param n The number to use in calculation\n * @param m The number to use in calculation\n * @return The result\n */\nexport declare let imul: (n: number, m: number) => number;\n/**\n * Returns the base 2 logarithm of a number.\n *\n * @param n The number to use in calculation\n * @return The result\n */\nexport declare let log2: (n: number) => number;\n/**\n * Returns the base 10 logarithm of a number.\n *\n * @param n The number to use in calculation\n * @return The result\n */\nexport declare let log10: (n: number) => number;\n/**\n * Returns the natural logarithm of 1 + a number.\n *\n * @param n The number to use in calculation\n * @return The result\n */\nexport declare let log1p: (n: number) => number;\n/**\n * Returns the sign of a number, indicating whether the number is positive.\n *\n * @param n The number to use in calculation\n * @return 1 if the number is positive, -1 if the number is negative, or 0 if the number is 0\n */\nexport declare let sign: (n: number) => number;\n/**\n * Returns the hyperbolic sine of a number.\n *\n * @param n The number to use in calculation\n * @return The result\n */\nexport declare let sinh: (n: number) => number;\n/**\n * Returns the hyperbolic tangent of a number.\n *\n * @param n The number to use in calculation\n * @return The result\n */\nexport declare let tanh: (n: number) => number;\n/**\n * Returns the integral part of a number by removing any fractional digits.\n *\n * @param n The number to use in calculation\n * @return The result\n */\nexport declare let trunc: (n: number) => number;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/shim/number.d.ts", + "text": "/**\n * The smallest interval between two representable numbers.\n */\nexport declare const EPSILON = 1;\n/**\n * The maximum safe integer in JavaScript\n */\nexport declare const MAX_SAFE_INTEGER: number;\n/**\n * The minimum safe integer in JavaScript\n */\nexport declare const MIN_SAFE_INTEGER: number;\n/**\n * Determines whether the passed value is NaN without coersion.\n *\n * @param value The value to test\n * @return true if the value is NaN, false if it is not\n */\nexport declare function isNaN(value: any): boolean;\n/**\n * Determines whether the passed value is a finite number without coersion.\n *\n * @param value The value to test\n * @return true if the value is finite, false if it is not\n */\nexport declare function isFinite(value: any): value is number;\n/**\n * Determines whether the passed value is an integer.\n *\n * @param value The value to test\n * @return true if the value is an integer, false if it is not\n */\nexport declare function isInteger(value: any): value is number;\n/**\n * Determines whether the passed value is an integer that is 'safe,' meaning:\n * 1. it can be expressed as an IEEE-754 double precision number\n * 2. it has a one-to-one mapping to a mathematical integer, meaning its\n * IEEE-754 representation cannot be the result of rounding any other\n * integer to fit the IEEE-754 representation\n *\n * @param value The value to test\n * @return true if the value is an integer, false if it is not\n */\nexport declare function isSafeInteger(value: any): value is number;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/shim/object.d.ts", + "text": "export interface ObjectAssign {\n /**\n * Copy the values of all of the enumerable own properties from one or more source objects to a\n * target object. Returns the target object.\n * @param target The target object to copy to.\n * @param source The source object from which to copy properties.\n */\n (target: T, source: U): T & U;\n /**\n * Copy the values of all of the enumerable own properties from one or more source objects to a\n * target object. Returns the target object.\n * @param target The target object to copy to.\n * @param source1 The first source object from which to copy properties.\n * @param source2 The second source object from which to copy properties.\n */\n (target: T, source1: U, source2: V): T & U & V;\n /**\n * Copy the values of all of the enumerable own properties from one or more source objects to a\n * target object. Returns the target object.\n * @param target The target object to copy to.\n * @param source1 The first source object from which to copy properties.\n * @param source2 The second source object from which to copy properties.\n * @param source3 The third source object from which to copy properties.\n */\n (target: T, source1: U, source2: V, source3: W): T & U & V & W;\n /**\n * Copy the values of all of the enumerable own properties from one or more source objects to a\n * target object. Returns the target object.\n * @param target The target object to copy to.\n * @param sources One or more source objects from which to copy properties\n */\n (target: object, ...sources: any[]): any;\n}\nexport interface ObjectEnteries {\n /**\n * Returns an array of key/values of the enumerable properties of an object\n * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.\n */\n (o: T): [keyof T, T[K]][];\n /**\n * Returns an array of key/values of the enumerable properties of an object\n * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.\n */\n (o: object): [string, any][];\n}\nexport interface ObjectGetOwnPropertyDescriptors {\n (o: T): {\n [K in keyof T]: PropertyDescriptor;\n };\n (o: any): {\n [key: string]: PropertyDescriptor;\n };\n}\nexport interface ObjectValues {\n /**\n * Returns an array of values of the enumerable properties of an object\n * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.\n */\n (o: {\n [s: string]: T;\n }): T[];\n /**\n * Returns an array of values of the enumerable properties of an object\n * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.\n */\n (o: object): any[];\n}\nexport declare let assign: ObjectAssign;\n/**\n * Gets the own property descriptor of the specified object.\n * An own property descriptor is one that is defined directly on the object and is not\n * inherited from the object's prototype.\n * @param o Object that contains the property.\n * @param p Name of the property.\n */\nexport declare let getOwnPropertyDescriptor: (o: T, propertyKey: K) => PropertyDescriptor | undefined;\n/**\n * Returns the names of the own properties of an object. The own properties of an object are those that are defined directly\n * on that object, and are not inherited from the object's prototype. The properties of an object include both fields (objects) and functions.\n * @param o Object that contains the own properties.\n */\nexport declare let getOwnPropertyNames: (o: any) => string[];\n/**\n * Returns an array of all symbol properties found directly on object o.\n * @param o Object to retrieve the symbols from.\n */\nexport declare let getOwnPropertySymbols: (o: any) => symbol[];\n/**\n * Returns true if the values are the same value, false otherwise.\n * @param value1 The first value.\n * @param value2 The second value.\n */\nexport declare let is: (value1: any, value2: any) => boolean;\n/**\n * Returns the names of the enumerable properties and methods of an object.\n * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.\n */\nexport declare let keys: (o: object) => string[];\nexport declare let getOwnPropertyDescriptors: ObjectGetOwnPropertyDescriptors;\nexport declare let entries: ObjectEnteries;\nexport declare let values: ObjectValues;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/shim/Observable.d.ts", + "text": "import { Iterable } from './iterator';\nimport './Symbol';\nexport interface Observable extends ObservableObject {\n /**\n * Registers handlers for handling emitted values, error and completions from the observable, and\n * executes the observable's subscriber function, which will take action to set up the underlying data stream.\n *\n * @param observer The observer object that will handle events\n *\n * @return A Subscription object that can be used to manage the subscription.\n */\n subscribe(observer: Observer): Subscription;\n /**\n * Registers handlers for handling emitted values, error and completions from the observable, and\n * executes the observable's subscriber function, which will take action to set up the underlying data stream.\n *\n * @param onNext A function to handle an emitted value. Value is passed in as the first parameter to the function.\n * @param onError A function to handle errors that occur during onNext, or during subscription.\n * @param onComplete A function that gets called when the subscription is complete, and will not send any more values. This function will also get called if an error occurs and onError is not defined.\n *\n * @return {Subscription} A Subscription object that can be used to manage the subscription.\n */\n subscribe(onNext: (value: T) => any, onError?: (error: any) => any, onComplete?: (completeValue?: any) => void): Subscription;\n [Symbol.observable](): this;\n}\nexport interface ObservableConstructor {\n /**\n * Create a new observerable with a subscriber function. The subscriber function will get called with a\n * SubscriptionObserver parameter for controlling the subscription. I a function is returned, it will be\n * run when the subscription is complete.\n *\n * @param subscriber The subscription function to be called when observers are subscribed\n *\n * @example\n * ```ts\n * const source = new Observer((observer) => {\n * observer.next(1);\n * observer.next(2);\n * observer.next(3);\n * });\n * ```ts\n */\n new (subscriber: Subscriber): Observable;\n /**\n * Create an Observable from another object. If the object is in itself Observable, the object will be returned.\n * Otherwise, the value will be wrapped in an Observable. If the object is iterable, an Observable will be created\n * that emits each item of the iterable.\n *\n * @param item The item to be turned into an Observable\n * @return An observable for the item you passed in\n */\n from(item: Iterable | ArrayLike | ObservableObject): Observable;\n /**\n * Create an Observable from a list of values.\n *\n * @param items The values to be emitted\n * @return An Observable that will emit the specified values\n *\n * @example\n * ```ts\n * let source = Observable.of(1, 2, 3);\n * // will emit three separate values, 1, 2, and 3.\n * ```\n */\n of(...items: T[]): Observable;\n}\n/**\n * An object that implements a Symbol.observerable method.\n */\nexport interface ObservableObject {\n [Symbol.observable]: () => any;\n}\n/**\n * Handles events emitted from the subscription\n */\nexport interface Observer {\n /**\n * Called to handle a single emitted event.\n *\n * @param value The value that was emitted.\n */\n next?(value: T): any;\n /**\n * An optional method to be called when the subscription starts (before any events are emitted).\n * @param observer\n */\n start?(observer: Subscription): void;\n /**\n * An optional method to be called if an error occurs during subscription or handling.\n *\n * @param errorValue The error\n */\n error?(errorValue: any): any;\n /**\n * An optional method to be called when the subscription is completed (unless an error occurred and the error method was specified)\n *\n * @param completeValue The value passed to the completion method.\n */\n complete?(completeValue?: any): void;\n}\n/**\n * Describes an object that can be subscribed to\n */\nexport interface Subscribable {\n subscribe(observer: Observer): Subscription;\n subscribe(onNext: (value: T) => any, onError?: (error: any) => any, onComplete?: (completeValue?: any) => void): Subscription;\n}\nexport interface Subscriber {\n (observer: SubscriptionObserver): (() => void) | void | {\n unsubscribe: () => void;\n };\n}\n/**\n * Handles an individual subscription to an Observable.\n */\nexport interface Subscription {\n /**\n * Whether or not the subscription is closed. Closed subscriptions will not emit values.\n */\n closed: boolean;\n /**\n * A function to call to close the subscription. Calling this will call any associated tear down methods.\n */\n unsubscribe: (() => void);\n}\n/**\n * An object used to control a single subscription and an observer.\n */\nexport interface SubscriptionObserver {\n /**\n * Whether or not the subscription is closed.\n */\n readonly closed: boolean;\n /**\n * Emit an event to the observer.\n *\n * @param value The value to be emitted.\n */\n next(value: T): any;\n /**\n * Report an error. The subscription will be closed after an error has occurred.\n *\n * @param errorValue The error to be reported.\n */\n error(errorValue: any): any;\n /**\n * Report completion of the subscription. The subscription will be closed, and no new values will be emitted,\n * after completion.\n *\n * @param completeValue A value to pass to the completion handler.\n */\n complete(completeValue?: any): void;\n}\nexport declare let Observable: ObservableConstructor;\nexport default Observable;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/shim/Promise.d.ts", + "text": "import './Symbol';\n/**\n * Executor is the interface for functions used to initialize a Promise.\n */\nexport interface Executor {\n /**\n * The executor for the promise\n *\n * @param resolve The resolver callback of the promise\n * @param reject The rejector callback of the promise\n */\n (resolve: (value?: T | PromiseLike) => void, reject: (reason?: any) => void): void;\n}\nexport declare let ShimPromise: typeof Promise;\nexport declare const isThenable: (value: any) => value is PromiseLike;\nexport default ShimPromise;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/shim/string.d.ts", + "text": "export interface StringNormalize {\n /**\n * Returns the String value result of normalizing the string into the normalization form\n * named by form as specified in Unicode Standard Annex #15, Unicode Normalization Forms.\n * @param target The target string\n * @param form Applicable values: \"NFC\", \"NFD\", \"NFKC\", or \"NFKD\", If not specified default\n * is \"NFC\"\n */\n (target: string, form: 'NFC' | 'NFD' | 'NFKC' | 'NFKD'): string;\n /**\n * Returns the String value result of normalizing the string into the normalization form\n * named by form as specified in Unicode Standard Annex #15, Unicode Normalization Forms.\n * @param target The target string\n * @param form Applicable values: \"NFC\", \"NFD\", \"NFKC\", or \"NFKD\", If not specified default\n * is \"NFC\"\n */\n (target: string, form?: string): string;\n}\n/**\n * The minimum location of high surrogates\n */\nexport declare const HIGH_SURROGATE_MIN = 55296;\n/**\n * The maximum location of high surrogates\n */\nexport declare const HIGH_SURROGATE_MAX = 56319;\n/**\n * The minimum location of low surrogates\n */\nexport declare const LOW_SURROGATE_MIN = 56320;\n/**\n * The maximum location of low surrogates\n */\nexport declare const LOW_SURROGATE_MAX = 57343;\n/**\n * Return the String value whose elements are, in order, the elements in the List elements.\n * If length is 0, the empty string is returned.\n * @param codePoints The code points to generate the string\n */\nexport declare let fromCodePoint: (...codePoints: number[]) => string;\n/**\n * `raw` is intended for use as a tag function of a Tagged Template String. When called\n * as such the first argument will be a well formed template call site object and the rest\n * parameter will contain the substitution values.\n * @param template A well-formed template string call site representation.\n * @param substitutions A set of substitution values.\n */\nexport declare let raw: (template: TemplateStringsArray, ...substitutions: any[]) => string;\n/**\n * Returns a nonnegative integer Number less than 1114112 (0x110000) that is the code point\n * value of the UTF-16 encoded code point starting at the string element at position pos in\n * the String resulting from converting this object to a String.\n * If there is no element at that position, the result is undefined.\n * If a valid UTF-16 surrogate pair does not begin at pos, the result is the code unit at pos.\n */\nexport declare let codePointAt: (target: string, pos?: number) => number | undefined;\n/**\n * Returns true if the sequence of elements of searchString converted to a String is the\n * same as the corresponding elements of this object (converted to a String) starting at\n * endPosition – length(this). Otherwise returns false.\n */\nexport declare let endsWith: (target: string, searchString: string, endPosition?: number) => boolean;\n/**\n * Returns true if searchString appears as a substring of the result of converting this\n * object to a String, at one or more positions that are\n * greater than or equal to position; otherwise, returns false.\n * @param target The target string\n * @param searchString search string\n * @param position If position is undefined, 0 is assumed, so as to search all of the String.\n */\nexport declare let includes: (target: string, searchString: string, position?: number) => boolean;\n/**\n * Returns the String value result of normalizing the string into the normalization form\n * named by form as specified in Unicode Standard Annex #15, Unicode Normalization Forms.\n * @param target The target string\n * @param form Applicable values: \"NFC\", \"NFD\", \"NFKC\", or \"NFKD\", If not specified default\n * is \"NFC\"\n */\nexport declare let normalize: StringNormalize;\n/**\n * Returns a String value that is made from count copies appended together. If count is 0,\n * T is the empty String is returned.\n * @param count number of copies to append\n */\nexport declare let repeat: (target: string, count?: number) => string;\n/**\n * Returns true if the sequence of elements of searchString converted to a String is the\n * same as the corresponding elements of this object (converted to a String) starting at\n * position. Otherwise returns false.\n */\nexport declare let startsWith: (target: string, searchString: string, position?: number) => boolean;\n/**\n * Pads the current string with a given string (possibly repeated) so that the resulting string reaches a given length.\n * The padding is applied from the end (right) of the current string.\n *\n * @param target The target string\n * @param maxLength The length of the resulting string once the current string has been padded.\n * If this parameter is smaller than the current string's length, the current string will be returned as it is.\n *\n * @param fillString The string to pad the current string with.\n * If this string is too long, it will be truncated and the left-most part will be applied.\n * The default value for this parameter is \" \" (U+0020).\n */\nexport declare let padEnd: (target: string, maxLength: number, fillString?: string) => string;\n/**\n * Pads the current string with a given string (possibly repeated) so that the resulting string reaches a given length.\n * The padding is applied from the start (left) of the current string.\n *\n * @param target The target string\n * @param maxLength The length of the resulting string once the current string has been padded.\n * If this parameter is smaller than the current string's length, the current string will be returned as it is.\n *\n * @param fillString The string to pad the current string with.\n * If this string is too long, it will be truncated and the left-most part will be applied.\n * The default value for this parameter is \" \" (U+0020).\n */\nexport declare let padStart: (target: string, maxLength: number, fillString?: string) => string;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/shim/Set.d.ts", + "text": "import { IterableIterator, Iterable } from './iterator';\nimport './Symbol';\nexport interface Set {\n /**\n * Adds a `value` to the `Set`\n *\n * @param value The value to add to the set\n * @returns The instance of the `Set`\n */\n add(value: T): this;\n /**\n * Removes all the values from the `Set`.\n */\n clear(): void;\n /**\n * Removes a `value` from the set\n *\n * @param value The value to be removed\n * @returns `true` if the value was removed\n */\n delete(value: T): boolean;\n /**\n * Returns an iterator that yields each entry.\n *\n * @return An iterator for each key/value pair in the instance.\n */\n entries(): IterableIterator<[T, T]>;\n /**\n * Executes a given function for each set entry. The function\n * is invoked with three arguments: the element value, the\n * element key, and the associated `Set` instance.\n *\n * @param callbackfn The function to execute for each map entry,\n * @param thisArg The value to use for `this` for each execution of the calback\n */\n forEach(callbackfn: (value: T, value2: T, set: Set) => void, thisArg?: any): void;\n /**\n * Identifies if a value is part of the set.\n *\n * @param value The value to check\n * @returns `true` if the value is part of the set otherwise `false`\n */\n has(value: T): boolean;\n /**\n * Despite its name, returns an iterable of the values in the set,\n */\n keys(): IterableIterator;\n /**\n * Returns the number of values in the `Set`.\n */\n readonly size: number;\n /**\n * Returns an iterable of values in the set.\n */\n values(): IterableIterator;\n /** Iterates over values in the set. */\n [Symbol.iterator](): IterableIterator;\n readonly [Symbol.toStringTag]: 'Set';\n}\nexport interface SetConstructor {\n /**\n * Creates a new Set\n *\n * @constructor\n */\n new (): Set;\n /**\n * Creates a new Set\n *\n * @constructor\n *\n * @param iterator The iterable structure to initialize the set with\n */\n new (iterator?: T[]): Set;\n /**\n * Creates a new Set\n *\n * @constructor\n *\n * @param iterator The iterable structure to initialize the set with\n */\n new (iterator: Iterable): Set;\n readonly prototype: Set;\n}\nexport declare let Set: SetConstructor;\nexport default Set;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/shim/support/decorators.d.ts", + "text": "/**\n * A class decorator that provides either a native class or a shimmed class based on a feature\n * test\n * @param feature The has feature to check\n * @param trueClass The class to use if feature test returns `true`\n * @param falseClass The class to use if the feature test returns `false` or is not defined\n */\nexport declare function hasClass(feature: string, trueClass: Function, falseClass: Function): ClassDecorator;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/shim/support/has.d.ts", + "text": "import has from '@dojo/has/has';\nexport default has;\nexport * from '@dojo/has/has';\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/shim/support/queue.d.ts", + "text": "import { Handle } from '../interfaces';\nexport interface QueueItem {\n isActive: boolean;\n callback: null | ((...args: any[]) => any);\n}\n/**\n * Schedules a callback to the macrotask queue.\n *\n * @param callback the function to be queued and later executed.\n * @returns An object with a `destroy` method that, when called, prevents the registered callback from executing.\n */\nexport declare const queueTask: (callback: (...args: any[]) => any) => Handle;\n/**\n * Schedules an animation task with `window.requestAnimationFrame` if it exists, or with `queueTask` otherwise.\n *\n * Since requestAnimationFrame's behavior does not match that expected from `queueTask`, it is not used there.\n * However, at times it makes more sense to delegate to requestAnimationFrame; hence the following method.\n *\n * @param callback the function to be queued and later executed.\n * @returns An object with a `destroy` method that, when called, prevents the registered callback from executing.\n */\nexport declare const queueAnimationTask: (callback: (...args: any[]) => any) => Handle;\n/**\n * Schedules a callback to the microtask queue.\n *\n * Any callbacks registered with `queueMicroTask` will be executed before the next macrotask. If no native\n * mechanism for scheduling macrotasks is exposed, then any callbacks will be fired before any macrotask\n * registered with `queueTask` or `queueAnimationTask`.\n *\n * @param callback the function to be queued and later executed.\n * @returns An object with a `destroy` method that, when called, prevents the registered callback from executing.\n */\nexport declare let queueMicroTask: (callback: (...args: any[]) => any) => Handle;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/shim/Symbol.d.ts", + "text": "declare global {\n interface SymbolConstructor {\n observable: symbol;\n }\n}\nexport declare let Symbol: SymbolConstructor;\n/**\n * A custom guard function that determines if an object is a symbol or not\n * @param {any} value The value to check to see if it is a symbol or not\n * @return {is symbol} Returns true if a symbol or not (and narrows the type guard)\n */\nexport declare function isSymbol(value: any): value is symbol;\nexport default Symbol;\nexport {};\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/shim/support/util.d.ts", + "text": "/**\n * Helper function to generate a value property descriptor\n *\n * @param value The value the property descriptor should be set to\n * @param enumerable If the property should be enumberable, defaults to false\n * @param writable If the property should be writable, defaults to true\n * @param configurable If the property should be configurable, defaults to true\n * @return The property descriptor object\n */\nexport declare function getValueDescriptor(value: T, enumerable?: boolean, writable?: boolean, configurable?: boolean): TypedPropertyDescriptor;\n/**\n * A helper function which wraps a function where the first argument becomes the scope\n * of the call\n *\n * @param nativeFunction The source function to be wrapped\n */\nexport declare function wrapNative(nativeFunction: (arg1: U) => R): (target: T, arg1: U) => R;\nexport declare function wrapNative(nativeFunction: (arg1: U, arg2: V) => R): (target: T, arg1: U, arg2: V) => R;\nexport declare function wrapNative(nativeFunction: (arg1: U, arg2: V, arg3: W) => R): (target: T, arg1: U, arg2: V, arg3: W) => R;\nexport declare function wrapNative(nativeFunction: (arg1: U, arg2: V, arg3: W) => R): (target: T, arg1: U, arg2: V, arg3: W) => R;\nexport declare function wrapNative(nativeFunction: (arg1: U, arg2: V, arg3: W, arg4: Y) => R): (target: T, arg1: U, arg2: V, arg3: W, arg4: Y) => R;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/shim/tslib.d.ts", + "text": "", + "type": 2 + }, + { + "name": "node_modules/@dojo/shim/util/amd.d.ts", + "text": "declare function addIfNotPresent(packages: any[], newPackage: any): void;\ndeclare function shimAmdDependencies(config: any): any;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/shim/WeakMap.d.ts", + "text": "import { Iterable } from './iterator';\nimport './Symbol';\nexport interface WeakMap {\n /**\n * Remove a `key` from the map\n *\n * @param key The key to remove\n * @return `true` if the value was removed, otherwise `false`\n */\n delete(key: K): boolean;\n /**\n * Retrieve the value, based on the supplied `key`\n *\n * @param key The key to retrieve the `value` for\n * @return the `value` based on the `key` if found, otherwise `false`\n */\n get(key: K): V | undefined;\n /**\n * Determines if a `key` is present in the map\n *\n * @param key The `key` to check\n * @return `true` if the key is part of the map, otherwise `false`.\n */\n has(key: K): boolean;\n /**\n * Set a `value` for a particular `key`.\n *\n * @param key The `key` to set the `value` for\n * @param value The `value` to set\n * @return the instances\n */\n set(key: K, value: V): this;\n readonly [Symbol.toStringTag]: 'WeakMap';\n}\nexport interface WeakMapConstructor {\n /**\n * Create a new instance of a `WeakMap`\n *\n * @constructor\n */\n new (): WeakMap;\n /**\n * Create a new instance of a `WeakMap`\n *\n * @constructor\n *\n * @param iterable An iterable that contains yields up key/value pair entries\n */\n new (iterable?: [K, V][]): WeakMap;\n /**\n * Create a new instance of a `WeakMap`\n *\n * @constructor\n *\n * @param iterable An iterable that contains yields up key/value pair entries\n */\n new (iterable: Iterable<[K, V]>): WeakMap;\n readonly prototype: WeakMap;\n}\nexport declare let WeakMap: WeakMapConstructor;\nexport default WeakMap;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/stores/process.d.ts", + "text": "import { PatchOperation } from './state/Patch';\nimport { Store } from './Store';\n/**\n * The arguments passed to a `Command`\n */\nexport interface CommandRequest {\n get(pointer: string): T;\n payload: any[];\n}\n/**\n * Command that returns patch operations based on the command request\n */\nexport interface Command {\n (request?: CommandRequest): Promise | PatchOperation[];\n}\n/**\n * Transformer function\n */\nexport interface Transformer {\n (payload: any): any;\n}\n/**\n * A process that returns an executor using a Store and Transformer\n */\nexport interface Process {\n (store: Store, transformer?: Transformer): ProcessExecutor;\n}\n/**\n * Represents an error from a ProcessExecutor\n */\nexport interface ProcessError {\n error: Error;\n command?: Command[] | Command;\n}\n/**\n * Represents a successful result from a ProcessExecutor\n */\nexport interface ProcessResult {\n executor: (process: Process, payload?: any, payloadTransformer?: Transformer) => Promise;\n undo: Undo;\n operations: PatchOperation[];\n apply: (operations: PatchOperation[], invalidate?: boolean) => PatchOperation[];\n get: (pointer: string) => T;\n payload: any;\n}\n/**\n * Runs a process for the given arguments.\n */\nexport interface ProcessExecutor {\n (payload?: T): Promise;\n}\n/**\n * Callback for a process, returns an error as the first argument\n */\nexport interface ProcessCallback {\n (error: ProcessError | null, result: ProcessResult): void;\n}\n/**\n * Function for undoing operations\n */\nexport interface Undo {\n (): void;\n}\n/**\n * ProcessCallbackDecorator callback\n */\nexport interface ProcessCallbackDecorator {\n (callback?: ProcessCallback): ProcessCallback;\n}\n/**\n * CreateProcess factory interface\n */\nexport interface CreateProcess {\n (commands: (Command[] | Command)[], callback?: ProcessCallback): Process;\n}\n/**\n * Factories a process using the provided commands and an optional callback. Returns an executor used to run the process.\n *\n * @param commands The commands for the process\n * @param callback Callback called after the process is completed\n */\nexport declare function createProcess(commands: (Command[] | Command)[], callback?: ProcessCallback): Process;\n/**\n * Creates a process factory that will create processes with the specified callback decorators applied.\n * @param callbackDecorators array of process callback decorators to be used by the return factory.\n */\nexport declare function createProcessFactoryWith(callbackDecorators: ProcessCallbackDecorator[]): CreateProcess;\n/**\n * Creates a `ProcessCallbackDecorator` from a `ProcessCallback`.\n * @param processCallback the process callback to convert to a decorator.\n */\nexport declare function createCallbackDecorator(processCallback: ProcessCallback): ProcessCallbackDecorator;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/stores/extras.d.ts", + "text": "import { ProcessCallbackDecorator } from './process';\n/**\n * Undo manager interface\n */\nexport interface UndoManager {\n undoCollector: ProcessCallbackDecorator;\n undoer: () => void;\n}\n/**\n * Factory function that returns an undoer function that will undo the last executed process and a\n * higher order collector function that can be used as the process callback.\n */\nexport declare function createUndoManager(): UndoManager;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/stores/state/operations.d.ts", + "text": "import { RemovePatchOperation, ReplacePatchOperation, AddPatchOperation, TestPatchOperation } from './Patch';\nexport declare function add(path: string, value: any): AddPatchOperation;\nexport declare function replace(path: string, value: any): ReplacePatchOperation;\nexport declare function remove(path: string): RemovePatchOperation;\nexport declare function test(path: string, value: any): TestPatchOperation;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/stores/state/Patch.d.ts", + "text": "import { Pointer } from './Pointer';\nexport declare enum OperationType {\n ADD = \"add\",\n REMOVE = \"remove\",\n REPLACE = \"replace\",\n TEST = \"test\",\n}\nexport interface BaseOperation {\n op: OperationType;\n path: Pointer;\n}\nexport interface AddPatchOperation extends BaseOperation {\n op: OperationType.ADD;\n value: T;\n}\nexport interface RemovePatchOperation extends BaseOperation {\n op: OperationType.REMOVE;\n}\nexport interface ReplacePatchOperation extends BaseOperation {\n op: OperationType.REPLACE;\n value: T;\n}\nexport interface TestPatchOperation extends BaseOperation {\n op: OperationType.TEST;\n value: T;\n}\nexport declare type PatchOperation = AddPatchOperation | RemovePatchOperation | ReplacePatchOperation | TestPatchOperation;\nexport interface PatchResult {\n object: any;\n undoOperations: PatchOperation[];\n}\nexport declare function isObject(value: any): value is Object;\nexport declare function isEqual(a: any, b: any): boolean;\nexport declare class Patch {\n private _operations;\n constructor(operations: PatchOperation | PatchOperation[]);\n apply(object: any): PatchResult;\n}\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/stores/state/Pointer.d.ts", + "text": "export declare function decode(segment: string): string;\nexport interface PointerTarget {\n object: any;\n target: any;\n segment: string;\n}\nexport declare function walk(segments: string[], object: any, clone?: boolean): PointerTarget;\nexport declare class Pointer {\n private readonly _segments;\n constructor(segments: string | string[]);\n readonly segments: string[];\n readonly path: string;\n get(object: any): any;\n}\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/stores/Store.d.ts", + "text": "import { Evented } from '@dojo/core/Evented';\nimport { PatchOperation } from './state/Patch';\n/**\n * Application state store\n */\nexport declare class Store extends Evented {\n /**\n * The private state object\n */\n private _state;\n /**\n * Returns the state at a specific pointer path location.\n *\n * @param pointer The StorePointer path to the state that is required.\n */\n get: (pointer: string) => T;\n /**\n * Applies store operations to state and returns the undo operations\n */\n apply: (operations: PatchOperation[], invalidate?: boolean) => PatchOperation[];\n /**\n * Emits an invalidation event\n */\n invalidate(): any;\n}\nexport default Store;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widget-core/animations/cssTransitions.d.ts", + "text": "import { VirtualDomProperties } from './../interfaces';\ndeclare const _default: {\n enter: (node: HTMLElement, properties: VirtualDomProperties, enterAnimation: string) => void;\n exit: (node: HTMLElement, properties: VirtualDomProperties, exitAnimation: string, removeNode: () => void) => void;\n};\nexport default _default;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widget-core/Container.d.ts", + "text": "import { WidgetBase } from './WidgetBase';\nimport { GetProperties } from './decorators/inject';\nimport { Constructor, RegistryLabel } from './interfaces';\nexport declare type Container = Constructor>>;\nexport declare function Container(component: Constructor | RegistryLabel, name: RegistryLabel, {getProperties}: {\n getProperties: GetProperties;\n}): Container;\nexport default Container;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widget-core/customElements.d.ts", + "text": "import { Constructor, VirtualDomProperties, WidgetProperties } from './interfaces';\nimport { WidgetBase } from './WidgetBase';\nimport { ProjectorMixin } from './mixins/Projector';\n/**\n * @type CustomElementAttributeDescriptor\n *\n * Describes a custom element attribute\n *\n * @property attributeName The name of the attribute on the DOM element\n * @property propertyName The name of the property on the widget\n * @property value A function that takes a string or null value, and returns a new value. The widget's property will be set to the new value.\n */\nexport interface CustomElementAttributeDescriptor {\n attributeName: string;\n propertyName?: string;\n value?: (value: string | null) => any;\n}\n/**\n * @type CustomElementPropertyDescriptor\n *\n * Describes a widget property exposed via a custom element\n *\n * @property propertyName The name of the property on the DOM element\n * @property widgetPropertyName The name of the property on the widget\n * @property getValue A transformation function on the widget's property value\n * @property setValue A transformation function on the DOM elements property value\n */\nexport interface CustomElementPropertyDescriptor {\n propertyName: string;\n widgetPropertyName?: string;\n getValue?: (value: any) => any;\n setValue?: (value: any) => any;\n}\n/**\n * @type CustomElementEventDescriptor\n *\n * Describes a custom element event\n *\n * @property propertyName The name of the property on the widget that takes a function\n * @property eventName The type of the event to emit (it will be a CustomEvent object of this type)\n */\nexport interface CustomElementEventDescriptor {\n propertyName: string;\n eventName: string;\n}\n/**\n * Defines a custom element initializing function. Passes in initial properties so they can be extended\n * by the initializer.\n */\nexport interface CustomElementInitializer {\n (properties: WidgetProperties): void;\n}\nexport declare enum ChildrenType {\n DOJO = \"DOJO\",\n ELEMENT = \"ELEMENT\",\n}\n/**\n * @type CustomElementDescriptor\n *\n * Describes a custom element.\n *\n * @property tagName The tag name to register this widget under. Tag names must contain a \"-\"\n * @property widgetConstructor widget Constructor that will return the widget to be wrapped in a custom element\n * @property attributes A list of attributes to define on this element\n * @property properties A list of properties to define on this element\n * @property events A list of events to expose on this element\n * @property initialization A method to run to set custom properties on the wrapped widget\n */\nexport interface CustomElementDescriptor {\n /**\n * The name of the custom element tag\n */\n tagName: string;\n /**\n * Widget constructor that will create the widget\n */\n widgetConstructor: Constructor>;\n /**\n * List of attributes on the custom element to map to widget properties\n */\n attributes?: CustomElementAttributeDescriptor[];\n /**\n * List of widget properties to expose as properties on the custom element\n */\n properties?: CustomElementPropertyDescriptor[];\n /**\n * List of events to expose\n */\n events?: CustomElementEventDescriptor[];\n /**\n * Initialization function called before the widget is created (for custom property setting)\n */\n initialization?: CustomElementInitializer;\n /**\n * The type of children that the custom element accepts\n */\n childrenType?: ChildrenType;\n}\n/**\n * @type CustomElement\n *\n * A custom element extends upon a regular HTMLElement but adds fields for describing and wrapping a widget constructor.\n *\n * @property getWidgetConstructor Return the widget constructor for this element\n * @property getDescriptor Return the element descriptor for this element\n * @property getWidgetInstance Return the widget instance that this element wraps\n * @property setWidgetInstance Set the widget instance for this element\n */\nexport interface CustomElement extends HTMLElement {\n getWidgetConstructor(): Constructor>;\n getDescriptor(): CustomElementDescriptor;\n getWidgetInstance(): ProjectorMixin;\n setWidgetInstance(instance: ProjectorMixin): void;\n}\n/**\n * Properties for DomToWidgetWrapper\n */\nexport declare type DomToWidgetWrapperProperties = VirtualDomProperties & WidgetProperties;\n/**\n * DomToWidgetWrapper type\n */\nexport declare type DomToWidgetWrapper = Constructor>;\n/**\n * DomToWidgetWrapper HOC\n *\n * @param domNode The dom node to wrap\n */\nexport declare function DomToWidgetWrapper(domNode: CustomElement): DomToWidgetWrapper;\nexport declare let customEventClass: any;\n/**\n * Called by HTMLElement subclass to initialize itself with the appropriate attributes/properties/events.\n *\n * @param element The element to initialize.\n */\nexport declare function initializeElement(element: CustomElement): () => void;\n/**\n * Called by HTMLElement subclass when an HTML attribute has changed.\n *\n * @param element The element whose attributes are being watched\n * @param name The name of the attribute\n * @param newValue The new value of the attribute\n * @param oldValue The old value of the attribute\n */\nexport declare function handleAttributeChanged(element: CustomElement, name: string, newValue: string | null, oldValue: string | null): void;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widget-core/d.d.ts", + "text": "import { Constructor, DefaultWidgetBaseInterface, DeferredVirtualProperties, DNode, HNode, RegistryLabel, VirtualDomProperties, WidgetBaseInterface, WNode } from './interfaces';\n/**\n * The symbol identifier for a WNode type\n */\nexport declare const WNODE: symbol;\n/**\n * The symbol identifier for a HNode type\n */\nexport declare const HNODE: symbol;\n/**\n * Helper function that returns true if the `DNode` is a `WNode` using the `type` property\n */\nexport declare function isWNode(child: DNode): child is WNode;\n/**\n * Helper function that returns true if the `DNode` is a `HNode` using the `type` property\n */\nexport declare function isHNode(child: DNode): child is HNode;\n/**\n * Generic decorate function for DNodes. The nodes are modified in place based on the provided predicate\n * and modifier functions.\n *\n * The children of each node are flattened and added to the array for decoration.\n *\n * If no predicate is supplied then the modifier will be executed on all nodes.\n */\nexport declare function decorate(dNodes: DNode, modifier: (dNode: DNode) => void, predicate?: (dNode: DNode) => boolean): DNode;\nexport declare function decorate(dNodes: DNode[], modifier: (dNode: DNode) => void, predicate?: (dNode: DNode) => boolean): DNode[];\nexport declare function decorate(dNodes: DNode | DNode[], modifier: (dNode: DNode) => void, predicate?: (dNode: DNode) => boolean): DNode | DNode[];\n/**\n * Wrapper function for calls to create a widget.\n */\nexport declare function w(widgetConstructor: Constructor | RegistryLabel, properties: W['properties'], children?: W['children']): WNode;\n/**\n * Wrapper function for calls to create HNodes.\n */\nexport declare function v(tag: string, properties: VirtualDomProperties | DeferredVirtualProperties, children?: DNode[]): HNode;\nexport declare function v(tag: string, children: undefined | DNode[]): HNode;\nexport declare function v(tag: string): HNode;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widget-core/decorators/afterRender.d.ts", + "text": "/**\n * Decorator that can be used to register a function to run as an aspect to `render`\n */\nexport declare function afterRender(method: Function): (target: any) => void;\nexport declare function afterRender(): (target: any, propertyKey: string) => void;\nexport default afterRender;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widget-core/decorators/beforeProperties.d.ts", + "text": "import { BeforeProperties } from './../interfaces';\n/**\n * Decorator that adds the function passed of target method to be run\n * in the `beforeProperties` lifecycle.\n */\nexport declare function beforeProperties(method: BeforeProperties): (target: any) => void;\nexport declare function beforeProperties(): (target: any, propertyKey: string) => void;\nexport default beforeProperties;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widget-core/decorators/beforeRender.d.ts", + "text": "/**\n * Decorator that can be used to register a reducer function to run as an aspect before to `render`\n */\nexport declare function beforeRender(method: Function): (target: any) => void;\nexport declare function beforeRender(): (target: any, propertyKey: string) => void;\nexport default beforeRender;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widget-core/decorators/diffProperty.d.ts", + "text": "import { DiffPropertyFunction } from './../interfaces';\n/**\n * Decorator that can be used to register a function as a specific property diff\n *\n * @param propertyName The name of the property of which the diff function is applied\n * @param diffType The diff type, default is DiffType.AUTO.\n * @param diffFunction A diff function to run if diffType if DiffType.CUSTOM\n */\nexport declare function diffProperty(propertyName: string, diffFunction: DiffPropertyFunction, reactionFunction?: Function): (target: any, propertyKey?: string | undefined, descriptor?: PropertyDescriptor | undefined) => void;\nexport default diffProperty;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widget-core/decorators/handleDecorator.d.ts", + "text": "/**\n * Generic decorator handler to take care of whether or not the decorator was called at the class level\n * or the method level.\n *\n * @param handler\n */\nexport declare function handleDecorator(handler: (target: any, propertyKey?: string) => void): (target: any, propertyKey?: string | undefined, descriptor?: PropertyDescriptor | undefined) => void;\nexport default handleDecorator;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widget-core/decorators/inject.d.ts", + "text": "import { RegistryLabel } from './../interfaces';\n/**\n * Defines the contract requires for the get properties function\n * used to map the injected properties.\n */\nexport interface GetProperties {\n (payload: any, properties: T): T;\n}\n/**\n * Defines the inject configuration required for use of the `inject` decorator\n */\nexport interface InjectConfig {\n /**\n * The label of the registry injector\n */\n name: RegistryLabel;\n /**\n * Function that returns propertues to inject using the passed properties\n * and the injected payload.\n */\n getProperties: GetProperties;\n}\n/**\n * Decorator retrieves an injector from an available registry using the name and\n * calls the `getProperties` function with the payload from the injector\n * and current properties with the the injected properties returned.\n *\n * @param InjectConfig the inject configuration\n */\nexport declare function inject({name, getProperties}: InjectConfig): (target: any, propertyKey?: string | undefined, descriptor?: PropertyDescriptor | undefined) => void;\nexport default inject;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widget-core/diff.d.ts", + "text": "import { PropertyChangeRecord } from './interfaces';\nexport declare function always(previousProperty: any, newProperty: any): PropertyChangeRecord;\nexport declare function ignore(previousProperty: any, newProperty: any): PropertyChangeRecord;\nexport declare function reference(previousProperty: any, newProperty: any): PropertyChangeRecord;\nexport declare function shallow(previousProperty: any, newProperty: any): PropertyChangeRecord;\nexport declare function auto(previousProperty: any, newProperty: any): PropertyChangeRecord;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widget-core/Injector.d.ts", + "text": "import { Evented } from '@dojo/core/Evented';\nexport declare class Injector extends Evented {\n private _payload;\n constructor(payload: T);\n get(): T;\n set(payload: T): void;\n}\nexport default Injector;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widget-core/interfaces.d.ts", + "text": "import { Destroyable } from '@dojo/core/Destroyable';\nimport { Evented } from '@dojo/core/Evented';\nimport { EventTargettedObject } from '@dojo/interfaces/core';\nimport Map from '@dojo/shim/Map';\nimport WeakMap from '@dojo/shim/WeakMap';\n\n/**\n * Generic constructor type\n */\nexport type Constructor = new (...args: any[]) => T;\n\n/**\n * Typed target event\n */\nexport interface TypedTargetEvent extends Event {\n\ttarget: T;\n}\n\n/*\n These are the event handlers.\n */\nexport type EventHandlerResult = boolean | void;\n\nexport interface EventHandler {\n\t(event?: Event): EventHandlerResult;\n}\n\nexport interface FocusEventHandler {\n\t(event?: FocusEvent): EventHandlerResult;\n}\n\nexport interface KeyboardEventHandler {\n\t(event?: KeyboardEvent): EventHandlerResult;\n}\n\nexport interface MouseEventHandler {\n\t(event?: MouseEvent): EventHandlerResult;\n}\n\nexport type BlurEventHandler = FocusEventHandler;\nexport type ChangeEventHandler = EventHandler;\nexport type ClickEventHandler = MouseEventHandler;\nexport type DoubleClickEventHandler = MouseEventHandler;\nexport type InputEventHandler = EventHandler;\nexport type KeyDownEventHandler = KeyboardEventHandler;\nexport type KeyPressEventHandler = KeyboardEventHandler;\nexport type KeyUpEventHandler = KeyboardEventHandler;\nexport type LoadEventHandler = EventHandler;\nexport type MouseDownEventHandler = MouseEventHandler;\nexport type MouseEnterEventHandler = MouseEventHandler;\nexport type MouseLeaveEventHandler = MouseEventHandler;\nexport type MouseMoveEventHandler = MouseEventHandler;\nexport type MouseOutEventHandler = MouseEventHandler;\nexport type MouseOverEventHandler = MouseEventHandler;\nexport type MouseUpEventHandler = MouseEventHandler;\nexport type MouseWheelEventHandler = (event?: MouseWheelEvent | WheelEvent) => EventHandlerResult;\nexport type ScrollEventHandler = (event?: UIEvent) => EventHandlerResult;\nexport type SubmitEventHandler = EventHandler;\n\nexport interface TransitionStrategy {\n\tenter(element: Element, properties: VirtualDomProperties, enterAnimation: string): void;\n\texit(element: Element, properties: VirtualDomProperties, exitAnimation: string, removeElement: () => void): void;\n}\n\nexport interface ProjectorOptions {\n\treadonly transitions?: TransitionStrategy;\n\tstyleApplyer?(domNode: HTMLElement, styleName: string, value: string): void;\n}\n\nexport interface ProjectionOptions extends ProjectorOptions {\n\tnamespace?: string;\n\tdeferredRenderCallbacks: Function [];\n\tafterRenderCallbacks: Function[];\n\tmerge: boolean;\n\tsync: boolean;\n\tmergeElement?: Element;\n\tnodeMap: WeakMap>;\n\trootNode: Element;\n}\n\nexport interface Projection {\n\treadonly domNode: Element;\n\tupdate(updatedDNode: DNode | DNode[]): void;\n}\n\nexport type SupportedClassName = string | null | undefined;\n\nexport type DeferredVirtualProperties = (inserted: boolean) => VirtualDomProperties;\n\n/**\n * Animation controls are used to control the web animation that has been applied\n * to a vdom node.\n */\nexport interface AnimationControls {\n\tplay?: boolean;\n\tonFinish?: () => void;\n\tonCancel?: () => void;\n\treverse?: boolean;\n\tcancel?: boolean;\n\tfinish?: boolean;\n\tplaybackRate?: number;\n\tstartTime?: number;\n\tcurrentTime?: number;\n}\n\n/**\n * Animation timing properties passed to a new KeyframeEffect.\n */\nexport interface AnimationTimingProperties {\n\tduration?: number;\n\tdelay?: number;\n\tdirection?: 'normal' | 'reverse' | 'alternate' | 'alternate-reverse';\n\teasing?: string;\n\tendDelay?: number;\n\tfill?: 'none' | 'forwards' | 'backwards' | 'both' | 'auto';\n\titerations?: number;\n\titerationStart?: number;\n}\n\n/**\n * Animation propertiues that can be passed as vdom property `animate`\n */\nexport interface AnimationProperties {\n\tid: string;\n\teffects: any[];\n\tcontrols?: AnimationControls;\n\ttiming?: AnimationTimingProperties;\n}\n\n/**\n * Info returned by the `get` function on WebAnimation meta\n */\nexport interface AnimationInfo {\n\tcurrentTime: number;\n\tplayState: 'idle' | 'pending' | 'running' | 'paused' | 'finished';\n\tplaybackRate: number;\n\tstartTime: number;\n}\n\nexport interface VirtualDomProperties {\n\t/**\n\t * The animation to perform when this node is added to an already existing parent.\n\t * When this value is a string, you must pass a `projectionOptions.transitions` object when creating the\n\t * projector using [[createProjector]].\n\t * @param element - Element that was just added to the DOM.\n\t * @param properties - The properties object that was supplied to the [[h]] method\n\t */\n\tenterAnimation?: ((element: Element, properties?: VirtualDomProperties) => void) | string;\n\t/**\n\t * The animation to perform when this node is removed while its parent remains.\n\t * When this value is a string, you must pass a `projectionOptions.transitions` object when creating the projector using [[createProjector]].\n\t * @param element - Element that ought to be removed from the DOM.\n\t * @param removeElement - Function that removes the element from the DOM.\n\t * This argument is provided purely for convenience.\n\t * You may use this function to remove the element when the animation is done.\n\t * @param properties - The properties object that was supplied to the [[v]] method that rendered this [[HNode]] the previous time.\n\t */\n\texitAnimation?: ((element: Element, removeElement: () => void, properties?: VirtualDomProperties) => void) | string;\n\t/**\n\t * The animation to perform when the properties of this node change.\n\t * This also includes attributes, styles, css classes. This callback is also invoked when node contains only text and that text changes.\n\t * @param element - Element that was modified in the DOM.\n\t * @param properties - The last properties object that was supplied to the [[h]] method\n\t * @param previousProperties - The previous properties object that was supplied to the [[h]] method\n\t */\n\tupdateAnimation?: (element: Element, properties?: VirtualDomProperties, previousProperties?: VirtualDomProperties) => void;\n\t/**\n\t * Bind should not be defined.\n\t */\n\treadonly bind?: void;\n\t/**\n\t * Used to uniquely identify a DOM node among siblings.\n\t * A key is required when there are more children with the same selector and these children are added or removed dynamically.\n\t * NOTE: this does not have to be a string or number, a [[Component]] Object for instance is also possible.\n\t */\n\treadonly key?: Object;\n\t/**\n\t * An array of supported class names to be added to classList on a DOM node\n\t */\n\treadonly classes?: SupportedClassName | SupportedClassName[];\n\t/**\n\t * An object literal like `{height:'100px'}` which allows styles to be changed dynamically. All values must be strings.\n\t */\n\treadonly styles?: { [index: string]: string | null | undefined };\n\n\t// Pointer Events\n\tonpointermove?(ev?: PointerEvent): boolean | void;\n\tonpointerdown?(ev?: PointerEvent): boolean | void;\n\tonpointerup?(ev?: PointerEvent): boolean | void;\n\tonpointerover?(ev?: PointerEvent): boolean | void;\n\tonpointerout?(ev?: PointerEvent): boolean | void;\n\tonpointerenter?(ev?: PointerEvent): boolean | void;\n\tonpointerleave?(ev?: PointerEvent): boolean | void;\n\tonpointercancel?(ev?: PointerEvent): boolean | void;\n\t// For Pointer Event Polyfill see: https://github.com/jquery/PEP\n\treadonly 'touch-action'?: string;\n\t// From Element\n\tontouchcancel?(ev?: TouchEvent): boolean | void;\n\tontouchend?(ev?: TouchEvent): boolean | void;\n\tontouchmove?(ev?: TouchEvent): boolean | void;\n\tontouchstart?(ev?: TouchEvent): boolean | void;\n\t// From HTMLFormElement\n\treadonly action?: string;\n\treadonly encoding?: string;\n\treadonly enctype?: string;\n\treadonly method?: string;\n\treadonly name?: string;\n\treadonly target?: string;\n\t// From HTMLElement\n\tonblur?(ev?: FocusEvent): boolean | void;\n\tonchange?(ev?: Event): boolean | void;\n\tonclick?(ev?: MouseEvent): boolean | void;\n\tondblclick?(ev?: MouseEvent): boolean | void;\n\tonfocus?(ev?: FocusEvent): boolean | void;\n\toninput?(ev?: Event): boolean | void;\n\tonkeydown?(ev?: KeyboardEvent): boolean | void;\n\tonkeypress?(ev?: KeyboardEvent): boolean | void;\n\tonkeyup?(ev?: KeyboardEvent): boolean | void;\n\tonload?(ev?: Event): boolean | void;\n\tonmousedown?(ev?: MouseEvent): boolean | void;\n\tonmouseenter?(ev?: MouseEvent): boolean | void;\n\tonmouseleave?(ev?: MouseEvent): boolean | void;\n\tonmousemove?(ev?: MouseEvent): boolean | void;\n\tonmouseout?(ev?: MouseEvent): boolean | void;\n\tonmouseover?(ev?: MouseEvent): boolean | void;\n\tonmouseup?(ev?: MouseEvent): boolean | void;\n\tonmousewheel?(ev?: WheelEvent | MouseWheelEvent): boolean | void;\n\tonscroll?(ev?: UIEvent): boolean | void;\n\tonsubmit?(ev?: Event): boolean | void;\n\treadonly spellcheck?: boolean;\n\treadonly tabIndex?: number;\n\treadonly disabled?: boolean;\n\treadonly title?: string;\n\treadonly accessKey?: string;\n\treadonly id?: string;\n\t// From HTMLInputElement\n\treadonly type?: string;\n\treadonly autocomplete?: string;\n\treadonly checked?: boolean;\n\treadonly placeholder?: string;\n\treadonly readOnly?: boolean;\n\treadonly src?: string;\n\treadonly value?: string;\n\t// From HTMLImageElement\n\treadonly alt?: string;\n\treadonly srcset?: string;\n\t/**\n\t * Puts a non-interactive string of html inside the DOM node.\n\t *\n\t * Note: if you use innerHTML, cannot protect you from XSS vulnerabilities and you must make sure that the innerHTML value is safe.\n\t */\n\treadonly innerHTML?: string;\n\n\t/**\n\t * Everything that is not explicitly listed (properties and attributes that are either uncommon or custom).\n\t */\n\treadonly [index: string]: any;\n}\n\n/**\n * Type of the `WidgetRegistry` label\n */\nexport type RegistryLabel = string | symbol;\n\n/**\n * Base widget properties\n */\nexport interface WidgetProperties {\n\n\t/**\n\t * The key for a widget. Used to differentiate uniquely identify child widgets for\n\t * rendering and instance management\n\t */\n\tkey?: string | number;\n}\n\n/**\n * Widget properties that require a key\n */\nexport interface KeyedWidgetProperties extends WidgetProperties {\n\n\t/**\n\t * The key for a widget. Used to differentiate uniquely identify child widgets for\n\t * rendering and instance management\n\t */\n\tkey: string | number;\n}\n\n/**\n *\n */\ninterface CoreProperties {\n\n\t/**\n\t * The default registry for the projection\n\t */\n\tbaseRegistry: any;\n\n\t/**\n\t * The scope used to bind functions\n\t */\n\tbind: any;\n}\n\n/**\n * Wrapper for v\n */\nexport interface HNode {\n\t/**\n\t * Specified children\n\t */\n\tchildren?: DNode[];\n\n\t/**\n\t * HNode properties\n\t */\n\tproperties: VirtualDomProperties;\n\n\t/**\n\t * Deferred callback for HNode properties\n\t */\n\tdeferredPropertiesCallback?: DeferredVirtualProperties;\n\n\t/**\n\t * The tag of the HNode\n\t */\n\ttag: string;\n\n\t/**\n\t * The type of node\n\t */\n\ttype: symbol;\n\n\t/**\n\t * Text node string\n\t */\n\ttext?: string;\n}\n\n/**\n * Wrapper for `w`\n */\nexport interface WNode {\n\t/**\n\t * Constructor to create a widget or string constructor label\n\t */\n\twidgetConstructor: Constructor | RegistryLabel;\n\n\t/**\n\t * Properties to set against a widget instance\n\t */\n\tproperties: W['properties'];\n\n\t/**\n\t * DNode children\n\t */\n\tchildren: DNode[];\n\n\t/**\n\t * The type of node\n\t */\n\ttype: symbol;\n}\n\n/**\n * union type for all possible return types from render\n */\nexport type DNode = HNode | WNode | undefined | null | string;\n\n/**\n * Property Change record for specific property diff functions\n */\nexport interface PropertyChangeRecord {\n\tchanged: boolean;\n\tvalue: any;\n}\n\nexport interface DiffPropertyFunction {\n\t(previousProperty: any, newProperty: any): PropertyChangeRecord;\n}\n\nexport interface DiffPropertyReaction {\n\t(previousProperties: any, newProperties: any): void;\n}\n\n/**\n * WidgetBase constructor type\n */\nexport type WidgetBaseConstructor<\n\tP extends WidgetProperties = WidgetProperties,\n\tC extends DNode = DNode> = Constructor>;\n\nexport interface DefaultWidgetBaseInterface extends WidgetBaseInterface {}\n\n/**\n * The interface for WidgetBase\n */\nexport interface WidgetBaseInterface<\n\tP = WidgetProperties,\n\tC extends DNode = DNode> {\n\n\t/**\n\t * Widget properties\n\t */\n\treadonly properties: P & WidgetProperties;\n\n\t/**\n\t * Returns the widget's children\n\t */\n\treadonly children: (C | null)[];\n\n\t/**\n\t * Sets the properties for the widget. Responsible for calling the diffing functions for the properties against the\n\t * previous properties. Runs though any registered specific property diff functions collecting the results and then\n\t * runs the remainder through the catch all diff function. The aggregate of the two sets of the results is then\n\t * set as the widget's properties\n\t *\n\t * @param properties The new widget properties\n\t */\n\t__setProperties__(properties: P & { [index: string]: any }): void;\n\n\t/**\n\t * Sets core properties on the widget.\n\t *\n\t * @param coreProperties The core properties\n\t */\n\t__setCoreProperties__(coreProperties?: CoreProperties): any;\n\n\t/**\n\t * Sets the widget's children\n\t */\n\t__setChildren__(children: (C | null)[]): void;\n\n\t/**\n\t * Main internal function for dealing with widget rendering\n\t */\n\t__render__(): DNode | DNode[];\n}\n\n/**\n * Meta Base type\n */\nexport interface WidgetMetaBase extends Destroyable {\n\thas(key: string | number): boolean;\n\tafterRender(): void;\n}\n\n/**\n * Meta Base constructor type\n */\nexport interface WidgetMetaConstructor {\n\tnew (properties: WidgetMetaProperties): T;\n}\n\nexport interface NodeHandlerInterface extends Evented {\n\tget(key: string | number): HTMLElement | undefined;\n\thas(key: string | number): boolean;\n\tadd(element: HTMLElement, key: string): void;\n\taddRoot(element: HTMLElement, key: string): void;\n\taddProjector(element: HTMLElement, properties: VirtualDomProperties): void;\n\tclear(): void;\n}\n\n/**\n * Properties passed to meta Base constructors\n */\nexport interface WidgetMetaProperties {\n\tinvalidate: () => void;\n\tnodeHandler: NodeHandlerInterface;\n\tbind: WidgetBaseInterface;\n}\n\nexport interface Render {\n\t(): DNode | DNode[];\n}\n\n/**\n * Interface for beforeRender function\n */\nexport interface BeforeRender {\n\t(renderFunc: Render, properties: WidgetProperties, children: DNode[]): Render | undefined;\n}\n\n/**\n * Interface for afterRender function\n */\nexport interface AfterRender {\n\t(dNode: DNode | DNode []): DNode | DNode[];\n}\n\n/**\n * Interface for beforeProperties function\n */\nexport interface BeforeProperties

{\n\t(properties: P): P;\n}\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widget-core/main.d.ts", + "text": "export * from './animations/cssTransitions';\nexport * from './customElements';\nexport * from './d';\nexport * from './Registry';\nexport * from './interfaces';\nexport * from './mixins/I18n';\nexport * from './mixins/Projector';\nexport * from './mixins/Themed';\nexport * from './registerCustomElement';\nexport * from './util/DomWrapper';\nexport * from './WidgetBase';\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widget-core/meta/Base.d.ts", + "text": "import { Destroyable } from '@dojo/core/Destroyable';\nimport { WidgetMetaBase, WidgetMetaProperties, NodeHandlerInterface, WidgetBaseInterface } from '../interfaces';\nexport declare class Base extends Destroyable implements WidgetMetaBase {\n private _invalidate;\n protected nodeHandler: NodeHandlerInterface;\n private _requestedNodeKeys;\n protected _bind: WidgetBaseInterface;\n constructor(properties: WidgetMetaProperties);\n has(key: string | number): boolean;\n protected getNode(key: string | number): HTMLElement | undefined;\n protected invalidate(): void;\n afterRender(): void;\n}\nexport default Base;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widget-core/meta/Dimensions.d.ts", + "text": "import { Base } from './Base';\nexport interface TopLeft {\n left: number;\n top: number;\n}\nexport interface BottomRight {\n bottom: number;\n right: number;\n}\nexport interface Size {\n height: number;\n width: number;\n}\nexport interface DimensionResults {\n position: TopLeft & BottomRight;\n offset: TopLeft & Size;\n size: Size;\n scroll: TopLeft & Size;\n}\nexport declare class Dimensions extends Base {\n get(key: string | number): Readonly;\n}\nexport default Dimensions;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widget-core/meta/Drag.d.ts", + "text": "import { Base } from './Base';\nexport interface DragResults {\n /**\n * The movement of pointer during the duration of the drag state\n */\n delta: Position;\n /**\n * Is the DOM node currently in a drag state\n */\n isDragging: boolean;\n /**\n * A matrix of posistions that represent the start position for the current drag interaction\n */\n start?: PositionMatrix;\n}\n/**\n * An x/y position structure\n */\nexport interface Position {\n x: number;\n y: number;\n}\n/**\n * A matrix of x/y positions\n */\nexport interface PositionMatrix {\n /**\n * Client x/y position\n */\n client: Position;\n /**\n * Offset x/y position\n */\n offset: Position;\n /**\n * Page x/y position\n */\n page: Position;\n /**\n * Screen x/y position\n */\n screen: Position;\n}\nexport declare class Drag extends Base {\n private _boundInvalidate;\n get(key: string | number): Readonly;\n}\nexport default Drag;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widget-core/meta/Intersection.d.ts", + "text": "import { Base } from './Base';\nimport 'intersection-observer';\nexport interface IntersectionGetOptions {\n root?: string;\n rootMargin?: string;\n threshold?: number[];\n}\nexport interface IntersectionResult {\n intersectionRatio: number;\n isIntersecting: boolean;\n}\nexport declare class Intersection extends Base {\n private readonly _details;\n /**\n * Return an `InteractionResult` for the requested key and options.\n *\n * @param key The key to return the intersection meta for\n * @param options The options for the request\n */\n get(key: string | number, options?: IntersectionGetOptions): IntersectionResult;\n /**\n * Returns true if the node for the key has intersection details\n *\n * @param key The key to return the intersection meta for\n * @param options The options for the request\n */\n has(key: string | number, options?: IntersectionGetOptions): boolean;\n private _createDetails(options, rootNode?);\n private _getDetails(options?);\n private _onIntersect;\n}\nexport default Intersection;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widget-core/meta/Matches.d.ts", + "text": "import { Base } from './Base';\nexport default class Matches extends Base {\n /**\n * Determine if the target of a particular `Event` matches the virtual DOM key\n * @param key The virtual DOM key\n * @param event The event object\n */\n get(key: string | number, event: Event): boolean;\n}\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widget-core/meta/WebAnimation.d.ts", + "text": "/// \nimport 'web-animations-js/web-animations-next-lite.min';\nimport { Base } from './Base';\nimport { AnimationProperties, AnimationInfo } from '../interfaces';\nexport interface AnimationPlayer {\n player: Animation;\n used: boolean;\n}\nexport declare class WebAnimations extends Base {\n private _animationMap;\n private _createPlayer(node, properties);\n private _updatePlayer(player, controls);\n animate(key: string, animateProperties: AnimationProperties | AnimationProperties[]): void;\n get(id: string): Readonly | undefined;\n afterRender(): void;\n}\nexport default WebAnimations;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widget-core/mixins/I18n.d.ts", + "text": "import { Bundle, Messages } from '@dojo/i18n/i18n';\nimport { Constructor, WidgetProperties } from './../interfaces';\nimport { WidgetBase } from './../WidgetBase';\nexport interface I18nProperties extends WidgetProperties {\n /**\n * The locale for the widget. If not specified, then the root locale (as determined by `@dojo/i18n`) is assumed.\n * If specified, the widget's node will have a `lang` property set to the locale.\n */\n locale?: string;\n /**\n * An optional flag indicating the widget's text direction. If `true`, then the underlying node's `dir`\n * property is set to \"rtl\". If it is `false`, then the `dir` property is set to \"ltr\". Otherwise, the property\n * is not set.\n */\n rtl?: boolean;\n}\nexport declare type LocalizedMessages = T & {\n /**\n * Formats an ICU-formatted message template for the represented bundle.\n *\n * @param key\n * The message key.\n *\n * @param options\n * The values to pass to the formatter.\n *\n * @return\n * The formatted string.\n */\n format(key: string, options?: any): string;\n};\n/**\n * interface for I18n functionality\n */\nexport interface I18nMixin {\n /**\n * Return the cached messages for the specified bundle for the current locale, assuming they have already\n * been loaded. If the locale-specific messages have not been loaded, they are fetched and the widget state\n * is updated.\n *\n * @param bundle\n * The required bundle object for which available locale messages should be loaded.\n *\n * @return\n * The localized messages, along with a `format` method for formatting ICU-formatted templates.\n */\n localizeBundle(bundle: Bundle): LocalizedMessages;\n properties: I18nProperties;\n}\nexport declare function I18nMixin>>(Base: T): T & Constructor;\nexport default I18nMixin;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widget-core/mixins/Projector.d.ts", + "text": "import { Handle } from '@dojo/interfaces/core';\nimport 'pepjs';\nimport { Constructor, DNode } from './../interfaces';\nimport { WidgetBase } from './../WidgetBase';\nimport { Registry } from './../Registry';\n/**\n * Represents the attach state of the projector\n */\nexport declare enum ProjectorAttachState {\n Attached = 1,\n Detached = 2,\n}\n/**\n * Attach type for the projector\n */\nexport declare enum AttachType {\n Append = 1,\n Merge = 2,\n Replace = 3,\n}\nexport interface AttachOptions {\n /**\n * If `'append'` it will appended to the root. If `'merge'` it will merged with the root. If `'replace'` it will\n * replace the root.\n */\n type: AttachType;\n /**\n * Element to attach the projector.\n */\n root?: Element;\n}\nexport interface ProjectorProperties {\n registry?: Registry;\n}\nexport interface ProjectorMixin

{\n readonly properties: Readonly

& Readonly;\n /**\n * Append the projector to the root.\n */\n append(root?: Element): Handle;\n /**\n * Merge the projector onto the root.\n *\n * The `root` and any of its `children` will be re-used. Any excess DOM nodes will be ignored and any missing DOM nodes\n * will be created.\n * @param root The root element that the root virtual DOM node will be merged with. Defaults to `document.body`.\n */\n merge(root?: Element): Handle;\n /**\n * Replace the root with the projector node.\n */\n replace(root?: Element): Handle;\n /**\n * Pause the projector.\n */\n pause(): void;\n /**\n * Resume the projector.\n */\n resume(): void;\n /**\n * Attach the project to a _sandboxed_ document fragment that is not part of the DOM.\n *\n * When sandboxed, the `Projector` will run in a sync manner, where renders are completed within the same turn.\n * The `Projector` creates a `DocumentFragment` which replaces any other `root` that has been set.\n * @param doc The `Document` to use, which defaults to the global `document`.\n */\n sandbox(doc?: Document): void;\n /**\n * Schedule a render.\n */\n scheduleRender(): void;\n /**\n * Sets the properties for the widget. Responsible for calling the diffing functions for the properties against the\n * previous properties. Runs though any registered specific property diff functions collecting the results and then\n * runs the remainder through the catch all diff function. The aggregate of the two sets of the results is then\n * set as the widget's properties\n *\n * @param properties The new widget properties\n */\n setProperties(properties: this['properties']): void;\n /**\n * Sets the widget's children\n */\n setChildren(children: DNode[]): void;\n /**\n * Return a `string` that represents the HTML of the current projection. The projector needs to be attached.\n */\n toHtml(): string;\n /**\n * Indicates if the projectors is in async mode, configured to `true` by defaults.\n */\n async: boolean;\n /**\n * Root element to attach the projector\n */\n root: Element;\n /**\n * The status of the projector\n */\n readonly projectorState: ProjectorAttachState;\n /**\n * Exposes invalidate for projector instances\n */\n invalidate(): void;\n /**\n * Runs registered destroy handles\n */\n destroy(): void;\n}\nexport declare function ProjectorMixin>>(Base: T): T & Constructor>;\nexport default ProjectorMixin;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widget-core/mixins/Themed.d.ts", + "text": "import { Constructor, WidgetProperties, SupportedClassName } from './../interfaces';\nimport { Registry } from './../Registry';\nimport { Injector } from './../Injector';\nimport { WidgetBase } from './../WidgetBase';\n/**\n * A lookup object for available class names\n */\nexport declare type ClassNames = {\n [key: string]: string;\n};\n/**\n * A lookup object for available widget classes names\n */\nexport interface Theme {\n [key: string]: object;\n}\n/**\n * Properties required for the Themed mixin\n */\nexport interface ThemedProperties extends WidgetProperties {\n injectedTheme?: any;\n theme?: Theme;\n extraClasses?: {\n [P in keyof T]?: string;\n };\n}\nexport declare const INJECTED_THEME_KEY: symbol;\n/**\n * Interface for the ThemedMixin\n */\nexport interface ThemedMixin {\n theme(classes: SupportedClassName): SupportedClassName;\n theme(classes: SupportedClassName[]): SupportedClassName[];\n properties: ThemedProperties;\n}\n/**\n * Decorator for base css classes\n */\nexport declare function theme(theme: {}): (target: any, propertyKey?: string | undefined, descriptor?: PropertyDescriptor | undefined) => void;\n/**\n * Convenience function that is given a theme and an optional registry, the theme\n * injector is defined against the registry, returning the theme.\n *\n * @param theme the theme to set\n * @param themeRegistry registry to define the theme injector against. Defaults\n * to the global registry\n *\n * @returns the theme injector used to set the theme\n */\nexport declare function registerThemeInjector(theme: any, themeRegistry: Registry): Injector;\n/**\n * Function that returns a class decorated with with Themed functionality\n */\nexport declare function ThemedMixin>>>(Base: T): Constructor> & T;\nexport default ThemedMixin;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widget-core/NodeHandler.d.ts", + "text": "import { Evented } from '@dojo/core/Evented';\nimport { NodeHandlerInterface } from './interfaces';\n/**\n * Enum to identify the type of event.\n * Listening to 'Projector' will notify when projector is created or updated\n * Listening to 'Widget' will notify when widget root is created or updated\n */\nexport declare enum NodeEventType {\n Projector = \"Projector\",\n Widget = \"Widget\",\n}\nexport declare class NodeHandler extends Evented implements NodeHandlerInterface {\n private _nodeMap;\n get(key: string): HTMLElement | undefined;\n has(key: string): boolean;\n add(element: HTMLElement, key: string): void;\n addRoot(): void;\n addProjector(): void;\n clear(): void;\n}\nexport default NodeHandler;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widget-core/registerCustomElement.d.ts", + "text": "import { CustomElementDescriptor } from './customElements';\n/**\n * Describes a function that returns a CustomElementDescriptor\n */\nexport interface CustomElementDescriptorFactory {\n (): CustomElementDescriptor;\n}\n/**\n * Register a custom element using the v1 spec of custom elements. Note that\n * this is the default export, and, expects the proposal to work in the browser.\n * This will likely require the polyfill and native shim.\n *\n * @param descriptorFactory\n */\nexport declare function registerCustomElement(descriptorFactory: CustomElementDescriptorFactory): void;\nexport default registerCustomElement;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widget-core/Registry.d.ts", + "text": "import { Handle } from '@dojo/interfaces/core';\nimport { BaseEventedEvents, Evented, EventObject } from '@dojo/core/Evented';\nimport { Constructor, RegistryLabel, WidgetBaseConstructor, WidgetBaseInterface } from './interfaces';\nimport { Injector } from './Injector';\nexport declare type WidgetBaseConstructorFunction = () => Promise;\nexport declare type RegistryItem = WidgetBaseConstructor | Promise | WidgetBaseConstructorFunction;\n/**\n * Widget base symbol type\n */\nexport declare const WIDGET_BASE_TYPE: symbol;\nexport interface RegistryEventObject extends EventObject {\n action: string;\n item: WidgetBaseConstructor | Injector;\n}\nexport interface RegistryListener {\n (event: RegistryEventObject): void;\n}\nexport interface RegistryEvents extends BaseEventedEvents {\n (type: RegistryLabel, listener: RegistryListener | RegistryListener[]): Handle;\n}\n/**\n * Widget Registry Interface\n */\nexport interface RegistryInterface {\n /**\n * Define a WidgetRegistryItem against a label\n *\n * @param label The label of the widget to register\n * @param registryItem The registry item to define\n */\n define(label: RegistryLabel, registryItem: RegistryItem): void;\n /**\n * Return a RegistryItem for the given label, null if an entry doesn't exist\n *\n * @param widgetLabel The label of the widget to return\n * @returns The RegistryItem for the widgetLabel, `null` if no entry exists\n */\n get(label: RegistryLabel): Constructor | null;\n /**\n * Returns a boolean if an entry for the label exists\n *\n * @param widgetLabel The label to search for\n * @returns boolean indicating if a widget registry item exists\n */\n has(label: RegistryLabel): boolean;\n /**\n * Define an Injector against a label\n *\n * @param label The label of the injector to register\n * @param registryItem The injector to define\n */\n defineInjector(label: RegistryLabel, registryItem: Injector): void;\n /**\n * Return an Injector registry item for the given label, null if an entry doesn't exist\n *\n * @param label The label of the injector to return\n * @returns The RegistryItem for the widgetLabel, `null` if no entry exists\n */\n getInjector(label: RegistryLabel): T | null;\n /**\n * Returns a boolean if an injector for the label exists\n *\n * @param widgetLabel The label to search for\n * @returns boolean indicating if a injector registry item exists\n */\n hasInjector(label: RegistryLabel): boolean;\n}\n/**\n * Checks is the item is a subclass of WidgetBase (or a WidgetBase)\n *\n * @param item the item to check\n * @returns true/false indicating if the item is a WidgetBaseConstructor\n */\nexport declare function isWidgetBaseConstructor(item: any): item is Constructor;\n/**\n * The Registry implementation\n */\nexport declare class Registry extends Evented implements RegistryInterface {\n on: RegistryEvents;\n /**\n * internal map of labels and RegistryItem\n */\n private _widgetRegistry;\n private _injectorRegistry;\n /**\n * Emit loaded event for registry label\n */\n private emitLoadedEvent(widgetLabel, item);\n define(label: RegistryLabel, item: RegistryItem): void;\n defineInjector(label: RegistryLabel, item: Injector): void;\n get(label: RegistryLabel): Constructor | null;\n getInjector(label: RegistryLabel): T | null;\n has(label: RegistryLabel): boolean;\n hasInjector(label: RegistryLabel): boolean;\n}\nexport default Registry;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widget-core/RegistryHandler.d.ts", + "text": "import { Evented } from '@dojo/core/Evented';\nimport { Constructor, RegistryLabel, WidgetBaseInterface } from './interfaces';\nimport { Registry, RegistryItem } from './Registry';\nimport { Injector } from './Injector';\nexport declare class RegistryHandler extends Evented {\n private _registry;\n private _baseRegistry;\n private _registryWidgetLabelMap;\n private _registryInjectorLabelMap;\n constructor();\n base: Registry;\n define(label: RegistryLabel, widget: RegistryItem): void;\n defineInjector(label: RegistryLabel, injector: Injector): void;\n has(label: RegistryLabel): boolean;\n hasInjector(label: RegistryLabel): boolean;\n get(label: RegistryLabel, globalPrecedence?: boolean): Constructor | null;\n getInjector(label: RegistryLabel, globalPrecedence?: boolean): T | null;\n private _get(label, globalPrecedence, getFunctionName, labelMap);\n}\nexport default RegistryHandler;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widget-core/tsx.d.ts", + "text": "import { Constructor, DNode } from './interfaces';\nimport { WNode, VirtualDomProperties } from './interfaces';\ndeclare global {\n namespace JSX {\n type Element = WNode;\n interface ElementAttributesProperty {\n properties: {};\n }\n interface IntrinsicElements {\n [key: string]: VirtualDomProperties;\n }\n }\n}\nexport declare const REGISTRY_ITEM: symbol;\nexport declare class FromRegistry

{\n static type: symbol;\n properties: P;\n name: string;\n}\nexport declare function fromRegistry

(tag: string): Constructor>;\nexport declare function tsx(tag: any, properties?: {}, ...children: any[]): DNode;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widget-core/util/DomWrapper.d.ts", + "text": "import { WidgetBase } from './../WidgetBase';\nimport { Constructor, VirtualDomProperties, WidgetProperties } from './../interfaces';\nexport interface DomWrapperOptions {\n onAttached?(): void;\n}\nexport declare type DomWrapperProperties = VirtualDomProperties & WidgetProperties;\nexport declare type DomWrapper = Constructor>;\nexport declare function DomWrapper(domNode: Element, options?: DomWrapperOptions): DomWrapper;\nexport default DomWrapper;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widget-core/vdom.d.ts", + "text": "import { CoreProperties, DefaultWidgetBaseInterface, DNode, HNode, WNode, ProjectionOptions, Projection, VirtualDomProperties } from './interfaces';\nimport WeakMap from '@dojo/shim/WeakMap';\nimport NodeHandler from './NodeHandler';\nimport RegistryHandler from './RegistryHandler';\nexport declare type RenderResult = DNode | DNode[];\nexport interface InternalWNode extends WNode {\n /**\n * The instance of the widget\n */\n instance: DefaultWidgetBaseInterface;\n /**\n * The rendered DNodes from the instance\n */\n rendered: InternalDNode[];\n /**\n * Core properties that are used by the widget core system\n */\n coreProperties: CoreProperties;\n /**\n * Children for the WNode\n */\n children: InternalDNode[];\n}\nexport interface InternalHNode extends HNode {\n /**\n * Children for the HNode\n */\n children?: InternalDNode[];\n inserted?: boolean;\n /**\n * Bag used to still decorate properties on a deferred properties callback\n */\n decoratedDeferredProperties?: VirtualDomProperties;\n /**\n * DOM element\n */\n domNode?: Element | Text;\n}\nexport declare type InternalDNode = InternalHNode | InternalWNode;\nexport interface WidgetData {\n onElementCreated: Function;\n onElementUpdated: Function;\n onDetach: () => void;\n onAttach: () => void;\n parentInvalidate?: Function;\n dirty: boolean;\n registry: () => RegistryHandler;\n nodeHandler: NodeHandler;\n coreProperties: CoreProperties;\n invalidate: Function;\n}\nexport declare const widgetInstanceMap: WeakMap;\nexport declare function toTextHNode(data: any): InternalHNode;\nexport declare function filterAndDecorateChildren(children: undefined | DNode | DNode[], instance: DefaultWidgetBaseInterface): InternalDNode[];\nexport declare const dom: {\n create: (dNode: RenderResult, instance: DefaultWidgetBaseInterface, projectionOptions?: Partial | undefined) => Projection;\n append: (parentNode: Element, dNode: RenderResult, instance: DefaultWidgetBaseInterface, projectionOptions?: Partial | undefined) => Projection;\n merge: (element: Element, dNode: RenderResult, instance: DefaultWidgetBaseInterface, projectionOptions?: Partial | undefined) => Projection;\n replace: (element: Element, dNode: RenderResult, instance: DefaultWidgetBaseInterface, projectionOptions?: Partial | undefined) => Projection;\n};\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widget-core/WidgetBase.d.ts", + "text": "import { EventTypedObject } from '@dojo/interfaces/core';\nimport { CoreProperties, DNode, WidgetMetaBase, WidgetMetaConstructor, WidgetBaseInterface, WidgetProperties } from './interfaces';\nimport RegistryHandler from './RegistryHandler';\nexport interface WidgetAndElementEvent extends EventTypedObject<'properties:changed'> {\n key: string;\n element: HTMLElement;\n target: WidgetBase;\n}\nexport declare type BoundFunctionData = {\n boundFunc: (...args: any[]) => any;\n scope: any;\n};\n/**\n * Main widget base for all widgets to extend\n */\nexport declare class WidgetBase

implements WidgetBaseInterface {\n /**\n * static identifier\n */\n static _type: symbol;\n /**\n * children array\n */\n private _children;\n /**\n * Indicates if it is the initial set properties cycle\n */\n private _initialProperties;\n /**\n * internal widget properties\n */\n private _properties;\n /**\n * Array of property keys considered changed from the previous set properties\n */\n private _changedPropertyKeys;\n private _cachedDNode;\n /**\n * map of decorators that are applied to this widget\n */\n private _decoratorCache;\n private _registry;\n /**\n * Map of functions properties for the bound function\n */\n private _bindFunctionPropertyMap;\n private _renderState;\n private _metaMap;\n private _boundRenderFunc;\n private _boundInvalidate;\n private _nodeHandler;\n /**\n * @constructor\n */\n constructor();\n protected meta(MetaType: WidgetMetaConstructor): T;\n /**\n * Widget lifecycle method that is called whenever a dom node is created for a HNode.\n * Override this method to access the dom nodes that were inserted into the dom.\n * @param element The dom node represented by the vdom node.\n * @param key The vdom node's key.\n */\n protected onElementCreated(element: Element, key: string): void;\n /**\n * Widget lifecycle method that is called whenever a dom node that is associated with a HNode is updated.\n * Override this method to access the dom node.\n * @param element The dom node represented by the vdom node.\n * @param key The vdom node's key.\n */\n protected onElementUpdated(element: Element, key: string): void;\n protected onAttach(): void;\n protected onDetach(): void;\n readonly properties: Readonly

& Readonly;\n readonly changedPropertyKeys: string[];\n __setCoreProperties__(coreProperties: CoreProperties): void;\n __setProperties__(originalProperties: this['properties']): void;\n readonly children: (C | null)[];\n __setChildren__(children: (C | null)[]): void;\n __render__(): DNode | DNode[];\n invalidate(): void;\n protected render(): DNode | DNode[];\n /**\n * Function to add decorators to WidgetBase\n *\n * @param decoratorKey The key of the decorator\n * @param value The value of the decorator\n */\n protected addDecorator(decoratorKey: string, value: any): void;\n /**\n * Function to build the list of decorators from the global decorator map.\n *\n * @param decoratorKey The key of the decorator\n * @return An array of decorator values\n * @private\n */\n private _buildDecoratorList(decoratorKey);\n /**\n * Function to retrieve decorator values\n *\n * @param decoratorKey The key of the decorator\n * @returns An array of decorator values\n */\n protected getDecorator(decoratorKey: string): any[];\n private _mapDiffPropertyReactions(newProperties, changedPropertyKeys);\n /**\n * Binds unbound property functions to the specified `bind` property\n *\n * @param properties properties to check for functions\n */\n private _bindFunctionProperty(property, bind);\n readonly registry: RegistryHandler;\n private _runBeforeProperties(properties);\n /**\n * Run all registered before renders and return the updated render method\n */\n private _runBeforeRenders();\n /**\n * Run all registered after renders and return the decorated DNodes\n *\n * @param dNode The DNodes to run through the after renders\n */\n protected runAfterRenders(dNode: DNode | DNode[]): DNode | DNode[];\n}\nexport default WidgetBase;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widgets/accordionpane/AccordionPane.d.ts", + "text": "import { DNode, WNode } from '@dojo/widget-core/interfaces';\nimport { ThemedMixin, ThemedProperties } from '@dojo/widget-core/mixins/Themed';\nimport { WidgetBase } from '@dojo/widget-core/WidgetBase';\nimport TitlePane from '../titlepane/TitlePane';\n/**\n * @type AccordionPaneProperties\n *\n * Properties that can be set on AccordionPane components\n *\n * @property onRequestClose Called when the title of an open pane is clicked\n * @property onRequestOpen Called when the title of a closed pane is clicked\n * @property openKeys Array of TitlePane keys indicating which panes should be open\n */\nexport interface AccordionPaneProperties extends ThemedProperties {\n onRequestClose?(key: string): void;\n onRequestOpen?(key: string): void;\n openKeys?: string[];\n}\nexport declare const AccordionPaneBase: (new (...args: any[]) => ThemedMixin<{}>) & typeof WidgetBase;\nexport default class AccordionPane extends AccordionPaneBase> {\n private _assignCallback(child, functionName, callback);\n protected onRequestClose(key: string): void;\n protected onRequestOpen(key: string): void;\n protected renderChildren(): DNode[];\n render(): DNode;\n}\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widgets/accordionpane/createAccordionPaneElement.d.ts", + "text": "import { CustomElementDescriptor } from '@dojo/widget-core/customElements';\n/**\n * Configures a AccordionPane web component\n */\nexport default function createAccordionPaneElement(): CustomElementDescriptor;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widgets/accordionpane/styles/accordionPane.m.css.d.ts", + "text": "export const root: string;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widgets/button/Button.d.ts", + "text": "import { WidgetBase } from '@dojo/widget-core/WidgetBase';\nimport { DNode } from '@dojo/widget-core/interfaces';\nimport { ThemedMixin, ThemedProperties } from '@dojo/widget-core/mixins/Themed';\nexport declare type ButtonType = 'submit' | 'reset' | 'button' | 'menu';\n/**\n * @type ButtonProperties\n *\n * Properties that can be set on a Button component\n *\n * @property describedBy ID of element with descriptive text\n * @property disabled Whether the button is disabled or clickable\n * @property popup \t\tControls aria-haspopup, aria-expanded, and aria-controls for popup buttons\n * @property name The button's name attribute\n * @property pressed Indicates status of a toggle button\n * @property type Button type can be \"submit\", \"reset\", \"button\", or \"menu\"\n * @property value Defines a value for the button submitted with form data\n * @property onBlur Called when the button loses focus\n * @property onClick Called when the button is clicked\n * @property onFocus Called when the button is focused\n * @property onKeyDown Called on the button's keydown event\n * @property onKeyPress Called on the button's keypress event\n * @property onKeyUp Called on the button's keyup event\n * @property onMouseDown Called on the button's mousedown event\n * @property onMouseUp Called on the button's mouseup event\n * @property onTouchCancel Called on the button's touchcancel event\n * @property onTouchEnd Called on the button's touchend event\n * @property onTouchStart Called on the button's touchstart event\n */\nexport interface ButtonProperties extends ThemedProperties {\n describedBy?: string;\n disabled?: boolean;\n id?: string;\n popup?: {\n expanded?: boolean;\n id?: string;\n } | boolean;\n name?: string;\n pressed?: boolean;\n type?: ButtonType;\n value?: string;\n onBlur?(event: FocusEvent): void;\n onClick?(event: MouseEvent): void;\n onFocus?(event: FocusEvent): void;\n onKeyDown?(event: KeyboardEvent): void;\n onKeyPress?(event: KeyboardEvent): void;\n onKeyUp?(event: KeyboardEvent): void;\n onMouseDown?(event: MouseEvent): void;\n onMouseUp?(event: MouseEvent): void;\n onTouchStart?(event: TouchEvent): void;\n onTouchEnd?(event: TouchEvent): void;\n onTouchCancel?(event: TouchEvent): void;\n}\nexport declare const ButtonBase: (new (...args: any[]) => ThemedMixin<{}>) & typeof WidgetBase;\nexport default class Button extends ButtonBase {\n private _onBlur(event);\n private _onClick(event);\n private _onFocus(event);\n private _onKeyDown(event);\n private _onKeyPress(event);\n private _onKeyUp(event);\n private _onMouseDown(event);\n private _onMouseUp(event);\n private _onTouchStart(event);\n private _onTouchEnd(event);\n private _onTouchCancel(event);\n protected getContent(): DNode[];\n protected getModifierClasses(): (string | null)[];\n protected renderPopupIcon(): DNode;\n render(): DNode;\n}\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widgets/button/styles/button.m.css.d.ts", + "text": "export const root: string;\nexport const pressed: string;\nexport const popup: string;\nexport const addon: string;\nexport const disabled: string;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widgets/calendar/Calendar.d.ts", + "text": "import { WidgetBase } from '@dojo/widget-core/WidgetBase';\nimport { ThemedMixin, ThemedProperties } from '@dojo/widget-core/mixins/Themed';\nimport { DNode } from '@dojo/widget-core/interfaces';\nimport { CalendarMessages } from './DatePicker';\nimport { Paging } from './DatePicker';\n/**\n * @type CalendarProperties\n *\n * Properties that can be set on a Calendar component\n *\n * @property labels Customize or internationalize accessible text for the Calendar widget\n * @property month Set the currently displayed month, 0-based\n * @property monthNames Customize or internationalize full month names and abbreviations\n * @property selectedDate The currently selected date\n * @property weekdayNames Customize or internationalize weekday names and abbreviations\n * @property year Set the currently displayed year\n * @property renderMonthLabel Format the displayed current month and year\n * @property renderWeekdayCell Format the weekday column headers\n * @property onMonthChange Function called when the month changes\n * @property onYearChange Function called when the year changes\n * @property onDateSelect Function called when the user selects a date\n */\nexport interface CalendarProperties extends ThemedProperties {\n labels?: CalendarMessages;\n month?: number;\n monthNames?: {\n short: string;\n long: string;\n }[];\n selectedDate?: Date;\n weekdayNames?: {\n short: string;\n long: string;\n }[];\n year?: number;\n renderMonthLabel?(month: number, year: number): string;\n renderWeekdayCell?(day: {\n short: string;\n long: string;\n }): DNode;\n onMonthChange?(month: number): void;\n onYearChange?(year: number): void;\n onDateSelect?(date: Date): void;\n}\nexport declare const DEFAULT_MONTHS: {\n short: string;\n long: string;\n}[];\nexport declare const DEFAULT_WEEKDAYS: {\n short: string;\n long: string;\n}[];\nexport declare const DEFAULT_LABELS: CalendarMessages;\nexport declare const CalendarBase: (new (...args: any[]) => ThemedMixin<{}>) & typeof WidgetBase;\nexport default class Calendar extends CalendarBase {\n private _callDateFocus;\n private _defaultDate;\n private _focusedDay;\n private _monthLabelId;\n private _popupOpen;\n private _getMonthLength(month, year);\n private _getMonthYear();\n private _goToDate(day);\n private _onDateClick(date, disabled);\n private _onDateFocusCalled();\n private _onDateKeyDown(event);\n private _onMonthDecrement();\n private _onMonthIncrement();\n private _onMonthPageDown();\n private _onMonthPageUp();\n private _renderDateGrid(selectedDate?);\n protected renderDateCell(date: number, index: number, selected: boolean, currentMonth: boolean, today: boolean): DNode;\n protected renderDatePicker(): DNode;\n protected renderPagingButtonContent(type: Paging): DNode[];\n protected renderWeekdayCell(day: {\n short: string;\n long: string;\n }): DNode;\n protected render(): DNode;\n}\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widgets/calendar/CalendarCell.d.ts", + "text": "import { WidgetBase } from '@dojo/widget-core/WidgetBase';\nimport { ThemedMixin, ThemedProperties } from '@dojo/widget-core/mixins/Themed';\nimport { DNode } from '@dojo/widget-core/interfaces';\n/**\n * @type CalendarCellProperties\n *\n * Properties that can be set on a Calendar Date Cell\n *\n * @property callFocus Used to immediately call focus on the cell\n * @property date Integer date value\n * @property disabled Boolean, whether or not the date is in the current month\n * @property focusable Boolean, whether or not the date can receive focus\n * @property selected True if the date is currently selected\n * @property today True if the date the same as the current day\n * @property onClick Callback function for the click event\n * @property onFocusCalled Callback function when the cell receives focus\n * @property onKeyDown Callback function for the key down event\n */\nexport interface CalendarCellProperties extends ThemedProperties {\n callFocus?: boolean;\n date: number;\n disabled?: boolean;\n focusable?: boolean;\n selected?: boolean;\n today?: boolean;\n onClick?(date: number, disabled: boolean): void;\n onFocusCalled?(): void;\n onKeyDown?(event: KeyboardEvent): void;\n}\nexport declare const CalendarCellBase: (new (...args: any[]) => ThemedMixin<{}>) & typeof WidgetBase;\nexport default class CalendarCell extends CalendarCellBase {\n protected onElementCreated(element: HTMLElement, key: string): void;\n protected onElementUpdated(element: HTMLElement, key: string): void;\n private _callFocus(element);\n private _onClick(event);\n private _onKeyDown(event);\n protected formatDate(date: number): DNode;\n protected getModifierClasses(): (string | null)[];\n protected render(): DNode;\n}\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widgets/calendar/createCalendarElement.d.ts", + "text": "import { CustomElementDescriptor } from '@dojo/widget-core/customElements';\n/**\n * Configures a Calendar web component\n */\nexport default function createCalendarElement(): CustomElementDescriptor;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widgets/calendar/DatePicker.d.ts", + "text": "import { WidgetBase } from '@dojo/widget-core/WidgetBase';\nimport { ThemedMixin, ThemedProperties } from '@dojo/widget-core/mixins/Themed';\nimport { DNode } from '@dojo/widget-core/interfaces';\n/**\n * Enum for next/previous buttons\n */\nexport declare const enum Paging {\n next = \"next\",\n previous = \"previous\",\n}\n/**\n * Enum for month or year controls\n */\nexport declare const enum Controls {\n month = \"month\",\n year = \"year\",\n}\n/**\n * @type CalendarMessages\n *\n * Accessible text for Month Picker controls. Messages can be localized by passing a CalendarMessages object into the Calendar widget's labels property\n *\n * @property chooseMonth Labels the button that opens the month picker popup\n * @property chooseYear Labels the year spinner within the popup\n * @property previousMonth Labels the prvious month arrow button\n * @property nextMonth Labels the next month arrow button\n */\nexport interface CalendarMessages {\n chooseMonth: string;\n chooseYear: string;\n previousMonth: string;\n nextMonth: string;\n}\n/**\n * @type DatePickerProperties\n *\n * Properties that can be set on a Calendar component\n *\n * @property labelId Set id to reference label containing current month and year\n * @property labels Customize or internationalize accessible helper text\n * @property month Currently displayed month, zero-based\n * @property monthNames Array of full and abbreviated month names\n * @property year Currently displayed year\n * @property yearRange Number of years to display in a single page of the year popup\n * @property renderMonthLabel Format the displayed current month and year\n * @property onPopupChange Called when a user action occurs that triggers a change in the month or year popup state\n * @property onRequestMonthChange Called when a month should change; receives the zero-based month number\n * @property onRequestYearChange Called when a year should change; receives the year as an integer\n */\nexport interface DatePickerProperties extends ThemedProperties {\n labelId?: string;\n labels: CalendarMessages;\n month: number;\n monthNames: {\n short: string;\n long: string;\n }[];\n year: number;\n yearRange?: number;\n renderMonthLabel?(month: number, year: number): string;\n onPopupChange?(open: boolean): void;\n onRequestMonthChange?(month: number): void;\n onRequestYearChange?(year: number): void;\n}\nexport declare const DatePickerBase: (new (...args: any[]) => ThemedMixin<{}>) & typeof WidgetBase;\nexport default class DatePicker extends DatePickerBase {\n private _callMonthTriggerFocus;\n private _callYearTriggerFocus;\n private _callMonthPopupFocus;\n private _callYearPopupFocus;\n private _idBase;\n private _monthPopupOpen;\n private _yearPopupOpen;\n private _yearPage;\n private _closeMonthPopup();\n private _closeYearPopup();\n private _getPopupState();\n private _getYearRange();\n protected onElementUpdated(element: HTMLElement, key: string): void;\n private _onMonthButtonClick();\n private _onMonthRadioChange(event);\n private _onPopupKeyDown(event);\n private _onYearButtonClick();\n private _onYearPageDown();\n private _onYearPageUp();\n private _onYearRadioChange(event);\n private _openMonthPopup();\n private _openYearPopup();\n protected renderControlsTrigger(type: Controls): DNode;\n protected renderMonthLabel(month: number, year: number): DNode;\n protected renderMonthRadios(): DNode[];\n protected renderPagingButtonContent(type: Paging): DNode[];\n protected renderYearRadios(): DNode[];\n protected render(): DNode;\n}\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widgets/calendar/styles/calendar.m.css.d.ts", + "text": "export const root: string;\nexport const dateGrid: string;\nexport const weekday: string;\nexport const date: string;\nexport const inactiveDate: string;\nexport const selectedDate: string;\nexport const todayDate: string;\nexport const datePicker: string;\nexport const topMatter: string;\nexport const monthTrigger: string;\nexport const yearTrigger: string;\nexport const controls: string;\nexport const previous: string;\nexport const next: string;\nexport const monthGrid: string;\nexport const monthFields: string;\nexport const yearGrid: string;\nexport const yearFields: string;\nexport const monthRadio: string;\nexport const yearRadio: string;\nexport const monthRadioChecked: string;\nexport const yearRadioChecked: string;\nexport const monthRadioInput: string;\nexport const monthRadioLabel: string;\nexport const yearRadioInput: string;\nexport const yearRadioLabel: string;\nexport const monthTriggerActive: string;\nexport const yearTriggerActive: string;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widgets/checkbox/Checkbox.d.ts", + "text": "import { WidgetBase } from '@dojo/widget-core/WidgetBase';\nimport { DNode } from '@dojo/widget-core/interfaces';\nimport { ThemedMixin, ThemedProperties } from '@dojo/widget-core/mixins/Themed';\nimport { LabelOptions } from '../label/Label';\n/**\n * @type CheckboxProperties\n *\n * Properties that can be set on a Checkbox component\n *\n * @property checked Checked/unchecked property of the radio\n * @property describedBy ID of an element that provides more descriptive text\n * @property disabled Prevents the user from interacting with the form field\n * @property invalid Indicates the valid is invalid, or required and not filled in\n * @property label Label settings for form label text, position, and visibility\n * @property mode The type of user interface to show for this Checkbox\n * @property name The form widget's name\n * @property offLabel Label to show in the \"off\" positin of a toggle\n * @property onLabel Label to show in the \"on\" positin of a toggle\n * @property readOnly Allows or prevents user interaction\n * @property required Whether or not a value is required\n * @property value The current value\n * @property onBlur Called when the input loses focus\n * @property onChange Called when the node's 'change' event is fired\n * @property onClick Called when the input is clicked\n * @property onFocus Called when the input is focused\n * @property onMouseDown Called on the input's mousedown event\n * @property onMouseUp Called on the input's mouseup event\n * @property onTouchStart Called on the input's touchstart event\n * @property onTouchEnd Called on the input's touchend event\n * @property onTouchCancel Called on the input's touchcancel event\n */\nexport interface CheckboxProperties extends ThemedProperties {\n checked?: boolean;\n describedBy?: string;\n disabled?: boolean;\n invalid?: boolean;\n label?: string | LabelOptions;\n mode?: Mode;\n name?: string;\n offLabel?: DNode;\n onLabel?: DNode;\n readOnly?: boolean;\n required?: boolean;\n value?: string;\n onBlur?(event: FocusEvent): void;\n onChange?(event: Event): void;\n onClick?(event: MouseEvent): void;\n onFocus?(event: FocusEvent): void;\n onMouseDown?(event: MouseEvent): void;\n onMouseUp?(event: MouseEvent): void;\n onTouchStart?(event: TouchEvent): void;\n onTouchEnd?(event: TouchEvent): void;\n onTouchCancel?(event: TouchEvent): void;\n}\n/**\n * The type of UI to show for this Checkbox\n */\nexport declare const enum Mode {\n normal = 0,\n toggle = 1,\n}\nexport declare const CheckboxBase: (new (...args: any[]) => ThemedMixin<{}>) & typeof WidgetBase;\nexport default class Checkbox extends CheckboxBase {\n private _focused;\n private _onBlur(event);\n private _onChange(event);\n private _onClick(event);\n private _onFocus(event);\n private _onMouseDown(event);\n private _onMouseUp(event);\n private _onTouchStart(event);\n private _onTouchEnd(event);\n private _onTouchCancel(event);\n protected getModifierClasses(): (string | null)[];\n protected renderToggle(): DNode[];\n protected render(): DNode;\n}\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widgets/checkbox/styles/checkbox.m.css.d.ts", + "text": "export const root: string;\nexport const input: string;\nexport const inputWrapper: string;\nexport const checked: string;\nexport const disabled: string;\nexport const focused: string;\nexport const readonly: string;\nexport const required: string;\nexport const invalid: string;\nexport const valid: string;\nexport const toggle: string;\nexport const onLabel: string;\nexport const offLabel: string;\nexport const toggleSwitch: string;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widgets/combobox/ComboBox.d.ts", + "text": "import { DNode } from '@dojo/widget-core/interfaces';\nimport { ThemedMixin, ThemedProperties } from '@dojo/widget-core/mixins/Themed';\nimport { WidgetBase } from '@dojo/widget-core/WidgetBase';\nimport { LabelOptions } from '../label/Label';\nimport { TextInputProperties } from '../textinput/TextInput';\n/**\n * @type ComboBoxProperties\n *\n * Properties that can be set on a ComboBox component\n *\n * @property clearable Determines whether the input should be able to be cleared\n * @property disabled Prevents user interaction and styles content accordingly\n * @property getResultLabel Can be used to get the text label of a result based on the underlying result object\n * @property id Optional id string for the combobox\n * @property inputProperties TextInput properties to set on the underlying input\n * @property invalid Determines if this input is valid\n * @property isResultDisabled Used to determine if an item should be disabled\n * @property label Label to show for this input\n * @property onBlur Called when the input is blurred\n * @property onChange Called when the value changes\n * @property onFocus Called when the input is focused\n * @property onMenuChange Called when menu visibility changes\n * @property onRequestResults Called when results are shown; should be used to set `results`\n * @property openOnFocus Determines whether the result list should open when the input is focused\n * @property readOnly Prevents user interaction\n * @property required Determines if this input is required, styles accordingly\n * @property results Results for the current search term; should be set in response to `onRequestResults`\n * @property value Value to set on the input\n */\nexport interface ComboBoxProperties extends ThemedProperties {\n clearable?: boolean;\n disabled?: boolean;\n getResultLabel?(result: any): string;\n id?: string;\n inputProperties?: TextInputProperties;\n invalid?: boolean;\n isResultDisabled?(result: any): boolean;\n label?: string | LabelOptions;\n onBlur?(value: string, key?: string | number): void;\n onChange?(value: string, key?: string | number): void;\n onFocus?(value: string, key?: string | number): void;\n onMenuChange?(open: boolean, key?: string | number): void;\n onRequestResults?(key?: string | number): void;\n openOnFocus?: boolean;\n readOnly?: boolean;\n required?: boolean;\n results?: any[];\n value?: string;\n}\nexport declare const enum Operation {\n increase = 1,\n decrease = -1,\n}\nexport declare const ThemedBase: (new (...args: any[]) => ThemedMixin<{}>) & typeof WidgetBase;\nexport default class ComboBox extends ThemedBase {\n private _activeIndex;\n private _callInputFocus;\n private _ignoreBlur;\n private _idBase;\n private _menuHasVisualFocus;\n private _open;\n private _wasOpen;\n private _closeMenu();\n private _getMenuId();\n private _getResultLabel(result);\n private _getResultId(result, index);\n private _onArrowClick();\n private _onClearClick();\n private _onInput(event);\n private _onInputBlur(event);\n private _onInputFocus(event);\n private _onInputKeyDown(event);\n private _onMenuChange();\n private _onResultHover();\n private _onResultMouseDown();\n private _openMenu();\n private _selectIndex(index);\n private _moveActiveIndex(operation);\n protected onElementUpdated(element: HTMLElement, key: string): void;\n protected renderInput(): DNode;\n protected renderClearButton(): DNode;\n protected renderMenuButton(): DNode;\n protected renderMenu(results: any[]): DNode;\n render(): DNode;\n}\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widgets/combobox/createComboBoxElement.d.ts", + "text": "import { CustomElementDescriptor } from '@dojo/widget-core/customElements';\n/**\n * Configures a ComboBox web component\n */\nexport default function createComboBoxElement(): CustomElementDescriptor;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widgets/combobox/styles/comboBox.m.css.d.ts", + "text": "export const root: string;\nexport const controls: string;\nexport const input: string;\nexport const clearable: string;\nexport const dropdown: string;\nexport const option: string;\nexport const disabledOption: string;\nexport const selected: string;\nexport const clear: string;\nexport const trigger: string;\nexport const valid: string;\nexport const invalid: string;\nexport const open: string;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widgets/common/styles/animations.m.css.d.ts", + "text": "export const fadeIn: string;\nexport const fadeOut: string;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widgets/common/styles/base.m.css.d.ts", + "text": "export const visuallyHidden: string;\nexport const focusable: string;\nexport const hidden: string;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widgets/common/styles/icons.m.css.d.ts", + "text": "export const icon: string;\nexport const plusIcon: string;\nexport const minusIcon: string;\nexport const checkIcon: string;\nexport const closeIcon: string;\nexport const leftIcon: string;\nexport const rightIcon: string;\nexport const upIcon: string;\nexport const downIcon: string;\nexport const upAltIcon: string;\nexport const downAltIcon: string;\nexport const searchIcon: string;\nexport const barsIcon: string;\nexport const settingsIcon: string;\nexport const alertIcon: string;\nexport const helpIcon: string;\nexport const infoIcon: string;\nexport const phoneIcon: string;\nexport const editIcon: string;\nexport const dateIcon: string;\nexport const linkIcon: string;\nexport const locationIcon: string;\nexport const secureIcon: string;\nexport const mailIcon: string;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widgets/common/util.d.ts", + "text": "export declare const enum Keys {\n Down = 40,\n End = 35,\n Enter = 13,\n Escape = 27,\n Home = 36,\n Left = 37,\n PageDown = 34,\n PageUp = 33,\n Right = 39,\n Space = 32,\n Tab = 9,\n Up = 38,\n}\nexport declare function createResolvers(): {\n resolve(): void;\n stub(): void;\n restore(): void;\n};\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widgets/dialog/createDialogElement.d.ts", + "text": "import { CustomElementDescriptor } from '@dojo/widget-core/customElements';\n/**\n * Configures a Dialog web component\n */\nexport default function createDialogElement(): CustomElementDescriptor;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widgets/dialog/Dialog.d.ts", + "text": "import { DNode } from '@dojo/widget-core/interfaces';\nimport { WidgetBase } from '@dojo/widget-core/WidgetBase';\nimport { ThemedMixin, ThemedProperties } from '@dojo/widget-core/mixins/Themed';\n/**\n * The role of this dialog, used for accessibility\n */\nexport declare type RoleType = 'dialog' | 'alertdialog';\n/**\n * @type DialogProperties\n *\n * Properties that can be set on a Dialog component\n *\n * @property closeable Determines whether the dialog can be closed\n * @property closeText Hidden text used by screen readers to display for the close button\n * @property enterAnimation CSS class to apply to the dialog when opened\n * @property exitAnimation CSS class to apply to the dialog when closed\n * @property modal Determines whether the dialog can be closed by clicking outside its content\n * @property onOpen Called when the dialog opens\n * @property onRequestClose Called when the dialog is closed\n * @property open Determines whether the dialog is open or closed\n * @property role Role of this dialog for accessibility, either 'alert' or 'dialog'\n * @property title Title to show in the dialog title bar\n * @property underlay Determines whether a semi-transparent background shows behind the dialog\n */\nexport interface DialogProperties extends ThemedProperties {\n closeable?: boolean;\n closeText?: string;\n enterAnimation?: string;\n exitAnimation?: string;\n modal?: boolean;\n onOpen?(): void;\n onRequestClose?(): void;\n open?: boolean;\n role?: RoleType;\n title?: string;\n underlay?: boolean;\n}\nexport declare const DialogBase: (new (...args: any[]) => ThemedMixin<{}>) & typeof WidgetBase;\nexport default class Dialog extends DialogBase {\n private _titleId;\n private _wasOpen;\n private _onCloseClick();\n private _onUnderlayClick();\n private _onKeyUp;\n constructor();\n protected onDetach(): void;\n protected getContent(): DNode;\n protected renderCloseIcon(): DNode;\n protected renderTitle(): DNode;\n protected renderUnderlay(): DNode;\n render(): DNode;\n}\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widgets/dialog/styles/dialog.m.css.d.ts", + "text": "export const root: string;\nexport const main: string;\nexport const underlay: string;\nexport const underlayVisible: string;\nexport const title: string;\nexport const content: string;\nexport const close: string;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widgets/label/Label.d.ts", + "text": "import { WidgetBase } from '@dojo/widget-core/WidgetBase';\nimport { DNode, SupportedClassName } from '@dojo/widget-core/interfaces';\nimport { ThemedMixin, ThemedProperties } from '@dojo/widget-core/mixins/Themed';\n/**\n * Label settings for form label text content, position (before or after), and visibility\n */\nexport interface LabelOptions {\n content: string;\n before?: boolean;\n hidden?: boolean;\n}\n/**\n * @type LabelProperties\n *\n * Properties that can be set on a Label component\n *\n * @property forId ID to explicitly associate the label with an input element\n * @property label Label settings for form label text, position, and visibility\n */\nexport interface LabelProperties extends ThemedProperties {\n forId?: string;\n label: string | LabelOptions;\n}\n/**\n * This is a helper function for using `extraClasses` with Label.\n * It can be used as follows:\n * extraClasses: { root: parseLabelClasses(this.theme([ css.class1, css.class2 ])) }\n */\nexport declare function parseLabelClasses(classes: SupportedClassName | SupportedClassName[]): string;\nexport declare const LabelBase: (new (...args: any[]) => ThemedMixin<{}>) & typeof WidgetBase;\nexport default class Label extends LabelBase {\n render(): DNode;\n}\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widgets/label/styles/label.m.css.d.ts", + "text": "export const root: string;\nexport const labelText: string;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widgets/listbox/Listbox.d.ts", + "text": "import { DNode } from '@dojo/widget-core/interfaces';\nimport MetaBase from '@dojo/widget-core/meta/Base';\nimport { ThemedMixin, ThemedProperties } from '@dojo/widget-core/mixins/Themed';\nimport { WidgetBase } from '@dojo/widget-core/WidgetBase';\nexport declare class ScrollMeta extends MetaBase {\n scroll(key: string | number, amount: number): void;\n}\n/**\n * @type ListboxProperties\n *\n * Properties that can be set on a Listbox component\n *\n * @property activeIndex Index of the currently active listbox option\n * @property describedBy ID of an element that provides more descriptive text\n * @property getOptionLabel Function to return string label based on option data\n * @property getOptionDisabled Function that accepts option data and returns a boolean for disabled/not disabled\n * @property getOptionId Function that accepts option data and returns a string ID\n * @property getOptionSelected Function that accepts option data and returns a boolean for selected/unselected\n * @property id Optional custom id for the listbox\n * @property multiselect Adds currect semantics for a multiselect listbox\n * @property optionData Array of data for listbox options\n * @property tabIndex Listbox is in the focus order by default, but setting tabIndex: -1 will remove it\n * @property visualFocus When controlling Listbox through an outside widget, e.g. in ComboBox, visualFocus mimics visual focus styling when true\n * @property onActiveIndexChange Called with the index of the new requested active descendant\n * @property onOptionSelect Called with the option data of the new requested selected item\n */\nexport interface ListboxProperties extends ThemedProperties {\n activeIndex?: number;\n describedBy?: string;\n getOptionDisabled?(option: any, index: number): boolean;\n getOptionId?(option: any, index: number): string;\n getOptionLabel?(option: any, index: number): DNode;\n getOptionSelected?(option: any, index: number): boolean;\n id?: string;\n multiselect?: boolean;\n optionData?: any[];\n tabIndex?: number;\n visualFocus?: boolean;\n onActiveIndexChange?(index: number, key?: string | number): void;\n onKeyDown?(event: KeyboardEvent, key?: string | number): void;\n onOptionSelect?(option: any, index: number, key?: string | number): void;\n}\nexport declare const ThemedBase: (new (...args: any[]) => ThemedMixin<{}>) & typeof WidgetBase;\nexport default class Listbox extends ThemedBase {\n private _boundRenderOption;\n private _idBase;\n private _getOptionDisabled(option, index);\n private _getOptionId(index);\n private _onKeyDown(event);\n private _onOptionClick(option, index, key?);\n protected animateScroll(scrollValue: number): void;\n protected calculateScroll(previousProperties: ListboxProperties, {activeIndex}: ListboxProperties): void;\n protected getModifierClasses(): (string | null)[];\n protected getOptionClasses(active: boolean, disabled: boolean, selected: boolean): (string | null)[];\n protected renderOptionLabel(option: any, index: number): DNode;\n protected renderOption(option: any, index: number): DNode;\n protected renderOptions(): DNode[];\n protected render(): DNode;\n}\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widgets/listbox/ListboxOption.d.ts", + "text": "import { DNode } from '@dojo/widget-core/interfaces';\nimport { ThemedMixin, ThemedProperties } from '@dojo/widget-core/mixins/Themed';\nimport { WidgetBase } from '@dojo/widget-core/WidgetBase';\nexport interface ListboxOptionProperties extends ThemedProperties {\n active?: boolean;\n classes?: (string | null)[];\n disabled?: boolean;\n id: string;\n index: number;\n label: DNode;\n option: any;\n selected?: boolean;\n onClick?(option: any, index: number, key?: string | number): void;\n}\nexport declare const ThemedBase: (new (...args: any[]) => ThemedMixin<{}>) & typeof WidgetBase;\nexport default class ListboxOption extends ThemedBase {\n private _onClick(event);\n protected render(): DNode;\n}\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widgets/listbox/styles/listbox.m.css.d.ts", + "text": "export const root: string;\nexport const option: string;\nexport const focused: string;\nexport const activeOption: string;\nexport const disabledOption: string;\nexport const selectedOption: string;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widgets/radio/Radio.d.ts", + "text": "import { WidgetBase } from '@dojo/widget-core/WidgetBase';\nimport { DNode } from '@dojo/widget-core/interfaces';\nimport { ThemedMixin, ThemedProperties } from '@dojo/widget-core/mixins/Themed';\nimport { LabelOptions } from '../label/Label';\n/**\n * @type RadioProperties\n *\n * Properties that can be set on a Radio component\n *\n * @property checked Checked/unchecked property of the radio\n * @property describedBy ID of an element that provides more descriptive text\n * @property disabled Prevents the user from interacting with the form field\n * @property invalid Indicates the valid is invalid, or required and not filled in\n * @property label Label settings for form label text, position, and visibility\n * @property name The form widget's name\n * @property readOnly Allows or prevents user interaction\n * @property required Whether or not a value is required\n * @property value The current value\n * @property onBlur Called when the input loses focus\n * @property onChange Called when the node's 'change' event is fired\n * @property onClick Called when the input is clicked\n * @property onFocus Called when the input is focused\n * @property onMouseDown Called on the input's mousedown event\n * @property onMouseUp Called on the input's mouseup event\n * @property onTouchStart Called on the input's touchstart event\n * @property onTouchEnd Called on the input's touchend event\n * @property onTouchCancel Called on the input's touchcancel event\n */\nexport interface RadioProperties extends ThemedProperties {\n checked?: boolean;\n describedBy?: string;\n disabled?: boolean;\n invalid?: boolean;\n label?: string | LabelOptions;\n name?: string;\n readOnly?: boolean;\n required?: boolean;\n value?: string;\n onBlur?(event: FocusEvent): void;\n onChange?(event: Event): void;\n onClick?(event: MouseEvent): void;\n onFocus?(event: FocusEvent): void;\n onMouseDown?(event: MouseEvent): void;\n onMouseUp?(event: MouseEvent): void;\n onTouchStart?(event: TouchEvent): void;\n onTouchEnd?(event: TouchEvent): void;\n onTouchCancel?(event: TouchEvent): void;\n}\nexport declare const RadioBase: (new (...args: any[]) => ThemedMixin<{}>) & typeof WidgetBase;\nexport default class Radio extends RadioBase {\n private _focused;\n private _onBlur(event);\n private _onChange(event);\n private _onClick(event);\n private _onFocus(event);\n private _onMouseDown(event);\n private _onMouseUp(event);\n private _onTouchStart(event);\n private _onTouchEnd(event);\n private _onTouchCancel(event);\n protected getModifierClasses(): (string | null)[];\n render(): DNode;\n}\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widgets/radio/styles/radio.m.css.d.ts", + "text": "export const root: string;\nexport const input: string;\nexport const inputWrapper: string;\nexport const checked: string;\nexport const focused: string;\nexport const disabled: string;\nexport const readonly: string;\nexport const required: string;\nexport const invalid: string;\nexport const valid: string;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widgets/select/Select.d.ts", + "text": "import { WidgetBase } from '@dojo/widget-core/WidgetBase';\nimport { DNode } from '@dojo/widget-core/interfaces';\nimport { ThemedMixin, ThemedProperties } from '@dojo/widget-core/mixins/Themed';\nimport { LabelOptions } from '../label/Label';\n/**\n * @type SelectProperties\n *\n * Properties that can be set on a Select component\n *\n * @property describedBy ID of an element that provides more descriptive text\n * @property disabled Prevents the user from interacting with the form field\n * @property invalid Indicates the value entered in the form field is invalid\n * @property getOptionDisabled Function that accepts an option's data and index and returns a boolean\n * @property getOptionId Function that accepts an option's data and index and returns a string id\n * @property getOptionLabel Function that accepts an option's data and index and returns a DNode label\n * @property getOptionSelected Function that accepts an option's data and index and returns a boolean\n * @property getOptionValue Function that accepts an option's data and index and returns a string value\n * @property label Label settings for form label text, position, and visibility\n * @property name The form widget's name\n * @property options Array of any type of data for the options\n * @property placeholder Optional placeholder text, only valid for custom select widgets (useNativeElement must be false or undefined)\n * @property readOnly Allows or prevents user interaction\n * @property required Whether or not a value is required\n * @property useNativeElement Use the native element if true\n * @property value Value to set on the input\n */\nexport interface TimePickerProperties extends ThemedProperties {\n autoBlur?: boolean;\n clearable?: boolean;\n disabled?: boolean;\n end?: string;\n getOptionLabel?(option: TimeUnits): string;\n inputProperties?: TextInputProperties;\n invalid?: boolean;\n isOptionDisabled?(result: any): boolean;\n label?: string | LabelOptions;\n name?: string;\n onBlur?(value: string): void;\n onChange?(value: string): void;\n onFocus?(value: string): void;\n onMenuChange?(open: boolean): void;\n onRequestOptions?(value: string, options: TimeUnits[]): void;\n openOnFocus?: boolean;\n options?: TimeUnits[];\n readOnly?: boolean;\n required?: boolean;\n start?: string;\n step?: number;\n useNativeElement?: boolean;\n value?: string;\n}\n/**\n * An object representing a dateless time (without milliseconds).\n *\n * @property hour The number of hours.\n * @property minute An optional number of minutes.\n * @property second An optional number of seconds.\n */\nexport interface TimeUnits {\n hour: number;\n minute?: number;\n second?: number;\n}\n/**\n * Generate an array of time unit objects from the specified start date to the specified end date.\n *\n * @param start The start time. Defaults to midnight.\n * @param end The end time. Defaults to 23:59:59.\n * @param step The amount of time in seconds between each step. Defaults to 60.\n * @return An array of time unit objects.\n */\nexport declare function getOptions(start?: string, end?: string, step?: number): TimeUnits[];\n/**\n * Convert a standard time string into an object with `hour`, `minute`, and `second` number properties.\n *\n * For example, '12:30' is converted to `{ hour: 12, minute: 30, second: 0 }`, and '19:03:27' is converted\n * to `{ hour: 19, minute: 3, second: 27 }`.\n *\n * @param value A standard time string or an object with `hour`, `minute`, and `second` properties.\n * @return An object containing `hour`, `second`, and `number` properties.\n */\nexport declare function parseUnits(value: string | TimeUnits): TimeUnits;\nexport declare const TimePickerBase: (new (...args: any[]) => ThemedMixin<{}>) & typeof WidgetBase;\nexport declare class TimePicker extends TimePickerBase {\n protected options: TimeUnits[] | null;\n private _formatUnits(units);\n private _getOptionLabel(value);\n private _onNativeBlur(event);\n private _onNativeChange(event);\n private _onNativeFocus(event);\n private _onRequestOptions(value);\n protected getModifierClasses(): (string | null)[];\n protected getOptions(): TimeUnits[];\n protected onPropertiesChanged(): void;\n protected renderCustomInput(): DNode;\n protected renderNativeInput(): DNode;\n render(): DNode;\n}\nexport default TimePicker;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widgets/titlepane/styles/titlePane.m.css.d.ts", + "text": "export const rootFixed: string;\nexport const root: string;\nexport const open: string;\nexport const titleFixed: string;\nexport const title: string;\nexport const closeableFixed: string;\nexport const closeable: string;\nexport const content: string;\nexport const arrow: string;\nexport const titleButton: string;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widgets/titlepane/TitlePane.d.ts", + "text": "import { DNode } from '@dojo/widget-core/interfaces';\nimport { ThemedMixin, ThemedProperties } from '@dojo/widget-core/mixins/Themed';\nimport { WidgetBase } from '@dojo/widget-core/WidgetBase';\n/**\n * @type TitlePaneProperties\n *\n * Properties that can be set on a TitlePane component\n *\n * @property closeable If false the pane will not collapse in response to clicking the title\n * @property headingLevel 'aria-level' for the title's DOM node\n * @property onRequestClose Called when the title of an open pane is clicked\n * @property onRequestOpen Called when the title of a closed pane is clicked\n * @property open If true the pane is opened and content is visible\n * @property title Title to display above the content\n */\nexport interface TitlePaneProperties extends ThemedProperties {\n closeable?: boolean;\n headingLevel?: number;\n onRequestClose?(key: string | number | undefined): void;\n onRequestOpen?(key: string | number | undefined): void;\n open?: boolean;\n title: string;\n}\nexport declare const TitlePaneBase: (new (...args: any[]) => ThemedMixin<{}>) & typeof WidgetBase;\nexport default class TitlePane extends TitlePaneBase {\n private _contentId;\n private _titleId;\n private _afterRender(element);\n private _onTitleClick();\n private _toggle();\n protected onElementCreated(element: HTMLElement, key: string): void;\n protected onElementUpdated(element: HTMLElement, key: string): void;\n protected getButtonContent(): DNode;\n protected getFixedModifierClasses(): (string | null)[];\n protected getModifierClasses(): (string | null)[];\n protected getPaneContent(): DNode[];\n protected renderExpandIcon(): DNode;\n render(): DNode;\n}\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widgets/tooltip/createTooltipElement.d.ts", + "text": "import { CustomElementDescriptor } from '@dojo/widget-core/customElements';\n/**\n * Configures a Tooltip web component\n */\nexport default function createTooltipElement(): CustomElementDescriptor;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widgets/tooltip/styles/tooltip.m.css.d.ts", + "text": "export const rootFixed: string;\nexport const contentFixed: string;\nexport const bottomFixed: string;\nexport const leftFixed: string;\nexport const rightFixed: string;\nexport const topFixed: string;\nexport const root: string;\nexport const content: string;\nexport const top: string;\nexport const right: string;\nexport const left: string;\nexport const bottom: string;\n", + "type": 2 + }, + { + "name": "node_modules/@dojo/widgets/tooltip/Tooltip.d.ts", + "text": "import { DNode, WidgetProperties } from '@dojo/widget-core/interfaces';\nimport { ThemedMixin } from '@dojo/widget-core/mixins/Themed';\nimport { WidgetBase } from '@dojo/widget-core/WidgetBase';\n/**\n * @type TooltipProperties\n *\n * Properties that can be set on Tooltip components\n *\n * @property content Information to show within the tooltip\n * @property orientation Where this tooltip should render relative to its child\n * @property open Determines if this tooltip is visible\n */\nexport interface TooltipProperties extends WidgetProperties {\n content: DNode;\n orientation?: Orientation;\n open?: boolean;\n}\nexport declare const enum Orientation {\n bottom = \"bottom\",\n left = \"left\",\n right = \"right\",\n top = \"top\",\n}\nexport declare const ThemedBase: (new (...args: any[]) => ThemedMixin<{}>) & typeof WidgetBase;\nexport default class Tooltip extends ThemedBase {\n protected getFixedModifierClasses(): (string | null)[];\n protected getModifierClasses(): (string | null)[];\n protected renderContent(): DNode;\n protected renderTarget(): DNode;\n render(): DNode;\n}\n", + "type": 2 + }, + { + "name": "node_modules/@types/node/index.d.ts", + "text": "// Type definitions for Node.js v6.x\r\n// Project: http://nodejs.org/\r\n// Definitions by: Microsoft TypeScript \r\n// DefinitelyTyped \r\n// Wilco Bakker \r\n// Thomas Bouldin \r\n// Sebastian Silbermann \r\n// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped\r\n\r\n/************************************************\r\n* *\r\n* Node.js v6.x API *\r\n* *\r\n************************************************/\r\n\r\n// This needs to be global to avoid TS2403 in case lib.dom.d.ts is present in the same build\r\ninterface Console {\r\n Console: typeof NodeJS.Console;\r\n assert(value: any, message?: string, ...optionalParams: any[]): void;\r\n dir(obj: any, options?: NodeJS.InspectOptions): void;\r\n error(message?: any, ...optionalParams: any[]): void;\r\n info(message?: any, ...optionalParams: any[]): void;\r\n log(message?: any, ...optionalParams: any[]): void;\r\n time(label: string): void;\r\n timeEnd(label: string): void;\r\n trace(message?: any, ...optionalParams: any[]): void;\r\n warn(message?: any, ...optionalParams: any[]): void;\r\n}\r\n\r\ninterface Error {\r\n stack?: string;\r\n}\r\n\r\ninterface ErrorConstructor {\r\n captureStackTrace(targetObject: Object, constructorOpt?: Function): void;\r\n stackTraceLimit: number;\r\n}\r\n\r\n// compat for TypeScript 1.8\r\n// if you use with --target es3 or --target es5 and use below definitions,\r\n// use the lib.es6.d.ts that is bundled with TypeScript 1.8.\r\ninterface MapConstructor { }\r\ninterface WeakMapConstructor { }\r\ninterface SetConstructor { }\r\ninterface WeakSetConstructor { }\r\n\r\n/************************************************\r\n* *\r\n* GLOBAL *\r\n* *\r\n************************************************/\r\ndeclare var process: NodeJS.Process;\r\ndeclare var global: NodeJS.Global;\r\ndeclare var console: Console;\r\n\r\ndeclare var __filename: string;\r\ndeclare var __dirname: string;\r\n\r\ndeclare function setTimeout(callback: (...args: any[]) => void, ms: number, ...args: any[]): NodeJS.Timer;\r\ndeclare function clearTimeout(timeoutId: NodeJS.Timer): void;\r\ndeclare function setInterval(callback: (...args: any[]) => void, ms: number, ...args: any[]): NodeJS.Timer;\r\ndeclare function clearInterval(intervalId: NodeJS.Timer): void;\r\ndeclare function setImmediate(callback: (...args: any[]) => void, ...args: any[]): any;\r\ndeclare function clearImmediate(immediateId: any): void;\r\n\r\ninterface NodeRequireFunction {\r\n (id: string): any;\r\n}\r\n\r\ninterface NodeRequire extends NodeRequireFunction {\r\n resolve(id: string): string;\r\n cache: any;\r\n extensions: any;\r\n main: NodeModule | undefined;\r\n}\r\n\r\ndeclare var require: NodeRequire;\r\n\r\ninterface NodeModule {\r\n exports: any;\r\n require: NodeRequireFunction;\r\n id: string;\r\n filename: string;\r\n loaded: boolean;\r\n parent: NodeModule | null;\r\n children: NodeModule[];\r\n}\r\n\r\ndeclare var module: NodeModule;\r\n\r\n// Same as module.exports\r\ndeclare var exports: any;\r\ndeclare var SlowBuffer: {\r\n new (str: string, encoding?: string): Buffer;\r\n new (size: number): Buffer;\r\n new (size: Uint8Array): Buffer;\r\n new (array: any[]): Buffer;\r\n prototype: Buffer;\r\n isBuffer(obj: any): boolean;\r\n byteLength(string: string, encoding?: string): number;\r\n concat(list: Buffer[], totalLength?: number): Buffer;\r\n};\r\n\r\n\r\n// Buffer class\r\ntype BufferEncoding = \"ascii\" | \"utf8\" | \"utf16le\" | \"ucs2\" | \"base64\" | \"latin1\" | \"binary\" | \"hex\";\r\ninterface Buffer extends NodeBuffer { }\r\n\r\n/**\r\n * Raw data is stored in instances of the Buffer class.\r\n * A Buffer is similar to an array of integers but corresponds to a raw memory allocation outside the V8 heap. A Buffer cannot be resized.\r\n * Valid string encodings: 'ascii'|'utf8'|'utf16le'|'ucs2'(alias of 'utf16le')|'base64'|'binary'(deprecated)|'hex'\r\n */\r\ndeclare var Buffer: {\r\n /**\r\n * Allocates a new buffer containing the given {str}.\r\n *\r\n * @param str String to store in buffer.\r\n * @param encoding encoding to use, optional. Default is 'utf8'\r\n */\r\n new (str: string, encoding?: string): Buffer;\r\n /**\r\n * Allocates a new buffer of {size} octets.\r\n *\r\n * @param size count of octets to allocate.\r\n */\r\n new (size: number): Buffer;\r\n /**\r\n * Allocates a new buffer containing the given {array} of octets.\r\n *\r\n * @param array The octets to store.\r\n */\r\n new (array: Uint8Array): Buffer;\r\n /**\r\n * Produces a Buffer backed by the same allocated memory as\r\n * the given {ArrayBuffer}.\r\n *\r\n *\r\n * @param arrayBuffer The ArrayBuffer with which to share memory.\r\n */\r\n new (arrayBuffer: ArrayBuffer): Buffer;\r\n /**\r\n * Allocates a new buffer containing the given {array} of octets.\r\n *\r\n * @param array The octets to store.\r\n */\r\n new (array: any[]): Buffer;\r\n /**\r\n * Copies the passed {buffer} data onto a new {Buffer} instance.\r\n *\r\n * @param buffer The buffer to copy.\r\n */\r\n new (buffer: Buffer): Buffer;\r\n prototype: Buffer;\r\n /**\r\n * Allocates a new Buffer using an {array} of octets.\r\n */\r\n from(array: any[]): Buffer;\r\n /**\r\n * When passed a reference to the .buffer property of a TypedArray instance,\r\n * the newly created Buffer will share the same allocated memory as the TypedArray.\r\n * The optional {byteOffset} and {length} arguments specify a memory range\r\n * within the {arrayBuffer} that will be shared by the Buffer.\r\n *\r\n * @param arrayBuffer The .buffer property of a TypedArray or a new ArrayBuffer()\r\n */\r\n from(arrayBuffer: ArrayBuffer, byteOffset?: number, length?: number): Buffer;\r\n /**\r\n * Copies the passed {buffer} data onto a new Buffer instance.\r\n */\r\n from(buffer: Buffer): Buffer;\r\n /**\r\n * Creates a new Buffer containing the given JavaScript string {str}.\r\n * If provided, the {encoding} parameter identifies the character encoding.\r\n * If not provided, {encoding} defaults to 'utf8'.\r\n */\r\n from(str: string, encoding?: string): Buffer;\r\n /**\r\n * Returns true if {obj} is a Buffer\r\n *\r\n * @param obj object to test.\r\n */\r\n isBuffer(obj: any): obj is Buffer;\r\n /**\r\n * Returns true if {encoding} is a valid encoding argument.\r\n * Valid string encodings in Node 0.12: 'ascii'|'utf8'|'utf16le'|'ucs2'(alias of 'utf16le')|'base64'|'binary'(deprecated)|'hex'\r\n *\r\n * @param encoding string to test.\r\n */\r\n isEncoding(encoding: string): boolean;\r\n /**\r\n * Gives the actual byte length of a string. encoding defaults to 'utf8'.\r\n * This is not the same as String.prototype.length since that returns the number of characters in a string.\r\n *\r\n * @param string string to test.\r\n * @param encoding encoding used to evaluate (defaults to 'utf8')\r\n */\r\n byteLength(string: string, encoding?: string): number;\r\n /**\r\n * Returns a buffer which is the result of concatenating all the buffers in the list together.\r\n *\r\n * If the list has no items, or if the totalLength is 0, then it returns a zero-length buffer.\r\n * If the list has exactly one item, then the first item of the list is returned.\r\n * If the list has more than one item, then a new Buffer is created.\r\n *\r\n * @param list An array of Buffer objects to concatenate\r\n * @param totalLength Total length of the buffers when concatenated.\r\n * If totalLength is not provided, it is read from the buffers in the list. However, this adds an additional loop to the function, so it is faster to provide the length explicitly.\r\n */\r\n concat(list: Buffer[], totalLength?: number): Buffer;\r\n /**\r\n * The same as buf1.compare(buf2).\r\n */\r\n compare(buf1: Buffer, buf2: Buffer): number;\r\n /**\r\n * Allocates a new buffer of {size} octets.\r\n *\r\n * @param size count of octets to allocate.\r\n * @param fill if specified, buffer will be initialized by calling buf.fill(fill).\r\n * If parameter is omitted, buffer will be filled with zeros.\r\n * @param encoding encoding used for call to buf.fill while initalizing\r\n */\r\n alloc(size: number, fill?: string | Buffer | number, encoding?: string): Buffer;\r\n /**\r\n * Allocates a new buffer of {size} octets, leaving memory not initialized, so the contents\r\n * of the newly created Buffer are unknown and may contain sensitive data.\r\n *\r\n * @param size count of octets to allocate\r\n */\r\n allocUnsafe(size: number): Buffer;\r\n /**\r\n * Allocates a new non-pooled buffer of {size} octets, leaving memory not initialized, so the contents\r\n * of the newly created Buffer are unknown and may contain sensitive data.\r\n *\r\n * @param size count of octets to allocate\r\n */\r\n allocUnsafeSlow(size: number): Buffer;\r\n};\r\n\r\n/************************************************\r\n* *\r\n* GLOBAL INTERFACES *\r\n* *\r\n************************************************/\r\ndeclare namespace NodeJS {\r\n export interface InspectOptions {\r\n showHidden?: boolean;\r\n depth?: number | null;\r\n colors?: boolean;\r\n customInspect?: boolean;\r\n showProxy?: boolean;\r\n maxArrayLength?: number | null;\r\n breakLength?: number;\r\n }\r\n\r\n export var Console: {\r\n prototype: Console;\r\n new(stdout: WritableStream, stderr?: WritableStream): Console;\r\n }\r\n\r\n export interface ErrnoException extends Error {\r\n errno?: number;\r\n code?: string;\r\n path?: string;\r\n syscall?: string;\r\n stack?: string;\r\n }\r\n\r\n export class EventEmitter {\r\n addListener(event: string | symbol, listener: Function): this;\r\n on(event: string | symbol, listener: Function): this;\r\n once(event: string | symbol, listener: Function): this;\r\n removeListener(event: string | symbol, listener: Function): this;\r\n removeAllListeners(event?: string | symbol): this;\r\n setMaxListeners(n: number): this;\r\n getMaxListeners(): number;\r\n listeners(event: string | symbol): Function[];\r\n emit(event: string | symbol, ...args: any[]): boolean;\r\n listenerCount(type: string | symbol): number;\r\n // Added in Node 6...\r\n prependListener(event: string | symbol, listener: Function): this;\r\n prependOnceListener(event: string | symbol, listener: Function): this;\r\n eventNames(): (string | symbol)[];\r\n }\r\n\r\n export interface ReadableStream extends EventEmitter {\r\n readable: boolean;\r\n read(size?: number): string | Buffer;\r\n setEncoding(encoding: string | null): void;\r\n pause(): this;\r\n resume(): this;\r\n isPaused(): boolean;\r\n pipe(destination: T, options?: { end?: boolean; }): T;\r\n unpipe(destination?: T): void;\r\n unshift(chunk: string): void;\r\n unshift(chunk: Buffer): void;\r\n wrap(oldStream: ReadableStream): ReadableStream;\r\n }\r\n\r\n export interface WritableStream extends EventEmitter {\r\n writable: boolean;\r\n write(buffer: Buffer | string, cb?: Function): boolean;\r\n write(str: string, encoding?: string, cb?: Function): boolean;\r\n end(): void;\r\n end(buffer: Buffer, cb?: Function): void;\r\n end(str: string, cb?: Function): void;\r\n end(str: string, encoding?: string, cb?: Function): void;\r\n }\r\n\r\n export interface ReadWriteStream extends ReadableStream, WritableStream {}\r\n\r\n export interface Events extends EventEmitter { }\r\n\r\n export interface Domain extends Events {\r\n run(fn: Function): void;\r\n add(emitter: Events): void;\r\n remove(emitter: Events): void;\r\n bind(cb: (err: Error, data: any) => any): any;\r\n intercept(cb: (data: any) => any): any;\r\n dispose(): void;\r\n\r\n addListener(event: string, listener: Function): this;\r\n on(event: string, listener: Function): this;\r\n once(event: string, listener: Function): this;\r\n removeListener(event: string, listener: Function): this;\r\n removeAllListeners(event?: string): this;\r\n }\r\n\r\n export interface MemoryUsage {\r\n rss: number;\r\n heapTotal: number;\r\n heapUsed: number;\r\n }\r\n\r\n export interface CpuUsage {\r\n user: number;\r\n system: number;\r\n }\r\n\r\n export interface ProcessVersions {\r\n http_parser: string;\r\n node: string;\r\n v8: string;\r\n ares: string;\r\n uv: string;\r\n zlib: string;\r\n modules: string;\r\n openssl: string;\r\n }\r\n\r\n type Platform = 'aix'\r\n | 'android'\r\n | 'darwin'\r\n | 'freebsd'\r\n | 'linux'\r\n | 'openbsd'\r\n | 'sunos'\r\n | 'win32';\r\n\r\n export interface Socket extends ReadWriteStream {\r\n isTTY?: true;\r\n }\r\n\r\n export interface WriteStream extends Socket {\r\n columns?: number;\r\n rows?: number;\r\n }\r\n export interface ReadStream extends Socket {\r\n isRaw?: boolean;\r\n setRawMode?(mode: boolean): void;\r\n }\r\n\r\n export interface Process extends EventEmitter {\r\n stdout: WriteStream;\r\n stderr: WriteStream;\r\n stdin: ReadStream;\r\n argv: string[];\r\n argv0: string;\r\n execArgv: string[];\r\n execPath: string;\r\n abort(): void;\r\n chdir(directory: string): void;\r\n cwd(): string;\r\n emitWarning(warning: string | Error, name?: string, ctor?: Function): void;\r\n env: any;\r\n exit(code?: number): void;\r\n exitCode: number;\r\n getgid(): number;\r\n setgid(id: number): void;\r\n setgid(id: string): void;\r\n getuid(): number;\r\n setuid(id: number): void;\r\n setuid(id: string): void;\r\n version: string;\r\n versions: ProcessVersions;\r\n config: {\r\n target_defaults: {\r\n cflags: any[];\r\n default_configuration: string;\r\n defines: string[];\r\n include_dirs: string[];\r\n libraries: string[];\r\n };\r\n variables: {\r\n clang: number;\r\n host_arch: string;\r\n node_install_npm: boolean;\r\n node_install_waf: boolean;\r\n node_prefix: string;\r\n node_shared_openssl: boolean;\r\n node_shared_v8: boolean;\r\n node_shared_zlib: boolean;\r\n node_use_dtrace: boolean;\r\n node_use_etw: boolean;\r\n node_use_openssl: boolean;\r\n target_arch: string;\r\n v8_no_strict_aliasing: number;\r\n v8_use_snapshot: boolean;\r\n visibility: string;\r\n };\r\n };\r\n kill(pid: number, signal?: string | number): void;\r\n pid: number;\r\n title: string;\r\n arch: string;\r\n platform: Platform;\r\n mainModule?: NodeModule;\r\n memoryUsage(): MemoryUsage;\r\n cpuUsage(previousValue?: CpuUsage): CpuUsage;\r\n nextTick(callback: Function, ...args: any[]): void;\r\n umask(mask?: number): number;\r\n uptime(): number;\r\n hrtime(time?: [number, number]): [number, number];\r\n domain: Domain;\r\n\r\n // Worker\r\n send?(message: any, sendHandle?: any): void;\r\n disconnect(): void;\r\n connected: boolean;\r\n }\r\n\r\n export interface Global {\r\n Array: typeof Array;\r\n ArrayBuffer: typeof ArrayBuffer;\r\n Boolean: typeof Boolean;\r\n Buffer: typeof Buffer;\r\n DataView: typeof DataView;\r\n Date: typeof Date;\r\n Error: typeof Error;\r\n EvalError: typeof EvalError;\r\n Float32Array: typeof Float32Array;\r\n Float64Array: typeof Float64Array;\r\n Function: typeof Function;\r\n GLOBAL: Global;\r\n Infinity: typeof Infinity;\r\n Int16Array: typeof Int16Array;\r\n Int32Array: typeof Int32Array;\r\n Int8Array: typeof Int8Array;\r\n Intl: typeof Intl;\r\n JSON: typeof JSON;\r\n Map: MapConstructor;\r\n Math: typeof Math;\r\n NaN: typeof NaN;\r\n Number: typeof Number;\r\n Object: typeof Object;\r\n Promise: Function;\r\n RangeError: typeof RangeError;\r\n ReferenceError: typeof ReferenceError;\r\n RegExp: typeof RegExp;\r\n Set: SetConstructor;\r\n String: typeof String;\r\n Symbol: Function;\r\n SyntaxError: typeof SyntaxError;\r\n TypeError: typeof TypeError;\r\n URIError: typeof URIError;\r\n Uint16Array: typeof Uint16Array;\r\n Uint32Array: typeof Uint32Array;\r\n Uint8Array: typeof Uint8Array;\r\n Uint8ClampedArray: Function;\r\n WeakMap: WeakMapConstructor;\r\n WeakSet: WeakSetConstructor;\r\n clearImmediate: (immediateId: any) => void;\r\n clearInterval: (intervalId: NodeJS.Timer) => void;\r\n clearTimeout: (timeoutId: NodeJS.Timer) => void;\r\n console: typeof console;\r\n decodeURI: typeof decodeURI;\r\n decodeURIComponent: typeof decodeURIComponent;\r\n encodeURI: typeof encodeURI;\r\n encodeURIComponent: typeof encodeURIComponent;\r\n escape: (str: string) => string;\r\n eval: typeof eval;\r\n global: Global;\r\n isFinite: typeof isFinite;\r\n isNaN: typeof isNaN;\r\n parseFloat: typeof parseFloat;\r\n parseInt: typeof parseInt;\r\n process: Process;\r\n root: Global;\r\n setImmediate: (callback: (...args: any[]) => void, ...args: any[]) => any;\r\n setInterval: (callback: (...args: any[]) => void, ms: number, ...args: any[]) => NodeJS.Timer;\r\n setTimeout: (callback: (...args: any[]) => void, ms: number, ...args: any[]) => NodeJS.Timer;\r\n undefined: typeof undefined;\r\n unescape: (str: string) => string;\r\n gc: () => void;\r\n v8debug?: any;\r\n }\r\n\r\n export interface Timer {\r\n ref(): void;\r\n unref(): void;\r\n }\r\n}\r\n\r\ninterface IterableIterator { }\r\n\r\n/**\r\n * @deprecated\r\n */\r\ninterface NodeBuffer extends Uint8Array {\r\n write(string: string, offset?: number, length?: number, encoding?: string): number;\r\n toString(encoding?: string, start?: number, end?: number): string;\r\n toJSON(): { type: 'Buffer', data: any[] };\r\n equals(otherBuffer: Buffer): boolean;\r\n compare(otherBuffer: Buffer, targetStart?: number, targetEnd?: number, sourceStart?: number, sourceEnd?: number): number;\r\n copy(targetBuffer: Buffer, targetStart?: number, sourceStart?: number, sourceEnd?: number): number;\r\n slice(start?: number, end?: number): Buffer;\r\n writeUIntLE(value: number, offset: number, byteLength: number, noAssert?: boolean): number;\r\n writeUIntBE(value: number, offset: number, byteLength: number, noAssert?: boolean): number;\r\n writeIntLE(value: number, offset: number, byteLength: number, noAssert?: boolean): number;\r\n writeIntBE(value: number, offset: number, byteLength: number, noAssert?: boolean): number;\r\n readUIntLE(offset: number, byteLength: number, noAssert?: boolean): number;\r\n readUIntBE(offset: number, byteLength: number, noAssert?: boolean): number;\r\n readIntLE(offset: number, byteLength: number, noAssert?: boolean): number;\r\n readIntBE(offset: number, byteLength: number, noAssert?: boolean): number;\r\n readUInt8(offset: number, noAssert?: boolean): number;\r\n readUInt16LE(offset: number, noAssert?: boolean): number;\r\n readUInt16BE(offset: number, noAssert?: boolean): number;\r\n readUInt32LE(offset: number, noAssert?: boolean): number;\r\n readUInt32BE(offset: number, noAssert?: boolean): number;\r\n readInt8(offset: number, noAssert?: boolean): number;\r\n readInt16LE(offset: number, noAssert?: boolean): number;\r\n readInt16BE(offset: number, noAssert?: boolean): number;\r\n readInt32LE(offset: number, noAssert?: boolean): number;\r\n readInt32BE(offset: number, noAssert?: boolean): number;\r\n readFloatLE(offset: number, noAssert?: boolean): number;\r\n readFloatBE(offset: number, noAssert?: boolean): number;\r\n readDoubleLE(offset: number, noAssert?: boolean): number;\r\n readDoubleBE(offset: number, noAssert?: boolean): number;\r\n swap16(): Buffer;\r\n swap32(): Buffer;\r\n swap64(): Buffer;\r\n writeUInt8(value: number, offset: number, noAssert?: boolean): number;\r\n writeUInt16LE(value: number, offset: number, noAssert?: boolean): number;\r\n writeUInt16BE(value: number, offset: number, noAssert?: boolean): number;\r\n writeUInt32LE(value: number, offset: number, noAssert?: boolean): number;\r\n writeUInt32BE(value: number, offset: number, noAssert?: boolean): number;\r\n writeInt8(value: number, offset: number, noAssert?: boolean): number;\r\n writeInt16LE(value: number, offset: number, noAssert?: boolean): number;\r\n writeInt16BE(value: number, offset: number, noAssert?: boolean): number;\r\n writeInt32LE(value: number, offset: number, noAssert?: boolean): number;\r\n writeInt32BE(value: number, offset: number, noAssert?: boolean): number;\r\n writeFloatLE(value: number, offset: number, noAssert?: boolean): number;\r\n writeFloatBE(value: number, offset: number, noAssert?: boolean): number;\r\n writeDoubleLE(value: number, offset: number, noAssert?: boolean): number;\r\n writeDoubleBE(value: number, offset: number, noAssert?: boolean): number;\r\n fill(value: any, offset?: number, end?: number): this;\r\n indexOf(value: string | number | Buffer, byteOffset?: number, encoding?: string): number;\r\n lastIndexOf(value: string | number | Buffer, byteOffset?: number, encoding?: string): number;\r\n entries(): IterableIterator<[number, number]>;\r\n includes(value: string | number | Buffer, byteOffset?: number, encoding?: string): boolean;\r\n keys(): IterableIterator;\r\n values(): IterableIterator;\r\n}\r\n\r\n/************************************************\r\n* *\r\n* MODULES *\r\n* *\r\n************************************************/\r\ndeclare module \"buffer\" {\r\n export var INSPECT_MAX_BYTES: number;\r\n var BuffType: typeof Buffer;\r\n var SlowBuffType: typeof SlowBuffer;\r\n export { BuffType as Buffer, SlowBuffType as SlowBuffer };\r\n}\r\n\r\ndeclare module \"querystring\" {\r\n export interface StringifyOptions {\r\n encodeURIComponent?: Function;\r\n }\r\n\r\n export interface ParseOptions {\r\n maxKeys?: number;\r\n decodeURIComponent?: Function;\r\n }\r\n\r\n export function stringify(obj: T, sep?: string, eq?: string, options?: StringifyOptions): string;\r\n export function parse(str: string, sep?: string, eq?: string, options?: ParseOptions): any;\r\n export function parse(str: string, sep?: string, eq?: string, options?: ParseOptions): T;\r\n export function escape(str: string): string;\r\n export function unescape(str: string): string;\r\n}\r\n\r\ndeclare module \"events\" {\r\n class internal extends NodeJS.EventEmitter { }\r\n\r\n namespace internal {\r\n export class EventEmitter extends internal {\r\n static listenerCount(emitter: EventEmitter, event: string | symbol): number; // deprecated\r\n static defaultMaxListeners: number;\r\n\r\n addListener(event: string | symbol, listener: Function): this;\r\n on(event: string | symbol, listener: Function): this;\r\n once(event: string | symbol, listener: Function): this;\r\n prependListener(event: string | symbol, listener: Function): this;\r\n prependOnceListener(event: string | symbol, listener: Function): this;\r\n removeListener(event: string | symbol, listener: Function): this;\r\n removeAllListeners(event?: string | symbol): this;\r\n setMaxListeners(n: number): this;\r\n getMaxListeners(): number;\r\n listeners(event: string | symbol): Function[];\r\n emit(event: string | symbol, ...args: any[]): boolean;\r\n eventNames(): (string | symbol)[];\r\n listenerCount(type: string | symbol): number;\r\n }\r\n }\r\n\r\n export = internal;\r\n}\r\n\r\ndeclare module \"http\" {\r\n import * as events from \"events\";\r\n import * as net from \"net\";\r\n import * as stream from \"stream\";\r\n\r\n // incoming headers will never contain number\r\n export interface IncomingHttpHeaders {\r\n 'accept'?: string;\r\n 'access-control-allow-origin'?: string;\r\n 'access-control-allow-credentials'?: string;\r\n 'access-control-expose-headers'?: string;\r\n 'access-control-max-age'?: string;\r\n 'access-control-allow-methods'?: string;\r\n 'access-control-allow-headers'?: string;\r\n 'accept-patch'?: string;\r\n 'accept-ranges'?: string;\r\n 'age'?: string;\r\n 'allow'?: string;\r\n 'alt-svc'?: string;\r\n 'cache-control'?: string;\r\n 'connection'?: string;\r\n 'content-disposition'?: string;\r\n 'content-encoding'?: string;\r\n 'content-language'?: string;\r\n 'content-length'?: string;\r\n 'content-location'?: string;\r\n 'content-range'?: string;\r\n 'content-type'?: string;\r\n 'date'?: string;\r\n 'expires'?: string;\r\n 'host'?: string;\r\n 'last-modified'?: string;\r\n 'location'?: string;\r\n 'pragma'?: string;\r\n 'proxy-authenticate'?: string;\r\n 'public-key-pins'?: string;\r\n 'retry-after'?: string;\r\n 'set-cookie'?: string[];\r\n 'strict-transport-security'?: string;\r\n 'trailer'?: string;\r\n 'transfer-encoding'?: string;\r\n 'tk'?: string;\r\n 'upgrade'?: string;\r\n 'vary'?: string;\r\n 'via'?: string;\r\n 'warning'?: string;\r\n 'www-authenticate'?: string;\r\n [header: string]: string | string[] | undefined;\r\n }\r\n\r\n // outgoing headers allows numbers (as they are converted internally to strings)\r\n export interface OutgoingHttpHeaders {\r\n [header: string]: number | string | string[] | undefined;\r\n }\r\n\r\n export interface RequestOptions {\r\n protocol?: string;\r\n host?: string;\r\n hostname?: string;\r\n family?: number;\r\n port?: number | string;\r\n localAddress?: string;\r\n socketPath?: string;\r\n method?: string;\r\n path?: string;\r\n headers?: OutgoingHttpHeaders;\r\n auth?: string;\r\n agent?: Agent | boolean;\r\n timeout?: number;\r\n }\r\n\r\n export type ClientRequestArgs = RequestOptions\r\n\r\n export interface Server extends net.Server {\r\n setTimeout(msecs: number, callback: Function): void;\r\n maxHeadersCount: number;\r\n timeout: number;\r\n listening: boolean;\r\n }\r\n /**\r\n * @deprecated Use IncomingMessage\r\n */\r\n export interface ServerRequest extends IncomingMessage {\r\n connection: net.Socket;\r\n }\r\n export interface ServerResponse extends stream.Writable {\r\n // Extended base methods\r\n write(buffer: Buffer): boolean;\r\n write(buffer: Buffer, cb?: Function): boolean;\r\n write(str: string, cb?: Function): boolean;\r\n write(str: string, encoding?: string, cb?: Function): boolean;\r\n write(str: string, encoding?: string, fd?: string): boolean;\r\n\r\n writeContinue(): void;\r\n writeHead(statusCode: number, reasonPhrase?: string, headers?: OutgoingHttpHeaders): void;\r\n writeHead(statusCode: number, headers?: OutgoingHttpHeaders): void;\r\n statusCode: number;\r\n statusMessage: string;\r\n headersSent: boolean;\r\n setHeader(name: string, value: string | string[]): void;\r\n setTimeout(msecs: number, callback: Function): ServerResponse;\r\n sendDate: boolean;\r\n getHeader(name: string): string;\r\n removeHeader(name: string): void;\r\n write(chunk: any, encoding?: string): any;\r\n addTrailers(headers: OutgoingHttpHeaders): void;\r\n finished: boolean;\r\n\r\n // Extended base methods\r\n end(): void;\r\n end(buffer: Buffer, cb?: Function): void;\r\n end(str: string, cb?: Function): void;\r\n end(str: string, encoding?: string, cb?: Function): void;\r\n end(data?: any, encoding?: string): void;\r\n }\r\n export interface ClientRequest extends stream.Writable {\r\n // Extended base methods\r\n write(buffer: Buffer): boolean;\r\n write(buffer: Buffer, cb?: Function): boolean;\r\n write(str: string, cb?: Function): boolean;\r\n write(str: string, encoding?: string, cb?: Function): boolean;\r\n write(str: string, encoding?: string, fd?: string): boolean;\r\n\r\n write(chunk: any, encoding?: string): void;\r\n abort(): void;\r\n setTimeout(timeout: number, callback?: Function): void;\r\n setNoDelay(noDelay?: boolean): void;\r\n setSocketKeepAlive(enable?: boolean, initialDelay?: number): void;\r\n\r\n setHeader(name: string, value: string | string[]): void;\r\n getHeader(name: string): string;\r\n removeHeader(name: string): void;\r\n addTrailers(headers: OutgoingHttpHeaders): void;\r\n\r\n // Extended base methods\r\n end(): void;\r\n end(buffer: Buffer, cb?: Function): void;\r\n end(str: string, cb?: Function): void;\r\n end(str: string, encoding?: string, cb?: Function): void;\r\n end(data?: any, encoding?: string): void;\r\n }\r\n export interface IncomingMessage extends stream.Readable {\r\n httpVersion: string;\r\n httpVersionMajor: number;\r\n httpVersionMinor: number;\r\n connection: net.Socket;\r\n headers: IncomingHttpHeaders;\r\n rawHeaders: string[];\r\n trailers: OutgoingHttpHeaders;\r\n rawTrailers: string[];\r\n setTimeout(msecs: number, callback: Function): NodeJS.Timer;\r\n /**\r\n * Only valid for request obtained from http.Server.\r\n */\r\n method?: string;\r\n /**\r\n * Only valid for request obtained from http.Server.\r\n */\r\n url?: string;\r\n /**\r\n * Only valid for response obtained from http.ClientRequest.\r\n */\r\n statusCode?: number;\r\n /**\r\n * Only valid for response obtained from http.ClientRequest.\r\n */\r\n statusMessage?: string;\r\n socket: net.Socket;\r\n destroy(error?: Error): void;\r\n }\r\n /**\r\n * @deprecated Use IncomingMessage\r\n */\r\n export interface ClientResponse extends IncomingMessage { }\r\n\r\n export interface AgentOptions {\r\n /**\r\n * Keep sockets around in a pool to be used by other requests in the future. Default = false\r\n */\r\n keepAlive?: boolean;\r\n /**\r\n * When using HTTP KeepAlive, how often to send TCP KeepAlive packets over sockets being kept alive. Default = 1000.\r\n * Only relevant if keepAlive is set to true.\r\n */\r\n keepAliveMsecs?: number;\r\n /**\r\n * Maximum number of sockets to allow per host. Default for Node 0.10 is 5, default for Node 0.12 is Infinity\r\n */\r\n maxSockets?: number;\r\n /**\r\n * Maximum number of sockets to leave open in a free state. Only relevant if keepAlive is set to true. Default = 256.\r\n */\r\n maxFreeSockets?: number;\r\n }\r\n\r\n export class Agent {\r\n maxSockets: number;\r\n sockets: any;\r\n requests: any;\r\n\r\n constructor(opts?: AgentOptions);\r\n\r\n /**\r\n * Destroy any sockets that are currently in use by the agent.\r\n * It is usually not necessary to do this. However, if you are using an agent with KeepAlive enabled,\r\n * then it is best to explicitly shut down the agent when you know that it will no longer be used. Otherwise,\r\n * sockets may hang open for quite a long time before the server terminates them.\r\n */\r\n destroy(): void;\r\n }\r\n\r\n export var METHODS: string[];\r\n\r\n export var STATUS_CODES: {\r\n [errorCode: number]: string;\r\n [errorCode: string]: string;\r\n };\r\n export function createServer(requestListener?: (request: IncomingMessage, response: ServerResponse) => void): Server;\r\n export function createClient(port?: number, host?: string): any;\r\n export function request(options: RequestOptions | string, callback?: (res: IncomingMessage) => void): ClientRequest;\r\n export function get(options: any, callback?: (res: IncomingMessage) => void): ClientRequest;\r\n export var globalAgent: Agent;\r\n}\r\n\r\ndeclare module \"cluster\" {\r\n import * as child from \"child_process\";\r\n import * as events from \"events\";\r\n import * as net from \"net\";\r\n\r\n // interfaces\r\n export interface ClusterSettings {\r\n execArgv?: string[]; // default: process.execArgv\r\n exec?: string;\r\n args?: string[];\r\n silent?: boolean;\r\n stdio?: any[];\r\n uid?: number;\r\n gid?: number;\r\n }\r\n\r\n export interface ClusterSetupMasterSettings {\r\n exec?: string; // default: process.argv[1]\r\n args?: string[]; // default: process.argv.slice(2)\r\n silent?: boolean; // default: false\r\n stdio?: any[];\r\n }\r\n\r\n export interface Address {\r\n address: string;\r\n port: number;\r\n addressType: number | \"udp4\" | \"udp6\"; // 4, 6, -1, \"udp4\", \"udp6\"\r\n }\r\n\r\n export class Worker extends events.EventEmitter {\r\n id: string;\r\n process: child.ChildProcess;\r\n suicide: boolean;\r\n send(message: any, sendHandle?: any, callback?: (error: Error) => void): boolean;\r\n kill(signal?: string): void;\r\n destroy(signal?: string): void;\r\n disconnect(): void;\r\n isConnected(): boolean;\r\n isDead(): boolean;\r\n exitedAfterDisconnect: boolean;\r\n\r\n /**\r\n * events.EventEmitter\r\n * 1. disconnect\r\n * 2. error\r\n * 3. exit\r\n * 4. listening\r\n * 5. message\r\n * 6. online\r\n */\r\n addListener(event: string, listener: Function): this;\r\n addListener(event: \"disconnect\", listener: () => void): this;\r\n addListener(event: \"error\", listener: (error: Error) => void): this;\r\n addListener(event: \"exit\", listener: (code: number, signal: string) => void): this;\r\n addListener(event: \"listening\", listener: (address: Address) => void): this;\r\n addListener(event: \"message\", listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.\r\n addListener(event: \"online\", listener: () => void): this;\r\n\r\n emit(event: string | symbol, ...args: any[]): boolean;\r\n emit(event: \"disconnect\", listener: () => void): boolean\r\n emit(event: \"error\", listener: (error: Error) => void): boolean\r\n emit(event: \"exit\", listener: (code: number, signal: string) => void): boolean\r\n emit(event: \"listening\", listener: (address: Address) => void): boolean\r\n emit(event: \"message\", listener: (message: any, handle: net.Socket | net.Server) => void): boolean\r\n emit(event: \"online\", listener: () => void): boolean\r\n\r\n on(event: string, listener: Function): this;\r\n on(event: \"disconnect\", listener: () => void): this;\r\n on(event: \"error\", listener: (error: Error) => void): this;\r\n on(event: \"exit\", listener: (code: number, signal: string) => void): this;\r\n on(event: \"listening\", listener: (address: Address) => void): this;\r\n on(event: \"message\", listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.\r\n on(event: \"online\", listener: () => void): this;\r\n\r\n once(event: string, listener: Function): this;\r\n once(event: \"disconnect\", listener: () => void): this;\r\n once(event: \"error\", listener: (error: Error) => void): this;\r\n once(event: \"exit\", listener: (code: number, signal: string) => void): this;\r\n once(event: \"listening\", listener: (address: Address) => void): this;\r\n once(event: \"message\", listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.\r\n once(event: \"online\", listener: () => void): this;\r\n\r\n prependListener(event: string, listener: Function): this;\r\n prependListener(event: \"disconnect\", listener: () => void): this;\r\n prependListener(event: \"error\", listener: (error: Error) => void): this;\r\n prependListener(event: \"exit\", listener: (code: number, signal: string) => void): this;\r\n prependListener(event: \"listening\", listener: (address: Address) => void): this;\r\n prependListener(event: \"message\", listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.\r\n prependListener(event: \"online\", listener: () => void): this;\r\n\r\n prependOnceListener(event: string, listener: Function): this;\r\n prependOnceListener(event: \"disconnect\", listener: () => void): this;\r\n prependOnceListener(event: \"error\", listener: (error: Error) => void): this;\r\n prependOnceListener(event: \"exit\", listener: (code: number, signal: string) => void): this;\r\n prependOnceListener(event: \"listening\", listener: (address: Address) => void): this;\r\n prependOnceListener(event: \"message\", listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.\r\n prependOnceListener(event: \"online\", listener: () => void): this;\r\n }\r\n\r\n export interface Cluster extends events.EventEmitter {\r\n Worker: Worker;\r\n disconnect(callback?: Function): void;\r\n fork(env?: any): Worker;\r\n isMaster: boolean;\r\n isWorker: boolean;\r\n // TODO: cluster.schedulingPolicy\r\n settings: ClusterSettings;\r\n setupMaster(settings?: ClusterSetupMasterSettings): void;\r\n worker: Worker;\r\n workers: {\r\n [index: string]: Worker\r\n };\r\n\r\n /**\r\n * events.EventEmitter\r\n * 1. disconnect\r\n * 2. exit\r\n * 3. fork\r\n * 4. listening\r\n * 5. message\r\n * 6. online\r\n * 7. setup\r\n */\r\n addListener(event: string, listener: Function): this;\r\n addListener(event: \"disconnect\", listener: (worker: Worker) => void): this;\r\n addListener(event: \"exit\", listener: (worker: Worker, code: number, signal: string) => void): this;\r\n addListener(event: \"fork\", listener: (worker: Worker) => void): this;\r\n addListener(event: \"listening\", listener: (worker: Worker, address: Address) => void): this;\r\n addListener(event: \"message\", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.\r\n addListener(event: \"online\", listener: (worker: Worker) => void): this;\r\n addListener(event: \"setup\", listener: (settings: any) => void): this;\r\n\r\n emit(event: string | symbol, ...args: any[]): boolean;\r\n emit(event: \"disconnect\", listener: (worker: Worker) => void): boolean;\r\n emit(event: \"exit\", listener: (worker: Worker, code: number, signal: string) => void): boolean;\r\n emit(event: \"fork\", listener: (worker: Worker) => void): boolean;\r\n emit(event: \"listening\", listener: (worker: Worker, address: Address) => void): boolean;\r\n emit(event: \"message\", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): boolean;\r\n emit(event: \"online\", listener: (worker: Worker) => void): boolean;\r\n emit(event: \"setup\", listener: (settings: any) => void): boolean;\r\n\r\n on(event: string, listener: Function): this;\r\n on(event: \"disconnect\", listener: (worker: Worker) => void): this;\r\n on(event: \"exit\", listener: (worker: Worker, code: number, signal: string) => void): this;\r\n on(event: \"fork\", listener: (worker: Worker) => void): this;\r\n on(event: \"listening\", listener: (worker: Worker, address: Address) => void): this;\r\n on(event: \"message\", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.\r\n on(event: \"online\", listener: (worker: Worker) => void): this;\r\n on(event: \"setup\", listener: (settings: any) => void): this;\r\n\r\n once(event: string, listener: Function): this;\r\n once(event: \"disconnect\", listener: (worker: Worker) => void): this;\r\n once(event: \"exit\", listener: (worker: Worker, code: number, signal: string) => void): this;\r\n once(event: \"fork\", listener: (worker: Worker) => void): this;\r\n once(event: \"listening\", listener: (worker: Worker, address: Address) => void): this;\r\n once(event: \"message\", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.\r\n once(event: \"online\", listener: (worker: Worker) => void): this;\r\n once(event: \"setup\", listener: (settings: any) => void): this;\r\n\r\n prependListener(event: string, listener: Function): this;\r\n prependListener(event: \"disconnect\", listener: (worker: Worker) => void): this;\r\n prependListener(event: \"exit\", listener: (worker: Worker, code: number, signal: string) => void): this;\r\n prependListener(event: \"fork\", listener: (worker: Worker) => void): this;\r\n prependListener(event: \"listening\", listener: (worker: Worker, address: Address) => void): this;\r\n prependListener(event: \"message\", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.\r\n prependListener(event: \"online\", listener: (worker: Worker) => void): this;\r\n prependListener(event: \"setup\", listener: (settings: any) => void): this;\r\n\r\n prependOnceListener(event: string, listener: Function): this;\r\n prependOnceListener(event: \"disconnect\", listener: (worker: Worker) => void): this;\r\n prependOnceListener(event: \"exit\", listener: (worker: Worker, code: number, signal: string) => void): this;\r\n prependOnceListener(event: \"fork\", listener: (worker: Worker) => void): this;\r\n prependOnceListener(event: \"listening\", listener: (worker: Worker, address: Address) => void): this;\r\n prependOnceListener(event: \"message\", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.\r\n prependOnceListener(event: \"online\", listener: (worker: Worker) => void): this;\r\n prependOnceListener(event: \"setup\", listener: (settings: any) => void): this;\r\n\r\n }\r\n\r\n export function disconnect(callback?: Function): void;\r\n export function fork(env?: any): Worker;\r\n export var isMaster: boolean;\r\n export var isWorker: boolean;\r\n // TODO: cluster.schedulingPolicy\r\n export var settings: ClusterSettings;\r\n export function setupMaster(settings?: ClusterSetupMasterSettings): void;\r\n export var worker: Worker;\r\n export var workers: {\r\n [index: string]: Worker\r\n };\r\n\r\n /**\r\n * events.EventEmitter\r\n * 1. disconnect\r\n * 2. exit\r\n * 3. fork\r\n * 4. listening\r\n * 5. message\r\n * 6. online\r\n * 7. setup\r\n */\r\n export function addListener(event: string, listener: Function): Cluster;\r\n export function addListener(event: \"disconnect\", listener: (worker: Worker) => void): Cluster;\r\n export function addListener(event: \"exit\", listener: (worker: Worker, code: number, signal: string) => void): Cluster;\r\n export function addListener(event: \"fork\", listener: (worker: Worker) => void): Cluster;\r\n export function addListener(event: \"listening\", listener: (worker: Worker, address: Address) => void): Cluster;\r\n export function addListener(event: \"message\", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): Cluster; // the handle is a net.Socket or net.Server object, or undefined.\r\n export function addListener(event: \"online\", listener: (worker: Worker) => void): Cluster;\r\n export function addListener(event: \"setup\", listener: (settings: any) => void): Cluster;\r\n\r\n export function emit(event: string | symbol, ...args: any[]): boolean;\r\n export function emit(event: \"disconnect\", listener: (worker: Worker) => void): boolean;\r\n export function emit(event: \"exit\", listener: (worker: Worker, code: number, signal: string) => void): boolean;\r\n export function emit(event: \"fork\", listener: (worker: Worker) => void): boolean;\r\n export function emit(event: \"listening\", listener: (worker: Worker, address: Address) => void): boolean;\r\n export function emit(event: \"message\", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): boolean;\r\n export function emit(event: \"online\", listener: (worker: Worker) => void): boolean;\r\n export function emit(event: \"setup\", listener: (settings: any) => void): boolean;\r\n\r\n export function on(event: string, listener: Function): Cluster;\r\n export function on(event: \"disconnect\", listener: (worker: Worker) => void): Cluster;\r\n export function on(event: \"exit\", listener: (worker: Worker, code: number, signal: string) => void): Cluster;\r\n export function on(event: \"fork\", listener: (worker: Worker) => void): Cluster;\r\n export function on(event: \"listening\", listener: (worker: Worker, address: Address) => void): Cluster;\r\n export function on(event: \"message\", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): Cluster; // the handle is a net.Socket or net.Server object, or undefined.\r\n export function on(event: \"online\", listener: (worker: Worker) => void): Cluster;\r\n export function on(event: \"setup\", listener: (settings: any) => void): Cluster;\r\n\r\n export function once(event: string, listener: Function): Cluster;\r\n export function once(event: \"disconnect\", listener: (worker: Worker) => void): Cluster;\r\n export function once(event: \"exit\", listener: (worker: Worker, code: number, signal: string) => void): Cluster;\r\n export function once(event: \"fork\", listener: (worker: Worker) => void): Cluster;\r\n export function once(event: \"listening\", listener: (worker: Worker, address: Address) => void): Cluster;\r\n export function once(event: \"message\", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): Cluster; // the handle is a net.Socket or net.Server object, or undefined.\r\n export function once(event: \"online\", listener: (worker: Worker) => void): Cluster;\r\n export function once(event: \"setup\", listener: (settings: any) => void): Cluster;\r\n\r\n export function removeListener(event: string, listener: Function): Cluster;\r\n export function removeAllListeners(event?: string): Cluster;\r\n export function setMaxListeners(n: number): Cluster;\r\n export function getMaxListeners(): number;\r\n export function listeners(event: string): Function[];\r\n export function listenerCount(type: string): number;\r\n\r\n export function prependListener(event: string, listener: Function): Cluster;\r\n export function prependListener(event: \"disconnect\", listener: (worker: Worker) => void): Cluster;\r\n export function prependListener(event: \"exit\", listener: (worker: Worker, code: number, signal: string) => void): Cluster;\r\n export function prependListener(event: \"fork\", listener: (worker: Worker) => void): Cluster;\r\n export function prependListener(event: \"listening\", listener: (worker: Worker, address: Address) => void): Cluster;\r\n export function prependListener(event: \"message\", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): Cluster; // the handle is a net.Socket or net.Server object, or undefined.\r\n export function prependListener(event: \"online\", listener: (worker: Worker) => void): Cluster;\r\n export function prependListener(event: \"setup\", listener: (settings: any) => void): Cluster;\r\n\r\n export function prependOnceListener(event: string, listener: Function): Cluster;\r\n export function prependOnceListener(event: \"disconnect\", listener: (worker: Worker) => void): Cluster;\r\n export function prependOnceListener(event: \"exit\", listener: (worker: Worker, code: number, signal: string) => void): Cluster;\r\n export function prependOnceListener(event: \"fork\", listener: (worker: Worker) => void): Cluster;\r\n export function prependOnceListener(event: \"listening\", listener: (worker: Worker, address: Address) => void): Cluster;\r\n export function prependOnceListener(event: \"message\", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): Cluster; // the handle is a net.Socket or net.Server object, or undefined.\r\n export function prependOnceListener(event: \"online\", listener: (worker: Worker) => void): Cluster;\r\n export function prependOnceListener(event: \"setup\", listener: (settings: any) => void): Cluster;\r\n\r\n export function eventNames(): string[];\r\n}\r\n\r\ndeclare module \"zlib\" {\r\n import * as stream from \"stream\";\r\n export interface ZlibOptions { chunkSize?: number; windowBits?: number; level?: number; memLevel?: number; strategy?: number; dictionary?: any; finishFlush?: number }\r\n\r\n export interface Gzip extends stream.Transform { }\r\n export interface Gunzip extends stream.Transform { }\r\n export interface Deflate extends stream.Transform { }\r\n export interface Inflate extends stream.Transform { }\r\n export interface DeflateRaw extends stream.Transform { }\r\n export interface InflateRaw extends stream.Transform { }\r\n export interface Unzip extends stream.Transform { }\r\n\r\n export function createGzip(options?: ZlibOptions): Gzip;\r\n export function createGunzip(options?: ZlibOptions): Gunzip;\r\n export function createDeflate(options?: ZlibOptions): Deflate;\r\n export function createInflate(options?: ZlibOptions): Inflate;\r\n export function createDeflateRaw(options?: ZlibOptions): DeflateRaw;\r\n export function createInflateRaw(options?: ZlibOptions): InflateRaw;\r\n export function createUnzip(options?: ZlibOptions): Unzip;\r\n\r\n export function deflate(buf: Buffer | string, callback: (error: Error, result: Buffer) => void): void;\r\n export function deflate(buf: Buffer | string, options: ZlibOptions, callback: (error: Error, result: Buffer) => void): void;\r\n export function deflateSync(buf: Buffer | string, options?: ZlibOptions): Buffer;\r\n export function deflateRaw(buf: Buffer | string, callback: (error: Error, result: Buffer) => void): void;\r\n export function deflateRaw(buf: Buffer | string, options: ZlibOptions, callback: (error: Error, result: Buffer) => void): void;\r\n export function deflateRawSync(buf: Buffer | string, options?: ZlibOptions): Buffer;\r\n export function gzip(buf: Buffer | string, callback: (error: Error, result: Buffer) => void): void;\r\n export function gzip(buf: Buffer | string, options: ZlibOptions, callback: (error: Error, result: Buffer) => void): void;\r\n export function gzipSync(buf: Buffer | string, options?: ZlibOptions): Buffer;\r\n export function gunzip(buf: Buffer | string, callback: (error: Error, result: Buffer) => void): void;\r\n export function gunzip(buf: Buffer | string, options: ZlibOptions, callback: (error: Error, result: Buffer) => void): void;\r\n export function gunzipSync(buf: Buffer | string, options?: ZlibOptions): Buffer;\r\n export function inflate(buf: Buffer | string, callback: (error: Error, result: Buffer) => void): void;\r\n export function inflate(buf: Buffer | string, options: ZlibOptions, callback: (error: Error, result: Buffer) => void): void;\r\n export function inflateSync(buf: Buffer | string, options?: ZlibOptions): Buffer;\r\n export function inflateRaw(buf: Buffer | string, callback: (error: Error, result: Buffer) => void): void;\r\n export function inflateRaw(buf: Buffer | string, options: ZlibOptions, callback: (error: Error, result: Buffer) => void): void;\r\n export function inflateRawSync(buf: Buffer | string, options?: ZlibOptions): Buffer;\r\n export function unzip(buf: Buffer | string, callback: (error: Error, result: Buffer) => void): void;\r\n export function unzip(buf: Buffer | string, options: ZlibOptions, callback: (error: Error, result: Buffer) => void): void;\r\n export function unzipSync(buf: Buffer | string, options?: ZlibOptions): Buffer;\r\n\r\n // Constants\r\n export var Z_NO_FLUSH: number;\r\n export var Z_PARTIAL_FLUSH: number;\r\n export var Z_SYNC_FLUSH: number;\r\n export var Z_FULL_FLUSH: number;\r\n export var Z_FINISH: number;\r\n export var Z_BLOCK: number;\r\n export var Z_TREES: number;\r\n export var Z_OK: number;\r\n export var Z_STREAM_END: number;\r\n export var Z_NEED_DICT: number;\r\n export var Z_ERRNO: number;\r\n export var Z_STREAM_ERROR: number;\r\n export var Z_DATA_ERROR: number;\r\n export var Z_MEM_ERROR: number;\r\n export var Z_BUF_ERROR: number;\r\n export var Z_VERSION_ERROR: number;\r\n export var Z_NO_COMPRESSION: number;\r\n export var Z_BEST_SPEED: number;\r\n export var Z_BEST_COMPRESSION: number;\r\n export var Z_DEFAULT_COMPRESSION: number;\r\n export var Z_FILTERED: number;\r\n export var Z_HUFFMAN_ONLY: number;\r\n export var Z_RLE: number;\r\n export var Z_FIXED: number;\r\n export var Z_DEFAULT_STRATEGY: number;\r\n export var Z_BINARY: number;\r\n export var Z_TEXT: number;\r\n export var Z_ASCII: number;\r\n export var Z_UNKNOWN: number;\r\n export var Z_DEFLATED: number;\r\n export var Z_NULL: number;\r\n}\r\n\r\ndeclare module \"os\" {\r\n export interface CpuInfo {\r\n model: string;\r\n speed: number;\r\n times: {\r\n user: number;\r\n nice: number;\r\n sys: number;\r\n idle: number;\r\n irq: number;\r\n };\r\n }\r\n\r\n export interface NetworkInterfaceInfo {\r\n address: string;\r\n netmask: string;\r\n family: string;\r\n mac: string;\r\n internal: boolean;\r\n }\r\n\r\n export function hostname(): string;\r\n export function loadavg(): number[];\r\n export function uptime(): number;\r\n export function freemem(): number;\r\n export function totalmem(): number;\r\n export function cpus(): CpuInfo[];\r\n export function type(): string;\r\n export function release(): string;\r\n export function networkInterfaces(): { [index: string]: NetworkInterfaceInfo[] };\r\n export function homedir(): string;\r\n export function userInfo(options?: { encoding: string }): { username: string, uid: number, gid: number, shell: any, homedir: string }\r\n export var constants: {\r\n UV_UDP_REUSEADDR: number,\r\n signals: {\r\n SIGHUP: number;\r\n SIGINT: number;\r\n SIGQUIT: number;\r\n SIGILL: number;\r\n SIGTRAP: number;\r\n SIGABRT: number;\r\n SIGIOT: number;\r\n SIGBUS: number;\r\n SIGFPE: number;\r\n SIGKILL: number;\r\n SIGUSR1: number;\r\n SIGSEGV: number;\r\n SIGUSR2: number;\r\n SIGPIPE: number;\r\n SIGALRM: number;\r\n SIGTERM: number;\r\n SIGCHLD: number;\r\n SIGSTKFLT: number;\r\n SIGCONT: number;\r\n SIGSTOP: number;\r\n SIGTSTP: number;\r\n SIGTTIN: number;\r\n SIGTTOU: number;\r\n SIGURG: number;\r\n SIGXCPU: number;\r\n SIGXFSZ: number;\r\n SIGVTALRM: number;\r\n SIGPROF: number;\r\n SIGWINCH: number;\r\n SIGIO: number;\r\n SIGPOLL: number;\r\n SIGPWR: number;\r\n SIGSYS: number;\r\n SIGUNUSED: number;\r\n },\r\n errno: {\r\n E2BIG: number;\r\n EACCES: number;\r\n EADDRINUSE: number;\r\n EADDRNOTAVAIL: number;\r\n EAFNOSUPPORT: number;\r\n EAGAIN: number;\r\n EALREADY: number;\r\n EBADF: number;\r\n EBADMSG: number;\r\n EBUSY: number;\r\n ECANCELED: number;\r\n ECHILD: number;\r\n ECONNABORTED: number;\r\n ECONNREFUSED: number;\r\n ECONNRESET: number;\r\n EDEADLK: number;\r\n EDESTADDRREQ: number;\r\n EDOM: number;\r\n EDQUOT: number;\r\n EEXIST: number;\r\n EFAULT: number;\r\n EFBIG: number;\r\n EHOSTUNREACH: number;\r\n EIDRM: number;\r\n EILSEQ: number;\r\n EINPROGRESS: number;\r\n EINTR: number;\r\n EINVAL: number;\r\n EIO: number;\r\n EISCONN: number;\r\n EISDIR: number;\r\n ELOOP: number;\r\n EMFILE: number;\r\n EMLINK: number;\r\n EMSGSIZE: number;\r\n EMULTIHOP: number;\r\n ENAMETOOLONG: number;\r\n ENETDOWN: number;\r\n ENETRESET: number;\r\n ENETUNREACH: number;\r\n ENFILE: number;\r\n ENOBUFS: number;\r\n ENODATA: number;\r\n ENODEV: number;\r\n ENOENT: number;\r\n ENOEXEC: number;\r\n ENOLCK: number;\r\n ENOLINK: number;\r\n ENOMEM: number;\r\n ENOMSG: number;\r\n ENOPROTOOPT: number;\r\n ENOSPC: number;\r\n ENOSR: number;\r\n ENOSTR: number;\r\n ENOSYS: number;\r\n ENOTCONN: number;\r\n ENOTDIR: number;\r\n ENOTEMPTY: number;\r\n ENOTSOCK: number;\r\n ENOTSUP: number;\r\n ENOTTY: number;\r\n ENXIO: number;\r\n EOPNOTSUPP: number;\r\n EOVERFLOW: number;\r\n EPERM: number;\r\n EPIPE: number;\r\n EPROTO: number;\r\n EPROTONOSUPPORT: number;\r\n EPROTOTYPE: number;\r\n ERANGE: number;\r\n EROFS: number;\r\n ESPIPE: number;\r\n ESRCH: number;\r\n ESTALE: number;\r\n ETIME: number;\r\n ETIMEDOUT: number;\r\n ETXTBSY: number;\r\n EWOULDBLOCK: number;\r\n EXDEV: number;\r\n },\r\n };\r\n export function arch(): string;\r\n export function platform(): NodeJS.Platform;\r\n export function tmpdir(): string;\r\n export var EOL: string;\r\n export function endianness(): \"BE\" | \"LE\";\r\n}\r\n\r\ndeclare module \"https\" {\r\n import * as tls from \"tls\";\r\n import * as events from \"events\";\r\n import * as http from \"http\";\r\n\r\n export interface ServerOptions {\r\n pfx?: any;\r\n key?: any;\r\n passphrase?: string;\r\n cert?: any;\r\n ca?: any;\r\n crl?: any;\r\n ciphers?: string;\r\n honorCipherOrder?: boolean;\r\n requestCert?: boolean;\r\n rejectUnauthorized?: boolean;\r\n NPNProtocols?: any;\r\n SNICallback?: (servername: string, cb: (err: Error, ctx: tls.SecureContext) => any) => any;\r\n }\r\n\r\n export interface RequestOptions extends http.RequestOptions {\r\n pfx?: any;\r\n key?: any;\r\n passphrase?: string;\r\n cert?: any;\r\n ca?: any;\r\n ciphers?: string;\r\n rejectUnauthorized?: boolean;\r\n secureProtocol?: string;\r\n }\r\n\r\n export interface Agent extends http.Agent { }\r\n\r\n export interface AgentOptions extends http.AgentOptions {\r\n pfx?: any;\r\n key?: any;\r\n passphrase?: string;\r\n cert?: any;\r\n ca?: any;\r\n ciphers?: string;\r\n rejectUnauthorized?: boolean;\r\n secureProtocol?: string;\r\n maxCachedSessions?: number;\r\n }\r\n\r\n export var Agent: {\r\n new (options?: AgentOptions): Agent;\r\n };\r\n export interface Server extends tls.Server { }\r\n export function createServer(options: ServerOptions, requestListener?: Function): Server;\r\n export function request(options: RequestOptions | string, callback?: (res: http.IncomingMessage) => void): http.ClientRequest;\r\n export function get(options: RequestOptions | string, callback?: (res: http.IncomingMessage) => void): http.ClientRequest;\r\n export var globalAgent: Agent;\r\n}\r\n\r\ndeclare module \"punycode\" {\r\n export function decode(string: string): string;\r\n export function encode(string: string): string;\r\n export function toUnicode(domain: string): string;\r\n export function toASCII(domain: string): string;\r\n export var ucs2: ucs2;\r\n interface ucs2 {\r\n decode(string: string): number[];\r\n encode(codePoints: number[]): string;\r\n }\r\n export var version: any;\r\n}\r\n\r\ndeclare module \"repl\" {\r\n import * as stream from \"stream\";\r\n import * as readline from \"readline\";\r\n\r\n export interface ReplOptions {\r\n prompt?: string;\r\n input?: NodeJS.ReadableStream;\r\n output?: NodeJS.WritableStream;\r\n terminal?: boolean;\r\n eval?: Function;\r\n useColors?: boolean;\r\n useGlobal?: boolean;\r\n ignoreUndefined?: boolean;\r\n writer?: Function;\r\n completer?: Function;\r\n replMode?: any;\r\n breakEvalOnSigint?: any;\r\n }\r\n\r\n export interface REPLServer extends readline.ReadLine {\r\n defineCommand(keyword: string, cmd: Function | { help: string, action: Function }): void;\r\n displayPrompt(preserveCursor?: boolean): void;\r\n\r\n context: any;\r\n\r\n /**\r\n * events.EventEmitter\r\n * 1. exit\r\n * 2. reset\r\n **/\r\n\r\n addListener(event: string, listener: Function): this;\r\n addListener(event: \"exit\", listener: () => void): this;\r\n addListener(event: \"reset\", listener: Function): this;\r\n\r\n emit(event: string | symbol, ...args: any[]): boolean;\r\n emit(event: \"exit\"): boolean;\r\n emit(event: \"reset\", context: any): boolean;\r\n\r\n on(event: string, listener: Function): this;\r\n on(event: \"exit\", listener: () => void): this;\r\n on(event: \"reset\", listener: Function): this;\r\n\r\n once(event: string, listener: Function): this;\r\n once(event: \"exit\", listener: () => void): this;\r\n once(event: \"reset\", listener: Function): this;\r\n\r\n prependListener(event: string, listener: Function): this;\r\n prependListener(event: \"exit\", listener: () => void): this;\r\n prependListener(event: \"reset\", listener: Function): this;\r\n\r\n prependOnceListener(event: string, listener: Function): this;\r\n prependOnceListener(event: \"exit\", listener: () => void): this;\r\n prependOnceListener(event: \"reset\", listener: Function): this;\r\n }\r\n\r\n export function start(options?: string | ReplOptions): REPLServer;\r\n}\r\n\r\ndeclare module \"readline\" {\r\n import * as events from \"events\";\r\n import * as stream from \"stream\";\r\n\r\n export interface Key {\r\n sequence?: string;\r\n name?: string;\r\n ctrl?: boolean;\r\n meta?: boolean;\r\n shift?: boolean;\r\n }\r\n\r\n export interface ReadLine extends events.EventEmitter {\r\n setPrompt(prompt: string): void;\r\n prompt(preserveCursor?: boolean): void;\r\n question(query: string, callback: (answer: string) => void): void;\r\n pause(): this;\r\n resume(): this;\r\n close(): void;\r\n write(data: string | Buffer, key?: Key): void;\r\n\r\n /**\r\n * events.EventEmitter\r\n * 1. close\r\n * 2. line\r\n * 3. pause\r\n * 4. resume\r\n * 5. SIGCONT\r\n * 6. SIGINT\r\n * 7. SIGTSTP\r\n **/\r\n\r\n addListener(event: string, listener: Function): this;\r\n addListener(event: \"close\", listener: () => void): this;\r\n addListener(event: \"line\", listener: (input: any) => void): this;\r\n addListener(event: \"pause\", listener: () => void): this;\r\n addListener(event: \"resume\", listener: () => void): this;\r\n addListener(event: \"SIGCONT\", listener: () => void): this;\r\n addListener(event: \"SIGINT\", listener: () => void): this;\r\n addListener(event: \"SIGTSTP\", listener: () => void): this;\r\n\r\n emit(event: string | symbol, ...args: any[]): boolean;\r\n emit(event: \"close\"): boolean;\r\n emit(event: \"line\", input: any): boolean;\r\n emit(event: \"pause\"): boolean;\r\n emit(event: \"resume\"): boolean;\r\n emit(event: \"SIGCONT\"): boolean;\r\n emit(event: \"SIGINT\"): boolean;\r\n emit(event: \"SIGTSTP\"): boolean;\r\n\r\n on(event: string, listener: Function): this;\r\n on(event: \"close\", listener: () => void): this;\r\n on(event: \"line\", listener: (input: any) => void): this;\r\n on(event: \"pause\", listener: () => void): this;\r\n on(event: \"resume\", listener: () => void): this;\r\n on(event: \"SIGCONT\", listener: () => void): this;\r\n on(event: \"SIGINT\", listener: () => void): this;\r\n on(event: \"SIGTSTP\", listener: () => void): this;\r\n\r\n once(event: string, listener: Function): this;\r\n once(event: \"close\", listener: () => void): this;\r\n once(event: \"line\", listener: (input: any) => void): this;\r\n once(event: \"pause\", listener: () => void): this;\r\n once(event: \"resume\", listener: () => void): this;\r\n once(event: \"SIGCONT\", listener: () => void): this;\r\n once(event: \"SIGINT\", listener: () => void): this;\r\n once(event: \"SIGTSTP\", listener: () => void): this;\r\n\r\n prependListener(event: string, listener: Function): this;\r\n prependListener(event: \"close\", listener: () => void): this;\r\n prependListener(event: \"line\", listener: (input: any) => void): this;\r\n prependListener(event: \"pause\", listener: () => void): this;\r\n prependListener(event: \"resume\", listener: () => void): this;\r\n prependListener(event: \"SIGCONT\", listener: () => void): this;\r\n prependListener(event: \"SIGINT\", listener: () => void): this;\r\n prependListener(event: \"SIGTSTP\", listener: () => void): this;\r\n\r\n prependOnceListener(event: string, listener: Function): this;\r\n prependOnceListener(event: \"close\", listener: () => void): this;\r\n prependOnceListener(event: \"line\", listener: (input: any) => void): this;\r\n prependOnceListener(event: \"pause\", listener: () => void): this;\r\n prependOnceListener(event: \"resume\", listener: () => void): this;\r\n prependOnceListener(event: \"SIGCONT\", listener: () => void): this;\r\n prependOnceListener(event: \"SIGINT\", listener: () => void): this;\r\n prependOnceListener(event: \"SIGTSTP\", listener: () => void): this;\r\n }\r\n\r\n export interface Completer {\r\n (line: string): CompleterResult;\r\n (line: string, callback: (err: any, result: CompleterResult) => void): any;\r\n }\r\n\r\n export type CompleterResult = [string[], string];\r\n\r\n export interface ReadLineOptions {\r\n input: NodeJS.ReadableStream;\r\n output?: NodeJS.WritableStream;\r\n completer?: Completer;\r\n terminal?: boolean;\r\n historySize?: number;\r\n }\r\n\r\n export function createInterface(input: NodeJS.ReadableStream, output?: NodeJS.WritableStream, completer?: Completer, terminal?: boolean): ReadLine;\r\n export function createInterface(options: ReadLineOptions): ReadLine;\r\n\r\n export function cursorTo(stream: NodeJS.WritableStream, x: number, y?: number): void;\r\n export function moveCursor(stream: NodeJS.WritableStream, dx: number | string, dy: number | string): void;\r\n export function clearLine(stream: NodeJS.WritableStream, dir: number): void;\r\n export function clearScreenDown(stream: NodeJS.WritableStream): void;\r\n}\r\n\r\ndeclare module \"vm\" {\r\n export interface Context { }\r\n export interface ScriptOptions {\r\n filename?: string;\r\n lineOffset?: number;\r\n columnOffset?: number;\r\n displayErrors?: boolean;\r\n timeout?: number;\r\n cachedData?: Buffer;\r\n produceCachedData?: boolean;\r\n }\r\n export interface RunningScriptOptions {\r\n filename?: string;\r\n lineOffset?: number;\r\n columnOffset?: number;\r\n displayErrors?: boolean;\r\n timeout?: number;\r\n }\r\n export class Script {\r\n constructor(code: string, options?: ScriptOptions);\r\n runInContext(contextifiedSandbox: Context, options?: RunningScriptOptions): any;\r\n runInNewContext(sandbox?: Context, options?: RunningScriptOptions): any;\r\n runInThisContext(options?: RunningScriptOptions): any;\r\n }\r\n export function createContext(sandbox?: Context): Context;\r\n export function isContext(sandbox: Context): boolean;\r\n export function runInContext(code: string, contextifiedSandbox: Context, options?: RunningScriptOptions): any;\r\n export function runInDebugContext(code: string): any;\r\n export function runInNewContext(code: string, sandbox?: Context, options?: RunningScriptOptions): any;\r\n export function runInThisContext(code: string, options?: RunningScriptOptions): any;\r\n}\r\n\r\ndeclare module \"child_process\" {\r\n import * as events from \"events\";\r\n import * as stream from \"stream\";\r\n import * as net from \"net\";\r\n\r\n export interface ChildProcess extends events.EventEmitter {\r\n stdin: stream.Writable;\r\n stdout: stream.Readable;\r\n stderr: stream.Readable;\r\n stdio: [stream.Writable, stream.Readable, stream.Readable];\r\n killed: boolean;\r\n pid: number;\r\n kill(signal?: string): void;\r\n send(message: any, sendHandle?: any): boolean;\r\n connected: boolean;\r\n disconnect(): void;\r\n unref(): void;\r\n ref(): void;\r\n\r\n /**\r\n * events.EventEmitter\r\n * 1. close\r\n * 2. disconnect\r\n * 3. error\r\n * 4. exit\r\n * 5. message\r\n **/\r\n\r\n addListener(event: string, listener: Function): this;\r\n addListener(event: \"close\", listener: (code: number, signal: string) => void): this;\r\n addListener(event: \"disconnect\", listener: () => void): this;\r\n addListener(event: \"error\", listener: (err: Error) => void): this;\r\n addListener(event: \"exit\", listener: (code: number, signal: string) => void): this;\r\n addListener(event: \"message\", listener: (message: any, sendHandle: net.Socket | net.Server) => void): this;\r\n\r\n emit(event: string | symbol, ...args: any[]): boolean;\r\n emit(event: \"close\", code: number, signal: string): boolean;\r\n emit(event: \"disconnect\"): boolean;\r\n emit(event: \"error\", err: Error): boolean;\r\n emit(event: \"exit\", code: number, signal: string): boolean;\r\n emit(event: \"message\", message: any, sendHandle: net.Socket | net.Server): boolean;\r\n\r\n on(event: string, listener: Function): this;\r\n on(event: \"close\", listener: (code: number, signal: string) => void): this;\r\n on(event: \"disconnect\", listener: () => void): this;\r\n on(event: \"error\", listener: (err: Error) => void): this;\r\n on(event: \"exit\", listener: (code: number, signal: string) => void): this;\r\n on(event: \"message\", listener: (message: any, sendHandle: net.Socket | net.Server) => void): this;\r\n\r\n once(event: string, listener: Function): this;\r\n once(event: \"close\", listener: (code: number, signal: string) => void): this;\r\n once(event: \"disconnect\", listener: () => void): this;\r\n once(event: \"error\", listener: (err: Error) => void): this;\r\n once(event: \"exit\", listener: (code: number, signal: string) => void): this;\r\n once(event: \"message\", listener: (message: any, sendHandle: net.Socket | net.Server) => void): this;\r\n\r\n prependListener(event: string, listener: Function): this;\r\n prependListener(event: \"close\", listener: (code: number, signal: string) => void): this;\r\n prependListener(event: \"disconnect\", listener: () => void): this;\r\n prependListener(event: \"error\", listener: (err: Error) => void): this;\r\n prependListener(event: \"exit\", listener: (code: number, signal: string) => void): this;\r\n prependListener(event: \"message\", listener: (message: any, sendHandle: net.Socket | net.Server) => void): this;\r\n\r\n prependOnceListener(event: string, listener: Function): this;\r\n prependOnceListener(event: \"close\", listener: (code: number, signal: string) => void): this;\r\n prependOnceListener(event: \"disconnect\", listener: () => void): this;\r\n prependOnceListener(event: \"error\", listener: (err: Error) => void): this;\r\n prependOnceListener(event: \"exit\", listener: (code: number, signal: string) => void): this;\r\n prependOnceListener(event: \"message\", listener: (message: any, sendHandle: net.Socket | net.Server) => void): this;\r\n }\r\n\r\n export interface SpawnOptions {\r\n cwd?: string;\r\n env?: any;\r\n stdio?: any;\r\n detached?: boolean;\r\n uid?: number;\r\n gid?: number;\r\n shell?: boolean | string;\r\n }\r\n export function spawn(command: string, args?: string[], options?: SpawnOptions): ChildProcess;\r\n\r\n export interface ExecOptions {\r\n cwd?: string;\r\n env?: any;\r\n shell?: string;\r\n timeout?: number;\r\n maxBuffer?: number;\r\n killSignal?: string;\r\n uid?: number;\r\n gid?: number;\r\n }\r\n export interface ExecOptionsWithStringEncoding extends ExecOptions {\r\n encoding: BufferEncoding;\r\n }\r\n export interface ExecOptionsWithBufferEncoding extends ExecOptions {\r\n encoding: string; // specify `null`.\r\n }\r\n export function exec(command: string, callback?: (error: Error, stdout: string, stderr: string) => void): ChildProcess;\r\n export function exec(command: string, options: ExecOptionsWithStringEncoding, callback?: (error: Error, stdout: string, stderr: string) => void): ChildProcess;\r\n // usage. child_process.exec(\"tsc\", {encoding: null as string}, (err, stdout, stderr) => {});\r\n export function exec(command: string, options: ExecOptionsWithBufferEncoding, callback?: (error: Error, stdout: Buffer, stderr: Buffer) => void): ChildProcess;\r\n export function exec(command: string, options: ExecOptions, callback?: (error: Error, stdout: string, stderr: string) => void): ChildProcess;\r\n\r\n export interface ExecFileOptions {\r\n cwd?: string;\r\n env?: any;\r\n timeout?: number;\r\n maxBuffer?: number;\r\n killSignal?: string;\r\n uid?: number;\r\n gid?: number;\r\n }\r\n export interface ExecFileOptionsWithStringEncoding extends ExecFileOptions {\r\n encoding: BufferEncoding;\r\n }\r\n export interface ExecFileOptionsWithBufferEncoding extends ExecFileOptions {\r\n encoding: string; // specify `null`.\r\n }\r\n export function execFile(file: string, callback?: (error: Error, stdout: string, stderr: string) => void): ChildProcess;\r\n export function execFile(file: string, options?: ExecFileOptionsWithStringEncoding, callback?: (error: Error, stdout: string, stderr: string) => void): ChildProcess;\r\n // usage. child_process.execFile(\"file.sh\", {encoding: null as string}, (err, stdout, stderr) => {});\r\n export function execFile(file: string, options?: ExecFileOptionsWithBufferEncoding, callback?: (error: Error, stdout: Buffer, stderr: Buffer) => void): ChildProcess;\r\n export function execFile(file: string, options?: ExecFileOptions, callback?: (error: Error, stdout: string, stderr: string) => void): ChildProcess;\r\n export function execFile(file: string, args?: string[], callback?: (error: Error, stdout: string, stderr: string) => void): ChildProcess;\r\n export function execFile(file: string, args?: string[], options?: ExecFileOptionsWithStringEncoding, callback?: (error: Error, stdout: string, stderr: string) => void): ChildProcess;\r\n // usage. child_process.execFile(\"file.sh\", [\"foo\"], {encoding: null as string}, (err, stdout, stderr) => {});\r\n export function execFile(file: string, args?: string[], options?: ExecFileOptionsWithBufferEncoding, callback?: (error: Error, stdout: Buffer, stderr: Buffer) => void): ChildProcess;\r\n export function execFile(file: string, args?: string[], options?: ExecFileOptions, callback?: (error: Error, stdout: string, stderr: string) => void): ChildProcess;\r\n\r\n export interface ForkOptions {\r\n cwd?: string;\r\n env?: any;\r\n execPath?: string;\r\n execArgv?: string[];\r\n silent?: boolean;\r\n uid?: number;\r\n gid?: number;\r\n }\r\n export function fork(modulePath: string, args?: string[], options?: ForkOptions): ChildProcess;\r\n\r\n export interface SpawnSyncOptions {\r\n cwd?: string;\r\n input?: string | Buffer;\r\n stdio?: any;\r\n env?: any;\r\n uid?: number;\r\n gid?: number;\r\n timeout?: number;\r\n killSignal?: string;\r\n maxBuffer?: number;\r\n encoding?: string;\r\n shell?: boolean | string;\r\n }\r\n export interface SpawnSyncOptionsWithStringEncoding extends SpawnSyncOptions {\r\n encoding: BufferEncoding;\r\n }\r\n export interface SpawnSyncOptionsWithBufferEncoding extends SpawnSyncOptions {\r\n encoding: string; // specify `null`.\r\n }\r\n export interface SpawnSyncReturns {\r\n pid: number;\r\n output: string[];\r\n stdout: T;\r\n stderr: T;\r\n status: number;\r\n signal: string;\r\n error: Error;\r\n }\r\n export function spawnSync(command: string): SpawnSyncReturns;\r\n export function spawnSync(command: string, options?: SpawnSyncOptionsWithStringEncoding): SpawnSyncReturns;\r\n export function spawnSync(command: string, options?: SpawnSyncOptionsWithBufferEncoding): SpawnSyncReturns;\r\n export function spawnSync(command: string, options?: SpawnSyncOptions): SpawnSyncReturns;\r\n export function spawnSync(command: string, args?: string[], options?: SpawnSyncOptionsWithStringEncoding): SpawnSyncReturns;\r\n export function spawnSync(command: string, args?: string[], options?: SpawnSyncOptionsWithBufferEncoding): SpawnSyncReturns;\r\n export function spawnSync(command: string, args?: string[], options?: SpawnSyncOptions): SpawnSyncReturns;\r\n\r\n export interface ExecSyncOptions {\r\n cwd?: string;\r\n input?: string | Buffer;\r\n stdio?: any;\r\n env?: any;\r\n shell?: string;\r\n uid?: number;\r\n gid?: number;\r\n timeout?: number;\r\n killSignal?: string;\r\n maxBuffer?: number;\r\n encoding?: string;\r\n }\r\n export interface ExecSyncOptionsWithStringEncoding extends ExecSyncOptions {\r\n encoding: BufferEncoding;\r\n }\r\n export interface ExecSyncOptionsWithBufferEncoding extends ExecSyncOptions {\r\n encoding: string; // specify `null`.\r\n }\r\n export function execSync(command: string): Buffer;\r\n export function execSync(command: string, options?: ExecSyncOptionsWithStringEncoding): string;\r\n export function execSync(command: string, options?: ExecSyncOptionsWithBufferEncoding): Buffer;\r\n export function execSync(command: string, options?: ExecSyncOptions): Buffer;\r\n\r\n export interface ExecFileSyncOptions {\r\n cwd?: string;\r\n input?: string | Buffer;\r\n stdio?: any;\r\n env?: any;\r\n uid?: number;\r\n gid?: number;\r\n timeout?: number;\r\n killSignal?: string;\r\n maxBuffer?: number;\r\n encoding?: string;\r\n }\r\n export interface ExecFileSyncOptionsWithStringEncoding extends ExecFileSyncOptions {\r\n encoding: BufferEncoding;\r\n }\r\n export interface ExecFileSyncOptionsWithBufferEncoding extends ExecFileSyncOptions {\r\n encoding: string; // specify `null`.\r\n }\r\n export function execFileSync(command: string): Buffer;\r\n export function execFileSync(command: string, options?: ExecFileSyncOptionsWithStringEncoding): string;\r\n export function execFileSync(command: string, options?: ExecFileSyncOptionsWithBufferEncoding): Buffer;\r\n export function execFileSync(command: string, options?: ExecFileSyncOptions): Buffer;\r\n export function execFileSync(command: string, args?: string[], options?: ExecFileSyncOptionsWithStringEncoding): string;\r\n export function execFileSync(command: string, args?: string[], options?: ExecFileSyncOptionsWithBufferEncoding): Buffer;\r\n export function execFileSync(command: string, args?: string[], options?: ExecFileSyncOptions): Buffer;\r\n}\r\n\r\ndeclare module \"url\" {\r\n export interface UrlObject {\r\n href?: string;\r\n protocol?: string;\r\n slashes?: boolean;\r\n host?: string;\r\n auth?: string;\r\n hostname?: string;\r\n port?: string | number;\r\n pathname?: string;\r\n search?: string;\r\n path?: string;\r\n query?: string | { [key: string]: any; };\r\n hash?: string;\r\n }\r\n\r\n export interface Url extends UrlObject {\r\n port?: string;\r\n query?: any;\r\n }\r\n\r\n export function parse(urlStr: string, parseQueryString?: boolean, slashesDenoteHost?: boolean): Url;\r\n export function format(urlObject: UrlObject | string): string;\r\n export function resolve(from: string, to: string): string;\r\n}\r\n\r\ndeclare module \"dns\" {\r\n // Supported getaddrinfo flags.\r\n export const ADDRCONFIG: number;\r\n export const V4MAPPED: number;\r\n\r\n export interface LookupOptions {\r\n family?: number;\r\n hints?: number;\r\n all?: boolean;\r\n }\r\n\r\n export interface LookupOneOptions extends LookupOptions {\r\n all?: false;\r\n }\r\n\r\n export interface LookupAllOptions extends LookupOptions {\r\n all: true;\r\n }\r\n\r\n export interface LookupAddress {\r\n address: string;\r\n family: number;\r\n }\r\n\r\n export function lookup(hostname: string, family: number, callback: (err: NodeJS.ErrnoException, address: string, family: number) => void): void;\r\n export function lookup(hostname: string, options: LookupOneOptions, callback: (err: NodeJS.ErrnoException, address: string, family: number) => void): void;\r\n export function lookup(hostname: string, options: LookupAllOptions, callback: (err: NodeJS.ErrnoException, addresses: LookupAddress[]) => void): void;\r\n export function lookup(hostname: string, options: LookupOptions, callback: (err: NodeJS.ErrnoException, address: string | LookupAddress[], family: number) => void): void;\r\n export function lookup(hostname: string, callback: (err: NodeJS.ErrnoException, address: string, family: number) => void): void;\r\n\r\n export interface MxRecord {\r\n priority: number;\r\n exchange: string;\r\n }\r\n\r\n export interface NaptrRecord {\r\n flags: string;\r\n service: string;\r\n regexp: string;\r\n replacement: string;\r\n order: number;\r\n preference: number;\r\n }\r\n\r\n export interface SoaRecord {\r\n nsname: string;\r\n hostmaster: string;\r\n serial: number;\r\n refresh: number;\r\n retry: number;\r\n expire: number;\r\n minttl: number;\r\n }\r\n\r\n export interface SrvRecord {\r\n priority: number;\r\n weight: number;\r\n port: number;\r\n name: string;\r\n }\r\n\r\n export function resolve(hostname: string, callback: (err: NodeJS.ErrnoException, addresses: string[]) => void): void;\r\n export function resolve(hostname: string, rrtype: \"A\", callback: (err: NodeJS.ErrnoException, addresses: string[]) => void): void;\r\n export function resolve(hostname: string, rrtype: \"AAAA\", callback: (err: NodeJS.ErrnoException, addresses: string[]) => void): void;\r\n export function resolve(hostname: string, rrtype: \"CNAME\", callback: (err: NodeJS.ErrnoException, addresses: string[]) => void): void;\r\n export function resolve(hostname: string, rrtype: \"MX\", callback: (err: NodeJS.ErrnoException, addresses: MxRecord[]) => void): void;\r\n export function resolve(hostname: string, rrtype: \"NAPTR\", callback: (err: NodeJS.ErrnoException, addresses: NaptrRecord[]) => void): void;\r\n export function resolve(hostname: string, rrtype: \"NS\", callback: (err: NodeJS.ErrnoException, addresses: string[]) => void): void;\r\n export function resolve(hostname: string, rrtype: \"PTR\", callback: (err: NodeJS.ErrnoException, addresses: string[]) => void): void;\r\n export function resolve(hostname: string, rrtype: \"SOA\", callback: (err: NodeJS.ErrnoException, addresses: SoaRecord) => void): void;\r\n export function resolve(hostname: string, rrtype: \"SRV\", callback: (err: NodeJS.ErrnoException, addresses: SrvRecord[]) => void): void;\r\n export function resolve(hostname: string, rrtype: \"TXT\", callback: (err: NodeJS.ErrnoException, addresses: string[][]) => void): void;\r\n export function resolve(hostname: string, rrtype: string, callback: (err: NodeJS.ErrnoException, addresses: string[] | MxRecord[] | NaptrRecord[] | SoaRecord | SrvRecord[] | string[][]) => void): void;\r\n\r\n export function resolve4(hostname: string, callback: (err: NodeJS.ErrnoException, addresses: string[]) => void): void;\r\n export function resolve6(hostname: string, callback: (err: NodeJS.ErrnoException, addresses: string[]) => void): void;\r\n export function resolveCname(hostname: string, callback: (err: NodeJS.ErrnoException, addresses: string[]) => void): void;\r\n export function resolveMx(hostname: string, callback: (err: NodeJS.ErrnoException, addresses: MxRecord[]) => void): void;\r\n export function resolveNaptr(hostname: string, callback: (err: NodeJS.ErrnoException, addresses: NaptrRecord[]) => void): void;\r\n export function resolveNs(hostname: string, callback: (err: NodeJS.ErrnoException, addresses: string[]) => void): void;\r\n export function resolvePtr(hostname: string, callback: (err: NodeJS.ErrnoException, addresses: string[]) => void): void;\r\n export function resolveSoa(hostname: string, callback: (err: NodeJS.ErrnoException, address: SoaRecord) => void): void;\r\n export function resolveSrv(hostname: string, callback: (err: NodeJS.ErrnoException, addresses: SrvRecord[]) => void): void;\r\n export function resolveTxt(hostname: string, callback: (err: NodeJS.ErrnoException, addresses: string[][]) => void): void;\r\n\r\n export function reverse(ip: string, callback: (err: NodeJS.ErrnoException, hostnames: string[]) => void): void;\r\n export function setServers(servers: string[]): void;\r\n\r\n //Error codes\r\n export var NODATA: string;\r\n export var FORMERR: string;\r\n export var SERVFAIL: string;\r\n export var NOTFOUND: string;\r\n export var NOTIMP: string;\r\n export var REFUSED: string;\r\n export var BADQUERY: string;\r\n export var BADNAME: string;\r\n export var BADFAMILY: string;\r\n export var BADRESP: string;\r\n export var CONNREFUSED: string;\r\n export var TIMEOUT: string;\r\n export var EOF: string;\r\n export var FILE: string;\r\n export var NOMEM: string;\r\n export var DESTRUCTION: string;\r\n export var BADSTR: string;\r\n export var BADFLAGS: string;\r\n export var NONAME: string;\r\n export var BADHINTS: string;\r\n export var NOTINITIALIZED: string;\r\n export var LOADIPHLPAPI: string;\r\n export var ADDRGETNETWORKPARAMS: string;\r\n export var CANCELLED: string;\r\n}\r\n\r\ndeclare module \"net\" {\r\n import * as stream from \"stream\";\r\n import * as events from \"events\";\r\n\r\n export interface Socket extends stream.Duplex {\r\n // Extended base methods\r\n write(buffer: Buffer): boolean;\r\n write(buffer: Buffer, cb?: Function): boolean;\r\n write(str: string, cb?: Function): boolean;\r\n write(str: string, encoding?: string, cb?: Function): boolean;\r\n write(str: string, encoding?: string, fd?: string): boolean;\r\n\r\n connect(port: number, host?: string, connectionListener?: Function): void;\r\n connect(path: string, connectionListener?: Function): void;\r\n bufferSize: number;\r\n setEncoding(encoding?: string): void;\r\n write(data: any, encoding?: string, callback?: Function): void;\r\n destroy(): void;\r\n setTimeout(timeout: number, callback?: Function): void;\r\n setNoDelay(noDelay?: boolean): void;\r\n setKeepAlive(enable?: boolean, initialDelay?: number): void;\r\n address(): { port: number; family: string; address: string; };\r\n unref(): void;\r\n ref(): void;\r\n\r\n remoteAddress: string;\r\n remoteFamily: string;\r\n remotePort: number;\r\n localAddress: string;\r\n localPort: number;\r\n bytesRead: number;\r\n bytesWritten: number;\r\n connecting: boolean;\r\n destroyed: boolean;\r\n\r\n // Extended base methods\r\n end(): void;\r\n end(buffer: Buffer, cb?: Function): void;\r\n end(str: string, cb?: Function): void;\r\n end(str: string, encoding?: string, cb?: Function): void;\r\n end(data?: any, encoding?: string): void;\r\n\r\n /**\r\n * events.EventEmitter\r\n * 1. close\r\n * 2. connect\r\n * 3. data\r\n * 4. drain\r\n * 5. end\r\n * 6. error\r\n * 7. lookup\r\n * 8. timeout\r\n */\r\n addListener(event: string, listener: Function): this;\r\n addListener(event: \"close\", listener: (had_error: boolean) => void): this;\r\n addListener(event: \"connect\", listener: () => void): this;\r\n addListener(event: \"data\", listener: (data: Buffer) => void): this;\r\n addListener(event: \"drain\", listener: () => void): this;\r\n addListener(event: \"end\", listener: () => void): this;\r\n addListener(event: \"error\", listener: (err: Error) => void): this;\r\n addListener(event: \"lookup\", listener: (err: Error, address: string, family: string | number, host: string) => void): this;\r\n addListener(event: \"timeout\", listener: () => void): this;\r\n\r\n emit(event: string | symbol, ...args: any[]): boolean;\r\n emit(event: \"close\", had_error: boolean): boolean;\r\n emit(event: \"connect\"): boolean;\r\n emit(event: \"data\", data: Buffer): boolean;\r\n emit(event: \"drain\"): boolean;\r\n emit(event: \"end\"): boolean;\r\n emit(event: \"error\", err: Error): boolean;\r\n emit(event: \"lookup\", err: Error, address: string, family: string | number, host: string): boolean;\r\n emit(event: \"timeout\"): boolean;\r\n\r\n on(event: string, listener: Function): this;\r\n on(event: \"close\", listener: (had_error: boolean) => void): this;\r\n on(event: \"connect\", listener: () => void): this;\r\n on(event: \"data\", listener: (data: Buffer) => void): this;\r\n on(event: \"drain\", listener: () => void): this;\r\n on(event: \"end\", listener: () => void): this;\r\n on(event: \"error\", listener: (err: Error) => void): this;\r\n on(event: \"lookup\", listener: (err: Error, address: string, family: string | number, host: string) => void): this;\r\n on(event: \"timeout\", listener: () => void): this;\r\n\r\n once(event: string, listener: Function): this;\r\n once(event: \"close\", listener: (had_error: boolean) => void): this;\r\n once(event: \"connect\", listener: () => void): this;\r\n once(event: \"data\", listener: (data: Buffer) => void): this;\r\n once(event: \"drain\", listener: () => void): this;\r\n once(event: \"end\", listener: () => void): this;\r\n once(event: \"error\", listener: (err: Error) => void): this;\r\n once(event: \"lookup\", listener: (err: Error, address: string, family: string | number, host: string) => void): this;\r\n once(event: \"timeout\", listener: () => void): this;\r\n\r\n prependListener(event: string, listener: Function): this;\r\n prependListener(event: \"close\", listener: (had_error: boolean) => void): this;\r\n prependListener(event: \"connect\", listener: () => void): this;\r\n prependListener(event: \"data\", listener: (data: Buffer) => void): this;\r\n prependListener(event: \"drain\", listener: () => void): this;\r\n prependListener(event: \"end\", listener: () => void): this;\r\n prependListener(event: \"error\", listener: (err: Error) => void): this;\r\n prependListener(event: \"lookup\", listener: (err: Error, address: string, family: string | number, host: string) => void): this;\r\n prependListener(event: \"timeout\", listener: () => void): this;\r\n\r\n prependOnceListener(event: string, listener: Function): this;\r\n prependOnceListener(event: \"close\", listener: (had_error: boolean) => void): this;\r\n prependOnceListener(event: \"connect\", listener: () => void): this;\r\n prependOnceListener(event: \"data\", listener: (data: Buffer) => void): this;\r\n prependOnceListener(event: \"drain\", listener: () => void): this;\r\n prependOnceListener(event: \"end\", listener: () => void): this;\r\n prependOnceListener(event: \"error\", listener: (err: Error) => void): this;\r\n prependOnceListener(event: \"lookup\", listener: (err: Error, address: string, family: string | number, host: string) => void): this;\r\n prependOnceListener(event: \"timeout\", listener: () => void): this;\r\n }\r\n\r\n export var Socket: {\r\n new (options?: { fd?: number; allowHalfOpen?: boolean; readable?: boolean; writable?: boolean; }): Socket;\r\n };\r\n\r\n export interface ListenOptions {\r\n port?: number;\r\n host?: string;\r\n backlog?: number;\r\n path?: string;\r\n exclusive?: boolean;\r\n }\r\n\r\n export interface Server extends events.EventEmitter {\r\n listen(port: number, hostname?: string, backlog?: number, listeningListener?: Function): Server;\r\n listen(port: number, hostname?: string, listeningListener?: Function): Server;\r\n listen(port: number, backlog?: number, listeningListener?: Function): Server;\r\n listen(port: number, listeningListener?: Function): Server;\r\n listen(path: string, backlog?: number, listeningListener?: Function): Server;\r\n listen(path: string, listeningListener?: Function): Server;\r\n listen(options: ListenOptions, listeningListener?: Function): Server;\r\n listen(handle: any, backlog?: number, listeningListener?: Function): Server;\r\n listen(handle: any, listeningListener?: Function): Server;\r\n close(callback?: Function): Server;\r\n address(): { port: number; family: string; address: string; };\r\n getConnections(cb: (error: Error, count: number) => void): void;\r\n ref(): Server;\r\n unref(): Server;\r\n maxConnections: number;\r\n connections: number;\r\n\r\n /**\r\n * events.EventEmitter\r\n * 1. close\r\n * 2. connection\r\n * 3. error\r\n * 4. listening\r\n */\r\n addListener(event: string, listener: Function): this;\r\n addListener(event: \"close\", listener: () => void): this;\r\n addListener(event: \"connection\", listener: (socket: Socket) => void): this;\r\n addListener(event: \"error\", listener: (err: Error) => void): this;\r\n addListener(event: \"listening\", listener: () => void): this;\r\n\r\n emit(event: string | symbol, ...args: any[]): boolean;\r\n emit(event: \"close\"): boolean;\r\n emit(event: \"connection\", socket: Socket): boolean;\r\n emit(event: \"error\", err: Error): boolean;\r\n emit(event: \"listening\"): boolean;\r\n\r\n on(event: string, listener: Function): this;\r\n on(event: \"close\", listener: () => void): this;\r\n on(event: \"connection\", listener: (socket: Socket) => void): this;\r\n on(event: \"error\", listener: (err: Error) => void): this;\r\n on(event: \"listening\", listener: () => void): this;\r\n\r\n once(event: string, listener: Function): this;\r\n once(event: \"close\", listener: () => void): this;\r\n once(event: \"connection\", listener: (socket: Socket) => void): this;\r\n once(event: \"error\", listener: (err: Error) => void): this;\r\n once(event: \"listening\", listener: () => void): this;\r\n\r\n prependListener(event: string, listener: Function): this;\r\n prependListener(event: \"close\", listener: () => void): this;\r\n prependListener(event: \"connection\", listener: (socket: Socket) => void): this;\r\n prependListener(event: \"error\", listener: (err: Error) => void): this;\r\n prependListener(event: \"listening\", listener: () => void): this;\r\n\r\n prependOnceListener(event: string, listener: Function): this;\r\n prependOnceListener(event: \"close\", listener: () => void): this;\r\n prependOnceListener(event: \"connection\", listener: (socket: Socket) => void): this;\r\n prependOnceListener(event: \"error\", listener: (err: Error) => void): this;\r\n prependOnceListener(event: \"listening\", listener: () => void): this;\r\n }\r\n export function createServer(connectionListener?: (socket: Socket) => void): Server;\r\n export function createServer(options?: { allowHalfOpen?: boolean; }, connectionListener?: (socket: Socket) => void): Server;\r\n export function connect(options: { port: number, host?: string, localAddress?: string, localPort?: string, family?: number, allowHalfOpen?: boolean; }, connectionListener?: Function): Socket;\r\n export function connect(port: number, host?: string, connectionListener?: Function): Socket;\r\n export function connect(path: string, connectionListener?: Function): Socket;\r\n export function createConnection(options: { port: number, host?: string, localAddress?: string, localPort?: string, family?: number, allowHalfOpen?: boolean; }, connectionListener?: Function): Socket;\r\n export function createConnection(port: number, host?: string, connectionListener?: Function): Socket;\r\n export function createConnection(path: string, connectionListener?: Function): Socket;\r\n export function isIP(input: string): number;\r\n export function isIPv4(input: string): boolean;\r\n export function isIPv6(input: string): boolean;\r\n}\r\n\r\ndeclare module \"dgram\" {\r\n import * as events from \"events\";\r\n\r\n interface RemoteInfo {\r\n address: string;\r\n family: string;\r\n port: number;\r\n }\r\n\r\n interface AddressInfo {\r\n address: string;\r\n family: string;\r\n port: number;\r\n }\r\n\r\n interface BindOptions {\r\n port: number;\r\n address?: string;\r\n exclusive?: boolean;\r\n }\r\n\r\n interface SocketOptions {\r\n type: \"udp4\" | \"udp6\";\r\n reuseAddr?: boolean;\r\n }\r\n\r\n export function createSocket(type: string, callback?: (msg: Buffer, rinfo: RemoteInfo) => void): Socket;\r\n export function createSocket(options: SocketOptions, callback?: (msg: Buffer, rinfo: RemoteInfo) => void): Socket;\r\n\r\n export interface Socket extends events.EventEmitter {\r\n send(msg: Buffer | String | any[], port: number, address: string, callback?: (error: Error, bytes: number) => void): void;\r\n send(msg: Buffer | String | any[], offset: number, length: number, port: number, address: string, callback?: (error: Error, bytes: number) => void): void;\r\n bind(port?: number, address?: string, callback?: () => void): void;\r\n bind(options: BindOptions, callback?: Function): void;\r\n close(callback?: any): void;\r\n address(): AddressInfo;\r\n setBroadcast(flag: boolean): void;\r\n setTTL(ttl: number): void;\r\n setMulticastTTL(ttl: number): void;\r\n setMulticastLoopback(flag: boolean): void;\r\n addMembership(multicastAddress: string, multicastInterface?: string): void;\r\n dropMembership(multicastAddress: string, multicastInterface?: string): void;\r\n ref(): this;\r\n unref(): this;\r\n\r\n /**\r\n * events.EventEmitter\r\n * 1. close\r\n * 2. error\r\n * 3. listening\r\n * 4. message\r\n **/\r\n addListener(event: string, listener: Function): this;\r\n addListener(event: \"close\", listener: () => void): this;\r\n addListener(event: \"error\", listener: (err: Error) => void): this;\r\n addListener(event: \"listening\", listener: () => void): this;\r\n addListener(event: \"message\", listener: (msg: Buffer, rinfo: AddressInfo) => void): this;\r\n\r\n emit(event: string | symbol, ...args: any[]): boolean;\r\n emit(event: \"close\"): boolean;\r\n emit(event: \"error\", err: Error): boolean;\r\n emit(event: \"listening\"): boolean;\r\n emit(event: \"message\", msg: Buffer, rinfo: AddressInfo): boolean;\r\n\r\n on(event: string, listener: Function): this;\r\n on(event: \"close\", listener: () => void): this;\r\n on(event: \"error\", listener: (err: Error) => void): this;\r\n on(event: \"listening\", listener: () => void): this;\r\n on(event: \"message\", listener: (msg: Buffer, rinfo: AddressInfo) => void): this;\r\n\r\n once(event: string, listener: Function): this;\r\n once(event: \"close\", listener: () => void): this;\r\n once(event: \"error\", listener: (err: Error) => void): this;\r\n once(event: \"listening\", listener: () => void): this;\r\n once(event: \"message\", listener: (msg: Buffer, rinfo: AddressInfo) => void): this;\r\n\r\n prependListener(event: string, listener: Function): this;\r\n prependListener(event: \"close\", listener: () => void): this;\r\n prependListener(event: \"error\", listener: (err: Error) => void): this;\r\n prependListener(event: \"listening\", listener: () => void): this;\r\n prependListener(event: \"message\", listener: (msg: Buffer, rinfo: AddressInfo) => void): this;\r\n\r\n prependOnceListener(event: string, listener: Function): this;\r\n prependOnceListener(event: \"close\", listener: () => void): this;\r\n prependOnceListener(event: \"error\", listener: (err: Error) => void): this;\r\n prependOnceListener(event: \"listening\", listener: () => void): this;\r\n prependOnceListener(event: \"message\", listener: (msg: Buffer, rinfo: AddressInfo) => void): this;\r\n }\r\n}\r\n\r\ndeclare module \"fs\" {\r\n import * as stream from \"stream\";\r\n import * as events from \"events\";\r\n\r\n interface Stats {\r\n isFile(): boolean;\r\n isDirectory(): boolean;\r\n isBlockDevice(): boolean;\r\n isCharacterDevice(): boolean;\r\n isSymbolicLink(): boolean;\r\n isFIFO(): boolean;\r\n isSocket(): boolean;\r\n dev: number;\r\n ino: number;\r\n mode: number;\r\n nlink: number;\r\n uid: number;\r\n gid: number;\r\n rdev: number;\r\n size: number;\r\n blksize: number;\r\n blocks: number;\r\n atime: Date;\r\n mtime: Date;\r\n ctime: Date;\r\n birthtime: Date;\r\n }\r\n\r\n interface FSWatcher extends events.EventEmitter {\r\n close(): void;\r\n\r\n /**\r\n * events.EventEmitter\r\n * 1. change\r\n * 2. error\r\n */\r\n addListener(event: string, listener: Function): this;\r\n addListener(event: \"change\", listener: (eventType: string, filename: string | Buffer) => void): this;\r\n addListener(event: \"error\", listener: (error: Error) => void): this;\r\n\r\n on(event: string, listener: Function): this;\r\n on(event: \"change\", listener: (eventType: string, filename: string | Buffer) => void): this;\r\n on(event: \"error\", listener: (error: Error) => void): this;\r\n\r\n once(event: string, listener: Function): this;\r\n once(event: \"change\", listener: (eventType: string, filename: string | Buffer) => void): this;\r\n once(event: \"error\", listener: (error: Error) => void): this;\r\n\r\n prependListener(event: string, listener: Function): this;\r\n prependListener(event: \"change\", listener: (eventType: string, filename: string | Buffer) => void): this;\r\n prependListener(event: \"error\", listener: (error: Error) => void): this;\r\n\r\n prependOnceListener(event: string, listener: Function): this;\r\n prependOnceListener(event: \"change\", listener: (eventType: string, filename: string | Buffer) => void): this;\r\n prependOnceListener(event: \"error\", listener: (error: Error) => void): this;\r\n }\r\n\r\n export interface ReadStream extends stream.Readable {\r\n close(): void;\r\n destroy(): void;\r\n bytesRead: number;\r\n path: string | Buffer;\r\n\r\n /**\r\n * events.EventEmitter\r\n * 1. open\r\n * 2. close\r\n */\r\n addListener(event: string, listener: Function): this;\r\n addListener(event: \"open\", listener: (fd: number) => void): this;\r\n addListener(event: \"close\", listener: () => void): this;\r\n\r\n on(event: string, listener: Function): this;\r\n on(event: \"open\", listener: (fd: number) => void): this;\r\n on(event: \"close\", listener: () => void): this;\r\n\r\n once(event: string, listener: Function): this;\r\n once(event: \"open\", listener: (fd: number) => void): this;\r\n once(event: \"close\", listener: () => void): this;\r\n\r\n prependListener(event: string, listener: Function): this;\r\n prependListener(event: \"open\", listener: (fd: number) => void): this;\r\n prependListener(event: \"close\", listener: () => void): this;\r\n\r\n prependOnceListener(event: string, listener: Function): this;\r\n prependOnceListener(event: \"open\", listener: (fd: number) => void): this;\r\n prependOnceListener(event: \"close\", listener: () => void): this;\r\n }\r\n\r\n export interface WriteStream extends stream.Writable {\r\n close(): void;\r\n bytesWritten: number;\r\n path: string | Buffer;\r\n\r\n /**\r\n * events.EventEmitter\r\n * 1. open\r\n * 2. close\r\n */\r\n addListener(event: string, listener: Function): this;\r\n addListener(event: \"open\", listener: (fd: number) => void): this;\r\n addListener(event: \"close\", listener: () => void): this;\r\n\r\n on(event: string, listener: Function): this;\r\n on(event: \"open\", listener: (fd: number) => void): this;\r\n on(event: \"close\", listener: () => void): this;\r\n\r\n once(event: string, listener: Function): this;\r\n once(event: \"open\", listener: (fd: number) => void): this;\r\n once(event: \"close\", listener: () => void): this;\r\n\r\n prependListener(event: string, listener: Function): this;\r\n prependListener(event: \"open\", listener: (fd: number) => void): this;\r\n prependListener(event: \"close\", listener: () => void): this;\r\n\r\n prependOnceListener(event: string, listener: Function): this;\r\n prependOnceListener(event: \"open\", listener: (fd: number) => void): this;\r\n prependOnceListener(event: \"close\", listener: () => void): this;\r\n }\r\n\r\n /**\r\n * Asynchronous rename.\r\n * @param callback No arguments other than a possible exception are given to the completion callback.\r\n */\r\n export function rename(oldPath: string, newPath: string, callback?: (err?: NodeJS.ErrnoException) => void): void;\r\n /**\r\n * Synchronous rename\r\n */\r\n export function renameSync(oldPath: string, newPath: string): void;\r\n export function truncate(path: string | Buffer, callback?: (err?: NodeJS.ErrnoException) => void): void;\r\n export function truncate(path: string | Buffer, len: number, callback?: (err?: NodeJS.ErrnoException) => void): void;\r\n export function truncateSync(path: string | Buffer, len?: number): void;\r\n export function ftruncate(fd: number, callback?: (err?: NodeJS.ErrnoException) => void): void;\r\n export function ftruncate(fd: number, len: number, callback?: (err?: NodeJS.ErrnoException) => void): void;\r\n export function ftruncateSync(fd: number, len?: number): void;\r\n export function chown(path: string | Buffer, uid: number, gid: number, callback?: (err?: NodeJS.ErrnoException) => void): void;\r\n export function chownSync(path: string | Buffer, uid: number, gid: number): void;\r\n export function fchown(fd: number, uid: number, gid: number, callback?: (err?: NodeJS.ErrnoException) => void): void;\r\n export function fchownSync(fd: number, uid: number, gid: number): void;\r\n export function lchown(path: string | Buffer, uid: number, gid: number, callback?: (err?: NodeJS.ErrnoException) => void): void;\r\n export function lchownSync(path: string | Buffer, uid: number, gid: number): void;\r\n export function chmod(path: string | Buffer, mode: number, callback?: (err?: NodeJS.ErrnoException) => void): void;\r\n export function chmod(path: string | Buffer, mode: string, callback?: (err?: NodeJS.ErrnoException) => void): void;\r\n export function chmodSync(path: string | Buffer, mode: number): void;\r\n export function chmodSync(path: string | Buffer, mode: string): void;\r\n export function fchmod(fd: number, mode: number, callback?: (err?: NodeJS.ErrnoException) => void): void;\r\n export function fchmod(fd: number, mode: string, callback?: (err?: NodeJS.ErrnoException) => void): void;\r\n export function fchmodSync(fd: number, mode: number): void;\r\n export function fchmodSync(fd: number, mode: string): void;\r\n export function lchmod(path: string | Buffer, mode: number, callback?: (err?: NodeJS.ErrnoException) => void): void;\r\n export function lchmod(path: string | Buffer, mode: string, callback?: (err?: NodeJS.ErrnoException) => void): void;\r\n export function lchmodSync(path: string | Buffer, mode: number): void;\r\n export function lchmodSync(path: string | Buffer, mode: string): void;\r\n export function stat(path: string | Buffer, callback?: (err: NodeJS.ErrnoException, stats: Stats) => any): void;\r\n export function lstat(path: string | Buffer, callback?: (err: NodeJS.ErrnoException, stats: Stats) => any): void;\r\n export function fstat(fd: number, callback?: (err: NodeJS.ErrnoException, stats: Stats) => any): void;\r\n export function statSync(path: string | Buffer): Stats;\r\n export function lstatSync(path: string | Buffer): Stats;\r\n export function fstatSync(fd: number): Stats;\r\n export function link(srcpath: string | Buffer, dstpath: string | Buffer, callback?: (err?: NodeJS.ErrnoException) => void): void;\r\n export function linkSync(srcpath: string | Buffer, dstpath: string | Buffer): void;\r\n export function symlink(srcpath: string | Buffer, dstpath: string | Buffer, type?: string, callback?: (err?: NodeJS.ErrnoException) => void): void;\r\n export function symlinkSync(srcpath: string | Buffer, dstpath: string | Buffer, type?: string): void;\r\n export function readlink(path: string | Buffer, callback?: (err: NodeJS.ErrnoException, linkString: string) => any): void;\r\n export function readlinkSync(path: string | Buffer): string;\r\n export function realpath(path: string | Buffer, callback?: (err: NodeJS.ErrnoException, resolvedPath: string) => any): void;\r\n export function realpath(path: string | Buffer, cache: { [path: string]: string }, callback: (err: NodeJS.ErrnoException, resolvedPath: string) => any): void;\r\n export function realpathSync(path: string | Buffer, cache?: { [path: string]: string }): string;\r\n /**\r\n * Asynchronous unlink - deletes the file specified in {path}\r\n *\r\n * @param callback No arguments other than a possible exception are given to the completion callback.\r\n */\r\n export function unlink(path: string | Buffer, callback?: (err?: NodeJS.ErrnoException) => void): void;\r\n /**\r\n * Synchronous unlink - deletes the file specified in {path}\r\n */\r\n export function unlinkSync(path: string | Buffer): void;\r\n /**\r\n * Asynchronous rmdir - removes the directory specified in {path}\r\n *\r\n * @param callback No arguments other than a possible exception are given to the completion callback.\r\n */\r\n export function rmdir(path: string | Buffer, callback?: (err?: NodeJS.ErrnoException) => void): void;\r\n /**\r\n * Synchronous rmdir - removes the directory specified in {path}\r\n */\r\n export function rmdirSync(path: string | Buffer): void;\r\n /**\r\n * Asynchronous mkdir - creates the directory specified in {path}. Parameter {mode} defaults to 0777.\r\n *\r\n * @param callback No arguments other than a possible exception are given to the completion callback.\r\n */\r\n export function mkdir(path: string | Buffer, callback?: (err?: NodeJS.ErrnoException) => void): void;\r\n /**\r\n * Asynchronous mkdir - creates the directory specified in {path}. Parameter {mode} defaults to 0777.\r\n *\r\n * @param callback No arguments other than a possible exception are given to the completion callback.\r\n */\r\n export function mkdir(path: string | Buffer, mode: number, callback?: (err?: NodeJS.ErrnoException) => void): void;\r\n /**\r\n * Asynchronous mkdir - creates the directory specified in {path}. Parameter {mode} defaults to 0777.\r\n *\r\n * @param callback No arguments other than a possible exception are given to the completion callback.\r\n */\r\n export function mkdir(path: string | Buffer, mode: string, callback?: (err?: NodeJS.ErrnoException) => void): void;\r\n /**\r\n * Synchronous mkdir - creates the directory specified in {path}. Parameter {mode} defaults to 0777.\r\n *\r\n * @param callback No arguments other than a possible exception are given to the completion callback.\r\n */\r\n export function mkdirSync(path: string | Buffer, mode?: number): void;\r\n /**\r\n * Synchronous mkdir - creates the directory specified in {path}. Parameter {mode} defaults to 0777.\r\n *\r\n * @param callback No arguments other than a possible exception are given to the completion callback.\r\n */\r\n export function mkdirSync(path: string | Buffer, mode?: string): void;\r\n /**\r\n * Asynchronous mkdtemp - Creates a unique temporary directory. Generates six random characters to be appended behind a required prefix to create a unique temporary directory.\r\n *\r\n * @param callback The created folder path is passed as a string to the callback's second parameter.\r\n */\r\n export function mkdtemp(prefix: string, callback?: (err: NodeJS.ErrnoException, folder: string) => void): void;\r\n /**\r\n * Synchronous mkdtemp - Creates a unique temporary directory. Generates six random characters to be appended behind a required prefix to create a unique temporary directory.\r\n *\r\n * @returns Returns the created folder path.\r\n */\r\n export function mkdtempSync(prefix: string): string;\r\n export function readdir(path: string | Buffer, callback?: (err: NodeJS.ErrnoException, files: string[]) => void): void;\r\n export function readdirSync(path: string | Buffer): string[];\r\n export function close(fd: number, callback?: (err?: NodeJS.ErrnoException) => void): void;\r\n export function closeSync(fd: number): void;\r\n export function open(path: string | Buffer, flags: string | number, callback: (err: NodeJS.ErrnoException, fd: number) => void): void;\r\n export function open(path: string | Buffer, flags: string | number, mode: number, callback: (err: NodeJS.ErrnoException, fd: number) => void): void;\r\n export function openSync(path: string | Buffer, flags: string | number, mode?: number): number;\r\n export function utimes(path: string | Buffer, atime: number, mtime: number, callback?: (err?: NodeJS.ErrnoException) => void): void;\r\n export function utimes(path: string | Buffer, atime: Date, mtime: Date, callback?: (err?: NodeJS.ErrnoException) => void): void;\r\n export function utimesSync(path: string | Buffer, atime: number, mtime: number): void;\r\n export function utimesSync(path: string | Buffer, atime: Date, mtime: Date): void;\r\n export function futimes(fd: number, atime: number, mtime: number, callback?: (err?: NodeJS.ErrnoException) => void): void;\r\n export function futimes(fd: number, atime: Date, mtime: Date, callback?: (err?: NodeJS.ErrnoException) => void): void;\r\n export function futimesSync(fd: number, atime: number, mtime: number): void;\r\n export function futimesSync(fd: number, atime: Date, mtime: Date): void;\r\n export function fsync(fd: number, callback?: (err?: NodeJS.ErrnoException) => void): void;\r\n export function fsyncSync(fd: number): void;\r\n export function write(fd: number, buffer: Buffer, offset: number, length: number, position: number | null, callback?: (err: NodeJS.ErrnoException, written: number, buffer: Buffer) => void): void;\r\n export function write(fd: number, buffer: Buffer, offset: number, length: number, callback?: (err: NodeJS.ErrnoException, written: number, buffer: Buffer) => void): void;\r\n export function write(fd: number, data: any, callback?: (err: NodeJS.ErrnoException, written: number, str: string) => void): void;\r\n export function write(fd: number, data: any, offset: number, callback?: (err: NodeJS.ErrnoException, written: number, str: string) => void): void;\r\n export function write(fd: number, data: any, offset: number, encoding: string, callback?: (err: NodeJS.ErrnoException, written: number, str: string) => void): void;\r\n export function writeSync(fd: number, buffer: Buffer, offset: number, length: number, position?: number | null): number;\r\n export function writeSync(fd: number, data: any, position?: number | null, enconding?: string): number;\r\n export function read(fd: number, buffer: Buffer, offset: number, length: number, position: number | null, callback?: (err: NodeJS.ErrnoException, bytesRead: number, buffer: Buffer) => void): void;\r\n export function readSync(fd: number, buffer: Buffer, offset: number, length: number, position: number | null): number;\r\n /**\r\n * Asynchronous readFile - Asynchronously reads the entire contents of a file.\r\n *\r\n * @param callback - The callback is passed two arguments (err, data), where data is the contents of the file.\r\n */\r\n export function readFile(filename: string, encoding: null, callback: (err: NodeJS.ErrnoException, data: Buffer) => void): void;\r\n export function readFile(filename: string, encoding: string, callback: (err: NodeJS.ErrnoException, data: string) => void): void;\r\n export function readFile(filename: string, encoding: string | null, callback: (err: NodeJS.ErrnoException, data: string | Buffer) => void): void;\r\n /**\r\n * Asynchronous readFile - Asynchronously reads the entire contents of a file.\r\n *\r\n * @param options An object with optional {encoding} and {flag} properties. If {encoding} is specified, readFile returns a string; otherwise it returns a Buffer.\r\n * @param callback - The callback is passed two arguments (err, data), where data is the contents of the file.\r\n */\r\n export function readFile(filename: string, options: { encoding: null; flag?: string; }, callback: (err: NodeJS.ErrnoException, data: Buffer) => void): void;\r\n export function readFile(filename: string, options: { encoding: string; flag?: string; }, callback: (err: NodeJS.ErrnoException, data: string) => void): void;\r\n export function readFile(filename: string, options: { encoding: string | null; flag?: string; }, callback: (err: NodeJS.ErrnoException, data: string | Buffer) => void): void;\r\n /**\r\n * Asynchronous readFile - Asynchronously reads the entire contents of a file.\r\n *\r\n * @param options An object with optional {encoding} and {flag} properties. If {encoding} is specified, readFile returns a string; otherwise it returns a Buffer.\r\n * @param callback - The callback is passed two arguments (err, data), where data is the contents of the file.\r\n */\r\n export function readFile(filename: string, options: { flag?: string; }, callback: (err: NodeJS.ErrnoException, data: Buffer) => void): void;\r\n /**\r\n * Asynchronous readFile - Asynchronously reads the entire contents of a file.\r\n *\r\n * @param callback - The callback is passed two arguments (err, data), where data is the contents of the file.\r\n */\r\n export function readFile(filename: string, callback: (err: NodeJS.ErrnoException, data: Buffer) => void): void;\r\n /**\r\n * Synchronous readFile - Synchronously reads the entire contents of a file.\r\n */\r\n export function readFileSync(filename: string, encoding: null): Buffer;\r\n export function readFileSync(filename: string, encoding: string): string;\r\n export function readFileSync(filename: string, encoding: string | null): string | Buffer;\r\n /**\r\n * Synchronous readFile - Synchronously reads the entire contents of a file.\r\n *\r\n * @param options An object with optional {encoding} and {flag} properties. If {encoding} is specified, readFileSync returns a string; otherwise it returns a Buffer.\r\n */\r\n export function readFileSync(filename: string, options: { encoding: null; flag?: string; }): Buffer;\r\n export function readFileSync(filename: string, options: { encoding: string; flag?: string; }): string;\r\n export function readFileSync(filename: string, options: { encoding: string | null; flag?: string; }): string | Buffer;\r\n /**\r\n * Synchronous readFile - Synchronously reads the entire contents of a file.\r\n *\r\n * @param options An object with optional {encoding} and {flag} properties. If {encoding} is specified, readFileSync returns a string; otherwise it returns a Buffer.\r\n */\r\n export function readFileSync(filename: string, options?: { flag?: string; }): Buffer;\r\n export function writeFile(filename: string, data: any, callback?: (err: NodeJS.ErrnoException) => void): void;\r\n export function writeFile(filename: string, data: any, encoding: string, callback: (err: NodeJS.ErrnoException) => void): void;\r\n export function writeFile(filename: string, data: any, options: { encoding?: string; mode?: number; flag?: string; }, callback?: (err: NodeJS.ErrnoException) => void): void;\r\n export function writeFile(filename: string, data: any, options: { encoding?: string; mode?: string; flag?: string; }, callback?: (err: NodeJS.ErrnoException) => void): void;\r\n export function writeFileSync(filename: string, data: any, encoding: string): void;\r\n export function writeFileSync(filename: string, data: any, options?: { encoding?: string; mode?: number; flag?: string; }): void;\r\n export function writeFileSync(filename: string, data: any, options?: { encoding?: string; mode?: string; flag?: string; }): void;\r\n export function appendFile(filename: string, data: any, encoding: string, callback: (err: NodeJS.ErrnoException) => void): void;\r\n export function appendFile(filename: string, data: any, options: { encoding?: string; mode?: number; flag?: string; }, callback?: (err: NodeJS.ErrnoException) => void): void;\r\n export function appendFile(filename: string, data: any, options: { encoding?: string; mode?: string; flag?: string; }, callback?: (err: NodeJS.ErrnoException) => void): void;\r\n export function appendFile(filename: string, data: any, callback?: (err: NodeJS.ErrnoException) => void): void;\r\n export function appendFileSync(filename: string, data: any, encoding: string): void;\r\n export function appendFileSync(filename: string, data: any, options?: { encoding?: string; mode?: number; flag?: string; }): void;\r\n export function appendFileSync(filename: string, data: any, options?: { encoding?: string; mode?: string; flag?: string; }): void;\r\n export function watchFile(filename: string, listener: (curr: Stats, prev: Stats) => void): void;\r\n export function watchFile(filename: string, options: { persistent?: boolean; interval?: number; }, listener: (curr: Stats, prev: Stats) => void): void;\r\n export function unwatchFile(filename: string, listener?: (curr: Stats, prev: Stats) => void): void;\r\n export function watch(filename: string, listener?: (event: string, filename: string) => any): FSWatcher;\r\n export function watch(filename: string, encoding: string, listener?: (event: string, filename: string | Buffer) => any): FSWatcher;\r\n export function watch(filename: string, options: { persistent?: boolean; recursive?: boolean; encoding?: string }, listener?: (event: string, filename: string | Buffer) => any): FSWatcher;\r\n export function exists(path: string | Buffer, callback?: (exists: boolean) => void): void;\r\n export function existsSync(path: string | Buffer): boolean;\r\n\r\n export namespace constants {\r\n // File Access Constants\r\n\r\n /** Constant for fs.access(). File is visible to the calling process. */\r\n export const F_OK: number;\r\n\r\n /** Constant for fs.access(). File can be read by the calling process. */\r\n export const R_OK: number;\r\n\r\n /** Constant for fs.access(). File can be written by the calling process. */\r\n export const W_OK: number;\r\n\r\n /** Constant for fs.access(). File can be executed by the calling process. */\r\n export const X_OK: number;\r\n\r\n // File Open Constants\r\n\r\n /** Constant for fs.open(). Flag indicating to open a file for read-only access. */\r\n export const O_RDONLY: number;\r\n\r\n /** Constant for fs.open(). Flag indicating to open a file for write-only access. */\r\n export const O_WRONLY: number;\r\n\r\n /** Constant for fs.open(). Flag indicating to open a file for read-write access. */\r\n export const O_RDWR: number;\r\n\r\n /** Constant for fs.open(). Flag indicating to create the file if it does not already exist. */\r\n export const O_CREAT: number;\r\n\r\n /** Constant for fs.open(). Flag indicating that opening a file should fail if the O_CREAT flag is set and the file already exists. */\r\n export const O_EXCL: number;\r\n\r\n /** Constant for fs.open(). Flag indicating that if path identifies a terminal device, opening the path shall not cause that terminal to become the controlling terminal for the process (if the process does not already have one). */\r\n export const O_NOCTTY: number;\r\n\r\n /** Constant for fs.open(). Flag indicating that if the file exists and is a regular file, and the file is opened successfully for write access, its length shall be truncated to zero. */\r\n export const O_TRUNC: number;\r\n\r\n /** Constant for fs.open(). Flag indicating that data will be appended to the end of the file. */\r\n export const O_APPEND: number;\r\n\r\n /** Constant for fs.open(). Flag indicating that the open should fail if the path is not a directory. */\r\n export const O_DIRECTORY: number;\r\n\r\n /** Constant for fs.open(). Flag indicating reading accesses to the file system will no longer result in an update to the atime information associated with the file. This flag is available on Linux operating systems only. */\r\n export const O_NOATIME: number;\r\n\r\n /** Constant for fs.open(). Flag indicating that the open should fail if the path is a symbolic link. */\r\n export const O_NOFOLLOW: number;\r\n\r\n /** Constant for fs.open(). Flag indicating that the file is opened for synchronous I/O. */\r\n export const O_SYNC: number;\r\n\r\n /** Constant for fs.open(). Flag indicating to open the symbolic link itself rather than the resource it is pointing to. */\r\n export const O_SYMLINK: number;\r\n\r\n /** Constant for fs.open(). When set, an attempt will be made to minimize caching effects of file I/O. */\r\n export const O_DIRECT: number;\r\n\r\n /** Constant for fs.open(). Flag indicating to open the file in nonblocking mode when possible. */\r\n export const O_NONBLOCK: number;\r\n\r\n // File Type Constants\r\n\r\n /** Constant for fs.Stats mode property for determining a file's type. Bit mask used to extract the file type code. */\r\n export const S_IFMT: number;\r\n\r\n /** Constant for fs.Stats mode property for determining a file's type. File type constant for a regular file. */\r\n export const S_IFREG: number;\r\n\r\n /** Constant for fs.Stats mode property for determining a file's type. File type constant for a directory. */\r\n export const S_IFDIR: number;\r\n\r\n /** Constant for fs.Stats mode property for determining a file's type. File type constant for a character-oriented device file. */\r\n export const S_IFCHR: number;\r\n\r\n /** Constant for fs.Stats mode property for determining a file's type. File type constant for a block-oriented device file. */\r\n export const S_IFBLK: number;\r\n\r\n /** Constant for fs.Stats mode property for determining a file's type. File type constant for a FIFO/pipe. */\r\n export const S_IFIFO: number;\r\n\r\n /** Constant for fs.Stats mode property for determining a file's type. File type constant for a symbolic link. */\r\n export const S_IFLNK: number;\r\n\r\n /** Constant for fs.Stats mode property for determining a file's type. File type constant for a socket. */\r\n export const S_IFSOCK: number;\r\n\r\n // File Mode Constants\r\n\r\n /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating readable, writable and executable by owner. */\r\n export const S_IRWXU: number;\r\n\r\n /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating readable by owner. */\r\n export const S_IRUSR: number;\r\n\r\n /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating writable by owner. */\r\n export const S_IWUSR: number;\r\n\r\n /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating executable by owner. */\r\n export const S_IXUSR: number;\r\n\r\n /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating readable, writable and executable by group. */\r\n export const S_IRWXG: number;\r\n\r\n /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating readable by group. */\r\n export const S_IRGRP: number;\r\n\r\n /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating writable by group. */\r\n export const S_IWGRP: number;\r\n\r\n /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating executable by group. */\r\n export const S_IXGRP: number;\r\n\r\n /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating readable, writable and executable by others. */\r\n export const S_IRWXO: number;\r\n\r\n /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating readable by others. */\r\n export const S_IROTH: number;\r\n\r\n /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating writable by others. */\r\n export const S_IWOTH: number;\r\n\r\n /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating executable by others. */\r\n export const S_IXOTH: number;\r\n }\r\n\r\n /** Tests a user's permissions for the file specified by path. */\r\n export function access(path: string | Buffer, callback: (err: NodeJS.ErrnoException) => void): void;\r\n export function access(path: string | Buffer, mode: number, callback: (err: NodeJS.ErrnoException) => void): void;\r\n /** Synchronous version of fs.access. This throws if any accessibility checks fail, and does nothing otherwise. */\r\n export function accessSync(path: string | Buffer, mode?: number): void;\r\n export function createReadStream(path: string | Buffer, options?: {\r\n flags?: string;\r\n encoding?: string;\r\n fd?: number;\r\n mode?: number;\r\n autoClose?: boolean;\r\n start?: number;\r\n end?: number;\r\n highWaterMark?: number;\r\n }): ReadStream;\r\n export function createWriteStream(path: string | Buffer, options?: {\r\n flags?: string;\r\n encoding?: string;\r\n fd?: number;\r\n mode?: number;\r\n autoClose?: boolean;\r\n start?: number;\r\n }): WriteStream;\r\n export function fdatasync(fd: number, callback: Function): void;\r\n export function fdatasyncSync(fd: number): void;\r\n}\r\n\r\ndeclare module \"path\" {\r\n\r\n /**\r\n * A parsed path object generated by path.parse() or consumed by path.format().\r\n */\r\n export interface ParsedPath {\r\n /**\r\n * The root of the path such as '/' or 'c:\\'\r\n */\r\n root: string;\r\n /**\r\n * The full directory path such as '/home/user/dir' or 'c:\\path\\dir'\r\n */\r\n dir: string;\r\n /**\r\n * The file name including extension (if any) such as 'index.html'\r\n */\r\n base: string;\r\n /**\r\n * The file extension (if any) such as '.html'\r\n */\r\n ext: string;\r\n /**\r\n * The file name without extension (if any) such as 'index'\r\n */\r\n name: string;\r\n }\r\n\r\n /**\r\n * Normalize a string path, reducing '..' and '.' parts.\r\n * When multiple slashes are found, they're replaced by a single one; when the path contains a trailing slash, it is preserved. On Windows backslashes are used.\r\n *\r\n * @param p string path to normalize.\r\n */\r\n export function normalize(p: string): string;\r\n /**\r\n * Join all arguments together and normalize the resulting path.\r\n * Arguments must be strings. In v0.8, non-string arguments were silently ignored. In v0.10 and up, an exception is thrown.\r\n *\r\n * @param paths paths to join.\r\n */\r\n export function join(...paths: string[]): string;\r\n /**\r\n * The right-most parameter is considered {to}. Other parameters are considered an array of {from}.\r\n *\r\n * Starting from leftmost {from} paramter, resolves {to} to an absolute path.\r\n *\r\n * If {to} isn't already absolute, {from} arguments are prepended in right to left order, until an absolute path is found. If after using all {from} paths still no absolute path is found, the current working directory is used as well. The resulting path is normalized, and trailing slashes are removed unless the path gets resolved to the root directory.\r\n *\r\n * @param pathSegments string paths to join. Non-string arguments are ignored.\r\n */\r\n export function resolve(...pathSegments: any[]): string;\r\n /**\r\n * Determines whether {path} is an absolute path. An absolute path will always resolve to the same location, regardless of the working directory.\r\n *\r\n * @param path path to test.\r\n */\r\n export function isAbsolute(path: string): boolean;\r\n /**\r\n * Solve the relative path from {from} to {to}.\r\n * At times we have two absolute paths, and we need to derive the relative path from one to the other. This is actually the reverse transform of path.resolve.\r\n */\r\n export function relative(from: string, to: string): string;\r\n /**\r\n * Return the directory name of a path. Similar to the Unix dirname command.\r\n *\r\n * @param p the path to evaluate.\r\n */\r\n export function dirname(p: string): string;\r\n /**\r\n * Return the last portion of a path. Similar to the Unix basename command.\r\n * Often used to extract the file name from a fully qualified path.\r\n *\r\n * @param p the path to evaluate.\r\n * @param ext optionally, an extension to remove from the result.\r\n */\r\n export function basename(p: string, ext?: string): string;\r\n /**\r\n * Return the extension of the path, from the last '.' to end of string in the last portion of the path.\r\n * If there is no '.' in the last portion of the path or the first character of it is '.', then it returns an empty string\r\n *\r\n * @param p the path to evaluate.\r\n */\r\n export function extname(p: string): string;\r\n /**\r\n * The platform-specific file separator. '\\\\' or '/'.\r\n */\r\n export var sep: string;\r\n /**\r\n * The platform-specific file delimiter. ';' or ':'.\r\n */\r\n export var delimiter: string;\r\n /**\r\n * Returns an object from a path string - the opposite of format().\r\n *\r\n * @param pathString path to evaluate.\r\n */\r\n export function parse(pathString: string): ParsedPath;\r\n /**\r\n * Returns a path string from an object - the opposite of parse().\r\n *\r\n * @param pathString path to evaluate.\r\n */\r\n export function format(pathObject: ParsedPath): string;\r\n\r\n export module posix {\r\n export function normalize(p: string): string;\r\n export function join(...paths: any[]): string;\r\n export function resolve(...pathSegments: any[]): string;\r\n export function isAbsolute(p: string): boolean;\r\n export function relative(from: string, to: string): string;\r\n export function dirname(p: string): string;\r\n export function basename(p: string, ext?: string): string;\r\n export function extname(p: string): string;\r\n export var sep: string;\r\n export var delimiter: string;\r\n export function parse(p: string): ParsedPath;\r\n export function format(pP: ParsedPath): string;\r\n }\r\n\r\n export module win32 {\r\n export function normalize(p: string): string;\r\n export function join(...paths: any[]): string;\r\n export function resolve(...pathSegments: any[]): string;\r\n export function isAbsolute(p: string): boolean;\r\n export function relative(from: string, to: string): string;\r\n export function dirname(p: string): string;\r\n export function basename(p: string, ext?: string): string;\r\n export function extname(p: string): string;\r\n export var sep: string;\r\n export var delimiter: string;\r\n export function parse(p: string): ParsedPath;\r\n export function format(pP: ParsedPath): string;\r\n }\r\n}\r\n\r\ndeclare module \"string_decoder\" {\r\n export interface NodeStringDecoder {\r\n write(buffer: Buffer): string;\r\n end(buffer?: Buffer): string;\r\n }\r\n export var StringDecoder: {\r\n new (encoding?: string): NodeStringDecoder;\r\n };\r\n}\r\n\r\ndeclare module \"tls\" {\r\n import * as crypto from \"crypto\";\r\n import * as net from \"net\";\r\n import * as stream from \"stream\";\r\n\r\n var CLIENT_RENEG_LIMIT: number;\r\n var CLIENT_RENEG_WINDOW: number;\r\n\r\n export interface Certificate {\r\n /**\r\n * Country code.\r\n */\r\n C: string;\r\n /**\r\n * Street.\r\n */\r\n ST: string;\r\n /**\r\n * Locality.\r\n */\r\n L: string;\r\n /**\r\n * Organization.\r\n */\r\n O: string;\r\n /**\r\n * Organizational unit.\r\n */\r\n OU: string;\r\n /**\r\n * Common name.\r\n */\r\n CN: string;\r\n }\r\n\r\n export interface CipherNameAndProtocol {\r\n /**\r\n * The cipher name.\r\n */\r\n name: string;\r\n /**\r\n * SSL/TLS protocol version.\r\n */\r\n version: string;\r\n }\r\n\r\n export class TLSSocket extends net.Socket {\r\n /**\r\n * Construct a new tls.TLSSocket object from an existing TCP socket.\r\n */\r\n constructor(socket:net.Socket, options?: {\r\n /**\r\n * An optional TLS context object from tls.createSecureContext()\r\n */\r\n secureContext?: SecureContext,\r\n /**\r\n * If true the TLS socket will be instantiated in server-mode.\r\n * Defaults to false.\r\n */\r\n isServer?: boolean,\r\n /**\r\n * An optional net.Server instance.\r\n */\r\n server?: net.Server,\r\n /**\r\n * If true the server will request a certificate from clients that\r\n * connect and attempt to verify that certificate. Defaults to\r\n * false.\r\n */\r\n requestCert?: boolean,\r\n /**\r\n * If true the server will reject any connection which is not\r\n * authorized with the list of supplied CAs. This option only has an\r\n * effect if requestCert is true. Defaults to false.\r\n */\r\n rejectUnauthorized?: boolean,\r\n /**\r\n * An array of strings or a Buffer naming possible NPN protocols.\r\n * (Protocols should be ordered by their priority.)\r\n */\r\n NPNProtocols?: string[] | Buffer,\r\n /**\r\n * An array of strings or a Buffer naming possible ALPN protocols.\r\n * (Protocols should be ordered by their priority.) When the server\r\n * receives both NPN and ALPN extensions from the client, ALPN takes\r\n * precedence over NPN and the server does not send an NPN extension\r\n * to the client.\r\n */\r\n ALPNProtocols?: string[] | Buffer,\r\n /**\r\n * SNICallback(servername, cb) A function that will be\r\n * called if the client supports SNI TLS extension. Two arguments\r\n * will be passed when called: servername and cb. SNICallback should\r\n * invoke cb(null, ctx), where ctx is a SecureContext instance.\r\n * (tls.createSecureContext(...) can be used to get a proper\r\n * SecureContext.) If SNICallback wasn't provided the default callback\r\n * with high-level API will be used (see below).\r\n */\r\n SNICallback?: Function,\r\n /**\r\n * An optional Buffer instance containing a TLS session.\r\n */\r\n session?: Buffer,\r\n /**\r\n * If true, specifies that the OCSP status request extension will be\r\n * added to the client hello and an 'OCSPResponse' event will be\r\n * emitted on the socket before establishing a secure communication\r\n */\r\n requestOCSP?: boolean\r\n });\r\n /**\r\n * Returns the bound address, the address family name and port of the underlying socket as reported by\r\n * the operating system.\r\n * @returns An object with three properties, e.g. { port: 12346, family: 'IPv4', address: '127.0.0.1' }.\r\n */\r\n address(): { port: number; family: string; address: string };\r\n /**\r\n * A boolean that is true if the peer certificate was signed by one of the specified CAs, otherwise false.\r\n */\r\n authorized: boolean;\r\n /**\r\n * The reason why the peer's certificate has not been verified.\r\n * This property becomes available only when tlsSocket.authorized === false.\r\n */\r\n authorizationError: Error;\r\n /**\r\n * Static boolean value, always true.\r\n * May be used to distinguish TLS sockets from regular ones.\r\n */\r\n encrypted: boolean;\r\n /**\r\n * Returns an object representing the cipher name and the SSL/TLS protocol version of the current connection.\r\n * @returns Returns an object representing the cipher name and the SSL/TLS protocol version of the current\r\n * connection.\r\n */\r\n getCipher(): CipherNameAndProtocol;\r\n /**\r\n * Returns an object representing the peer's certificate.\r\n * The returned object has some properties corresponding to the field of the certificate.\r\n * If detailed argument is true the full chain with issuer property will be returned,\r\n * if false only the top certificate without issuer property.\r\n * If the peer does not provide a certificate, it returns null or an empty object.\r\n * @param detailed - If true; the full chain with issuer property will be returned.\r\n * @returns An object representing the peer's certificate.\r\n */\r\n getPeerCertificate(detailed?: boolean): {\r\n subject: Certificate;\r\n issuerInfo: Certificate;\r\n issuer: Certificate;\r\n raw: any;\r\n valid_from: string;\r\n valid_to: string;\r\n fingerprint: string;\r\n serialNumber: string;\r\n };\r\n /**\r\n * Could be used to speed up handshake establishment when reconnecting to the server.\r\n * @returns ASN.1 encoded TLS session or undefined if none was negotiated.\r\n */\r\n getSession(): any;\r\n /**\r\n * NOTE: Works only with client TLS sockets.\r\n * Useful only for debugging, for session reuse provide session option to tls.connect().\r\n * @returns TLS session ticket or undefined if none was negotiated.\r\n */\r\n getTLSTicket(): any;\r\n /**\r\n * The string representation of the local IP address.\r\n */\r\n localAddress: string;\r\n /**\r\n * The numeric representation of the local port.\r\n */\r\n localPort: number;\r\n /**\r\n * The string representation of the remote IP address.\r\n * For example, '74.125.127.100' or '2001:4860:a005::68'.\r\n */\r\n remoteAddress: string;\r\n /**\r\n * The string representation of the remote IP family. 'IPv4' or 'IPv6'.\r\n */\r\n remoteFamily: string;\r\n /**\r\n * The numeric representation of the remote port. For example, 443.\r\n */\r\n remotePort: number;\r\n /**\r\n * Initiate TLS renegotiation process.\r\n *\r\n * NOTE: Can be used to request peer's certificate after the secure connection has been established.\r\n * ANOTHER NOTE: When running as the server, socket will be destroyed with an error after handshakeTimeout timeout.\r\n * @param options - The options may contain the following fields: rejectUnauthorized,\r\n * requestCert (See tls.createServer() for details).\r\n * @param callback - callback(err) will be executed with null as err, once the renegotiation\r\n * is successfully completed.\r\n */\r\n renegotiate(options: TlsOptions, callback: (err: Error) => any): any;\r\n /**\r\n * Set maximum TLS fragment size (default and maximum value is: 16384, minimum is: 512).\r\n * Smaller fragment size decreases buffering latency on the client: large fragments are buffered by\r\n * the TLS layer until the entire fragment is received and its integrity is verified;\r\n * large fragments can span multiple roundtrips, and their processing can be delayed due to packet\r\n * loss or reordering. However, smaller fragments add extra TLS framing bytes and CPU overhead,\r\n * which may decrease overall server throughput.\r\n * @param size - TLS fragment size (default and maximum value is: 16384, minimum is: 512).\r\n * @returns Returns true on success, false otherwise.\r\n */\r\n setMaxSendFragment(size: number): boolean;\r\n\r\n /**\r\n * events.EventEmitter\r\n * 1. OCSPResponse\r\n * 2. secureConnect\r\n **/\r\n addListener(event: string, listener: Function): this;\r\n addListener(event: \"OCSPResponse\", listener: (response: Buffer) => void): this;\r\n addListener(event: \"secureConnect\", listener: () => void): this;\r\n\r\n emit(event: string | symbol, ...args: any[]): boolean;\r\n emit(event: \"OCSPResponse\", response: Buffer): boolean;\r\n emit(event: \"secureConnect\"): boolean;\r\n\r\n on(event: string, listener: Function): this;\r\n on(event: \"OCSPResponse\", listener: (response: Buffer) => void): this;\r\n on(event: \"secureConnect\", listener: () => void): this;\r\n\r\n once(event: string, listener: Function): this;\r\n once(event: \"OCSPResponse\", listener: (response: Buffer) => void): this;\r\n once(event: \"secureConnect\", listener: () => void): this;\r\n\r\n prependListener(event: string, listener: Function): this;\r\n prependListener(event: \"OCSPResponse\", listener: (response: Buffer) => void): this;\r\n prependListener(event: \"secureConnect\", listener: () => void): this;\r\n\r\n prependOnceListener(event: string, listener: Function): this;\r\n prependOnceListener(event: \"OCSPResponse\", listener: (response: Buffer) => void): this;\r\n prependOnceListener(event: \"secureConnect\", listener: () => void): this;\r\n }\r\n\r\n export interface TlsOptions {\r\n host?: string;\r\n port?: number;\r\n pfx?: string | Buffer[];\r\n key?: string | string[] | Buffer | any[];\r\n passphrase?: string;\r\n cert?: string | string[] | Buffer | Buffer[];\r\n ca?: string | string[] | Buffer | Buffer[];\r\n crl?: string | string[];\r\n ciphers?: string;\r\n honorCipherOrder?: boolean;\r\n requestCert?: boolean;\r\n rejectUnauthorized?: boolean;\r\n NPNProtocols?: string[] | Buffer;\r\n SNICallback?: (servername: string, cb: (err: Error, ctx: SecureContext) => any) => any;\r\n ecdhCurve?: string;\r\n dhparam?: string | Buffer;\r\n handshakeTimeout?: number;\r\n ALPNProtocols?: string[] | Buffer;\r\n sessionTimeout?: number;\r\n ticketKeys?: any;\r\n sessionIdContext?: string;\r\n secureProtocol?: string;\r\n }\r\n\r\n export interface ConnectionOptions {\r\n host?: string;\r\n port?: number;\r\n socket?: net.Socket;\r\n pfx?: string | Buffer\r\n key?: string | string[] | Buffer | Buffer[];\r\n passphrase?: string;\r\n cert?: string | string[] | Buffer | Buffer[];\r\n ca?: string | Buffer | (string | Buffer)[];\r\n rejectUnauthorized?: boolean;\r\n NPNProtocols?: (string | Buffer)[];\r\n servername?: string;\r\n path?: string;\r\n ALPNProtocols?: (string | Buffer)[];\r\n checkServerIdentity?: (servername: string, cert: string | Buffer | (string | Buffer)[]) => any;\r\n secureProtocol?: string;\r\n secureContext?: Object;\r\n session?: Buffer;\r\n minDHSize?: number;\r\n }\r\n\r\n export interface Server extends net.Server {\r\n close(callback?: Function): Server;\r\n address(): { port: number; family: string; address: string; };\r\n addContext(hostName: string, credentials: {\r\n key: string;\r\n cert: string;\r\n ca: string;\r\n }): void;\r\n maxConnections: number;\r\n connections: number;\r\n\r\n /**\r\n * events.EventEmitter\r\n * 1. tlsClientError\r\n * 2. newSession\r\n * 3. OCSPRequest\r\n * 4. resumeSession\r\n * 5. secureConnection\r\n **/\r\n addListener(event: string, listener: Function): this;\r\n addListener(event: \"tlsClientError\", listener: (err: Error, tlsSocket: TLSSocket) => void): this;\r\n addListener(event: \"newSession\", listener: (sessionId: any, sessionData: any, callback: (err: Error, resp: Buffer) => void) => void): this;\r\n addListener(event: \"OCSPRequest\", listener: (certificate: Buffer, issuer: Buffer, callback: Function) => void): this;\r\n addListener(event: \"resumeSession\", listener: (sessionId: any, callback: (err: Error, sessionData: any) => void) => void): this;\r\n addListener(event: \"secureConnection\", listener: (tlsSocket: TLSSocket) => void): this;\r\n\r\n emit(event: string | symbol, ...args: any[]): boolean;\r\n emit(event: \"tlsClientError\", err: Error, tlsSocket: TLSSocket): boolean;\r\n emit(event: \"newSession\", sessionId: any, sessionData: any, callback: (err: Error, resp: Buffer) => void): boolean;\r\n emit(event: \"OCSPRequest\", certificate: Buffer, issuer: Buffer, callback: Function): boolean;\r\n emit(event: \"resumeSession\", sessionId: any, callback: (err: Error, sessionData: any) => void): boolean;\r\n emit(event: \"secureConnection\", tlsSocket: TLSSocket): boolean;\r\n\r\n on(event: string, listener: Function): this;\r\n on(event: \"tlsClientError\", listener: (err: Error, tlsSocket: TLSSocket) => void): this;\r\n on(event: \"newSession\", listener: (sessionId: any, sessionData: any, callback: (err: Error, resp: Buffer) => void) => void): this;\r\n on(event: \"OCSPRequest\", listener: (certificate: Buffer, issuer: Buffer, callback: Function) => void): this;\r\n on(event: \"resumeSession\", listener: (sessionId: any, callback: (err: Error, sessionData: any) => void) => void): this;\r\n on(event: \"secureConnection\", listener: (tlsSocket: TLSSocket) => void): this;\r\n\r\n once(event: string, listener: Function): this;\r\n once(event: \"tlsClientError\", listener: (err: Error, tlsSocket: TLSSocket) => void): this;\r\n once(event: \"newSession\", listener: (sessionId: any, sessionData: any, callback: (err: Error, resp: Buffer) => void) => void): this;\r\n once(event: \"OCSPRequest\", listener: (certificate: Buffer, issuer: Buffer, callback: Function) => void): this;\r\n once(event: \"resumeSession\", listener: (sessionId: any, callback: (err: Error, sessionData: any) => void) => void): this;\r\n once(event: \"secureConnection\", listener: (tlsSocket: TLSSocket) => void): this;\r\n\r\n prependListener(event: string, listener: Function): this;\r\n prependListener(event: \"tlsClientError\", listener: (err: Error, tlsSocket: TLSSocket) => void): this;\r\n prependListener(event: \"newSession\", listener: (sessionId: any, sessionData: any, callback: (err: Error, resp: Buffer) => void) => void): this;\r\n prependListener(event: \"OCSPRequest\", listener: (certificate: Buffer, issuer: Buffer, callback: Function) => void): this;\r\n prependListener(event: \"resumeSession\", listener: (sessionId: any, callback: (err: Error, sessionData: any) => void) => void): this;\r\n prependListener(event: \"secureConnection\", listener: (tlsSocket: TLSSocket) => void): this;\r\n\r\n prependOnceListener(event: string, listener: Function): this;\r\n prependOnceListener(event: \"tlsClientError\", listener: (err: Error, tlsSocket: TLSSocket) => void): this;\r\n prependOnceListener(event: \"newSession\", listener: (sessionId: any, sessionData: any, callback: (err: Error, resp: Buffer) => void) => void): this;\r\n prependOnceListener(event: \"OCSPRequest\", listener: (certificate: Buffer, issuer: Buffer, callback: Function) => void): this;\r\n prependOnceListener(event: \"resumeSession\", listener: (sessionId: any, callback: (err: Error, sessionData: any) => void) => void): this;\r\n prependOnceListener(event: \"secureConnection\", listener: (tlsSocket: TLSSocket) => void): this;\r\n }\r\n\r\n export interface ClearTextStream extends stream.Duplex {\r\n authorized: boolean;\r\n authorizationError: Error;\r\n getPeerCertificate(): any;\r\n getCipher: {\r\n name: string;\r\n version: string;\r\n };\r\n address: {\r\n port: number;\r\n family: string;\r\n address: string;\r\n };\r\n remoteAddress: string;\r\n remotePort: number;\r\n }\r\n\r\n export interface SecurePair {\r\n encrypted: any;\r\n cleartext: any;\r\n }\r\n\r\n export interface SecureContextOptions {\r\n pfx?: string | Buffer;\r\n key?: string | Buffer;\r\n passphrase?: string;\r\n cert?: string | Buffer;\r\n ca?: string | Buffer;\r\n crl?: string | string[]\r\n ciphers?: string;\r\n honorCipherOrder?: boolean;\r\n }\r\n\r\n export interface SecureContext {\r\n context: any;\r\n }\r\n\r\n export function createServer(options: TlsOptions, secureConnectionListener?: (socket: TLSSocket) => void): Server;\r\n export function connect(options: ConnectionOptions, secureConnectionListener?: () => void): TLSSocket;\r\n export function connect(port: number, host?: string, options?: ConnectionOptions, secureConnectListener?: () => void): TLSSocket;\r\n export function connect(port: number, options?: ConnectionOptions, secureConnectListener?: () => void): TLSSocket;\r\n export function createSecurePair(credentials?: crypto.Credentials, isServer?: boolean, requestCert?: boolean, rejectUnauthorized?: boolean): SecurePair;\r\n export function createSecureContext(details: SecureContextOptions): SecureContext;\r\n}\r\n\r\ndeclare module \"crypto\" {\r\n export interface Certificate {\r\n exportChallenge(spkac: string | Buffer): Buffer;\r\n exportPublicKey(spkac: string | Buffer): Buffer;\r\n verifySpkac(spkac: Buffer): boolean;\r\n }\r\n export var Certificate: {\r\n new (): Certificate;\r\n (): Certificate;\r\n }\r\n\r\n export var fips: boolean;\r\n\r\n export interface CredentialDetails {\r\n pfx: string;\r\n key: string;\r\n passphrase: string;\r\n cert: string;\r\n ca: string | string[];\r\n crl: string | string[];\r\n ciphers: string;\r\n }\r\n export interface Credentials { context?: any; }\r\n export function createCredentials(details: CredentialDetails): Credentials;\r\n export function createHash(algorithm: string): Hash;\r\n export function createHmac(algorithm: string, key: string | Buffer): Hmac;\r\n\r\n type Utf8AsciiLatin1Encoding = \"utf8\" | \"ascii\" | \"latin1\";\r\n type HexBase64Latin1Encoding = \"latin1\" | \"hex\" | \"base64\";\r\n type Utf8AsciiBinaryEncoding = \"utf8\" | \"ascii\" | \"binary\";\r\n type HexBase64BinaryEncoding = \"binary\" | \"base64\" | \"hex\";\r\n type ECDHKeyFormat = \"compressed\" | \"uncompressed\" | \"hybrid\";\r\n\r\n export interface Hash extends NodeJS.ReadWriteStream {\r\n update(data: string | Buffer): Hash;\r\n update(data: string | Buffer, input_encoding: Utf8AsciiLatin1Encoding): Hash;\r\n digest(): Buffer;\r\n digest(encoding: HexBase64Latin1Encoding): string;\r\n }\r\n export interface Hmac extends NodeJS.ReadWriteStream {\r\n update(data: string | Buffer): Hmac;\r\n update(data: string | Buffer, input_encoding: Utf8AsciiLatin1Encoding): Hmac;\r\n digest(): Buffer;\r\n digest(encoding: HexBase64Latin1Encoding): string;\r\n }\r\n export function createCipher(algorithm: string, password: any): Cipher;\r\n export function createCipheriv(algorithm: string, key: any, iv: any): Cipher;\r\n export interface Cipher extends NodeJS.ReadWriteStream {\r\n update(data: Buffer): Buffer;\r\n update(data: string, input_encoding: Utf8AsciiBinaryEncoding): Buffer;\r\n update(data: Buffer, input_encoding: any, output_encoding: HexBase64BinaryEncoding): string;\r\n update(data: string, input_encoding: Utf8AsciiBinaryEncoding, output_encoding: HexBase64BinaryEncoding): string;\r\n final(): Buffer;\r\n final(output_encoding: string): string;\r\n setAutoPadding(auto_padding?: boolean): void;\r\n getAuthTag(): Buffer;\r\n setAAD(buffer: Buffer): void;\r\n }\r\n export function createDecipher(algorithm: string, password: any): Decipher;\r\n export function createDecipheriv(algorithm: string, key: any, iv: any): Decipher;\r\n export interface Decipher extends NodeJS.ReadWriteStream {\r\n update(data: Buffer): Buffer;\r\n update(data: string, input_encoding: HexBase64BinaryEncoding): Buffer;\r\n update(data: Buffer, input_encoding: any, output_encoding: Utf8AsciiBinaryEncoding): string;\r\n update(data: string, input_encoding: HexBase64BinaryEncoding, output_encoding: Utf8AsciiBinaryEncoding): string;\r\n final(): Buffer;\r\n final(output_encoding: string): string;\r\n setAutoPadding(auto_padding?: boolean): void;\r\n setAuthTag(tag: Buffer): void;\r\n setAAD(buffer: Buffer): void;\r\n }\r\n export function createSign(algorithm: string): Signer;\r\n export interface Signer extends NodeJS.WritableStream {\r\n update(data: string | Buffer): Signer;\r\n update(data: string | Buffer, input_encoding: Utf8AsciiLatin1Encoding): Signer;\r\n sign(private_key: string | { key: string; passphrase: string }): Buffer;\r\n sign(private_key: string | { key: string; passphrase: string }, output_format: HexBase64Latin1Encoding): string;\r\n }\r\n export function createVerify(algorith: string): Verify;\r\n export interface Verify extends NodeJS.WritableStream {\r\n update(data: string | Buffer): Verify;\r\n update(data: string | Buffer, input_encoding: Utf8AsciiLatin1Encoding): Verify;\r\n verify(object: string, signature: Buffer): boolean;\r\n verify(object: string, signature: string, signature_format: HexBase64Latin1Encoding): boolean;\r\n }\r\n export function createDiffieHellman(prime_length: number, generator?: number): DiffieHellman;\r\n export function createDiffieHellman(prime: Buffer): DiffieHellman;\r\n export function createDiffieHellman(prime: string, prime_encoding: HexBase64Latin1Encoding): DiffieHellman;\r\n export function createDiffieHellman(prime: string, prime_encoding: HexBase64Latin1Encoding, generator: number | Buffer): DiffieHellman;\r\n export function createDiffieHellman(prime: string, prime_encoding: HexBase64Latin1Encoding, generator: string, generator_encoding: HexBase64Latin1Encoding): DiffieHellman;\r\n export interface DiffieHellman {\r\n generateKeys(): Buffer;\r\n generateKeys(encoding: HexBase64Latin1Encoding): string;\r\n computeSecret(other_public_key: Buffer): Buffer;\r\n computeSecret(other_public_key: string, input_encoding: HexBase64Latin1Encoding): Buffer;\r\n computeSecret(other_public_key: string, input_encoding: HexBase64Latin1Encoding, output_encoding: HexBase64Latin1Encoding): string;\r\n getPrime(): Buffer;\r\n getPrime(encoding: HexBase64Latin1Encoding): string;\r\n getGenerator(): Buffer;\r\n getGenerator(encoding: HexBase64Latin1Encoding): string;\r\n getPublicKey(): Buffer;\r\n getPublicKey(encoding: HexBase64Latin1Encoding): string;\r\n getPrivateKey(): Buffer;\r\n getPrivateKey(encoding: HexBase64Latin1Encoding): string;\r\n setPublicKey(public_key: Buffer): void;\r\n setPublicKey(public_key: string, encoding: string): void;\r\n setPrivateKey(private_key: Buffer): void;\r\n setPrivateKey(private_key: string, encoding: string): void;\r\n verifyError: number;\r\n }\r\n export function getDiffieHellman(group_name: string): DiffieHellman;\r\n export function pbkdf2(password: string | Buffer, salt: string | Buffer, iterations: number, keylen: number, digest: string, callback: (err: Error, derivedKey: Buffer) => any): void;\r\n export function pbkdf2Sync(password: string | Buffer, salt: string | Buffer, iterations: number, keylen: number, digest: string): Buffer;\r\n export function randomBytes(size: number): Buffer;\r\n export function randomBytes(size: number, callback: (err: Error, buf: Buffer) => void): void;\r\n export function pseudoRandomBytes(size: number): Buffer;\r\n export function pseudoRandomBytes(size: number, callback: (err: Error, buf: Buffer) => void): void;\r\n export interface RsaPublicKey {\r\n key: string;\r\n padding?: number;\r\n }\r\n export interface RsaPrivateKey {\r\n key: string;\r\n passphrase?: string,\r\n padding?: number;\r\n }\r\n export function publicEncrypt(public_key: string | RsaPublicKey, buffer: Buffer): Buffer\r\n export function privateDecrypt(private_key: string | RsaPrivateKey, buffer: Buffer): Buffer\r\n export function privateEncrypt(private_key: string | RsaPrivateKey, buffer: Buffer): Buffer\r\n export function publicDecrypt(public_key: string | RsaPublicKey, buffer: Buffer): Buffer\r\n export function getCiphers(): string[];\r\n export function getCurves(): string[];\r\n export function getHashes(): string[];\r\n export interface ECDH {\r\n generateKeys(): Buffer;\r\n generateKeys(encoding: HexBase64Latin1Encoding): string;\r\n generateKeys(encoding: HexBase64Latin1Encoding, format: ECDHKeyFormat): string;\r\n computeSecret(other_public_key: Buffer): Buffer;\r\n computeSecret(other_public_key: string, input_encoding: HexBase64Latin1Encoding): Buffer;\r\n computeSecret(other_public_key: string, input_encoding: HexBase64Latin1Encoding, output_encoding: HexBase64Latin1Encoding): string;\r\n getPrivateKey(): Buffer;\r\n getPrivateKey(encoding: HexBase64Latin1Encoding): string;\r\n getPublicKey(): Buffer;\r\n getPublicKey(encoding: HexBase64Latin1Encoding): string;\r\n getPublicKey(encoding: HexBase64Latin1Encoding, format: ECDHKeyFormat): string;\r\n setPrivateKey(private_key: Buffer): void;\r\n setPrivateKey(private_key: string, encoding: HexBase64Latin1Encoding): void;\r\n }\r\n export function createECDH(curve_name: string): ECDH;\r\n export function timingSafeEqual(a: Buffer, b: Buffer): boolean;\r\n export var DEFAULT_ENCODING: string;\r\n}\r\n\r\ndeclare module \"stream\" {\r\n import * as events from \"events\";\r\n\r\n class internal extends events.EventEmitter {\r\n pipe(destination: T, options?: { end?: boolean; }): T;\r\n }\r\n\r\n namespace internal {\r\n\r\n export class Stream extends internal { }\r\n\r\n export interface ReadableOptions {\r\n highWaterMark?: number;\r\n encoding?: string;\r\n objectMode?: boolean;\r\n read?: (this: Readable, size?: number) => any;\r\n }\r\n\r\n export class Readable extends Stream implements NodeJS.ReadableStream {\r\n readable: boolean;\r\n constructor(opts?: ReadableOptions);\r\n _read(size: number): void;\r\n read(size?: number): any;\r\n setEncoding(encoding: string): void;\r\n pause(): this;\r\n resume(): this;\r\n isPaused(): boolean;\r\n pipe(destination: T, options?: { end?: boolean; }): T;\r\n unpipe(destination?: T): void;\r\n unshift(chunk: any): void;\r\n wrap(oldStream: NodeJS.ReadableStream): Readable;\r\n push(chunk: any, encoding?: string): boolean;\r\n\r\n /**\r\n * Event emitter\r\n * The defined events on documents including:\r\n * 1. close\r\n * 2. data\r\n * 3. end\r\n * 4. readable\r\n * 5. error\r\n **/\r\n addListener(event: string, listener: Function): this;\r\n addListener(event: string, listener: Function): this;\r\n addListener(event: \"close\", listener: () => void): this;\r\n addListener(event: \"data\", listener: (chunk: Buffer | string) => void): this;\r\n addListener(event: \"end\", listener: () => void): this;\r\n addListener(event: \"readable\", listener: () => void): this;\r\n addListener(event: \"error\", listener: (err: Error) => void): this;\r\n\r\n emit(event: string | symbol, ...args: any[]): boolean;\r\n emit(event: \"close\"): boolean;\r\n emit(event: \"data\", chunk: Buffer | string): boolean;\r\n emit(event: \"end\"): boolean;\r\n emit(event: \"readable\"): boolean;\r\n emit(event: \"error\", err: Error): boolean;\r\n\r\n on(event: string, listener: Function): this;\r\n on(event: \"close\", listener: () => void): this;\r\n on(event: \"data\", listener: (chunk: Buffer | string) => void): this;\r\n on(event: \"end\", listener: () => void): this;\r\n on(event: \"readable\", listener: () => void): this;\r\n on(event: \"error\", listener: (err: Error) => void): this;\r\n\r\n once(event: string, listener: Function): this;\r\n once(event: \"close\", listener: () => void): this;\r\n once(event: \"data\", listener: (chunk: Buffer | string) => void): this;\r\n once(event: \"end\", listener: () => void): this;\r\n once(event: \"readable\", listener: () => void): this;\r\n once(event: \"error\", listener: (err: Error) => void): this;\r\n\r\n prependListener(event: string, listener: Function): this;\r\n prependListener(event: \"close\", listener: () => void): this;\r\n prependListener(event: \"data\", listener: (chunk: Buffer | string) => void): this;\r\n prependListener(event: \"end\", listener: () => void): this;\r\n prependListener(event: \"readable\", listener: () => void): this;\r\n prependListener(event: \"error\", listener: (err: Error) => void): this;\r\n\r\n prependOnceListener(event: string, listener: Function): this;\r\n prependOnceListener(event: \"close\", listener: () => void): this;\r\n prependOnceListener(event: \"data\", listener: (chunk: Buffer | string) => void): this;\r\n prependOnceListener(event: \"end\", listener: () => void): this;\r\n prependOnceListener(event: \"readable\", listener: () => void): this;\r\n prependOnceListener(event: \"error\", listener: (err: Error) => void): this;\r\n\r\n removeListener(event: string, listener: Function): this;\r\n removeListener(event: \"close\", listener: () => void): this;\r\n removeListener(event: \"data\", listener: (chunk: Buffer | string) => void): this;\r\n removeListener(event: \"end\", listener: () => void): this;\r\n removeListener(event: \"readable\", listener: () => void): this;\r\n removeListener(event: \"error\", listener: (err: Error) => void): this;\r\n }\r\n\r\n export interface WritableOptions {\r\n highWaterMark?: number;\r\n decodeStrings?: boolean;\r\n objectMode?: boolean;\r\n write?: (chunk: string | Buffer, encoding: string, callback: Function) => any;\r\n writev?: (chunks: { chunk: string | Buffer, encoding: string }[], callback: Function) => any;\r\n }\r\n\r\n export class Writable extends Stream implements NodeJS.WritableStream {\r\n writable: boolean;\r\n constructor(opts?: WritableOptions);\r\n _write(chunk: any, encoding: string, callback: Function): void;\r\n write(chunk: any, cb?: Function): boolean;\r\n write(chunk: any, encoding?: string, cb?: Function): boolean;\r\n setDefaultEncoding(encoding: string): this;\r\n end(): void;\r\n end(chunk: any, cb?: Function): void;\r\n end(chunk: any, encoding?: string, cb?: Function): void;\r\n\r\n /**\r\n * Event emitter\r\n * The defined events on documents including:\r\n * 1. close\r\n * 2. drain\r\n * 3. error\r\n * 4. finish\r\n * 5. pipe\r\n * 6. unpipe\r\n **/\r\n addListener(event: string, listener: Function): this;\r\n addListener(event: \"close\", listener: () => void): this;\r\n addListener(event: \"drain\", listener: () => void): this;\r\n addListener(event: \"error\", listener: (err: Error) => void): this;\r\n addListener(event: \"finish\", listener: () => void): this;\r\n addListener(event: \"pipe\", listener: (src: Readable) => void): this;\r\n addListener(event: \"unpipe\", listener: (src: Readable) => void): this;\r\n\r\n emit(event: string | symbol, ...args: any[]): boolean;\r\n emit(event: \"close\"): boolean;\r\n emit(event: \"drain\", chunk: Buffer | string): boolean;\r\n emit(event: \"error\", err: Error): boolean;\r\n emit(event: \"finish\"): boolean;\r\n emit(event: \"pipe\", src: Readable): boolean;\r\n emit(event: \"unpipe\", src: Readable): boolean;\r\n\r\n on(event: string, listener: Function): this;\r\n on(event: \"close\", listener: () => void): this;\r\n on(event: \"drain\", listener: () => void): this;\r\n on(event: \"error\", listener: (err: Error) => void): this;\r\n on(event: \"finish\", listener: () => void): this;\r\n on(event: \"pipe\", listener: (src: Readable) => void): this;\r\n on(event: \"unpipe\", listener: (src: Readable) => void): this;\r\n\r\n once(event: string, listener: Function): this;\r\n once(event: \"close\", listener: () => void): this;\r\n once(event: \"drain\", listener: () => void): this;\r\n once(event: \"error\", listener: (err: Error) => void): this;\r\n once(event: \"finish\", listener: () => void): this;\r\n once(event: \"pipe\", listener: (src: Readable) => void): this;\r\n once(event: \"unpipe\", listener: (src: Readable) => void): this;\r\n\r\n prependListener(event: string, listener: Function): this;\r\n prependListener(event: \"close\", listener: () => void): this;\r\n prependListener(event: \"drain\", listener: () => void): this;\r\n prependListener(event: \"error\", listener: (err: Error) => void): this;\r\n prependListener(event: \"finish\", listener: () => void): this;\r\n prependListener(event: \"pipe\", listener: (src: Readable) => void): this;\r\n prependListener(event: \"unpipe\", listener: (src: Readable) => void): this;\r\n\r\n prependOnceListener(event: string, listener: Function): this;\r\n prependOnceListener(event: \"close\", listener: () => void): this;\r\n prependOnceListener(event: \"drain\", listener: () => void): this;\r\n prependOnceListener(event: \"error\", listener: (err: Error) => void): this;\r\n prependOnceListener(event: \"finish\", listener: () => void): this;\r\n prependOnceListener(event: \"pipe\", listener: (src: Readable) => void): this;\r\n prependOnceListener(event: \"unpipe\", listener: (src: Readable) => void): this;\r\n\r\n removeListener(event: string, listener: Function): this;\r\n removeListener(event: \"close\", listener: () => void): this;\r\n removeListener(event: \"drain\", listener: () => void): this;\r\n removeListener(event: \"error\", listener: (err: Error) => void): this;\r\n removeListener(event: \"finish\", listener: () => void): this;\r\n removeListener(event: \"pipe\", listener: (src: Readable) => void): this;\r\n removeListener(event: \"unpipe\", listener: (src: Readable) => void): this;\r\n }\r\n\r\n export interface DuplexOptions extends ReadableOptions, WritableOptions {\r\n allowHalfOpen?: boolean;\r\n readableObjectMode?: boolean;\r\n writableObjectMode?: boolean;\r\n }\r\n\r\n // Note: Duplex extends both Readable and Writable.\r\n export class Duplex extends Readable implements Writable {\r\n writable: boolean;\r\n constructor(opts?: DuplexOptions);\r\n _write(chunk: any, encoding: string, callback: Function): void;\r\n write(chunk: any, cb?: Function): boolean;\r\n write(chunk: any, encoding?: string, cb?: Function): boolean;\r\n setDefaultEncoding(encoding: string): this;\r\n end(): void;\r\n end(chunk: any, cb?: Function): void;\r\n end(chunk: any, encoding?: string, cb?: Function): void;\r\n }\r\n\r\n export interface TransformOptions extends DuplexOptions {\r\n transform?: (chunk: string | Buffer, encoding: string, callback: Function) => any;\r\n flush?: (callback: Function) => any;\r\n }\r\n\r\n export class Transform extends Duplex {\r\n constructor(opts?: TransformOptions);\r\n _transform(chunk: any, encoding: string, callback: Function): void;\r\n }\r\n\r\n export class PassThrough extends Transform { }\r\n }\r\n\r\n export = internal;\r\n}\r\n\r\ndeclare module \"util\" {\r\n export interface InspectOptions extends NodeJS.InspectOptions {}\r\n export function format(format: any, ...param: any[]): string;\r\n export function debug(string: string): void;\r\n export function error(...param: any[]): void;\r\n export function puts(...param: any[]): void;\r\n export function print(...param: any[]): void;\r\n export function log(string: string): void;\r\n export function inspect(object: any, showHidden?: boolean, depth?: number | null, color?: boolean): string;\r\n export function inspect(object: any, options: InspectOptions): string;\r\n export function isArray(object: any): boolean;\r\n export function isRegExp(object: any): boolean;\r\n export function isDate(object: any): boolean;\r\n export function isError(object: any): boolean;\r\n export function inherits(constructor: any, superConstructor: any): void;\r\n export function debuglog(key: string): (msg: string, ...param: any[]) => void;\r\n export function isBoolean(object: any): boolean;\r\n export function isBuffer(object: any): boolean;\r\n export function isFunction(object: any): boolean;\r\n export function isNull(object: any): boolean;\r\n export function isNullOrUndefined(object: any): boolean;\r\n export function isNumber(object: any): boolean;\r\n export function isObject(object: any): boolean;\r\n export function isPrimitive(object: any): boolean;\r\n export function isString(object: any): boolean;\r\n export function isSymbol(object: any): boolean;\r\n export function isUndefined(object: any): boolean;\r\n export function deprecate(fn: T, message: string): T;\r\n}\r\n\r\ndeclare module \"assert\" {\r\n function internal(value: any, message?: string): void;\r\n namespace internal {\r\n export class AssertionError implements Error {\r\n name: string;\r\n message: string;\r\n actual: any;\r\n expected: any;\r\n operator: string;\r\n generatedMessage: boolean;\r\n\r\n constructor(options?: {\r\n message?: string; actual?: any; expected?: any;\r\n operator?: string; stackStartFunction?: Function\r\n });\r\n }\r\n\r\n export function fail(actual: any, expected: any, message?: string, operator?: string): void;\r\n export function ok(value: any, message?: string): void;\r\n export function equal(actual: any, expected: any, message?: string): void;\r\n export function notEqual(actual: any, expected: any, message?: string): void;\r\n export function deepEqual(actual: any, expected: any, message?: string): void;\r\n export function notDeepEqual(acutal: any, expected: any, message?: string): void;\r\n export function strictEqual(actual: any, expected: any, message?: string): void;\r\n export function notStrictEqual(actual: any, expected: any, message?: string): void;\r\n export function deepStrictEqual(actual: any, expected: any, message?: string): void;\r\n export function notDeepStrictEqual(actual: any, expected: any, message?: string): void;\r\n\r\n export function throws(block: Function, message?: string): void;\r\n export function throws(block: Function, error: Function, message?: string): void;\r\n export function throws(block: Function, error: RegExp, message?: string): void;\r\n export function throws(block: Function, error: (err: any) => boolean, message?: string): void;\r\n\r\n export function doesNotThrow(block: Function, message?: string): void;\r\n export function doesNotThrow(block: Function, error: Function, message?: string): void;\r\n export function doesNotThrow(block: Function, error: RegExp, message?: string): void;\r\n export function doesNotThrow(block: Function, error: (err: any) => boolean, message?: string): void;\r\n\r\n export function ifError(value: any): void;\r\n }\r\n\r\n export = internal;\r\n}\r\n\r\ndeclare module \"tty\" {\r\n import * as net from \"net\";\r\n\r\n export function isatty(fd: number): boolean;\r\n export interface ReadStream extends net.Socket {\r\n isRaw: boolean;\r\n setRawMode(mode: boolean): void;\r\n isTTY: boolean;\r\n }\r\n export interface WriteStream extends net.Socket {\r\n columns: number;\r\n rows: number;\r\n isTTY: boolean;\r\n }\r\n}\r\n\r\ndeclare module \"domain\" {\r\n import * as events from \"events\";\r\n\r\n export class Domain extends events.EventEmitter implements NodeJS.Domain {\r\n run(fn: Function): void;\r\n add(emitter: events.EventEmitter): void;\r\n remove(emitter: events.EventEmitter): void;\r\n bind(cb: (err: Error, data: any) => any): any;\r\n intercept(cb: (data: any) => any): any;\r\n dispose(): void;\r\n members: any[];\r\n enter(): void;\r\n exit(): void;\r\n }\r\n\r\n export function create(): Domain;\r\n}\r\n\r\ndeclare module \"constants\" {\r\n export var E2BIG: number;\r\n export var EACCES: number;\r\n export var EADDRINUSE: number;\r\n export var EADDRNOTAVAIL: number;\r\n export var EAFNOSUPPORT: number;\r\n export var EAGAIN: number;\r\n export var EALREADY: number;\r\n export var EBADF: number;\r\n export var EBADMSG: number;\r\n export var EBUSY: number;\r\n export var ECANCELED: number;\r\n export var ECHILD: number;\r\n export var ECONNABORTED: number;\r\n export var ECONNREFUSED: number;\r\n export var ECONNRESET: number;\r\n export var EDEADLK: number;\r\n export var EDESTADDRREQ: number;\r\n export var EDOM: number;\r\n export var EEXIST: number;\r\n export var EFAULT: number;\r\n export var EFBIG: number;\r\n export var EHOSTUNREACH: number;\r\n export var EIDRM: number;\r\n export var EILSEQ: number;\r\n export var EINPROGRESS: number;\r\n export var EINTR: number;\r\n export var EINVAL: number;\r\n export var EIO: number;\r\n export var EISCONN: number;\r\n export var EISDIR: number;\r\n export var ELOOP: number;\r\n export var EMFILE: number;\r\n export var EMLINK: number;\r\n export var EMSGSIZE: number;\r\n export var ENAMETOOLONG: number;\r\n export var ENETDOWN: number;\r\n export var ENETRESET: number;\r\n export var ENETUNREACH: number;\r\n export var ENFILE: number;\r\n export var ENOBUFS: number;\r\n export var ENODATA: number;\r\n export var ENODEV: number;\r\n export var ENOENT: number;\r\n export var ENOEXEC: number;\r\n export var ENOLCK: number;\r\n export var ENOLINK: number;\r\n export var ENOMEM: number;\r\n export var ENOMSG: number;\r\n export var ENOPROTOOPT: number;\r\n export var ENOSPC: number;\r\n export var ENOSR: number;\r\n export var ENOSTR: number;\r\n export var ENOSYS: number;\r\n export var ENOTCONN: number;\r\n export var ENOTDIR: number;\r\n export var ENOTEMPTY: number;\r\n export var ENOTSOCK: number;\r\n export var ENOTSUP: number;\r\n export var ENOTTY: number;\r\n export var ENXIO: number;\r\n export var EOPNOTSUPP: number;\r\n export var EOVERFLOW: number;\r\n export var EPERM: number;\r\n export var EPIPE: number;\r\n export var EPROTO: number;\r\n export var EPROTONOSUPPORT: number;\r\n export var EPROTOTYPE: number;\r\n export var ERANGE: number;\r\n export var EROFS: number;\r\n export var ESPIPE: number;\r\n export var ESRCH: number;\r\n export var ETIME: number;\r\n export var ETIMEDOUT: number;\r\n export var ETXTBSY: number;\r\n export var EWOULDBLOCK: number;\r\n export var EXDEV: number;\r\n export var WSAEINTR: number;\r\n export var WSAEBADF: number;\r\n export var WSAEACCES: number;\r\n export var WSAEFAULT: number;\r\n export var WSAEINVAL: number;\r\n export var WSAEMFILE: number;\r\n export var WSAEWOULDBLOCK: number;\r\n export var WSAEINPROGRESS: number;\r\n export var WSAEALREADY: number;\r\n export var WSAENOTSOCK: number;\r\n export var WSAEDESTADDRREQ: number;\r\n export var WSAEMSGSIZE: number;\r\n export var WSAEPROTOTYPE: number;\r\n export var WSAENOPROTOOPT: number;\r\n export var WSAEPROTONOSUPPORT: number;\r\n export var WSAESOCKTNOSUPPORT: number;\r\n export var WSAEOPNOTSUPP: number;\r\n export var WSAEPFNOSUPPORT: number;\r\n export var WSAEAFNOSUPPORT: number;\r\n export var WSAEADDRINUSE: number;\r\n export var WSAEADDRNOTAVAIL: number;\r\n export var WSAENETDOWN: number;\r\n export var WSAENETUNREACH: number;\r\n export var WSAENETRESET: number;\r\n export var WSAECONNABORTED: number;\r\n export var WSAECONNRESET: number;\r\n export var WSAENOBUFS: number;\r\n export var WSAEISCONN: number;\r\n export var WSAENOTCONN: number;\r\n export var WSAESHUTDOWN: number;\r\n export var WSAETOOMANYREFS: number;\r\n export var WSAETIMEDOUT: number;\r\n export var WSAECONNREFUSED: number;\r\n export var WSAELOOP: number;\r\n export var WSAENAMETOOLONG: number;\r\n export var WSAEHOSTDOWN: number;\r\n export var WSAEHOSTUNREACH: number;\r\n export var WSAENOTEMPTY: number;\r\n export var WSAEPROCLIM: number;\r\n export var WSAEUSERS: number;\r\n export var WSAEDQUOT: number;\r\n export var WSAESTALE: number;\r\n export var WSAEREMOTE: number;\r\n export var WSASYSNOTREADY: number;\r\n export var WSAVERNOTSUPPORTED: number;\r\n export var WSANOTINITIALISED: number;\r\n export var WSAEDISCON: number;\r\n export var WSAENOMORE: number;\r\n export var WSAECANCELLED: number;\r\n export var WSAEINVALIDPROCTABLE: number;\r\n export var WSAEINVALIDPROVIDER: number;\r\n export var WSAEPROVIDERFAILEDINIT: number;\r\n export var WSASYSCALLFAILURE: number;\r\n export var WSASERVICE_NOT_FOUND: number;\r\n export var WSATYPE_NOT_FOUND: number;\r\n export var WSA_E_NO_MORE: number;\r\n export var WSA_E_CANCELLED: number;\r\n export var WSAEREFUSED: number;\r\n export var SIGHUP: number;\r\n export var SIGINT: number;\r\n export var SIGILL: number;\r\n export var SIGABRT: number;\r\n export var SIGFPE: number;\r\n export var SIGKILL: number;\r\n export var SIGSEGV: number;\r\n export var SIGTERM: number;\r\n export var SIGBREAK: number;\r\n export var SIGWINCH: number;\r\n export var SSL_OP_ALL: number;\r\n export var SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION: number;\r\n export var SSL_OP_CIPHER_SERVER_PREFERENCE: number;\r\n export var SSL_OP_CISCO_ANYCONNECT: number;\r\n export var SSL_OP_COOKIE_EXCHANGE: number;\r\n export var SSL_OP_CRYPTOPRO_TLSEXT_BUG: number;\r\n export var SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS: number;\r\n export var SSL_OP_EPHEMERAL_RSA: number;\r\n export var SSL_OP_LEGACY_SERVER_CONNECT: number;\r\n export var SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER: number;\r\n export var SSL_OP_MICROSOFT_SESS_ID_BUG: number;\r\n export var SSL_OP_MSIE_SSLV2_RSA_PADDING: number;\r\n export var SSL_OP_NETSCAPE_CA_DN_BUG: number;\r\n export var SSL_OP_NETSCAPE_CHALLENGE_BUG: number;\r\n export var SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG: number;\r\n export var SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG: number;\r\n export var SSL_OP_NO_COMPRESSION: number;\r\n export var SSL_OP_NO_QUERY_MTU: number;\r\n export var SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION: number;\r\n export var SSL_OP_NO_SSLv2: number;\r\n export var SSL_OP_NO_SSLv3: number;\r\n export var SSL_OP_NO_TICKET: number;\r\n export var SSL_OP_NO_TLSv1: number;\r\n export var SSL_OP_NO_TLSv1_1: number;\r\n export var SSL_OP_NO_TLSv1_2: number;\r\n export var SSL_OP_PKCS1_CHECK_1: number;\r\n export var SSL_OP_PKCS1_CHECK_2: number;\r\n export var SSL_OP_SINGLE_DH_USE: number;\r\n export var SSL_OP_SINGLE_ECDH_USE: number;\r\n export var SSL_OP_SSLEAY_080_CLIENT_DH_BUG: number;\r\n export var SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG: number;\r\n export var SSL_OP_TLS_BLOCK_PADDING_BUG: number;\r\n export var SSL_OP_TLS_D5_BUG: number;\r\n export var SSL_OP_TLS_ROLLBACK_BUG: number;\r\n export var ENGINE_METHOD_DSA: number;\r\n export var ENGINE_METHOD_DH: number;\r\n export var ENGINE_METHOD_RAND: number;\r\n export var ENGINE_METHOD_ECDH: number;\r\n export var ENGINE_METHOD_ECDSA: number;\r\n export var ENGINE_METHOD_CIPHERS: number;\r\n export var ENGINE_METHOD_DIGESTS: number;\r\n export var ENGINE_METHOD_STORE: number;\r\n export var ENGINE_METHOD_PKEY_METHS: number;\r\n export var ENGINE_METHOD_PKEY_ASN1_METHS: number;\r\n export var ENGINE_METHOD_ALL: number;\r\n export var ENGINE_METHOD_NONE: number;\r\n export var DH_CHECK_P_NOT_SAFE_PRIME: number;\r\n export var DH_CHECK_P_NOT_PRIME: number;\r\n export var DH_UNABLE_TO_CHECK_GENERATOR: number;\r\n export var DH_NOT_SUITABLE_GENERATOR: number;\r\n export var NPN_ENABLED: number;\r\n export var RSA_PKCS1_PADDING: number;\r\n export var RSA_SSLV23_PADDING: number;\r\n export var RSA_NO_PADDING: number;\r\n export var RSA_PKCS1_OAEP_PADDING: number;\r\n export var RSA_X931_PADDING: number;\r\n export var RSA_PKCS1_PSS_PADDING: number;\r\n export var POINT_CONVERSION_COMPRESSED: number;\r\n export var POINT_CONVERSION_UNCOMPRESSED: number;\r\n export var POINT_CONVERSION_HYBRID: number;\r\n export var O_RDONLY: number;\r\n export var O_WRONLY: number;\r\n export var O_RDWR: number;\r\n export var S_IFMT: number;\r\n export var S_IFREG: number;\r\n export var S_IFDIR: number;\r\n export var S_IFCHR: number;\r\n export var S_IFBLK: number;\r\n export var S_IFIFO: number;\r\n export var S_IFSOCK: number;\r\n export var S_IRWXU: number;\r\n export var S_IRUSR: number;\r\n export var S_IWUSR: number;\r\n export var S_IXUSR: number;\r\n export var S_IRWXG: number;\r\n export var S_IRGRP: number;\r\n export var S_IWGRP: number;\r\n export var S_IXGRP: number;\r\n export var S_IRWXO: number;\r\n export var S_IROTH: number;\r\n export var S_IWOTH: number;\r\n export var S_IXOTH: number;\r\n export var S_IFLNK: number;\r\n export var O_CREAT: number;\r\n export var O_EXCL: number;\r\n export var O_NOCTTY: number;\r\n export var O_DIRECTORY: number;\r\n export var O_NOATIME: number;\r\n export var O_NOFOLLOW: number;\r\n export var O_SYNC: number;\r\n export var O_SYMLINK: number;\r\n export var O_DIRECT: number;\r\n export var O_NONBLOCK: number;\r\n export var O_TRUNC: number;\r\n export var O_APPEND: number;\r\n export var F_OK: number;\r\n export var R_OK: number;\r\n export var W_OK: number;\r\n export var X_OK: number;\r\n export var UV_UDP_REUSEADDR: number;\r\n export var SIGQUIT: number;\r\n export var SIGTRAP: number;\r\n export var SIGIOT: number;\r\n export var SIGBUS: number;\r\n export var SIGUSR1: number;\r\n export var SIGUSR2: number;\r\n export var SIGPIPE: number;\r\n export var SIGALRM: number;\r\n export var SIGCHLD: number;\r\n export var SIGSTKFLT: number;\r\n export var SIGCONT: number;\r\n export var SIGSTOP: number;\r\n export var SIGTSTP: number;\r\n export var SIGTTIN: number;\r\n export var SIGTTOU: number;\r\n export var SIGURG: number;\r\n export var SIGXCPU: number;\r\n export var SIGXFSZ: number;\r\n export var SIGVTALRM: number;\r\n export var SIGPROF: number;\r\n export var SIGIO: number;\r\n export var SIGPOLL: number;\r\n export var SIGPWR: number;\r\n export var SIGSYS: number;\r\n export var SIGUNUSED: number;\r\n export var defaultCoreCipherList: string;\r\n export var defaultCipherList: string;\r\n export var ENGINE_METHOD_RSA: number;\r\n export var ALPN_ENABLED: number;\r\n}\r\n\r\ndeclare module \"process\" {\r\n export = process;\r\n}\r\n\r\ndeclare module \"v8\" {\r\n interface HeapSpaceInfo {\r\n space_name: string;\r\n space_size: number;\r\n space_used_size: number;\r\n space_available_size: number;\r\n physical_space_size: number;\r\n }\r\n\r\n const enum DoesZapCodeSpaceFlag {\r\n Disabled = 0,\r\n Enabled = 1\r\n }\r\n\r\n interface HeapInfo {\r\n total_heap_size: number;\r\n total_heap_size_executable: number;\r\n total_physical_size: number;\r\n total_available_size: number;\r\n used_heap_size: number;\r\n heap_size_limit: number;\r\n malloced_memory: number;\r\n peak_malloced_memory: number;\r\n does_zap_garbage: DoesZapCodeSpaceFlag;\r\n }\r\n\r\n export function getHeapStatistics(): HeapInfo;\r\n export function getHeapSpaceStatistics(): HeapSpaceInfo[];\r\n export function setFlagsFromString(flags: string): void;\r\n}\r\n\r\ndeclare module \"timers\" {\r\n export function setTimeout(callback: (...args: any[]) => void, ms: number, ...args: any[]): NodeJS.Timer;\r\n export function clearTimeout(timeoutId: NodeJS.Timer): void;\r\n export function setInterval(callback: (...args: any[]) => void, ms: number, ...args: any[]): NodeJS.Timer;\r\n export function clearInterval(intervalId: NodeJS.Timer): void;\r\n export function setImmediate(callback: (...args: any[]) => void, ...args: any[]): any;\r\n export function clearImmediate(immediateId: any): void;\r\n}\r\n\r\ndeclare module \"console\" {\r\n export = console;\r\n}\r\n\r\n/**\r\n * _debugger module is not documented.\r\n * Source code is at https://github.com/nodejs/node/blob/master/lib/_debugger.js\r\n */\r\ndeclare module \"_debugger\" {\r\n export interface Packet {\r\n raw: string;\r\n headers: string[];\r\n body: Message;\r\n }\r\n\r\n export interface Message {\r\n seq: number;\r\n type: string;\r\n }\r\n\r\n export interface RequestInfo {\r\n command: string;\r\n arguments: any;\r\n }\r\n\r\n export interface Request extends Message, RequestInfo {\r\n }\r\n\r\n export interface Event extends Message {\r\n event: string;\r\n body?: any;\r\n }\r\n\r\n export interface Response extends Message {\r\n request_seq: number;\r\n success: boolean;\r\n /** Contains error message if success === false. */\r\n message?: string;\r\n /** Contains message body if success === true. */\r\n body?: any;\r\n }\r\n\r\n export interface BreakpointMessageBody {\r\n type: string;\r\n target: number;\r\n line: number;\r\n }\r\n\r\n export class Protocol {\r\n res: Packet;\r\n state: string;\r\n execute(data: string): void;\r\n serialize(rq: Request): string;\r\n onResponse: (pkt: Packet) => void;\r\n }\r\n\r\n export var NO_FRAME: number;\r\n export var port: number;\r\n\r\n export interface ScriptDesc {\r\n name: string;\r\n id: number;\r\n isNative?: boolean;\r\n handle?: number;\r\n type: string;\r\n lineOffset?: number;\r\n columnOffset?: number;\r\n lineCount?: number;\r\n }\r\n\r\n export interface Breakpoint {\r\n id: number;\r\n scriptId: number;\r\n script: ScriptDesc;\r\n line: number;\r\n condition?: string;\r\n scriptReq?: string;\r\n }\r\n\r\n export interface RequestHandler {\r\n (err: boolean, body: Message, res: Packet): void;\r\n request_seq?: number;\r\n }\r\n\r\n export interface ResponseBodyHandler {\r\n (err: boolean, body?: any): void;\r\n request_seq?: number;\r\n }\r\n\r\n export interface ExceptionInfo {\r\n text: string;\r\n }\r\n\r\n export interface BreakResponse {\r\n script?: ScriptDesc;\r\n exception?: ExceptionInfo;\r\n sourceLine: number;\r\n sourceLineText: string;\r\n sourceColumn: number;\r\n }\r\n\r\n export function SourceInfo(body: BreakResponse): string;\r\n\r\n export interface ClientInstance extends NodeJS.EventEmitter {\r\n protocol: Protocol;\r\n scripts: ScriptDesc[];\r\n handles: ScriptDesc[];\r\n breakpoints: Breakpoint[];\r\n currentSourceLine: number;\r\n currentSourceColumn: number;\r\n currentSourceLineText: string;\r\n currentFrame: number;\r\n currentScript: string;\r\n\r\n connect(port: number, host: string): void;\r\n req(req: any, cb: RequestHandler): void;\r\n reqFrameEval(code: string, frame: number, cb: RequestHandler): void;\r\n mirrorObject(obj: any, depth: number, cb: ResponseBodyHandler): void;\r\n setBreakpoint(rq: BreakpointMessageBody, cb: RequestHandler): void;\r\n clearBreakpoint(rq: Request, cb: RequestHandler): void;\r\n listbreakpoints(cb: RequestHandler): void;\r\n reqSource(from: number, to: number, cb: RequestHandler): void;\r\n reqScripts(cb: any): void;\r\n reqContinue(cb: RequestHandler): void;\r\n }\r\n\r\n export var Client : {\r\n new (): ClientInstance\r\n }\r\n}\r\n", + "type": 2 + } + ], + "files": [ + { + "name": "./src/index.html", + "text": "\n\n\n\tlive-editor-app\n\t\n\t\n\n \n\n\n", + "type": 6 + } + ], + "index": "./src/index.html", + "package": { + "name": "live-editor-app", + "version": "1.0.0", + "dependencies": { + "@dojo/core": "~0.2.1", + "@dojo/has": "~0.1.1", + "@dojo/routing": "~0.2.0", + "@dojo/shim": "~0.2.3", + "@dojo/stores": "~0.1.0", + "@dojo/widget-core": "~0.3.0", + "@dojo/widgets": "~0.2.2", + "@dojo/i18n": "~0.2.0" + }, + "devDependencies": { + "@dojo/cli-export-project": "~0.1.0", + "@dojo/interfaces": "~0.1.0", + "@dojo/loader": "~0.1.1", + "@types/node": "^6.0.46", + "typescript": "~2.4.1" + } + }, + "tsconfig": { + "compilerOptions": { + "declaration": false, + "experimentalDecorators": true, + "jsx": "react", + "jsxFactory": "tsx", + "lib": [ + "dom", + "es5", + "es2015.promise", + "es2015.iterable", + "es2015.symbol", + "es2015.symbol.wellknown" + ], + "module": "umd", + "moduleResolution": "node", + "noUnusedLocals": true, + "outDir": "_build/", + "removeComments": false, + "sourceMap": true, + "strict": true, + "target": "es5" + }, + "include": [ + "./src/**/*.ts" + ] + }, + "dojorc": { + "build-webpack": {}, + "test-intern": {} + } +} \ No newline at end of file diff --git a/src/LiveCodeController.ts b/src/LiveCodeController.ts new file mode 100644 index 0000000..f4cbb9b --- /dev/null +++ b/src/LiveCodeController.ts @@ -0,0 +1,134 @@ +import { ProjectFileType } from '@dojo/cli-export-project/interfaces/project.json'; +import Map from '@dojo/shim/Map'; +import { assign } from '@dojo/shim/object'; +import { isWNode } from '@dojo/widget-core/d'; +import { DNode, HNode, WidgetProperties, WNode } from '@dojo/widget-core/interfaces'; +import WidgetBase from '@dojo/widget-core/WidgetBase'; +import LiveCodeExample from './LiveCodeExample'; +import { Program, Project } from './project'; + +export interface LiveCodeControllerProperties extends WidgetProperties { + /** + * The interval, in milliseconds, when the last change to the editor causes it to call `onDirty`. It will default to + * `2000` (2 seconds) + */ + changeInterval?: number; + + /** + * A reference to the project that should be used by the controller + */ + project: Project; + + /** + * A URI to the initial page that should be displayed in the runners displaying code examples + */ + runnerSrc?: string; +} + +const DEFAULT_CHANGE_INTERVAL = 2000; + +/** + * A custom type guard that determines if a child node is a `LiveCodeExample` or not + * @param value the value to guard + */ +function isLiveCodeExampleWNode(value: any): value is WNode { + return isWNode(value) && value.widgetConstructor === LiveCodeExample; +} + +interface EditorData { + dirty: boolean; + model?: monaco.editor.IModel; +} + +/** + * A _global_ map of editor IDs and their data + * + * *Note:* Exported for testing purposes only + */ +export const editorMap = new Map(); + +/** + * A controller widget which iterates through its children and decorates the `LiveCodeExample` nodes + * with model information from the project passed as a property + */ +export class LiveCodeController extends WidgetBase { + private _program: Program | undefined; + + /** + * When a `LiveCodeExample` child is dirty, it needs to be put into a dirty + * state and the program needs to be recompiled and the widget invalidated + */ + private _onDirty = async (id: string) => { + const { project } = this.properties; + const data = editorMap.get(id); + if (data) { + data.dirty = true; + } + this._program = await project.getProgram(); + this.invalidate(); + } + + /** + * Create a new project file, get the model, compile the program and invalidate + */ + private async _setModel(data: EditorData, id: string, text: string, tsx?: boolean) { + const { project } = this.properties; + const name = `./src/${id}.ts${tsx ? 'x' : ''}`; + if (!project.includes(name)) { + await project.addFile({ + type: ProjectFileType.TypeScript, + name, + text + }); + } + data.model = project.getFileModel(name); + this._program = await project.getProgram(); + this.invalidate(); + } + + protected render(): DNode[] { + const { + _program, + children, + properties: { + changeInterval = DEFAULT_CHANGE_INTERVAL, + runnerSrc + } + } = this; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (isLiveCodeExampleWNode(child)) { + const { id, tsx } = child.properties; + if (!editorMap.has(id)) { + editorMap.set(id, { dirty: true }); + } + const data = editorMap.get(id)!; + const { model } = data; + if (!model) { + const text = child.children + .filter((child) => child !== null) + .map((child) => typeof child === 'object' ? (child as HNode).text : child) + .join('\n'); + if (text) { + this._setModel(data, id, text, tsx); + } + } + let program: Program | undefined; + if (model && _program && data.dirty) { + data.dirty = false; + program = _program; + } + assign(child.properties, { + changeInterval, + model, + program, + runnerSrc, + onDirty: this._onDirty + }); + } + } + return children; + } +} + +export default LiveCodeController; diff --git a/src/LiveCodeExample.ts b/src/LiveCodeExample.ts new file mode 100644 index 0000000..b1a15e3 --- /dev/null +++ b/src/LiveCodeExample.ts @@ -0,0 +1,107 @@ +import { v, w } from '@dojo/widget-core/d'; +import { DNode } from '@dojo/widget-core/interfaces'; +import WidgetBase from '@dojo/widget-core/WidgetBase'; +import { theme, ThemedMixin, ThemedProperties } from '@dojo/widget-core/mixins/Themed'; +import { Program } from './project'; +import * as livecodeexampleCss from './styles/livecodeexample.m.css'; +import LiveEditor from './widgets/LiveEditor'; + +export interface LiveCodeExampleProperties extends ThemedProperties { + /** + * The interval, in milliseconds, when the last change to the editor causes it to call `onDirty`. It will default to + * `1000` (1 second) + */ + changeInterval?: number; + + /** + * The description of the live code example + */ + description: DNode | DNode[]; + + /** + * The ID of the live code example, this must be unique for the project and will be used to generate + * a virutal filename for the example + */ + id: string; + + /** + * The model of the virtual file used by the editor + */ + model?: monaco.editor.IModel; + + /** + * The program that will be passed to the runner + */ + program?: Program; + + /** + * The URI to load in the runner before a program is loaded + */ + runnerSrc?: string; + + /** + * The title of the example + */ + title: DNode | DNode[]; + + /** + * A flag to determine if the example should be treated as a `.tsx` file, defaults to just `.ts` + */ + tsx?: boolean; + + /** + * A callback that is called when the code example changes to a dirty state + */ + onDirty?(id: string): void; +} + +const isArray = Array.isArray; +const DIV = 'div'; + +const ThemedBase = ThemedMixin(WidgetBase); + +@theme(livecodeexampleCss) +export default class LiveCodeExample extends ThemedBase { + private _onDirty = () => { + const { id, onDirty } = this.properties; + onDirty && onDirty(id); + } + + public render() { + const { + _onDirty: onDirty, + properties: { changeInterval = 1000, id, description, model, program, runnerSrc, title } + } = this; + + return v(DIV, { + classes: [ this.theme(livecodeexampleCss.root), livecodeexampleCss.rootFixed ], + id, + key: 'root' + }, [ + v(DIV, { + classes: this.theme(livecodeexampleCss.left), + key: 'left' + }, [ + v('h1', {}, isArray(title) ? title : [ title ]), + v(DIV, { + classes: this.theme(livecodeexampleCss.description) + }, [ + v('p', {}, isArray(description) ? description : [ description ]) + ]) + ]), + v(DIV, { + classes: this.theme(livecodeexampleCss.right), + key: 'right' + }, [ + w(LiveEditor, { + changeInterval, + id, + model, + program, + runnerSrc, + onDirty + }) + ]) + ]); + } +} diff --git a/src/examples/index.ts b/src/examples/index.ts index a11a795..e5ddb1a 100644 --- a/src/examples/index.ts +++ b/src/examples/index.ts @@ -80,8 +80,11 @@ class App extends WidgetBase { this.invalidate(); } - private _onDirty() { + private async _onDirty() { this._projectDirty = true; + if (project.isLoaded() && this._editorFilename) { + await project.setFileDirty(this._editorFilename); + } this.invalidate(); } diff --git a/src/examples/live.html b/src/examples/live.html new file mode 100644 index 0000000..15d358b --- /dev/null +++ b/src/examples/live.html @@ -0,0 +1,35 @@ + + + + @dojo/web-editor – Live Editor + + + + + + + + + + + + diff --git a/src/examples/live.ts b/src/examples/live.ts new file mode 100644 index 0000000..08f43b1 --- /dev/null +++ b/src/examples/live.ts @@ -0,0 +1,81 @@ +import { w } from '@dojo/widget-core/d'; +import ProjectorMixin from '@dojo/widget-core/mixins/Projector'; +import WidgetBase from '@dojo/widget-core/WidgetBase'; +import LiveCodeController from '../LiveCodeController'; +import LiveCodeExample from '../LiveCodeExample'; +import project from '../project'; +import { load as loadTheme } from '../support/editorThemes'; + +const EDITOR_THEME = '../../data/editor-dark.json'; +const PROJECT_JSON = '../../../projects/live-editor.project.json'; + +const GREEKING = `Quidne tamen pulvinar ratis verto antehabeo quidne. Haero letatio semper ex zelus autem etiam. Utrum sino ratis validus nec. Sino delenit pecus vulpes autem ventosus. Saepius roto vindico himenaeos utinam sed mus probo. Pulvinar sed nam vestibulum curabitur gravida. Condimentum reprobo gravis semper morbi letalis tum scelerisque torquent. Platea ne sudo praesent leo secundum.`; + +const text = `import WidgetBase from '@dojo/widget-core/WidgetBase'; +import ProjectorMixin from '@dojo/widget-core/mixins/Projector'; +import { w } from '@dojo/widget-core/d'; +import Button from '@dojo/widgets/button/Button'; +import theme from '@dojo/widgets/themes/dojo/theme'; + +class HelloWorld extends WidgetBase { + render() { + return w(Button, { + theme, + onClick() { alert('I was clicked!'); } + }, [ 'Click me!' ]); + } +} + +const projector = new (ProjectorMixin(HelloWorld))(); +projector.append(); +`; + +const text1 = `import WidgetBase from '@dojo/widget-core/WidgetBase'; +import ProjectorMixin from '@dojo/widget-core/mixins/Projector'; +import { tsx } from '@dojo/widget-core/tsx'; + +class HelloWorld extends WidgetBase { + render() { + return ( +

+ Hello world! +
+ ); + } +} + +const projector = new (ProjectorMixin(HelloWorld))(); +projector.append(); +`; + +class App extends WidgetBase { + public render() { + return w(LiveCodeController, { + project, + runnerSrc: './loading.html' + }, [ + w(LiveCodeExample, { + id: 'example_001', + description: GREEKING, + key: 'example_001', + title: 'Example 1' + }, [ text ]), + w(LiveCodeExample, { + id: 'example_002', + description: GREEKING, + key: 'example_002', + title: 'Example 2', + tsx: true + }, [ text1 ]) + ]); + } +} + +const projector = new (ProjectorMixin(App))(); + +(async function () { + await loadTheme(EDITOR_THEME); + await project.load(PROJECT_JSON); + + projector.append(); +})(); diff --git a/src/examples/loading.html b/src/examples/loading.html new file mode 100644 index 0000000..237ed10 --- /dev/null +++ b/src/examples/loading.html @@ -0,0 +1,33 @@ + + + + + +
Loading...
+ + diff --git a/src/project.ts b/src/project.ts index 31a45e3..b9fd72c 100644 --- a/src/project.ts +++ b/src/project.ts @@ -9,7 +9,6 @@ import WeakMap from '@dojo/shim/WeakMap'; import { DiagnosticMessageChain, OutputFile } from 'typescript'; import { getDefinitions, getEmit as getCssEmit } from './support/css'; import { getEmit as getJsonEmit } from './support/json'; -import xhr from './support/providers/xhr'; import { EmitFile, PromiseLanguageService, TypeScriptWorker } from './interfaces'; @@ -59,9 +58,6 @@ interface ProjectFileData { model?: monaco.editor.IModel; } -/* Changes to a provider that doesn't have issue https://github.com/dojo/core/issues/328 */ -request.setDefaultProvider(xhr); - /** * Flatten a TypeScript diagnostic message * @@ -101,7 +97,8 @@ function flattenDiagnosticMessageText(messageText: string | DiagnosticMessageCha * @param param0 The project file to create the model from */ function createMonacoModel({ name: filename, text, type }: ProjectFile): monaco.editor.IModel { - return monaco.editor.createModel(text, getLanguageFromType(type), monaco.Uri.file(filename)); + const uri = monaco.Uri.file(filename); + return monaco.editor.getModel(uri) || monaco.editor.createModel(text, getLanguageFromType(type), uri); } /** @@ -134,8 +131,53 @@ function getLanguageFromType(type: ProjectFileType): string { } } +export function getTypeFromFilename(name: string): ProjectFileType { + const nameparts = name.toLowerCase().split('.'); + const extension = nameparts.pop(); + switch (extension) { + case 'tsx': + case 'ts': + if (nameparts.pop() === 'd') { + return ProjectFileType.Definition; + } + return ProjectFileType.TypeScript; + case 'html': + return ProjectFileType.HTML; + case 'js': + case 'jsx': + case 'es': + return ProjectFileType.JavaScript; + case 'md': + return ProjectFileType.Markdown; + case 'css': + return ProjectFileType.CSS; + case 'json': + return ProjectFileType.JSON; + case 'xml': + return ProjectFileType.XML; + case 'map': + return ProjectFileType.SourceMap; + default: + return ProjectFileType.PlainText; + } +} + type ScriptTarget = monaco.languages.typescript.ScriptTarget; const ScriptTarget = monaco.languages.typescript.ScriptTarget; +type JsxEmit = monaco.languages.typescript.JsxEmit; +const JsxEmit = monaco.languages.typescript.JsxEmit; + +function getJsxEmit(type: string | undefined): JsxEmit { + switch (type) { + case 'preserve': + return JsxEmit.Preserve; + case 'react': + case 'react-native': + return JsxEmit.React; + default: + return JsxEmit.None; + } +} function getScriptTarget(type: string): ScriptTarget { switch (type) { @@ -248,9 +290,25 @@ export class Project extends Evented { const options: CompilerOptions = {}; /* copied from tsconfig.json */ - const { experimentalDecorators, lib, noImplicitAny, noImplicitThis, noImplicitReturns, noLib, noUnusedLocals, noUnusedParameters, strictNullChecks, target, types } = compilerOptions; - assign(options, { + const { + experimentalDecorators, + jsx, + jsxFactory, + lib, + noImplicitAny, + noImplicitThis, + noImplicitReturns, + noLib, + noUnusedLocals, + noUnusedParameters, + strictNullChecks, + target, + types + } = compilerOptions; + assign(options, { experimentalDecorators, + jsx: getJsxEmit(jsx), + jsxFactory, lib, noImplicitAny, noImplicitThis, @@ -261,17 +319,17 @@ export class Project extends Evented { strictNullChecks, target: getScriptTarget(target), types - }); + } as CompilerOptions); /* asserted for web editing */ - assign(options, { + assign(options, { allowNonTsExtensions: true, /* needed for compiling like this */ inlineSources: true, /* we will embed the sources in the source maps */ module: monaco.languages.typescript.ModuleKind.AMD, /* only support AMD, so only compile to AMD */ moduleResolution: monaco.languages.typescript.ModuleResolutionKind.NodeJs, /* only support this for of module resolution */ - noEmitHelpers: true, /* we will add the helpers later */ + noEmitHelpers: true, /* we will import the helpers */ sourceMap: true /* we will generate sourcemaps and remap them when we add them to the page */ - }); + } as CompilerOptions); monaco.languages.typescript.typescriptDefaults.setCompilerOptions(options); } @@ -316,6 +374,17 @@ export class Project extends Evented { fileData.extraLibHandle = monaco.languages.typescript.typescriptDefaults.addExtraLib(text, 'file:///' + name); } + async addFile(file: ProjectFile): Promise { + if (!this._project) { + throw new Error(`Project not loaded.`); + } + if (this.includes(file.name)) { + throw new Error(`File "${file.name}" already exists in project.`); + } + this._project.files.push(file); + await this.setFileDirty(file.name); + } + /** * Take the currently loaded project and emit it */ @@ -327,7 +396,7 @@ export class Project extends Evented { const typescriptFileUris = this._project.files .filter(({ type }) => type === ProjectFileType.Definition || type === ProjectFileType.TypeScript) .map(({ name }) => this.getFileModel(name).uri); - const worker: TypeScriptWorker = await monaco.languages.typescript.getTypeScriptWorker(); + const worker = (await monaco.languages.typescript.getTypeScriptWorker()) as TypeScriptWorker; const services = await worker(...typescriptFileUris); const output = await Promise.all(typescriptFileUris.map(async (file) => { @@ -542,6 +611,14 @@ export class Project extends Evented { this._getProjectFileData(file).dirty = !reset; } } + + async setFileText(filename: string, value: string): Promise { + if (!this.includes(filename)) { + throw new Error(`File "${filename}" is not part of the project.`); + } + this.getFileModel(filename).setValue(value); + await this.setFileDirty(filename); + } } /* create singleton instance of project for default export */ diff --git a/src/styles/livecodeexample.m.css b/src/styles/livecodeexample.m.css new file mode 100644 index 0000000..e08602b --- /dev/null +++ b/src/styles/livecodeexample.m.css @@ -0,0 +1,25 @@ +/* Themed classes */ + +.root { + padding: 1em; +} + +.left { + flex: 1; +} + +.description > p { + margin: 1em; + padding: 0; +} + +.right { + flex: 2; + padding-left: 16px; +} + +/* Fixed classes */ + +.rootFixed { + display: flex; +} diff --git a/src/styles/livecodeexample.m.css.d.ts b/src/styles/livecodeexample.m.css.d.ts new file mode 100644 index 0000000..685436b --- /dev/null +++ b/src/styles/livecodeexample.m.css.d.ts @@ -0,0 +1,5 @@ +export const root: string; +export const left: string; +export const description: string; +export const right: string; +export const rootFixed: string; diff --git a/src/styles/liveeditor.m.css b/src/styles/liveeditor.m.css new file mode 100644 index 0000000..f3385e8 --- /dev/null +++ b/src/styles/liveeditor.m.css @@ -0,0 +1,25 @@ +/* Themeable classes */ + +.root, +.root * { + box-sizing: border-box; +} + +.root { + align-items: stretch; +} + +.left { + flex: 2; +} + +.right { + flex: 1; +} + +/* Fixed classes */ + +.rootFixed { + display: flex; + height: 100%; +} diff --git a/src/styles/liveeditor.m.css.d.ts b/src/styles/liveeditor.m.css.d.ts new file mode 100644 index 0000000..6900ef2 --- /dev/null +++ b/src/styles/liveeditor.m.css.d.ts @@ -0,0 +1,4 @@ +export const root: string; +export const left: string; +export const right: string; +export const rootFixed: string; diff --git a/src/styles/runner.m.css b/src/styles/runner.m.css index 3a2e76b..ba2cad5 100644 --- a/src/styles/runner.m.css +++ b/src/styles/runner.m.css @@ -25,5 +25,5 @@ .iframeFixed { position: relative; height: 100%; - width: 100%; + width: 100% } diff --git a/src/styles/widgets.css b/src/styles/widgets.css index 360ffa2..a770e02 100644 --- a/src/styles/widgets.css +++ b/src/styles/widgets.css @@ -1,6 +1,8 @@ @import './actionbar.m.css'; @import './actionbarbutton.m.css'; @import './editor.m.css'; +@import './livecodeexample.m.css'; +@import './liveeditor.m.css'; @import './runner.m.css'; @import './scrollbar.m.css'; @import './tab.m.css'; diff --git a/src/support/blank.html b/src/support/blank.html index e921b4d..103e171 100644 --- a/src/support/blank.html +++ b/src/support/blank.html @@ -30,7 +30,7 @@ diff --git a/src/support/providers/xhr.ts b/src/support/providers/xhr.ts deleted file mode 100644 index 844309f..0000000 --- a/src/support/providers/xhr.ts +++ /dev/null @@ -1,308 +0,0 @@ -import { Handle } from '@dojo/interfaces/core'; -import { forOf } from '@dojo/shim/iterator'; -import WeakMap from '@dojo/shim/WeakMap'; -import Task, { State } from '@dojo/core/async/Task'; -import global from '@dojo/core/global'; -import has from '@dojo/core/has'; -import { createTimer } from '@dojo/core/util'; -import Headers from '@dojo/core/request/Headers'; -import { RequestOptions, UploadObservableTask } from '@dojo/core/request/interfaces'; -import Response, { getArrayBufferFromBlob, getTextFromBlob } from '@dojo/core/request/Response'; -import TimeoutError from '@dojo/core/request/TimeoutError'; -import { generateRequestUrl } from '@dojo/core/request/util'; -import Observable from '@dojo/core/Observable'; -import SubscriptionPool from '@dojo/core/request/SubscriptionPool'; - -/** - * Request options specific to an XHR request - */ -export interface XhrRequestOptions extends RequestOptions { - blockMainThread?: boolean; -} - -interface RequestData { - task: Task; - used: boolean; - requestOptions: XhrRequestOptions; - nativeResponse: XMLHttpRequest; - url: string; - downloadObservable: Observable; - dataObservable: Observable; -} - -const dataMap = new WeakMap(); - -function getDataTask(response: XhrResponse): Task { - const data = dataMap.get(response)!; - - if (data.used) { - return Task.reject(new TypeError('Body already read')); - } - - data.used = true; - - return data.task; -} - -/** - * Wraps an XHR request in a response that mimics the fetch API - */ -export class XhrResponse extends Response { - readonly headers: Headers; - readonly ok: boolean; - readonly status: number; - readonly statusText: string; - - get bodyUsed(): boolean { - return dataMap.get(this)!.used; - } - - get nativeResponse(): XMLHttpRequest { - return dataMap.get(this)!.nativeResponse; - } - - get requestOptions(): XhrRequestOptions { - return dataMap.get(this)!.requestOptions; - } - - get url(): string { - return dataMap.get(this)!.url; - } - - get download(): Observable { - return dataMap.get(this)!.downloadObservable; - } - - get data(): Observable { - return dataMap.get(this)!.dataObservable; - } - - constructor(request: XMLHttpRequest) { - super(); - - const headers = this.headers = new Headers(); - - const responseHeaders = request.getAllResponseHeaders(); - if (responseHeaders) { - for (let line of responseHeaders.split(/\r\n/g)) { - const match = line.match(/^(.*?): (.*)$/); - if (match) { - headers.append(match[1], match[2]); - } - } - } - - this.status = request.status; - this.ok = this.status >= 200 && this.status < 300; - this.statusText = request.statusText || 'OK'; - } - - arrayBuffer(): Task { - return Task.reject(new Error('ArrayBuffer not supported')); - } - - blob(): Task { - return Task.reject(new Error('Blob not supported')); - } - - formData(): Task { - return Task.reject(new Error('FormData not supported')); - } - - text(): Task { - return getDataTask(this).then((request: XMLHttpRequest) => { - return String(request.responseText); - }); - } - - xml(): Task { - return this.text().then((text: string) => { - const parser = new DOMParser(); - return parser.parseFromString(text, this.headers.get('content-type') || 'text/html'); - }); - } -} - -if (has('blob')) { - XhrResponse.prototype.blob = function (this: XhrResponse): Task { - return getDataTask(this).then((request: XMLHttpRequest) => request.response); - }; - - XhrResponse.prototype.text = function (this: XhrResponse): Task { - return this.blob().then(getTextFromBlob); - }; - - if (has('arraybuffer')) { - XhrResponse.prototype.arrayBuffer = function (this: XhrResponse): Task { - return this.blob().then(getArrayBufferFromBlob); - }; - } -} - -if (has('formdata')) { - XhrResponse.prototype.formData = function (this: XhrResponse): Task { - return this.text().then((text: string) => { - const data = new FormData(); - - text.trim().split('&').forEach(keyValues => { - if (keyValues) { - const pairs = keyValues.split('='); - const name = (pairs.shift() || '').replace(/\+/, ' '); - const value = pairs.join('=').replace(/\+/, ' '); - - data.append(decodeURIComponent(name), decodeURIComponent(value)); - } - }); - - return data; - }); - }; -} - -function noop () {} - -function setOnError(request: XMLHttpRequest, reject: Function) { - request.addEventListener('error', function (event) { - reject(new TypeError(event.error || 'Network request failed')); - }); -} - -export default function xhr(url: string, options: XhrRequestOptions = {}): UploadObservableTask { - const request = new XMLHttpRequest(); - const requestUrl = generateRequestUrl(url, options); - - options = Object.create(options); - - if (!options.method) { - options.method = 'GET'; - } - - let isAborted = false; - - function abort() { - isAborted = true; - if (request) { - request.abort(); - request.onreadystatechange = noop; - } - } - - let timeoutHandle: Handle; - let timeoutReject: Function; - - const task = > new Task((resolve, reject) => { - timeoutReject = reject; - - request.onreadystatechange = function () { - if (isAborted) { - return; - } - - if (request.readyState === 2) { - const response = new XhrResponse(request); - - const downloadSubscriptionPool = new SubscriptionPool(); - const dataSubscriptionPool = new SubscriptionPool(); - - const task = new Task((resolve, reject) => { - timeoutReject = reject; - - request.onprogress = function (event: any) { - if (isAborted) { - return; - } - - downloadSubscriptionPool.next(event.loaded); - }; - - request.onreadystatechange = function () { - if (isAborted) { - return; - } - - if (request.readyState === 4) { - request.onreadystatechange = noop; - timeoutHandle && timeoutHandle.destroy(); - - dataSubscriptionPool.next(request.response); - dataSubscriptionPool.complete(); - - resolve(request); - } - }; - - setOnError(request, reject); - }, abort); - - dataMap.set(response, { - task, - used: false, - nativeResponse: request, - requestOptions: options, - url: requestUrl, - downloadObservable: new Observable(observer => downloadSubscriptionPool.add(observer)), - dataObservable: new Observable(observer => dataSubscriptionPool.add(observer)) - }); - - resolve(response); - } - }; - - setOnError(request, reject); - - }, abort); - - request.open(options.method, requestUrl, !options.blockMainThread, options.user, options.password); - - if (has('filereader') && has('blob')) { - request.responseType = 'blob'; - } - - if (options.timeout && options.timeout > 0 && options.timeout !== Infinity) { - timeoutHandle = createTimer(() => { - // Reject first, since aborting will also fire onreadystatechange which would reject with a - // less specific error. (This is also why we set up our own timeout rather than using - // native timeout and ontimeout, because that aborts and fires onreadystatechange before ontimeout.) - timeoutReject && timeoutReject(new TimeoutError('The XMLHttpRequest request timed out')); - abort(); - }, options.timeout); - } - - let hasContentTypeHeader = false; - let hasRequestedWithHeader = false; - - if (options.headers) { - const requestHeaders = new Headers(options.headers); - - hasRequestedWithHeader = requestHeaders.has('x-requested-with'); - hasContentTypeHeader = requestHeaders.has('content-type'); - - forOf(requestHeaders, ([key, value]) => { - request.setRequestHeader(key, value); - }); - } - - if (!hasContentTypeHeader && has('formdata') && options.body instanceof global.FormData) { - // Assume that most forms do not contain large binary files. If that is not the case, - // then "multipart/form-data" should be manually specified as the "Content-Type" header. - request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); - } - - task.finally(() => { - if (task.state !== State.Fulfilled) { - request.onreadystatechange = noop; - timeoutHandle && timeoutHandle.destroy(); - } - }); - - const uploadObserverPool = new SubscriptionPool(); - task.upload = new Observable(observer => uploadObserverPool.add(observer)); - - request.upload.addEventListener('progress', event => { - uploadObserverPool.next(event.loaded); - }); - - request.send(options.body || null); - - return task; -} diff --git a/src/support/worker-proxy.ts b/src/support/worker-proxy.ts index 3cbfdfd..a6229ed 100644 --- a/src/support/worker-proxy.ts +++ b/src/support/worker-proxy.ts @@ -10,4 +10,4 @@ interface Window { self.MonacoEnvironment = { baseUrl: '../../../node_modules/monaco-editor/min/' }; -importScripts('../../../node_modules/monaco-editor/min/vs/base/worker/workerMain.js'); +(self as any).importScripts('../../../node_modules/monaco-editor/min/vs/base/worker/workerMain.js'); diff --git a/src/themes/dark/livecodeexample.m.css b/src/themes/dark/livecodeexample.m.css new file mode 100644 index 0000000..9ac41ff --- /dev/null +++ b/src/themes/dark/livecodeexample.m.css @@ -0,0 +1,17 @@ +.root { + padding: 1em; +} + +.left { + flex: 1; +} + +.description > p { + margin: 1em; + padding: 0; +} + +.right { + flex: 2; + padding-left: 16px; +} diff --git a/src/themes/dark/livecodeexample.m.css.d.ts b/src/themes/dark/livecodeexample.m.css.d.ts new file mode 100644 index 0000000..61c3100 --- /dev/null +++ b/src/themes/dark/livecodeexample.m.css.d.ts @@ -0,0 +1,4 @@ +export const root: string; +export const left: string; +export const description: string; +export const right: string; diff --git a/src/themes/dark/theme.css b/src/themes/dark/theme.css index 4af5264..62960b0 100644 --- a/src/themes/dark/theme.css +++ b/src/themes/dark/theme.css @@ -1,6 +1,7 @@ @import './actionbar.m.css'; @import './actionbarbutton.m.css'; @import './editor.m.css'; +@import './livecodeexample.m.css'; @import './runner.m.css'; @import './scrollbar.m.css'; @import './tab.m.css'; diff --git a/src/themes/dark/theme.ts b/src/themes/dark/theme.ts index 7b0bdfa..e45c45b 100644 --- a/src/themes/dark/theme.ts +++ b/src/themes/dark/theme.ts @@ -1,6 +1,7 @@ import * as actionbar from './actionbar.m.css'; import * as actionbarbutton from './actionbarbutton.m.css'; import * as editor from './editor.m.css'; +import * as livecodeexample from './livecodeexample.m.css'; import * as runner from './runner.m.css'; import * as scrollbar from './scrollbar.m.css'; import * as tab from './tab.m.css'; @@ -14,6 +15,7 @@ export default { 'dojo-actionbar': actionbar, 'dojo-actionbarbutton': actionbarbutton, 'dojo-editor': editor, + 'dojo-livecodeexample': livecodeexample, 'dojo-runner': runner, 'dojo-scrollbar': scrollbar, 'dojo-tab': tab, @@ -25,6 +27,7 @@ export default { actionbar, actionbarbutton, editor, + livecodeexample, runner, scrollbar, tab, diff --git a/src/widgets/Editor.ts b/src/widgets/Editor.ts index 985f6dc..7a655be 100644 --- a/src/widgets/Editor.ts +++ b/src/widgets/Editor.ts @@ -16,6 +16,12 @@ const MINIMUM_WIDTH = 150; * Properties that can be set on an `Editor` widget */ export interface EditorProperties extends ThemedProperties { + /** + * The interval, in milliseconds, when the last change to the editor causes it to call `onDirty`. It will default to + * `1000` (1 second) + */ + changeInterval?: number; + /** * Ensure that monaco-editor instance is layed out in a way that allows the document to reflow and resize the editor properly */ @@ -121,13 +127,24 @@ export default class Editor extends ThemedBase { } protected onAttach() { - const { _onDidChangeModelContent, _editorRoot, properties: { model, onInit, onLayout, options } } = this; - // _onAttached fires when the DOM is actually attached to the document, but the rest of the virtual DOM hasn't + const { + _onDidChangeModelContent, + _editorRoot, + properties: { + changeInterval = 1000, + model, + onInit, + onLayout, + options + } + } = this; + + // onAttach fires when the DOM is actually attached to the document, but the rest of the virtual DOM hasn't // been layed out which causes issues for monaco-editor when figuring out its initial size, so we will schedule // it to be run at the end of the turn, which will provide more reliable layout queueTask(() => { const editor = this._editor = monaco.editor.create(_editorRoot, options); - this._didChangeHandle = editor.onDidChangeModelContent(debounce(_onDidChangeModelContent, 1000)); + this._didChangeHandle = editor.onDidChangeModelContent(debounce(_onDidChangeModelContent, changeInterval)); onInit && onInit(editor); this._originalSize = getSize(_editorRoot); diff --git a/src/widgets/LiveEditor.ts b/src/widgets/LiveEditor.ts new file mode 100644 index 0000000..e7bde95 --- /dev/null +++ b/src/widgets/LiveEditor.ts @@ -0,0 +1,78 @@ +import { assign } from '@dojo/shim/object'; +import { v, w } from '@dojo/widget-core/d'; +import WidgetBase from '@dojo/widget-core/WidgetBase'; +import { ThemedMixin, ThemedProperties, theme } from '@dojo/widget-core/mixins/Themed'; +import Editor from './Editor'; +import Runner, { RunnerProperties } from './Runner'; +import { Program } from '../project'; +import * as liveeditorCss from '../styles/liveeditor.m.css'; + +export interface LiveEditorProperties extends ThemedProperties { + /** + * The interval, in milliseconds, when the last change to the editor causes it to call `onDirty`. It will default to + * `1000` (1 second) + */ + changeInterval?: number; + + /** + * The ID of the editor, used to determine what module to load in the runner + */ + id: string; + + /** + * The model to pass to the editor + */ + model?: Editor['properties']['model']; + + /** + * The program to pass to the runner + */ + program?: Program; + + /** + * The URI to pass to the runner to load before loading a program + */ + runnerSrc?: string; + + /** + * Called when the editor goes into a dirty state + */ + onDirty?(): void; +} + +const ThemedBase = ThemedMixin(WidgetBase); + +@theme(liveeditorCss) +export default class LiveEditor extends ThemedBase { + protected render() { + const { changeInterval = 1000, id, model, program, runnerSrc: src, onDirty } = this.properties; + const runnerProperties: RunnerProperties = assign({}, program, { key: 'runner', main: `src/${id}`, src }); + return v('div', { + classes: [ this.theme(liveeditorCss.root), liveeditorCss.rootFixed ] + }, [ + v('div', { + classes: this.theme(liveeditorCss.left), + key: 'left' + }, [ + v('div', {}, [ 'Live Editor' ]), + w(Editor, { + changeInterval, + key: 'editor', + model, + options: { + lineNumbers: 'off', + minimap: { enabled: false } + }, + onDirty + }) + ]), + v('div', { + classes: this.theme(liveeditorCss.right), + key: 'right' + }, [ + v('div', {}, [ 'Result' ]), + w(Runner, runnerProperties) + ]) + ]); + } +} diff --git a/src/widgets/Runner.ts b/src/widgets/Runner.ts index 766b5fb..ace1172 100644 --- a/src/widgets/Runner.ts +++ b/src/widgets/Runner.ts @@ -18,6 +18,8 @@ export interface RunnerProperties extends Partial, ThemedProperties { */ loader?: string; + main?: string; + /** * A URI that points to the `src` to set on the Runner's `iframe`. Defaults to `../support/blank.html` */ @@ -80,7 +82,8 @@ function docSrc( loaderSrc: string, dependencies: { [pkg: string]: string; }, packages: string[], - modules: { [mid: string]: { code: string, map: string } } + modules: { [mid: string]: { code: string, map: string } }, + main: string ): string { const paths: string[] = []; for (const pkg in dependencies) { @@ -126,7 +129,9 @@ function docSrc( bodyAttributesText += ` ${attr}="${bodyAttributes[attr]}"`; } - const parts = [ scriptsText, cssText, bodyAttributesText, html, loaderSrc, pathsText, packagesText, modulesText ]; + const mainText = `require([ '${main}' ], function () { });`; + + const parts = [ scriptsText, cssText, bodyAttributesText, html, loaderSrc, pathsText, packagesText, modulesText, mainText ]; const text = parts .reduce((previous, text, index) => { @@ -155,7 +160,7 @@ function getPackages(dependencies: { [pkg: string]: string; }): string[] { * Generate an HTML page which represents the Runner properties * @param param0 Properties from the Runner to be used to specify the document */ -function getSource({ css = [], dependencies = {}, loader = DEFAULT_LOADER_URI, html = '', modules = {} }: RunnerProperties): string { +function getSource({ css = [], dependencies = {}, loader = DEFAULT_LOADER_URI, main = 'src/main', html = '', modules = {} }: RunnerProperties): string { const { attributes, body, css: text, scripts } = parseHtml(html); if (text) { css.unshift({ name: 'project index', text }); @@ -180,14 +185,12 @@ var cache = {}; ${modules} diff --git a/support/grunt/options/copy.ts b/support/grunt/options/copy.ts index 2bc6134..3116dff 100644 --- a/support/grunt/options/copy.ts +++ b/support/grunt/options/copy.ts @@ -23,7 +23,7 @@ export = function(grunt: IGrunt) { } ], options: { process(content: string, srcpath: string) { - if (srcpath === 'src/examples/index.html') { + if (srcpath === 'src/examples/index.html' || srcpath === 'src/examples/live.html') { return content .replace(/(?:\.\.\/){3}node_modules\//g, `../node_modules/`) .replace(`'../../..'`, `'..'`); diff --git a/support/grunt/options/patch.ts b/support/grunt/options/patch.ts index d0545fe..69ad18a 100644 --- a/support/grunt/options/patch.ts +++ b/support/grunt/options/patch.ts @@ -11,6 +11,15 @@ export = function(grunt: IGrunt) { } }, + liveJs: { + options: { + patch: 'support/grunt/patches/live.js.patch' + }, + files: { + 'dist/examples/live.js': 'dist/examples/live.js' + } + }, + workerProxyJs: { options: { patch: 'support/grunt/patches/worker-proxy.js.patch' diff --git a/support/grunt/patches/live.js.patch b/support/grunt/patches/live.js.patch new file mode 100644 index 0000000..3c57e65 --- /dev/null +++ b/support/grunt/patches/live.js.patch @@ -0,0 +1,15 @@ +diff --git a/examples/live.js b/examples/live.js +index 3c1748b..8a5ae5b 100644 +--- a/examples/live.js ++++ b/examples/live.js +@@ -61,8 +61,8 @@ var __generator = (this && this.__generator) || function (thisArg, body) { + var LiveCodeExample_1 = require("../LiveCodeExample"); + var project_1 = require("../project"); + var editorThemes_1 = require("../support/editorThemes"); +- var EDITOR_THEME = '../../data/editor-dark.json'; +- var PROJECT_JSON = '../../../projects/live-editor.project.json'; ++ var EDITOR_THEME = '../data/editor-dark.json'; ++ var PROJECT_JSON = '../projects/live-editor.project.json'; + var GREEKING = "Quidne tamen pulvinar ratis verto antehabeo quidne. Haero letatio semper ex zelus autem etiam. Utrum sino ratis validus nec. Sino delenit pecus vulpes autem ventosus. Saepius roto vindico himenaeos utinam sed mus probo. Pulvinar sed nam vestibulum curabitur gravida. Condimentum reprobo gravis semper morbi letalis tum scelerisque torquent. Platea ne sudo praesent leo secundum."; + var text = "import WidgetBase from '@dojo/widget-core/WidgetBase';\nimport ProjectorMixin from '@dojo/widget-core/mixins/Projector';\nimport { w } from '@dojo/widget-core/d';\nimport Button from '@dojo/widgets/button/Button';\nimport theme from '@dojo/widgets/themes/dojo/theme';\n\nclass HelloWorld extends WidgetBase {\n\trender() {\n\t\treturn w(Button, {\n\t\t\ttheme,\n\t\t\tonClick() { alert('I was clicked!'); }\n\t\t}, [ 'Click me!' ]);\n\t}\n}\n\nconst projector = new (ProjectorMixin(HelloWorld))();\nprojector.append();\n"; + var text1 = "import WidgetBase from '@dojo/widget-core/WidgetBase';\nimport ProjectorMixin from '@dojo/widget-core/mixins/Projector';\nimport { tsx } from '@dojo/widget-core/tsx';\n\nclass HelloWorld extends WidgetBase {\n\trender() {\n\t\treturn (\n\t\t\t
\n\t\t\t\tHello world!\n\t\t\t
\n\t\t);\n\t}\n}\n\nconst projector = new (ProjectorMixin(HelloWorld))();\nprojector.append();\n"; diff --git a/support/grunt/patches/worker-proxy.js.patch b/support/grunt/patches/worker-proxy.js.patch index bf50c7d..b494877 100644 --- a/support/grunt/patches/worker-proxy.js.patch +++ b/support/grunt/patches/worker-proxy.js.patch @@ -9,7 +9,7 @@ index 1f0d4db..ec31930 100644 - baseUrl: '../../../node_modules/monaco-editor/min/' + baseUrl: './../node_modules/monaco-editor/min/' }; --importScripts('../../../node_modules/monaco-editor/min/vs/base/worker/workerMain.js'); -+importScripts('./../node_modules/monaco-editor/min/vs/base/worker/workerMain.js'); +-self.importScripts('../../../node_modules/monaco-editor/min/vs/base/worker/workerMain.js'); ++self.importScripts('./../node_modules/monaco-editor/min/vs/base/worker/workerMain.js'); //# sourceMappingURL=worker-proxy.js.map \ No newline at end of file diff --git a/tests/support/monacoStub.ts b/tests/support/monacoStub.ts index 90374af..83348f9 100644 --- a/tests/support/monacoStub.ts +++ b/tests/support/monacoStub.ts @@ -7,9 +7,10 @@ export const extraLibMap = new Map(); export const compilerOptionsDiagnostics: Diagnostic[] = []; export const outputFilesMap = new Map(); +export const modelMap = new Map(); export const createModelSpy = sandbox.spy((text: string, language: string, filename: string) => { - return { + const model = { getValue: sandbox.spy(() => { return text; }), @@ -20,9 +21,15 @@ export const createModelSpy = sandbox.spy((text: string, language: string, filen } } }; + + modelMap.set(`file:///${filename}`, model); + return model; +}); +export const getModelSpy = sandbox.spy((uri: string) => { + return modelMap.get(uri); }); export const uriFileSpy = sandbox.spy((filename: string) => { - return 'file:///' + filename; + return `file:///${filename}`; }); export const addExtraLibSpy = sandbox.spy((text: string, filename: string) => { if (extraLibMap.has(filename)) { @@ -78,6 +85,12 @@ export function restoreSandbox() { extraLibMap.clear(); } +enum JsxEmit { + None = 0, + Preserve = 1, + React = 2 +} + enum ModuleKind { None = 0, CommonJS = 1, @@ -104,11 +117,13 @@ enum ScriptTarget { export default { editor: { - createModel: createModelSpy + createModel: createModelSpy, + getModel: getModelSpy }, languages: { typescript: { getTypeScriptWorker: getTypeScriptWorkerSpy, + JsxEmit, ModuleKind, ModuleResolutionKind, ScriptTarget, diff --git a/tests/support/projectStub.ts b/tests/support/projectStub.ts new file mode 100644 index 0000000..8330f4b --- /dev/null +++ b/tests/support/projectStub.ts @@ -0,0 +1,32 @@ +import Map from '@dojo/shim/Map'; +import { ProjectFile } from '@dojo/cli-export-project/interfaces/project.json'; +import { Project, Program } from '../../src/project'; + +export const projectFilesMap = new Map(); + +export function reset() { + projectFilesMap.clear(); +} + +const project: Project = { + addFile(file: ProjectFile) { + projectFilesMap.set(file.name, file); + return Promise.resolve(); + }, + includes(filename: string) { + return projectFilesMap.has(filename); + }, + getFileModel(filename: string) { + return {}; + }, + getProgram() { + return Promise.resolve({ + css: [], + dependencies: {}, + html: '', + modules: {} + } as Program); + } +} as any; + +export default project; diff --git a/tests/unit/LiveCodeController.ts b/tests/unit/LiveCodeController.ts new file mode 100644 index 0000000..c712667 --- /dev/null +++ b/tests/unit/LiveCodeController.ts @@ -0,0 +1,416 @@ +const { beforeEach, describe, it } = intern.getInterface('bdd'); +const { assert } = intern.getPlugin('chai'); +import { compareProperty } from '@dojo/test-extras/support/d'; +import harness from '@dojo/test-extras/harness'; +import { v, w } from '@dojo/widget-core/d'; + +import LiveCodeController, { editorMap } from '../../src/LiveCodeController'; +import LiveCodeExample from '../../src/LiveCodeExample'; +import WidgetBase from '@dojo/widget-core/WidgetBase'; +import project, { reset, projectFilesMap } from '../support/projectStub'; + +class TestWidget extends WidgetBase { + protected render() { + return v('div'); + } +} + +function pause(timeout: number = 10): Promise { + return new Promise((resolve) => { + setTimeout(() => { + resolve(); + }, timeout); + }); +} + +const compareModel = compareProperty((value: any) => { + return value && typeof value === 'object'; +}); + +const compareProgram = compareProperty((value: any) => { + return value && typeof value === 'object'; +}); + +describe('LiveCodeController', () => { + beforeEach(() => { + editorMap.clear(); + reset(); + }); + + it('should render with empty children array', () => { + const widget = harness(LiveCodeController); + widget.setProperties({ + project + }); + widget.setChildren([]); + widget.expectRender([]); + widget.destroy(); + }); + + it('should render non LiveCodeExample children', () => { + const widget = harness(LiveCodeController); + widget.setProperties({ + project + }); + widget.setChildren([ + v('div'), + w(TestWidget, {}) + ]); + widget.expectRender([ + v('div'), + w(TestWidget, {}) + ]); + widget.destroy(); + }); + + it('should mixin proprties to LiveCodeExample children', () => { + const widget = harness(LiveCodeController); + widget.setProperties({ + project + }); + widget.setChildren([ + w(LiveCodeExample, { + description: 'foo bar baz', + id: 'foobarbaz', + title: 'Foo Bar Baz' + }) + ]); + widget.expectRender([ + w(LiveCodeExample, { + changeInterval: 2000, + description: 'foo bar baz', + id: 'foobarbaz', + model: undefined, + program: undefined, + runnerSrc: undefined, + title: 'Foo Bar Baz', + onDirty: widget.listener + }) + ]); + widget.destroy(); + }); + + it('should pass through the change interval to LiveCodeExample children', () => { + const widget = harness(LiveCodeController); + widget.setProperties({ + changeInterval: 1500, + project + }); + widget.setChildren([ + w(LiveCodeExample, { + description: 'foo bar baz', + id: 'foobarbaz', + title: 'Foo Bar Baz' + }) + ]); + widget.expectRender([ + w(LiveCodeExample, { + changeInterval: 1500, + description: 'foo bar baz', + id: 'foobarbaz', + model: undefined, + program: undefined, + runnerSrc: undefined, + title: 'Foo Bar Baz', + onDirty: widget.listener + }) + ]); + widget.destroy(); + }); + + it('should pass through the runner source to LiveCodeExample children', () => { + const widget = harness(LiveCodeController); + widget.setProperties({ + project, + runnerSrc: './foobar.html' + }); + widget.setChildren([ + w(LiveCodeExample, { + description: 'foo bar baz', + id: 'foobarbaz', + title: 'Foo Bar Baz' + }) + ]); + widget.expectRender([ + w(LiveCodeExample, { + changeInterval: 2000, + description: 'foo bar baz', + id: 'foobarbaz', + model: undefined, + program: undefined, + runnerSrc: './foobar.html', + title: 'Foo Bar Baz', + onDirty: widget.listener + }) + ]); + widget.destroy(); + }); + + it('should create a project file with appropriate text from LiveCodeExample', async () => { + const widget = harness(LiveCodeController); + widget.setProperties({ project }); + widget.setChildren([ + w(LiveCodeExample, { + description: 'foo bar baz', + id: 'foobarbaz', + title: 'Foo Bar Baz' + }, [ + `console.log('Hello World!);` + ]) + ]); + widget.expectRender([ + w(LiveCodeExample, { + changeInterval: 2000, + description: 'foo bar baz', + id: 'foobarbaz', + model: undefined, + program: undefined, + runnerSrc: undefined, + title: 'Foo Bar Baz', + onDirty: widget.listener + }, [ + `console.log('Hello World!);` + ]) + ]); + assert.isTrue(projectFilesMap.has('./src/foobarbaz.ts'), 'should have added expected file'); + assert.strictEqual(projectFilesMap.size, 1, 'should only create one file'); + widget.setChildren([ + w(LiveCodeExample, { + description: 'foo bar baz', + id: 'foobarbaz', + title: 'Foo Bar Baz' + }, [ + `console.log('Hello World!);` + ]) + ]); + // because the program compilation resolves out of turn, and there is no way to make it sync + // we have to inject a pause into tests to get the render to properly work + await pause(); + widget.expectRender([ + w(LiveCodeExample, { + changeInterval: 2000, + description: 'foo bar baz', + id: 'foobarbaz', + model: compareModel as any, + program: compareProgram as any, + runnerSrc: undefined, + title: 'Foo Bar Baz', + onDirty: widget.listener + }, [ + `console.log('Hello World!);` + ]) + ]); + widget.destroy(); + }); + + it('should create a project file with appropriate text and extension from LiveCodeExample when using TSX', async () => { + const widget = harness(LiveCodeController); + widget.setProperties({ project }); + widget.setChildren([ + w(LiveCodeExample, { + description: 'foo bar baz', + id: 'foobarbaz', + title: 'Foo Bar Baz', + tsx: true + }, [ + `console.log('Hello World!);` + ]) + ]); + widget.expectRender([ + w(LiveCodeExample, { + changeInterval: 2000, + description: 'foo bar baz', + id: 'foobarbaz', + model: undefined, + program: undefined, + runnerSrc: undefined, + title: 'Foo Bar Baz', + tsx: true, + onDirty: widget.listener + }, [ + `console.log('Hello World!);` + ]) + ]); + assert.isTrue(projectFilesMap.has('./src/foobarbaz.tsx')); + widget.setChildren([ + w(LiveCodeExample, { + description: 'foo bar baz', + id: 'foobarbaz', + title: 'Foo Bar Baz', + tsx: true + }, [ + `console.log('Hello World!);` + ]) + ]); + await pause(); + widget.expectRender([ + w(LiveCodeExample, { + changeInterval: 2000, + description: 'foo bar baz', + id: 'foobarbaz', + model: compareModel as any, + program: compareProgram as any, + runnerSrc: undefined, + title: 'Foo Bar Baz', + tsx: true, + onDirty: widget.listener + }, [ + `console.log('Hello World!);` + ]) + ]); + widget.destroy(); + }); + + it('should only set program on dirty children', async () => { + const widget = harness(LiveCodeController); + widget.setProperties({ project }); + widget.setChildren([ + w(LiveCodeExample, { + description: 'foo bar baz', + id: 'foobarbaz', + key: '1', + title: 'Foo Bar Baz' + }, [ + `console.log('Hello World!');` + ]), + w(LiveCodeExample, { + description: 'qat qux', + id: 'qatqux', + key: '2', + title: 'Quack Quack' + }, [ + `console.log('quack quack');` + ]) + ]); + widget.expectRender([ + w(LiveCodeExample, { + changeInterval: 2000, + description: 'foo bar baz', + id: 'foobarbaz', + key: '1', + model: undefined, + program: undefined, + runnerSrc: undefined, + title: 'Foo Bar Baz', + onDirty: widget.listener + }, [ + `console.log('Hello World!');` + ]), + w(LiveCodeExample, { + changeInterval: 2000, + description: 'qat qux', + id: 'qatqux', + key: '2', + model: undefined, + program: undefined, + runnerSrc: undefined, + title: 'Quack Quack', + onDirty: widget.listener + }, [ + `console.log('quack quack');` + ]) + ]); + assert.isTrue(projectFilesMap.has('./src/foobarbaz.ts'), 'should have added expected file'); + assert.isTrue(projectFilesMap.has('./src/qatqux.ts'), 'should have added expected file'); + assert.strictEqual(projectFilesMap.size, 2, 'should only created two files'); + widget.setChildren([ + w(LiveCodeExample, { + description: 'foo bar baz', + id: 'foobarbaz', + key: '1', + title: 'Foo Bar Baz' + }, [ + `console.log('Hello World!');` + ]), + w(LiveCodeExample, { + description: 'qat qux', + id: 'qatqux', + key: '2', + title: 'Quack Quack' + }, [ + `console.log('quack quack');` + ]) + ]); + await pause(); + widget.expectRender([ + w(LiveCodeExample, { + changeInterval: 2000, + description: 'foo bar baz', + id: 'foobarbaz', + key: '1', + model: compareModel as any, + program: compareProgram as any, + runnerSrc: undefined, + title: 'Foo Bar Baz', + onDirty: widget.listener + }, [ + `console.log('Hello World!');` + ]), + w(LiveCodeExample, { + changeInterval: 2000, + description: 'qat qux', + id: 'qatqux', + key: '2', + model: compareModel as any, + program: compareProgram as any, + runnerSrc: undefined, + title: 'Quack Quack', + onDirty: widget.listener + }, [ + `console.log('quack quack');` + ]) + ]); + // TODO: https://github.com/dojo/test-extras/issues/88 + const render: any[] = widget.getRender() as any; + // TODO: https://github.com/dojo/test-extras/issues/87 + render[0].properties.onDirty('foobarbaz'); + widget.setChildren([ + w(LiveCodeExample, { + description: 'foo bar baz', + id: 'foobarbaz', + key: '1', + title: 'Foo Bar Baz' + }, [ + `console.log('Hello World!');` + ]), + w(LiveCodeExample, { + description: 'qat qux', + id: 'qatqux', + key: '2', + title: 'Quack Quack' + }, [ + `console.log('quack quack');` + ]) + ]); + await pause(); + widget.expectRender([ + w(LiveCodeExample, { + changeInterval: 2000, + description: 'foo bar baz', + id: 'foobarbaz', + key: '1', + model: compareModel as any, + program: compareProgram as any, + runnerSrc: undefined, + title: 'Foo Bar Baz', + onDirty: widget.listener + }, [ + `console.log('Hello World!');` + ]), + w(LiveCodeExample, { + changeInterval: 2000, + description: 'qat qux', + id: 'qatqux', + key: '2', + model: compareModel as any, + program: undefined, + runnerSrc: undefined, + title: 'Quack Quack', + onDirty: widget.listener + }, [ + `console.log('quack quack');` + ]) + ]); + widget.destroy(); + }); +}); diff --git a/tests/unit/LiveCodeExample.ts b/tests/unit/LiveCodeExample.ts new file mode 100644 index 0000000..aa3d923 --- /dev/null +++ b/tests/unit/LiveCodeExample.ts @@ -0,0 +1,49 @@ +const { describe, it } = intern.getInterface('bdd'); +import harness from '@dojo/test-extras/harness'; +import { v, w } from '@dojo/widget-core/d'; + +import LiveCodeExample from '../../src/LiveCodeExample'; +import * as css from '../../src/styles/livecodeexample.m.css'; + +import LiveEditor from '../../src/widgets/LiveEditor'; + +describe('LiveCodeExample', () => { + it('should render properly', () => { + const widget = harness(LiveCodeExample); + widget.setProperties({ + description: 'foo bar baz', + id: 'foobarbaz', + title: 'Foo Bar Baz' + }); + widget.expectRender(v('div', { + classes: [ css.root, css.rootFixed ], + id: 'foobarbaz', + key: 'root' + }, [ + v('div', { + classes: css.left, + key: 'left' + }, [ + v('h1', {}, [ 'Foo Bar Baz' ]), + v('div', { + classes: css.description + }, [ + v('p', {}, [ 'foo bar baz' ]) + ]) + ]), + v('div', { + classes: css.right, + key: 'right' + }, [ + w(LiveEditor, { + changeInterval: 1000, + id: 'foobarbaz', + model: undefined, + program: undefined, + runnerSrc: undefined, + onDirty: widget.listener + }) + ]) + ])); + }); +}); diff --git a/tests/unit/all.ts b/tests/unit/all.ts index 2cc6c68..ca83a60 100644 --- a/tests/unit/all.ts +++ b/tests/unit/all.ts @@ -1,3 +1,5 @@ +import './LiveCodeController'; +import './LiveCodeExample'; import './main'; import './project'; import './routing'; diff --git a/tests/unit/project.ts b/tests/unit/project.ts index 7255a1f..fe7219a 100644 --- a/tests/unit/project.ts +++ b/tests/unit/project.ts @@ -92,8 +92,11 @@ registerSuite('project', { async 'load'() { await project.load('project.json'); assert.isTrue(setCompilerOptionsSpy.called); - assert.deepEqual(setCompilerOptionsSpy.lastCall.args[0], { experimentalDecorators: undefined, + assert.deepEqual(setCompilerOptionsSpy.lastCall.args[0], { + experimentalDecorators: undefined, lib: undefined, + jsx: 0, + jsxFactory: undefined, noImplicitAny: undefined, noImplicitThis: undefined, noImplicitReturns: undefined, diff --git a/tests/unit/widgets/LiveEditor.ts b/tests/unit/widgets/LiveEditor.ts new file mode 100644 index 0000000..37e3cf4 --- /dev/null +++ b/tests/unit/widgets/LiveEditor.ts @@ -0,0 +1,100 @@ +const { describe, it } = intern.getInterface('bdd'); +import harness from '@dojo/test-extras/harness'; +import { v, w } from '@dojo/widget-core/d'; + +import LiveEditor from '../../../src/widgets/LiveEditor'; +import * as css from '../../../src/styles/liveeditor.m.css'; +import Editor from '../../../src/widgets/Editor'; +import Runner from '../../../src/widgets/Runner'; + +describe('widgets/LiveEditor', () => { + it('should render just with an "id" property', () => { + const widget = harness(LiveEditor); + widget.setProperties({ + id: 'foobar' + }); + widget.expectRender(v('div', { + classes: [ css.root, css.rootFixed ] + }, [ + v('div', { + classes: css.left, + key: 'left' + }, [ + v('div', {}, [ 'Live Editor' ]), + w(Editor, { + changeInterval: 1000, + key: 'editor', + model: undefined, + options: { + lineNumbers: 'off', + minimap: { enabled: false } + }, + onDirty: undefined + }) + ]), + v('div', { + classes: css.right, + key: 'right' + }, [ + v('div', {}, [ 'Result' ]), + w(Runner, { + key: 'runner', + main: 'src/foobar', + src: undefined + }) + ]) + ])); + }); + + it('should render with all properties supplied', () => { + const widget = harness(LiveEditor); + widget.setProperties({ + changeInterval: 100, + id: 'foobar', + model: {} as any, + program: { + css: [], + dependencies: {}, + html: '', + modules: {} + }, + runnerSrc: 'foobar.html', + onDirty() { } + }); + widget.expectRender(v('div', { + classes: [ css.root, css.rootFixed ] + }, [ + v('div', { + classes: css.left, + key: 'left' + }, [ + v('div', {}, [ 'Live Editor' ]), + w(Editor, { + changeInterval: 100, + key: 'editor', + model: {} as any, + options: { + lineNumbers: 'off', + minimap: { enabled: false } + }, + onDirty: widget.listener + }) + ]), + v('div', { + classes: css.right, + key: 'right' + }, [ + v('div', {}, [ 'Result' ]), + w(Runner, { + key: 'runner', + main: 'src/foobar', + src: 'foobar.html', + css: [], + dependencies: {}, + html: '', + modules: {} + }) + ]) + ])); + }); +}); diff --git a/tests/unit/widgets/all.ts b/tests/unit/widgets/all.ts index 633d70e..330d790 100644 --- a/tests/unit/widgets/all.ts +++ b/tests/unit/widgets/all.ts @@ -1,6 +1,7 @@ import './ActionBar'; import './Editor'; import './IconCss'; +import './LiveEditor'; import './Runner'; import './ScrollBar'; import './Tablist';