hljs.registerLanguage("typescript",(()=>{"use strict" ;const e="[A-Za-z$_][0-9A-Za-z$_]*",n=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],a=["true","false","null","undefined","NaN","Infinity"],s=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["arguments","this","super","console","window","document","localStorage","module","global"],["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer"],["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"]) ;function t(e){return i("(?=",e,")")}function i(...e){return e.map((e=>{ return(n=e)?"string"==typeof n?n:n.source:null;var n})).join("")}return r=>{ const c={$pattern:e, keyword:n.concat(["type","namespace","typedef","interface","public","private","protected","implements","declare","abstract","readonly"]).join(" "), literal:a.join(" "), built_in:s.concat(["any","void","number","boolean","string","object","never","enum"]).join(" ") },o={className:"meta",begin:"@[A-Za-z$_][0-9A-Za-z$_]*"},l=(e,n,a)=>{ const s=e.contains.findIndex((e=>e.label===n)) ;if(-1===s)throw Error("can not find mode to replace");e.contains.splice(s,1,a) },b=(r=>{const c=e,o={begin:/<[A-Za-z0-9\\._:-]+/, end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,n)=>{ const a=e[0].length+e.index,s=e.input[a];"<"!==s?">"===s&&(((e,{after:n})=>{ const a="", returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{ begin:r.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0 },{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:l,contains:f}]}] },{begin:/,/,relevance:0},{className:"",begin:/\s/,end:/\s*/,skip:!0},{ variants:[{begin:"<>",end:""},{begin:o.begin,"on:begin":o.isTrulyOpeningTag, end:o.end}],subLanguage:"xml",contains:[{begin:o.begin,end:o.end,skip:!0, contains:["self"]}]}],relevance:0},{className:"function", beginKeywords:"function",end:/[{;]/,excludeEnd:!0,keywords:l, contains:["self",r.inherit(r.TITLE_MODE,{begin:c}),A],illegal:/%/},{ beginKeywords:"while if switch catch for"},{className:"function", begin:r.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\))*[^()]*\\))*[^()]*\\)\\s*\\{", returnBegin:!0,contains:[A,r.inherit(r.TITLE_MODE,{begin:c})]},{variants:[{ begin:"\\."+c},{begin:"\\$"+c}],relevance:0},{className:"class", beginKeywords:"class",end:/[{;=]/,excludeEnd:!0,illegal:/[:"[\]]/,contains:[{ beginKeywords:"extends"},r.UNDERSCORE_TITLE_MODE]},{begin:/\b(?=constructor)/, end:/[{;]/,excludeEnd:!0,contains:[r.inherit(r.TITLE_MODE,{begin:c}),"self",A] },{begin:"(get|set)\\s+(?="+c+"\\()",end:/\{/,keywords:"get set", contains:[r.inherit(r.TITLE_MODE,{begin:c}),{begin:/\(\)/},A]},{begin:/\$[(.]/}] }})(r) ;return Object.assign(b.keywords,c),b.exports.PARAMS_CONTAINS.push(o),b.contains=b.contains.concat([o,{ beginKeywords:"namespace",end:/\{/,excludeEnd:!0},{beginKeywords:"interface", end:/\{/,excludeEnd:!0,keywords:"interface extends" }]),l(b,"shebang",r.SHEBANG()),l(b,"use_strict",{className:"meta",relevance:10, begin:/^\s*['"]use strict['"]/ }),b.contains.find((e=>"function"===e.className)).relevance=0,Object.assign(b,{ name:"TypeScript",aliases:["ts"]}),b}})());