@sableclient/sable-call-embedded 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. package/LICENSE-AGPL-3.0 +661 -0
  2. package/LICENSE-COMMERCIAL +6 -0
  3. package/README.md +14 -0
  4. package/dist/assets/IndexedDBWorker-Dgn5IQFp.js +25 -0
  5. package/dist/assets/IndexedDBWorker-Dgn5IQFp.js.map +1 -0
  6. package/dist/assets/baduntss-Ca1ZuBEK.ogg +0 -0
  7. package/dist/assets/baduntss-DOe0oFuS.mp3 +0 -0
  8. package/dist/assets/call_declined-1jWRbd4p.mp3 +0 -0
  9. package/dist/assets/call_declined-C6gHsCGH.ogg +0 -0
  10. package/dist/assets/call_timeout-BCxXxRD8.mp3 +0 -0
  11. package/dist/assets/call_timeout-DPKAj6sz.ogg +0 -0
  12. package/dist/assets/cat-4r_NkDcK.ogg +0 -0
  13. package/dist/assets/cat-Dd8bv_2W.mp3 +0 -0
  14. package/dist/assets/clap-AxCMZLTd.ogg +0 -0
  15. package/dist/assets/clap-Dxm5qGyl.mp3 +0 -0
  16. package/dist/assets/crickets-CcwrRdbq.mp3 +0 -0
  17. package/dist/assets/crickets-DUJdcuUa.ogg +0 -0
  18. package/dist/assets/cs-app-Du_5mVg3.json +236 -0
  19. package/dist/assets/da-app-BBz-lePm.json +236 -0
  20. package/dist/assets/de-app-DjOuqT-j.json +237 -0
  21. package/dist/assets/deer-91r1Gyrx.mp3 +0 -0
  22. package/dist/assets/deer-DPSlVch4.ogg +0 -0
  23. package/dist/assets/dog-BoQdnF-w.mp3 +0 -0
  24. package/dist/assets/dog-CxIWtkNX.ogg +0 -0
  25. package/dist/assets/el-app-BBr3LLTK.json +122 -0
  26. package/dist/assets/en-app-D4wTuGKD.json +261 -0
  27. package/dist/assets/es-app-Q3c7lmEj.json +88 -0
  28. package/dist/assets/et-app-DLvuR7m2.json +234 -0
  29. package/dist/assets/fi-app-tnO3DMdi.json +224 -0
  30. package/dist/assets/fr-app-BxTYbDfK.json +111 -0
  31. package/dist/assets/generic-BBbS3Wph.ogg +0 -0
  32. package/dist/assets/generic-BFeSb6fL.mp3 +0 -0
  33. package/dist/assets/id-app-BEz8ptLJ.json +223 -0
  34. package/dist/assets/inconsolata-latin-400-normal-DTZQ6lD6.woff2 +0 -0
  35. package/dist/assets/inconsolata-latin-400-normal-HYADljCo.woff +0 -0
  36. package/dist/assets/inconsolata-latin-700-normal-ByjKuJjN.woff2 +0 -0
  37. package/dist/assets/inconsolata-latin-700-normal-DzgUY3Rl.woff +0 -0
  38. package/dist/assets/inconsolata-latin-ext-400-normal-BaHVOdFB.woff2 +0 -0
  39. package/dist/assets/inconsolata-latin-ext-400-normal-yvPjCxxx.woff +0 -0
  40. package/dist/assets/inconsolata-latin-ext-700-normal-D0Kpgs_9.woff2 +0 -0
  41. package/dist/assets/inconsolata-latin-ext-700-normal-Dlt-daqV.woff +0 -0
  42. package/dist/assets/inconsolata-vietnamese-400-normal-ByiM2lek.woff +0 -0
  43. package/dist/assets/inconsolata-vietnamese-400-normal-DfC_iMic.woff2 +0 -0
  44. package/dist/assets/inconsolata-vietnamese-700-normal-DLCFFAUf.woff +0 -0
  45. package/dist/assets/inconsolata-vietnamese-700-normal-DuasYmn8.woff2 +0 -0
  46. package/dist/assets/index-BOka8551.js +4 -0
  47. package/dist/assets/index-BOka8551.js.map +1 -0
  48. package/dist/assets/index-BxK4r5m1.css +1 -0
  49. package/dist/assets/index-CSLbyoDR.js +3 -0
  50. package/dist/assets/index-CSLbyoDR.js.map +1 -0
  51. package/dist/assets/index-zdC0P6j0.js +300 -0
  52. package/dist/assets/index-zdC0P6j0.js.map +1 -0
  53. package/dist/assets/inter-cyrillic-400-normal-HOLc17fK.woff +0 -0
  54. package/dist/assets/inter-cyrillic-400-normal-obahsSVq.woff2 +0 -0
  55. package/dist/assets/inter-cyrillic-500-normal-BasfLYem.woff2 +0 -0
  56. package/dist/assets/inter-cyrillic-500-normal-CxZf_p3X.woff +0 -0
  57. package/dist/assets/inter-cyrillic-600-normal-4D_pXhcN.woff +0 -0
  58. package/dist/assets/inter-cyrillic-600-normal-CWCymEST.woff2 +0 -0
  59. package/dist/assets/inter-cyrillic-700-normal-CjBOestx.woff2 +0 -0
  60. package/dist/assets/inter-cyrillic-700-normal-DrXBdSj3.woff +0 -0
  61. package/dist/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2 +0 -0
  62. package/dist/assets/inter-cyrillic-ext-400-normal-DQukG94-.woff +0 -0
  63. package/dist/assets/inter-cyrillic-ext-500-normal-B0yAr1jD.woff2 +0 -0
  64. package/dist/assets/inter-cyrillic-ext-500-normal-BmqWE9Dz.woff +0 -0
  65. package/dist/assets/inter-cyrillic-ext-600-normal-Bcila6Z-.woff +0 -0
  66. package/dist/assets/inter-cyrillic-ext-600-normal-Dfes3d0z.woff2 +0 -0
  67. package/dist/assets/inter-cyrillic-ext-700-normal-BjwYoWNd.woff2 +0 -0
  68. package/dist/assets/inter-cyrillic-ext-700-normal-LO58E6JB.woff +0 -0
  69. package/dist/assets/inter-greek-400-normal-B4URO6DV.woff2 +0 -0
  70. package/dist/assets/inter-greek-400-normal-q2sYcFCs.woff +0 -0
  71. package/dist/assets/inter-greek-500-normal-BIZE56-Y.woff2 +0 -0
  72. package/dist/assets/inter-greek-500-normal-Xzm54t5V.woff +0 -0
  73. package/dist/assets/inter-greek-600-normal-BZpKdvQh.woff +0 -0
  74. package/dist/assets/inter-greek-600-normal-plRanbMR.woff2 +0 -0
  75. package/dist/assets/inter-greek-700-normal-BUv2fZ6O.woff +0 -0
  76. package/dist/assets/inter-greek-700-normal-C3JjAnD8.woff2 +0 -0
  77. package/dist/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2 +0 -0
  78. package/dist/assets/inter-greek-ext-400-normal-KugGGMne.woff +0 -0
  79. package/dist/assets/inter-greek-ext-500-normal-2j5mBUwD.woff +0 -0
  80. package/dist/assets/inter-greek-ext-500-normal-C4iEst2y.woff2 +0 -0
  81. package/dist/assets/inter-greek-ext-600-normal-B8X0CLgF.woff +0 -0
  82. package/dist/assets/inter-greek-ext-600-normal-DRtmH8MT.woff2 +0 -0
  83. package/dist/assets/inter-greek-ext-700-normal-BoQ6DsYi.woff +0 -0
  84. package/dist/assets/inter-greek-ext-700-normal-qfdV9bQt.woff2 +0 -0
  85. package/dist/assets/inter-latin-400-normal-C38fXH4l.woff2 +0 -0
  86. package/dist/assets/inter-latin-400-normal-CyCys3Eg.woff +0 -0
  87. package/dist/assets/inter-latin-500-normal-BL9OpVg8.woff +0 -0
  88. package/dist/assets/inter-latin-500-normal-Cerq10X2.woff2 +0 -0
  89. package/dist/assets/inter-latin-600-normal-CiBQ2DWP.woff +0 -0
  90. package/dist/assets/inter-latin-600-normal-LgqL8muc.woff2 +0 -0
  91. package/dist/assets/inter-latin-700-normal-BLAVimhd.woff +0 -0
  92. package/dist/assets/inter-latin-700-normal-Yt3aPRUw.woff2 +0 -0
  93. package/dist/assets/inter-latin-ext-400-normal-77YHD8bZ.woff +0 -0
  94. package/dist/assets/inter-latin-ext-400-normal-C1nco2VV.woff2 +0 -0
  95. package/dist/assets/inter-latin-ext-500-normal-BxGbmqWO.woff +0 -0
  96. package/dist/assets/inter-latin-ext-500-normal-CV4jyFjo.woff2 +0 -0
  97. package/dist/assets/inter-latin-ext-600-normal-CIVaiw4L.woff +0 -0
  98. package/dist/assets/inter-latin-ext-600-normal-D2bJ5OIk.woff2 +0 -0
  99. package/dist/assets/inter-latin-ext-700-normal-Ca8adRJv.woff2 +0 -0
  100. package/dist/assets/inter-latin-ext-700-normal-TidjK2hL.woff +0 -0
  101. package/dist/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff +0 -0
  102. package/dist/assets/inter-vietnamese-400-normal-DMkecbls.woff2 +0 -0
  103. package/dist/assets/inter-vietnamese-500-normal-DOriooB6.woff2 +0 -0
  104. package/dist/assets/inter-vietnamese-500-normal-mJboJaSs.woff +0 -0
  105. package/dist/assets/inter-vietnamese-600-normal-BuLX-rYi.woff +0 -0
  106. package/dist/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2 +0 -0
  107. package/dist/assets/inter-vietnamese-700-normal-BZaoP0fm.woff +0 -0
  108. package/dist/assets/inter-vietnamese-700-normal-DlLaEgI2.woff2 +0 -0
  109. package/dist/assets/it-app-Cik25Qgd.json +215 -0
  110. package/dist/assets/ja-app-Cp_00ujI.json +123 -0
  111. package/dist/assets/join_call-DlMV9nHk.ogg +0 -0
  112. package/dist/assets/join_call-dEJCP2wD.mp3 +0 -0
  113. package/dist/assets/left_call-BbqmRgnC.mp3 +0 -0
  114. package/dist/assets/left_call-C7NMl6WI.ogg +0 -0
  115. package/dist/assets/lightbulb-BIeJtAR_.ogg +0 -0
  116. package/dist/assets/lightbulb-BrnY00qi.mp3 +0 -0
  117. package/dist/assets/livekit-client.e2ee.worker-Bmrtztct.js.map +1 -0
  118. package/dist/assets/lv-app-D-ZV3Ytk.json +222 -0
  119. package/dist/assets/matrix-sdk-crypto-wasm-BsWSMcLv.js +3 -0
  120. package/dist/assets/matrix-sdk-crypto-wasm-BsWSMcLv.js.map +1 -0
  121. package/dist/assets/matrix_sdk_crypto_wasm_bg-DU_51VO6.wasm +0 -0
  122. package/dist/assets/pako.esm-Cf42LiW4.js +2 -0
  123. package/dist/assets/pako.esm-Cf42LiW4.js.map +1 -0
  124. package/dist/assets/party-BZPeTgC3.mp3 +0 -0
  125. package/dist/assets/party-D7rIOhAQ.ogg +0 -0
  126. package/dist/assets/pl-app-CUkXVSZk.json +221 -0
  127. package/dist/assets/polyfill-force-DGhxcQMk.js +3 -0
  128. package/dist/assets/polyfill-force-DGhxcQMk.js.map +1 -0
  129. package/dist/assets/polyfill-force-DSyAwg73.js +2 -0
  130. package/dist/assets/polyfill-force-DSyAwg73.js.map +1 -0
  131. package/dist/assets/raise_hand-Bzqn65WB.mp3 +0 -0
  132. package/dist/assets/raise_hand-CUbxEnt9.ogg +0 -0
  133. package/dist/assets/ringtone-B-nJXbbw.ogg +0 -0
  134. package/dist/assets/ringtone-B2csBdU4.mp3 +0 -0
  135. package/dist/assets/ro-app-CdYgKCOW.json +206 -0
  136. package/dist/assets/rock-BVCJXNC-.ogg +0 -0
  137. package/dist/assets/rock-CHdnB31m.mp3 +0 -0
  138. package/dist/assets/ru-app-CIijOjFj.json +229 -0
  139. package/dist/assets/screen_share_started-DH3qxml5.mp3 +0 -0
  140. package/dist/assets/screen_share_started-IZDL-kAw.ogg +0 -0
  141. package/dist/assets/selfie_segmenter-DF05sdL4.tflite +0 -0
  142. package/dist/assets/sk-app-DaVEeQWZ.json +230 -0
  143. package/dist/assets/spa-DBidebYi.js +2 -0
  144. package/dist/assets/spa-DBidebYi.js.map +1 -0
  145. package/dist/assets/sv-app-DHLBEOTp.json +236 -0
  146. package/dist/assets/tr-app-Dk--6BpP.json +209 -0
  147. package/dist/assets/uk-app-DZD01h76.json +222 -0
  148. package/dist/assets/vision_wasm_internal-B105rqk5.js +2 -0
  149. package/dist/assets/vision_wasm_internal-cvmXinav.wasm +0 -0
  150. package/dist/assets/wave-Bzf1LSMH.mp3 +0 -0
  151. package/dist/assets/wave-FiiOzicp.ogg +0 -0
  152. package/dist/assets/zh-Hans-app-BY5jJGyr.json +133 -0
  153. package/dist/assets/zh-Hant-app-BV1LKS_j.json +114 -0
  154. package/dist/config.json +1 -0
  155. package/dist/index.html +1 -0
  156. package/package.json +14 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matrix-sdk-crypto-wasm-BsWSMcLv.js","sources":["../../node_modules/@matrix-org/matrix-sdk-crypto-wasm/pkg/matrix_sdk_crypto_wasm_bg.js","../../node_modules/@matrix-org/matrix-sdk-crypto-wasm/index.mjs"],"sourcesContent":["let wasm;\nexport function __wbg_set_wasm(val) {\n wasm = val;\n}\n\nfunction addToExternrefTable0(obj) {\n const idx = wasm.__externref_table_alloc();\n wasm.__wbindgen_externrefs.set(idx, obj);\n return idx;\n}\n\nfunction _assertClass(instance, klass) {\n if (!(instance instanceof klass)) {\n throw new Error(`expected instance of ${klass.name}`);\n }\n}\n\nconst CLOSURE_DTORS = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(state => state.dtor(state.a, state.b));\n\nfunction debugString(val) {\n // primitive types\n const type = typeof val;\n if (type == 'number' || type == 'boolean' || val == null) {\n return `${val}`;\n }\n if (type == 'string') {\n return `\"${val}\"`;\n }\n if (type == 'symbol') {\n const description = val.description;\n if (description == null) {\n return 'Symbol';\n } else {\n return `Symbol(${description})`;\n }\n }\n if (type == 'function') {\n const name = val.name;\n if (typeof name == 'string' && name.length > 0) {\n return `Function(${name})`;\n } else {\n return 'Function';\n }\n }\n // objects\n if (Array.isArray(val)) {\n const length = val.length;\n let debug = '[';\n if (length > 0) {\n debug += debugString(val[0]);\n }\n for(let i = 1; i < length; i++) {\n debug += ', ' + debugString(val[i]);\n }\n debug += ']';\n return debug;\n }\n // Test for built-in\n const builtInMatches = /\\[object ([^\\]]+)\\]/.exec(toString.call(val));\n let className;\n if (builtInMatches && builtInMatches.length > 1) {\n className = builtInMatches[1];\n } else {\n // Failed to match the standard '[object ClassName]'\n return toString.call(val);\n }\n if (className == 'Object') {\n // we're a user defined class or Object\n // JSON.stringify avoids problems with cycles, and is generally much\n // easier than looping through ownProperties of `val`.\n try {\n return 'Object(' + JSON.stringify(val) + ')';\n } catch (_) {\n return 'Object';\n }\n }\n // errors\n if (val instanceof Error) {\n return `${val.name}: ${val.message}\\n${val.stack}`;\n }\n // TODO we could test for more things here, like `Set`s and `Map`s.\n return className;\n}\n\nfunction getArrayJsValueFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n const mem = getDataViewMemory0();\n const result = [];\n for (let i = ptr; i < ptr + 4 * len; i += 4) {\n result.push(wasm.__wbindgen_externrefs.get(mem.getUint32(i, true)));\n }\n wasm.__externref_drop_slice(ptr, len);\n return result;\n}\n\nfunction getArrayU16FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint16ArrayMemory0().subarray(ptr / 2, ptr / 2 + len);\n}\n\nfunction getArrayU8FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);\n}\n\nlet cachedDataViewMemory0 = null;\nfunction getDataViewMemory0() {\n if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {\n cachedDataViewMemory0 = new DataView(wasm.memory.buffer);\n }\n return cachedDataViewMemory0;\n}\n\nfunction getStringFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return decodeText(ptr, len);\n}\n\nlet cachedUint16ArrayMemory0 = null;\nfunction getUint16ArrayMemory0() {\n if (cachedUint16ArrayMemory0 === null || cachedUint16ArrayMemory0.byteLength === 0) {\n cachedUint16ArrayMemory0 = new Uint16Array(wasm.memory.buffer);\n }\n return cachedUint16ArrayMemory0;\n}\n\nlet cachedUint8ArrayMemory0 = null;\nfunction getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n}\n\nfunction handleError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n const idx = addToExternrefTable0(e);\n wasm.__wbindgen_exn_store(idx);\n }\n}\n\nfunction isLikeNone(x) {\n return x === undefined || x === null;\n}\n\nfunction makeMutClosure(arg0, arg1, dtor, f) {\n const state = { a: arg0, b: arg1, cnt: 1, dtor };\n const real = (...args) => {\n\n // First up with a closure we increment the internal reference\n // count. This ensures that the Rust closure environment won't\n // be deallocated while we're invoking it.\n state.cnt++;\n const a = state.a;\n state.a = 0;\n try {\n return f(a, state.b, ...args);\n } finally {\n state.a = a;\n real._wbg_cb_unref();\n }\n };\n real._wbg_cb_unref = () => {\n if (--state.cnt === 0) {\n state.dtor(state.a, state.b);\n state.a = 0;\n CLOSURE_DTORS.unregister(state);\n }\n };\n CLOSURE_DTORS.register(real, state, state);\n return real;\n}\n\nfunction passArray8ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 1, 1) >>> 0;\n getUint8ArrayMemory0().set(arg, ptr / 1);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n\nfunction passArrayJsValueToWasm0(array, malloc) {\n const ptr = malloc(array.length * 4, 4) >>> 0;\n for (let i = 0; i < array.length; i++) {\n const add = addToExternrefTable0(array[i]);\n getDataViewMemory0().setUint32(ptr + 4 * i, add, true);\n }\n WASM_VECTOR_LEN = array.length;\n return ptr;\n}\n\nfunction passStringToWasm0(arg, malloc, realloc) {\n if (realloc === undefined) {\n const buf = cachedTextEncoder.encode(arg);\n const ptr = malloc(buf.length, 1) >>> 0;\n getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);\n WASM_VECTOR_LEN = buf.length;\n return ptr;\n }\n\n let len = arg.length;\n let ptr = malloc(len, 1) >>> 0;\n\n const mem = getUint8ArrayMemory0();\n\n let offset = 0;\n\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 0x7F) break;\n mem[ptr + offset] = code;\n }\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;\n const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);\n const ret = cachedTextEncoder.encodeInto(arg, view);\n\n offset += ret.written;\n ptr = realloc(ptr, len, offset, 1) >>> 0;\n }\n\n WASM_VECTOR_LEN = offset;\n return ptr;\n}\n\nfunction takeFromExternrefTable0(idx) {\n const value = wasm.__wbindgen_externrefs.get(idx);\n wasm.__externref_table_dealloc(idx);\n return value;\n}\n\nlet cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\ncachedTextDecoder.decode();\nconst MAX_SAFARI_DECODE_BYTES = 2146435072;\nlet numBytesDecoded = 0;\nfunction decodeText(ptr, len) {\n numBytesDecoded += len;\n if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) {\n cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n cachedTextDecoder.decode();\n numBytesDecoded = len;\n }\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n}\n\nconst cachedTextEncoder = new TextEncoder();\n\nif (!('encodeInto' in cachedTextEncoder)) {\n cachedTextEncoder.encodeInto = function (arg, view) {\n const buf = cachedTextEncoder.encode(arg);\n view.set(buf);\n return {\n read: arg.length,\n written: buf.length\n };\n }\n}\n\nlet WASM_VECTOR_LEN = 0;\n\nfunction wasm_bindgen__convert__closures_____invoke__h89fab44ead303aca(arg0, arg1, arg2) {\n wasm.wasm_bindgen__convert__closures_____invoke__h89fab44ead303aca(arg0, arg1, arg2);\n}\n\nfunction wasm_bindgen__convert__closures_____invoke__h22e674b566e32b64(arg0, arg1) {\n wasm.wasm_bindgen__convert__closures_____invoke__h22e674b566e32b64(arg0, arg1);\n}\n\nfunction wasm_bindgen__convert__closures_____invoke__h35b0a77e54c2db90(arg0, arg1, arg2) {\n const ret = wasm.wasm_bindgen__convert__closures_____invoke__h35b0a77e54c2db90(arg0, arg1, arg2);\n if (ret[1]) {\n throw takeFromExternrefTable0(ret[0]);\n }\n}\n\nfunction wasm_bindgen__convert__closures_____invoke__h8815fd477ac2dc7f(arg0, arg1, arg2, arg3) {\n wasm.wasm_bindgen__convert__closures_____invoke__h8815fd477ac2dc7f(arg0, arg1, arg2, arg3);\n}\n\nconst __wbindgen_enum_IdbRequestReadyState = [\"pending\", \"done\"];\n\nconst __wbindgen_enum_IdbTransactionMode = [\"readonly\", \"readwrite\", \"versionchange\", \"readwriteflush\", \"cleanup\"];\n\nconst AttachmentFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_attachment_free(ptr >>> 0, 1));\n\nconst BackupDecryptionKeyFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_backupdecryptionkey_free(ptr >>> 0, 1));\n\nconst BackupKeysFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_backupkeys_free(ptr >>> 0, 1));\n\nconst BackupSecretsBundleFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_backupsecretsbundle_free(ptr >>> 0, 1));\n\nconst Base64EncodedPkMessageFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_base64encodedpkmessage_free(ptr >>> 0, 1));\n\nconst BaseMigrationDataFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_basemigrationdata_free(ptr >>> 0, 1));\n\nconst CancelInfoFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_cancelinfo_free(ptr >>> 0, 1));\n\nconst CheckCodeFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_checkcode_free(ptr >>> 0, 1));\n\nconst CollectStrategyFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_collectstrategy_free(ptr >>> 0, 1));\n\nconst CrossSigningBootstrapRequestsFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_crosssigningbootstraprequests_free(ptr >>> 0, 1));\n\nconst CrossSigningKeyExportFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_crosssigningkeyexport_free(ptr >>> 0, 1));\n\nconst CrossSigningStatusFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_crosssigningstatus_free(ptr >>> 0, 1));\n\nconst Curve25519PublicKeyFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_curve25519publickey_free(ptr >>> 0, 1));\n\nconst Curve25519SecretKeyFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_curve25519secretkey_free(ptr >>> 0, 1));\n\nconst DecryptedRoomEventFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_decryptedroomevent_free(ptr >>> 0, 1));\n\nconst DecryptedToDeviceEventFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_decryptedtodeviceevent_free(ptr >>> 0, 1));\n\nconst DecryptionSettingsFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_decryptionsettings_free(ptr >>> 0, 1));\n\nconst DehydratedDeviceFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_dehydrateddevice_free(ptr >>> 0, 1));\n\nconst DehydratedDeviceKeyFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_dehydrateddevicekey_free(ptr >>> 0, 1));\n\nconst DehydratedDevicesFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_dehydrateddevices_free(ptr >>> 0, 1));\n\nconst DeviceFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_device_free(ptr >>> 0, 1));\n\nconst DeviceIdFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_deviceid_free(ptr >>> 0, 1));\n\nconst DeviceKeyFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_devicekey_free(ptr >>> 0, 1));\n\nconst DeviceKeyAlgorithmFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_devicekeyalgorithm_free(ptr >>> 0, 1));\n\nconst DeviceKeyIdFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_devicekeyid_free(ptr >>> 0, 1));\n\nconst DeviceListsFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_devicelists_free(ptr >>> 0, 1));\n\nconst EciesFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_ecies_free(ptr >>> 0, 1));\n\nconst Ed25519PublicKeyFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_ed25519publickey_free(ptr >>> 0, 1));\n\nconst Ed25519SignatureFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_ed25519signature_free(ptr >>> 0, 1));\n\nconst EmojiFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_emoji_free(ptr >>> 0, 1));\n\nconst EncryptedAttachmentFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_encryptedattachment_free(ptr >>> 0, 1));\n\nconst EncryptionInfoFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_encryptioninfo_free(ptr >>> 0, 1));\n\nconst EncryptionSettingsFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_encryptionsettings_free(ptr >>> 0, 1));\n\nconst EstablishedEciesFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_establishedecies_free(ptr >>> 0, 1));\n\nconst EventIdFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_eventid_free(ptr >>> 0, 1));\n\nconst IdentityKeysFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_identitykeys_free(ptr >>> 0, 1));\n\nconst InboundCreationResultFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_inboundcreationresult_free(ptr >>> 0, 1));\n\nconst InboundGroupSessionFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_inboundgroupsession_free(ptr >>> 0, 1));\n\nconst InvalidToDeviceEventFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_invalidtodeviceevent_free(ptr >>> 0, 1));\n\nconst KeysBackupRequestFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_keysbackuprequest_free(ptr >>> 0, 1));\n\nconst KeysClaimRequestFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_keysclaimrequest_free(ptr >>> 0, 1));\n\nconst KeysQueryRequestFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_keysqueryrequest_free(ptr >>> 0, 1));\n\nconst KeysUploadRequestFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_keysuploadrequest_free(ptr >>> 0, 1));\n\nconst MaybeSignatureFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_maybesignature_free(ptr >>> 0, 1));\n\nconst MegolmDecryptionErrorFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_megolmdecryptionerror_free(ptr >>> 0, 1));\n\nconst MegolmV1BackupKeyFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_megolmv1backupkey_free(ptr >>> 0, 1));\n\nconst MigrationFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_migration_free(ptr >>> 0, 1));\n\nconst OlmMachineFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_olmmachine_free(ptr >>> 0, 1));\n\nconst OtherUserIdentityFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_otheruseridentity_free(ptr >>> 0, 1));\n\nconst OutboundCreationResultFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_outboundcreationresult_free(ptr >>> 0, 1));\n\nconst OwnUserIdentityFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_ownuseridentity_free(ptr >>> 0, 1));\n\nconst PickledInboundGroupSessionFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_pickledinboundgroupsession_free(ptr >>> 0, 1));\n\nconst PickledSessionFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_pickledsession_free(ptr >>> 0, 1));\n\nconst PkDecryptionFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_pkdecryption_free(ptr >>> 0, 1));\n\nconst PkEncryptionFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_pkencryption_free(ptr >>> 0, 1));\n\nconst PkMessageFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_pkmessage_free(ptr >>> 0, 1));\n\nconst PlainTextToDeviceEventFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_plaintexttodeviceevent_free(ptr >>> 0, 1));\n\nconst PutDehydratedDeviceRequestFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_putdehydrateddevicerequest_free(ptr >>> 0, 1));\n\nconst QrFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_qr_free(ptr >>> 0, 1));\n\nconst QrCodeFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_qrcode_free(ptr >>> 0, 1));\n\nconst QrCodeDataFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_qrcodedata_free(ptr >>> 0, 1));\n\nconst QrCodeScanFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_qrcodescan_free(ptr >>> 0, 1));\n\nconst RehydratedDeviceFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_rehydrateddevice_free(ptr >>> 0, 1));\n\nconst RoomIdFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_roomid_free(ptr >>> 0, 1));\n\nconst RoomKeyCountsFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_roomkeycounts_free(ptr >>> 0, 1));\n\nconst RoomKeyImportResultFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_roomkeyimportresult_free(ptr >>> 0, 1));\n\nconst RoomKeyInfoFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_roomkeyinfo_free(ptr >>> 0, 1));\n\nconst RoomKeyWithheldInfoFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_roomkeywithheldinfo_free(ptr >>> 0, 1));\n\nconst RoomMessageRequestFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_roommessagerequest_free(ptr >>> 0, 1));\n\nconst RoomSettingsFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_roomsettings_free(ptr >>> 0, 1));\n\nconst SasFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_sas_free(ptr >>> 0, 1));\n\nconst SecretsBundleFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_secretsbundle_free(ptr >>> 0, 1));\n\nconst ServerNameFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_servername_free(ptr >>> 0, 1));\n\nconst ShieldStateFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_shieldstate_free(ptr >>> 0, 1));\n\nconst SignatureFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_signature_free(ptr >>> 0, 1));\n\nconst SignatureUploadRequestFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_signatureuploadrequest_free(ptr >>> 0, 1));\n\nconst SignatureVerificationFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_signatureverification_free(ptr >>> 0, 1));\n\nconst SignaturesFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_signatures_free(ptr >>> 0, 1));\n\nconst StoreHandleFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_storehandle_free(ptr >>> 0, 1));\n\nconst StoredRoomKeyBundleDataFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_storedroomkeybundledata_free(ptr >>> 0, 1));\n\nconst ToDeviceEncryptionInfoFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_todeviceencryptioninfo_free(ptr >>> 0, 1));\n\nconst ToDeviceRequestFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_todevicerequest_free(ptr >>> 0, 1));\n\nconst ToDeviceUnableToDecryptInfoFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_todeviceunabletodecryptinfo_free(ptr >>> 0, 1));\n\nconst TracingFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_tracing_free(ptr >>> 0, 1));\n\nconst UTDToDeviceEventFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_utdtodeviceevent_free(ptr >>> 0, 1));\n\nconst UploadSigningKeysRequestFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_uploadsigningkeysrequest_free(ptr >>> 0, 1));\n\nconst UserDevicesFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_userdevices_free(ptr >>> 0, 1));\n\nconst UserIdFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_userid_free(ptr >>> 0, 1));\n\nconst VerificationRequestFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_verificationrequest_free(ptr >>> 0, 1));\n\nconst VersionsFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_versions_free(ptr >>> 0, 1));\n\n/**\n * A type to encrypt and to decrypt anything that can fit in an\n * `Uint8Array`, usually big buffer.\n */\nexport class Attachment {\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n AttachmentFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_attachment_free(ptr, 0);\n }\n /**\n * Decrypt an `EncryptedAttachment`.\n *\n * The encrypted attachment can be created manually, or from the\n * `encrypt` method.\n *\n * **Warning**: The encrypted attachment can be used only\n * **once**! The encrypted data will still be present, but the\n * media encryption info (which contain secrets) will be\n * destroyed. It is still possible to get a JSON-encoded backup\n * by calling `EncryptedAttachment.mediaEncryptionInfo`.\n * @param {EncryptedAttachment} attachment\n * @returns {Uint8Array}\n */\n static decrypt(attachment) {\n _assertClass(attachment, EncryptedAttachment);\n const ret = wasm.attachment_decrypt(attachment.__wbg_ptr);\n if (ret[3]) {\n throw takeFromExternrefTable0(ret[2]);\n }\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * Encrypt the content of the `Uint8Array`.\n *\n * It produces an `EncryptedAttachment`, which can be used to\n * retrieve the media encryption information, or the encrypted\n * data.\n * @param {Uint8Array} array\n * @returns {EncryptedAttachment}\n */\n static encrypt(array) {\n const ptr0 = passArray8ToWasm0(array, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.attachment_encrypt(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return EncryptedAttachment.__wrap(ret[0]);\n }\n}\nif (Symbol.dispose) Attachment.prototype[Symbol.dispose] = Attachment.prototype.free;\n\n/**\n * The private part of the backup key, the one used for recovery.\n */\nexport class BackupDecryptionKey {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(BackupDecryptionKey.prototype);\n obj.__wbg_ptr = ptr;\n BackupDecryptionKeyFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n BackupDecryptionKeyFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_backupdecryptionkey_free(ptr, 0);\n }\n /**\n * Try to decrypt a message that was encrypted using the public part of the\n * backup key.\n * @param {string} ephemeral_key\n * @param {string} mac\n * @param {string} ciphertext\n * @returns {string}\n */\n decryptV1(ephemeral_key, mac, ciphertext) {\n let deferred5_0;\n let deferred5_1;\n try {\n const ptr0 = passStringToWasm0(ephemeral_key, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(mac, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passStringToWasm0(ciphertext, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len2 = WASM_VECTOR_LEN;\n const ret = wasm.backupdecryptionkey_decryptV1(this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2);\n var ptr4 = ret[0];\n var len4 = ret[1];\n if (ret[3]) {\n ptr4 = 0; len4 = 0;\n throw takeFromExternrefTable0(ret[2]);\n }\n deferred5_0 = ptr4;\n deferred5_1 = len4;\n return getStringFromWasm0(ptr4, len4);\n } finally {\n wasm.__wbindgen_free(deferred5_0, deferred5_1, 1);\n }\n }\n /**\n * Try to create a [`BackupDecryptionKey`] from a base 64 encoded string.\n * @param {string} key\n * @returns {BackupDecryptionKey}\n */\n static fromBase64(key) {\n const ptr0 = passStringToWasm0(key, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.backupdecryptionkey_fromBase64(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return BackupDecryptionKey.__wrap(ret[0]);\n }\n /**\n * Create a new random [`BackupDecryptionKey`].\n * @returns {BackupDecryptionKey}\n */\n static createRandomKey() {\n const ret = wasm.backupdecryptionkey_createRandomKey();\n return BackupDecryptionKey.__wrap(ret);\n }\n /**\n * Get the public part of the backup key.\n * @returns {MegolmV1BackupKey}\n */\n get megolmV1PublicKey() {\n const ret = wasm.backupdecryptionkey_megolmV1PublicKey(this.__wbg_ptr);\n return MegolmV1BackupKey.__wrap(ret);\n }\n /**\n * Convert the backup decryption key to a base 64 encoded string.\n * @returns {string}\n */\n toBase64() {\n const ret = wasm.backupdecryptionkey_toBase64(this.__wbg_ptr);\n return ret;\n }\n}\nif (Symbol.dispose) BackupDecryptionKey.prototype[Symbol.dispose] = BackupDecryptionKey.prototype.free;\n\n/**\n * Stored versions of the backup keys.\n */\nexport class BackupKeys {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(BackupKeys.prototype);\n obj.__wbg_ptr = ptr;\n BackupKeysFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n BackupKeysFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_backupkeys_free(ptr, 0);\n }\n /**\n * The key used to decrypt backed up room keys, encoded as base64\n *\n * @deprecated Use `BackupKeys.decryptionKey.toBase64()`\n * @returns {string | undefined}\n */\n get decryptionKeyBase64() {\n const ret = wasm.backupkeys_decryptionKeyBase64(this.__wbg_ptr);\n return ret;\n }\n /**\n * The key used to decrypt backed up room keys\n * @returns {BackupDecryptionKey | undefined}\n */\n get decryptionKey() {\n const ret = wasm.__wbg_get_backupkeys_decryptionKey(this.__wbg_ptr);\n return ret === 0 ? undefined : BackupDecryptionKey.__wrap(ret);\n }\n /**\n * The key used to decrypt backed up room keys\n * @param {BackupDecryptionKey | null} [arg0]\n */\n set decryptionKey(arg0) {\n let ptr0 = 0;\n if (!isLikeNone(arg0)) {\n _assertClass(arg0, BackupDecryptionKey);\n ptr0 = arg0.__destroy_into_raw();\n }\n wasm.__wbg_set_backupkeys_decryptionKey(this.__wbg_ptr, ptr0);\n }\n /**\n * The version that we are using for backups.\n * @returns {string | undefined}\n */\n get backupVersion() {\n const ret = wasm.__wbg_get_backupkeys_backupVersion(this.__wbg_ptr);\n let v1;\n if (ret[0] !== 0) {\n v1 = getStringFromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n }\n return v1;\n }\n /**\n * The version that we are using for backups.\n * @param {string | null} [arg0]\n */\n set backupVersion(arg0) {\n var ptr0 = isLikeNone(arg0) ? 0 : passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n wasm.__wbg_set_backupkeys_backupVersion(this.__wbg_ptr, ptr0, len0);\n }\n}\nif (Symbol.dispose) BackupKeys.prototype[Symbol.dispose] = BackupKeys.prototype.free;\n\n/**\n * The backup-specific parts of a secrets bundle.\n */\nexport class BackupSecretsBundle {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(BackupSecretsBundle.prototype);\n obj.__wbg_ptr = ptr;\n BackupSecretsBundleFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n BackupSecretsBundleFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_backupsecretsbundle_free(ptr, 0);\n }\n /**\n * The backup decryption key, encoded as unpadded base64.\n * @returns {string}\n */\n get key() {\n let deferred1_0;\n let deferred1_1;\n try {\n const ret = wasm.__wbg_get_backupsecretsbundle_key(this.__wbg_ptr);\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n }\n /**\n * The backup decryption key, encoded as unpadded base64.\n * @param {string} arg0\n */\n set key(arg0) {\n const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n wasm.__wbg_set_backupsecretsbundle_key(this.__wbg_ptr, ptr0, len0);\n }\n /**\n * The backup version which this backup decryption key is used with.\n * @returns {string}\n */\n get backup_version() {\n let deferred1_0;\n let deferred1_1;\n try {\n const ret = wasm.__wbg_get_backupsecretsbundle_backup_version(this.__wbg_ptr);\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n }\n /**\n * The backup version which this backup decryption key is used with.\n * @param {string} arg0\n */\n set backup_version(arg0) {\n const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n wasm.__wbg_set_backupsecretsbundle_backup_version(this.__wbg_ptr, ptr0, len0);\n }\n}\nif (Symbol.dispose) BackupSecretsBundle.prototype[Symbol.dispose] = BackupSecretsBundle.prototype.free;\n\n/**\n * The base64-encoded variant of a {@link PkMessage}.\n *\n * This can be useful if the encrypted message should be put into JSON.\n */\nexport class Base64EncodedPkMessage {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(Base64EncodedPkMessage.prototype);\n obj.__wbg_ptr = ptr;\n Base64EncodedPkMessageFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n Base64EncodedPkMessageFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_base64encodedpkmessage_free(ptr, 0);\n }\n /**\n * The base64-encoded ciphertext.\n * @returns {string}\n */\n get ciphertext() {\n let deferred1_0;\n let deferred1_1;\n try {\n const ret = wasm.__wbg_get_base64encodedpkmessage_ciphertext(this.__wbg_ptr);\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n }\n /**\n * The base64-encoded ciphertext.\n * @param {string} arg0\n */\n set ciphertext(arg0) {\n const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n wasm.__wbg_set_backupsecretsbundle_key(this.__wbg_ptr, ptr0, len0);\n }\n /**\n * The base64-encoded message authentication code (MAC).\n * @returns {string}\n */\n get mac() {\n let deferred1_0;\n let deferred1_1;\n try {\n const ret = wasm.__wbg_get_base64encodedpkmessage_mac(this.__wbg_ptr);\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n }\n /**\n * The base64-encoded message authentication code (MAC).\n * @param {string} arg0\n */\n set mac(arg0) {\n const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n wasm.__wbg_set_backupsecretsbundle_backup_version(this.__wbg_ptr, ptr0, len0);\n }\n /**\n * The base64-encoded ephemeral public key.\n * @returns {string}\n */\n get ephemeralKey() {\n let deferred1_0;\n let deferred1_1;\n try {\n const ret = wasm.__wbg_get_base64encodedpkmessage_ephemeralKey(this.__wbg_ptr);\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n }\n /**\n * The base64-encoded ephemeral public key.\n * @param {string} arg0\n */\n set ephemeralKey(arg0) {\n const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n wasm.__wbg_set_base64encodedpkmessage_ephemeralKey(this.__wbg_ptr, ptr0, len0);\n }\n /**\n * Creates a new base64-encoded encrypted message from its parts.\n * @param {string} ciphertext\n * @param {string} mac\n * @param {string} ephemeral_key\n */\n constructor(ciphertext, mac, ephemeral_key) {\n const ptr0 = passStringToWasm0(ciphertext, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(mac, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passStringToWasm0(ephemeral_key, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len2 = WASM_VECTOR_LEN;\n const ret = wasm.base64encodedpkmessage_new(ptr0, len0, ptr1, len1, ptr2, len2);\n this.__wbg_ptr = ret >>> 0;\n Base64EncodedPkMessageFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n}\nif (Symbol.dispose) Base64EncodedPkMessage.prototype[Symbol.dispose] = Base64EncodedPkMessage.prototype.free;\n\n/**\n * The base dataset that is important to migrate to the Rust SDK.\n *\n * Can be imported into the rust store with {@link Migration::migrateBaseData}.\n */\nexport class BaseMigrationData {\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n BaseMigrationDataFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_basemigrationdata_free(ptr, 0);\n }\n /**\n * Create a new `BaseMigrationData` with default values.\n */\n constructor() {\n const ret = wasm.basemigrationdata_new();\n this.__wbg_ptr = ret >>> 0;\n BaseMigrationDataFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n /**\n * The user id of the account owner.\n * @returns {UserId | undefined}\n */\n get userId() {\n const ret = wasm.__wbg_get_basemigrationdata_userId(this.__wbg_ptr);\n return ret === 0 ? undefined : UserId.__wrap(ret);\n }\n /**\n * The user id of the account owner.\n * @param {UserId | null} [arg0]\n */\n set userId(arg0) {\n let ptr0 = 0;\n if (!isLikeNone(arg0)) {\n _assertClass(arg0, UserId);\n ptr0 = arg0.__destroy_into_raw();\n }\n wasm.__wbg_set_basemigrationdata_userId(this.__wbg_ptr, ptr0);\n }\n /**\n * The device ID of the account owner.\n * @returns {DeviceId | undefined}\n */\n get deviceId() {\n const ret = wasm.__wbg_get_basemigrationdata_deviceId(this.__wbg_ptr);\n return ret === 0 ? undefined : DeviceId.__wrap(ret);\n }\n /**\n * The device ID of the account owner.\n * @param {DeviceId | null} [arg0]\n */\n set deviceId(arg0) {\n let ptr0 = 0;\n if (!isLikeNone(arg0)) {\n _assertClass(arg0, DeviceId);\n ptr0 = arg0.__destroy_into_raw();\n }\n wasm.__wbg_set_basemigrationdata_deviceId(this.__wbg_ptr, ptr0);\n }\n /**\n * The pickle string holding the Olm Account, as returned by\n * `olm_pickle_account` in libolm.\n * @returns {string}\n */\n get pickledAccount() {\n let deferred1_0;\n let deferred1_1;\n try {\n const ret = wasm.__wbg_get_basemigrationdata_pickledAccount(this.__wbg_ptr);\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n }\n /**\n * The pickle string holding the Olm Account, as returned by\n * `olm_pickle_account` in libolm.\n * @param {string} arg0\n */\n set pickledAccount(arg0) {\n const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n wasm.__wbg_set_backupsecretsbundle_key(this.__wbg_ptr, ptr0, len0);\n }\n /**\n * The backup version that is currently active.\n * @returns {string | undefined}\n */\n get backupVersion() {\n const ret = wasm.__wbg_get_basemigrationdata_backupVersion(this.__wbg_ptr);\n let v1;\n if (ret[0] !== 0) {\n v1 = getStringFromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n }\n return v1;\n }\n /**\n * The backup version that is currently active.\n * @param {string | null} [arg0]\n */\n set backupVersion(arg0) {\n var ptr0 = isLikeNone(arg0) ? 0 : passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n wasm.__wbg_set_basemigrationdata_backupVersion(this.__wbg_ptr, ptr0, len0);\n }\n /**\n * The backup recovery key, as a base64-encoded string.\n * @returns {string | undefined}\n */\n get backupRecoveryKey() {\n const ret = wasm.__wbg_get_basemigrationdata_backupRecoveryKey(this.__wbg_ptr);\n let v1;\n if (ret[0] !== 0) {\n v1 = getStringFromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n }\n return v1;\n }\n /**\n * The backup recovery key, as a base64-encoded string.\n * @param {string | null} [arg0]\n */\n set backupRecoveryKey(arg0) {\n var ptr0 = isLikeNone(arg0) ? 0 : passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n wasm.__wbg_set_basemigrationdata_backupRecoveryKey(this.__wbg_ptr, ptr0, len0);\n }\n /**\n * The private, base64-encoded, master cross-signing key.\n * @returns {string | undefined}\n */\n get privateCrossSigningMasterKey() {\n const ret = wasm.__wbg_get_basemigrationdata_privateCrossSigningMasterKey(this.__wbg_ptr);\n let v1;\n if (ret[0] !== 0) {\n v1 = getStringFromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n }\n return v1;\n }\n /**\n * The private, base64-encoded, master cross-signing key.\n * @param {string | null} [arg0]\n */\n set privateCrossSigningMasterKey(arg0) {\n var ptr0 = isLikeNone(arg0) ? 0 : passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n wasm.__wbg_set_basemigrationdata_privateCrossSigningMasterKey(this.__wbg_ptr, ptr0, len0);\n }\n /**\n * The private, base64-encoded, self-signing key.\n * @returns {string | undefined}\n */\n get privateCrossSigningSelfSigningKey() {\n const ret = wasm.__wbg_get_basemigrationdata_privateCrossSigningSelfSigningKey(this.__wbg_ptr);\n let v1;\n if (ret[0] !== 0) {\n v1 = getStringFromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n }\n return v1;\n }\n /**\n * The private, base64-encoded, self-signing key.\n * @param {string | null} [arg0]\n */\n set privateCrossSigningSelfSigningKey(arg0) {\n var ptr0 = isLikeNone(arg0) ? 0 : passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n wasm.__wbg_set_basemigrationdata_privateCrossSigningSelfSigningKey(this.__wbg_ptr, ptr0, len0);\n }\n /**\n * The private, base64-encoded, user-signing key.\n * @returns {string | undefined}\n */\n get privateCrossSigningUserSigningKey() {\n const ret = wasm.__wbg_get_basemigrationdata_privateCrossSigningUserSigningKey(this.__wbg_ptr);\n let v1;\n if (ret[0] !== 0) {\n v1 = getStringFromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n }\n return v1;\n }\n /**\n * The private, base64-encoded, user-signing key.\n * @param {string | null} [arg0]\n */\n set privateCrossSigningUserSigningKey(arg0) {\n var ptr0 = isLikeNone(arg0) ? 0 : passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n wasm.__wbg_set_basemigrationdata_privateCrossSigningUserSigningKey(this.__wbg_ptr, ptr0, len0);\n }\n}\nif (Symbol.dispose) BaseMigrationData.prototype[Symbol.dispose] = BaseMigrationData.prototype.free;\n\n/**\n * Information about the cancellation of a verification request or\n * verification flow.\n */\nexport class CancelInfo {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(CancelInfo.prototype);\n obj.__wbg_ptr = ptr;\n CancelInfoFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n CancelInfoFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_cancelinfo_free(ptr, 0);\n }\n /**\n * Get the `code` (e.g. `m.user`) that was used to cancel the\n * verification.\n * @returns {string}\n */\n cancelCode() {\n let deferred1_0;\n let deferred1_1;\n try {\n const ret = wasm.cancelinfo_cancelCode(this.__wbg_ptr);\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n }\n /**\n * Was the verification cancelled by us?\n * @returns {boolean}\n */\n cancelledbyUs() {\n const ret = wasm.cancelinfo_cancelledbyUs(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Get the human readable reason of the cancellation.\n * @returns {string}\n */\n reason() {\n const ret = wasm.cancelinfo_reason(this.__wbg_ptr);\n return ret;\n }\n}\nif (Symbol.dispose) CancelInfo.prototype[Symbol.dispose] = CancelInfo.prototype.free;\n\n/**\n * A check code that can be used to confirm that two [`EstablishedEcies`]\n * objects share the same secret. This is supposed to be shared out-of-band to\n * protect against active Man-in-the-middle (MITM) attacks.\n *\n * Since the initiator device can always tell whether a MITM attack is in\n * progress after channel establishment, this code technically carries only a\n * single bit of information, representing whether the initiator has determined\n * that the channel is \"secure\" or \"not secure\".\n *\n * However, given this will need to be interactively confirmed by the user,\n * there is risk that the user would confirm the dialogue without paying\n * attention to its content. By expanding this single bit into a deterministic\n * two-digit check code, the user is forced to pay more attention by having to\n * enter it instead of just clicking through a dialogue.\n */\nexport class CheckCode {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(CheckCode.prototype);\n obj.__wbg_ptr = ptr;\n CheckCodeFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n CheckCodeFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_checkcode_free(ptr, 0);\n }\n /**\n * Convert the check code to an array of two bytes.\n *\n * The bytes can be converted to a more user-friendly representation. The\n * [`CheckCode::to_digit`] converts the bytes to a two-digit number.\n * @returns {Uint8Array}\n */\n as_bytes() {\n const ret = wasm.checkcode_as_bytes(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * Convert the check code to two base-10 numbers.\n *\n * The number should be displayed with a leading 0 in case the first digit\n * is a 0.\n * @returns {number}\n */\n to_digit() {\n const ret = wasm.checkcode_to_digit(this.__wbg_ptr);\n return ret;\n }\n}\nif (Symbol.dispose) CheckCode.prototype[Symbol.dispose] = CheckCode.prototype.free;\n\n/**\n * Strategy to collect the devices that should receive room keys for the\n * current discussion.\n */\nexport class CollectStrategy {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(CollectStrategy.prototype);\n obj.__wbg_ptr = ptr;\n CollectStrategyFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n CollectStrategyFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_collectstrategy_free(ptr, 0);\n }\n /**\n * Share with all (unblacklisted) devices.\n * @returns {CollectStrategy}\n */\n static allDevices() {\n const ret = wasm.collectstrategy_allDevices();\n return CollectStrategy.__wrap(ret);\n }\n /**\n * Only share keys with devices that we \"trust\". A device is trusted if any\n * of the following is true:\n * - It was manually marked as trusted.\n * - It was marked as verified via interactive verification.\n * - It is signed by its owner identity, and this identity has been\n * trusted via interactive verification.\n * - It is the current own device of the user.\n * @returns {CollectStrategy}\n */\n static onlyTrustedDevices() {\n const ret = wasm.collectstrategy_onlyTrustedDevices();\n return CollectStrategy.__wrap(ret);\n }\n /**\n * Device based sharing strategy.\n *\n * @deprecated: use one of {@link allDevices}, {@link\n * errorOnUnverifiedUserProblem} or {@link onlyTrustedDevices}.\n * @param {boolean} only_allow_trusted_devices\n * @param {boolean} error_on_verified_user_problem\n * @returns {CollectStrategy}\n */\n static deviceBasedStrategy(only_allow_trusted_devices, error_on_verified_user_problem) {\n const ret = wasm.collectstrategy_deviceBasedStrategy(only_allow_trusted_devices, error_on_verified_user_problem);\n return CollectStrategy.__wrap(ret);\n }\n /**\n * Share based on identity. Only distribute to devices signed by their\n * owner. If a user has no published identity he will not receive\n * any room keys.\n * @returns {CollectStrategy}\n */\n static identityBasedStrategy() {\n const ret = wasm.collectstrategy_identityBasedStrategy();\n return CollectStrategy.__wrap(ret);\n }\n /**\n * Tests for equality between two [`CollectStrategy`]s.\n * @param {CollectStrategy} other\n * @returns {boolean}\n */\n eq(other) {\n _assertClass(other, CollectStrategy);\n const ret = wasm.collectstrategy_eq(this.__wbg_ptr, other.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Share with all devices, except that errors for *verified* users cause\n * sharing to fail with an error.\n *\n * In this strategy, if a verified user has an unsigned device, or\n * a verified user has replaced their identity, key\n * sharing will fail with an error.\n *\n * Otherwise, keys are shared with unsigned devices as normal.\n *\n * Once the problematic devices are blacklisted or whitelisted the\n * caller can try sharing a second time.\n * @returns {CollectStrategy}\n */\n static errorOnUnverifiedUserProblem() {\n const ret = wasm.collectstrategy_errorOnUnverifiedUserProblem();\n return CollectStrategy.__wrap(ret);\n }\n}\nif (Symbol.dispose) CollectStrategy.prototype[Symbol.dispose] = CollectStrategy.prototype.free;\n\n/**\n * A set of requests to be executed when bootstrapping cross-signing using\n * {@link OlmMachine.bootstrapCrossSigning}.\n */\nexport class CrossSigningBootstrapRequests {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(CrossSigningBootstrapRequests.prototype);\n obj.__wbg_ptr = ptr;\n CrossSigningBootstrapRequestsFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n CrossSigningBootstrapRequestsFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_crosssigningbootstraprequests_free(ptr, 0);\n }\n /**\n * An optional request to upload a device key.\n *\n * This will either be `undefined`, or an \"outgoing request\" as returned by\n * {@link OlmMachine.outgoingRequests}.\n *\n * If it is defined, the request should be sent first, and the result sent\n * back with {@link OlmMachine.markRequestAsSent}.\n * @returns {any}\n */\n get uploadKeysRequest() {\n const ret = wasm.__wbg_get_crosssigningbootstraprequests_uploadKeysRequest(this.__wbg_ptr);\n return ret;\n }\n /**\n * Request to upload the cross-signing keys.\n *\n * Should be sent second.\n * @returns {UploadSigningKeysRequest}\n */\n get uploadSigningKeysRequest() {\n const ret = wasm.__wbg_get_crosssigningbootstraprequests_uploadSigningKeysRequest(this.__wbg_ptr);\n return UploadSigningKeysRequest.__wrap(ret);\n }\n /**\n * Request to upload key signatures, including those for the cross-signing\n * keys, and maybe some for the optional uploaded key too.\n *\n * Should be sent last.\n * @returns {SignatureUploadRequest}\n */\n get uploadSignaturesRequest() {\n const ret = wasm.__wbg_get_crosssigningbootstraprequests_uploadSignaturesRequest(this.__wbg_ptr);\n return SignatureUploadRequest.__wrap(ret);\n }\n}\nif (Symbol.dispose) CrossSigningBootstrapRequests.prototype[Symbol.dispose] = CrossSigningBootstrapRequests.prototype.free;\n\n/**\n * A struct containing private cross signing keys that can be backed\n * up or uploaded to the secret store.\n */\nexport class CrossSigningKeyExport {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(CrossSigningKeyExport.prototype);\n obj.__wbg_ptr = ptr;\n CrossSigningKeyExportFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n CrossSigningKeyExportFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_crosssigningkeyexport_free(ptr, 0);\n }\n /**\n * The seed of the master key encoded as unpadded base64.\n * @returns {string | undefined}\n */\n get masterKey() {\n const ret = wasm.crosssigningkeyexport_masterKey(this.__wbg_ptr);\n let v1;\n if (ret[0] !== 0) {\n v1 = getStringFromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n }\n return v1;\n }\n /**\n * The seed of the self signing key encoded as unpadded base64.\n * @returns {string | undefined}\n */\n get self_signing_key() {\n const ret = wasm.crosssigningkeyexport_self_signing_key(this.__wbg_ptr);\n let v1;\n if (ret[0] !== 0) {\n v1 = getStringFromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n }\n return v1;\n }\n /**\n * The seed of the user signing key encoded as unpadded base64.\n * @returns {string | undefined}\n */\n get userSigningKey() {\n const ret = wasm.crosssigningkeyexport_userSigningKey(this.__wbg_ptr);\n let v1;\n if (ret[0] !== 0) {\n v1 = getStringFromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n }\n return v1;\n }\n}\nif (Symbol.dispose) CrossSigningKeyExport.prototype[Symbol.dispose] = CrossSigningKeyExport.prototype.free;\n\n/**\n * Struct representing the state of our private cross signing keys,\n * it shows which private cross signing keys we have locally stored.\n */\nexport class CrossSigningStatus {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(CrossSigningStatus.prototype);\n obj.__wbg_ptr = ptr;\n CrossSigningStatusFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n CrossSigningStatusFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_crosssigningstatus_free(ptr, 0);\n }\n /**\n * Do we have the master key?\n * @returns {boolean}\n */\n get hasMaster() {\n const ret = wasm.crosssigningstatus_hasMaster(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Do we have the self signing key? This one is necessary to sign\n * our own devices.\n * @returns {boolean}\n */\n get hasSelfSigning() {\n const ret = wasm.crosssigningstatus_hasSelfSigning(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Do we have the user signing key? This one is necessary to sign\n * other users.\n * @returns {boolean}\n */\n get hasUserSigning() {\n const ret = wasm.crosssigningstatus_hasUserSigning(this.__wbg_ptr);\n return ret !== 0;\n }\n}\nif (Symbol.dispose) CrossSigningStatus.prototype[Symbol.dispose] = CrossSigningStatus.prototype.free;\n\n/**\n * A Curve25519 public key.\n */\nexport class Curve25519PublicKey {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(Curve25519PublicKey.prototype);\n obj.__wbg_ptr = ptr;\n Curve25519PublicKeyFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n Curve25519PublicKeyFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_curve25519publickey_free(ptr, 0);\n }\n /**\n * Create a new [`Curve25519PublicKey`] from a base64 encoded string.\n * @param {string} key\n */\n constructor(key) {\n const ptr0 = passStringToWasm0(key, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.curve25519publickey_new(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n this.__wbg_ptr = ret[0] >>> 0;\n Curve25519PublicKeyFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n /**\n * The number of bytes a Curve25519 public key has.\n * @returns {number}\n */\n get length() {\n const ret = wasm.curve25519publickey_length(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * Serialize an Curve25519 public key to an unpadded base64\n * representation.\n * @returns {string}\n */\n toBase64() {\n let deferred1_0;\n let deferred1_1;\n try {\n const ret = wasm.curve25519publickey_toBase64(this.__wbg_ptr);\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n }\n}\nif (Symbol.dispose) Curve25519PublicKey.prototype[Symbol.dispose] = Curve25519PublicKey.prototype.free;\n\n/**\n * A Curve25519 secret key.\n */\nexport class Curve25519SecretKey {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(Curve25519SecretKey.prototype);\n obj.__wbg_ptr = ptr;\n Curve25519SecretKeyFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n Curve25519SecretKeyFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_curve25519secretkey_free(ptr, 0);\n }\n /**\n * Creates a `Curve25519SecretKey` from a raw byte slice.\n * @param {Uint8Array} slice\n * @returns {Curve25519SecretKey}\n */\n static fromUint8Array(slice) {\n const ptr0 = passArray8ToWasm0(slice, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.curve25519secretkey_fromUint8Array(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return Curve25519SecretKey.__wrap(ret[0]);\n }\n /**\n * Creates a `Curve25519SecretKey` from a base64-encoded representation of\n * the key.\n * @param {string} string\n * @returns {Curve25519SecretKey}\n */\n static fromBase64(string) {\n const ptr0 = passStringToWasm0(string, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.curve25519secretkey_fromBase64(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return Curve25519SecretKey.__wrap(ret[0]);\n }\n /**\n * Generates a new random Curve25519 secret key.\n * @returns {Curve25519SecretKey}\n */\n static new() {\n const ret = wasm.curve25519secretkey_new();\n return Curve25519SecretKey.__wrap(ret);\n }\n /**\n * Converts the secret key into a raw byte vector.\n * @returns {Uint8Array}\n */\n toUint8Array() {\n const ret = wasm.curve25519secretkey_toUint8Array(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * Encodes the secret key into a base64 string.\n * @returns {string}\n */\n toBase64() {\n let deferred1_0;\n let deferred1_1;\n try {\n const ret = wasm.curve25519secretkey_toBase64(this.__wbg_ptr);\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n }\n}\nif (Symbol.dispose) Curve25519SecretKey.prototype[Symbol.dispose] = Curve25519SecretKey.prototype.free;\n\n/**\n * A decrypted room event.\n */\nexport class DecryptedRoomEvent {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(DecryptedRoomEvent.prototype);\n obj.__wbg_ptr = ptr;\n DecryptedRoomEventFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n DecryptedRoomEventFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_decryptedroomevent_free(ptr, 0);\n }\n /**\n * The verification state of the device that sent us the event.\n * Note this is the state of the device at the time of\n * decryption. It may change in the future if a device gets\n * verified or deleted.\n * @param {boolean} strict\n * @returns {ShieldState}\n */\n shieldState(strict) {\n const ret = wasm.decryptedroomevent_shieldState(this.__wbg_ptr, strict);\n return ShieldState.__wrap(ret);\n }\n /**\n * The device ID of the device that sent us the event, note this\n * is untrusted data unless `verification_state` is as well\n * trusted.\n * @returns {DeviceId | undefined}\n */\n get senderDevice() {\n const ret = wasm.decryptedroomevent_senderDevice(this.__wbg_ptr);\n return ret === 0 ? undefined : DeviceId.__wrap(ret);\n }\n /**\n * If the keys for this message were shared-on-invite as part of an\n * [MSC4268] key bundle, the ID of the device from which this bundle\n * was sent.\n *\n * [MSC4268]: https://github.com/matrix-org/matrix-spec-proposals/pull/4268\n * @returns {DeviceId | undefined}\n */\n get forwarderDevice() {\n const ret = wasm.decryptedroomevent_forwarderDevice(this.__wbg_ptr);\n return ret === 0 ? undefined : DeviceId.__wrap(ret);\n }\n /**\n * The Curve25519 key of the device that created the megolm\n * decryption key originally.\n * @returns {string}\n */\n get senderCurve25519Key() {\n let deferred1_0;\n let deferred1_1;\n try {\n const ret = wasm.decryptedroomevent_senderCurve25519Key(this.__wbg_ptr);\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n }\n /**\n * The signing Ed25519 key that have created the megolm key that\n * was used to decrypt this session.\n * @returns {string | undefined}\n */\n get senderClaimedEd25519Key() {\n const ret = wasm.decryptedroomevent_senderClaimedEd25519Key(this.__wbg_ptr);\n return ret;\n }\n /**\n * Returns an empty array\n *\n * Previously, this returned the chain of Curve25519 keys through which\n * this session was forwarded, via `m.forwarded_room_key` events.\n * However, that is not cryptographically reliable, and clients should not\n * be using it.\n *\n * @see https://github.com/matrix-org/matrix-spec/issues/1089\n * @returns {Array<any>}\n */\n get forwardingCurve25519KeyChain() {\n const ret = wasm.decryptedroomevent_forwardingCurve25519KeyChain(this.__wbg_ptr);\n return ret;\n }\n /**\n * The user ID of the event sender, note this is untrusted data\n * unless the `verification_state` is as well trusted.\n * @returns {UserId}\n */\n get sender() {\n const ret = wasm.decryptedroomevent_sender(this.__wbg_ptr);\n return UserId.__wrap(ret);\n }\n /**\n * If the keys for this message were shared-on-invite as part of an\n * [MSC4268] key bundle, the ID of the user who sent us the bundle.\n *\n * [MSC4268]: https://github.com/matrix-org/matrix-spec-proposals/pull/4268\n * @returns {UserId | undefined}\n */\n get forwarder() {\n const ret = wasm.decryptedroomevent_forwarder(this.__wbg_ptr);\n return ret === 0 ? undefined : UserId.__wrap(ret);\n }\n /**\n * The JSON-encoded decrypted event.\n * @returns {string}\n */\n get event() {\n const ret = wasm.__wbg_get_decryptedroomevent_event(this.__wbg_ptr);\n return ret;\n }\n}\nif (Symbol.dispose) DecryptedRoomEvent.prototype[Symbol.dispose] = DecryptedRoomEvent.prototype.free;\n\n/**\n * Represents an encrypted to-device event, after it has been decrypted.\n */\nexport class DecryptedToDeviceEvent {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(DecryptedToDeviceEvent.prototype);\n obj.__wbg_ptr = ptr;\n DecryptedToDeviceEventFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n DecryptedToDeviceEventFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_decryptedtodeviceevent_free(ptr, 0);\n }\n /**\n * The decrypted event, as if it had been sent in the clear, encoded as\n * JSON.\n *\n * Typically contains properties `type`, `sender` and `content`.\n *\n * (For room keys or secrets, some part of the content might have been\n * zeroized).\n * @returns {string}\n */\n get rawEvent() {\n const ret = wasm.__wbg_get_decryptedtodeviceevent_rawEvent(this.__wbg_ptr);\n return ret;\n }\n /**\n * The encryption information for the event.\n * @returns {ToDeviceEncryptionInfo}\n */\n get encryptionInfo() {\n const ret = wasm.__wbg_get_decryptedtodeviceevent_encryptionInfo(this.__wbg_ptr);\n return ToDeviceEncryptionInfo.__wrap(ret);\n }\n /**\n * The type of processed to-device event. Always {@link\n * ProcessedToDeviceEventType.Decrypted} for this type.\n * @returns {ProcessedToDeviceEventType}\n */\n get type() {\n const ret = wasm.decryptedtodeviceevent_type(this.__wbg_ptr);\n return ret;\n }\n}\nif (Symbol.dispose) DecryptedToDeviceEvent.prototype[Symbol.dispose] = DecryptedToDeviceEvent.prototype.free;\n\n/**\n * Decryption error codes\n * @enum {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7}\n */\nexport const DecryptionErrorCode = Object.freeze({\n /**\n * The room key is not known\n */\n MissingRoomKey: 0, \"0\": \"MissingRoomKey\",\n /**\n * The room key is known but ratcheted\n */\n UnknownMessageIndex: 1, \"1\": \"UnknownMessageIndex\",\n /**\n * Decryption failed because of a mismatch between the identity keys of the\n * device we received the room key from and the identity keys recorded in\n * the plaintext of the room key to-device message.\n */\n MismatchedIdentityKeys: 2, \"2\": \"MismatchedIdentityKeys\",\n /**\n * We weren't able to link the message back to any known device.\n */\n UnknownSenderDevice: 3, \"3\": \"UnknownSenderDevice\",\n /**\n * The sender device is not cross-signed.\n */\n UnsignedSenderDevice: 4, \"4\": \"UnsignedSenderDevice\",\n /**\n * The sender's identity is unverified, but was previously verified.\n */\n SenderIdentityVerificationViolation: 5, \"5\": \"SenderIdentityVerificationViolation\",\n /**\n * Other failure.\n */\n UnableToDecrypt: 6, \"6\": \"UnableToDecrypt\",\n /**\n * The `sender` field on the event does not match the owner of the device\n * that established the Megolm session.\n */\n MismatchedSender: 7, \"7\": \"MismatchedSender\",\n});\n\n/**\n * Settings for decrypting messages\n */\nexport class DecryptionSettings {\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n DecryptionSettingsFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_decryptionsettings_free(ptr, 0);\n }\n /**\n * Create a new `DecryptionSettings` with the given trust requirement.\n * @param {TrustRequirement} sender_device_trust_requirement\n */\n constructor(sender_device_trust_requirement) {\n const ret = wasm.decryptionsettings_new(sender_device_trust_requirement);\n this.__wbg_ptr = ret >>> 0;\n DecryptionSettingsFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n /**\n * The trust level required to decrypt the event\n * @returns {TrustRequirement}\n */\n get sender_device_trust_requirement() {\n const ret = wasm.__wbg_get_decryptionsettings_sender_device_trust_requirement(this.__wbg_ptr);\n return ret;\n }\n /**\n * The trust level required to decrypt the event\n * @param {TrustRequirement} arg0\n */\n set sender_device_trust_requirement(arg0) {\n wasm.__wbg_set_decryptionsettings_sender_device_trust_requirement(this.__wbg_ptr, arg0);\n }\n}\nif (Symbol.dispose) DecryptionSettings.prototype[Symbol.dispose] = DecryptionSettings.prototype.free;\n\n/**\n * A dehydrated device that can be uploaded to the server\n */\nexport class DehydratedDevice {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(DehydratedDevice.prototype);\n obj.__wbg_ptr = ptr;\n DehydratedDeviceFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n DehydratedDeviceFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_dehydrateddevice_free(ptr, 0);\n }\n /**\n * Create the request to upload the dehydrated device\n * @param {string} initial_device_display_name\n * @param {DehydratedDeviceKey} dehydrated_device_key\n * @returns {Promise<PutDehydratedDeviceRequest>}\n */\n keysForUpload(initial_device_display_name, dehydrated_device_key) {\n _assertClass(dehydrated_device_key, DehydratedDeviceKey);\n const ret = wasm.dehydrateddevice_keysForUpload(this.__wbg_ptr, initial_device_display_name, dehydrated_device_key.__wbg_ptr);\n return ret;\n }\n}\nif (Symbol.dispose) DehydratedDevice.prototype[Symbol.dispose] = DehydratedDevice.prototype.free;\n\n/**\n * Dehydrated device key\n */\nexport class DehydratedDeviceKey {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(DehydratedDeviceKey.prototype);\n obj.__wbg_ptr = ptr;\n DehydratedDeviceKeyFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n DehydratedDeviceKeyFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_dehydrateddevicekey_free(ptr, 0);\n }\n /**\n * Generates a new random dehydrated device key.\n * @returns {DehydratedDeviceKey}\n */\n static createRandomKey() {\n const ret = wasm.dehydrateddevicekey_createRandomKey();\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return DehydratedDeviceKey.__wrap(ret[0]);\n }\n /**\n * Generates a dehydrated device key from a given array.\n * @param {Uint8Array} array\n * @returns {DehydratedDeviceKey}\n */\n static createKeyFromArray(array) {\n const ret = wasm.dehydrateddevicekey_createKeyFromArray(array);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return DehydratedDeviceKey.__wrap(ret[0]);\n }\n /**\n * Convert the dehydrated device key to a base64-encoded string.\n * @returns {string}\n */\n toBase64() {\n const ret = wasm.dehydrateddevicekey_toBase64(this.__wbg_ptr);\n return ret;\n }\n}\nif (Symbol.dispose) DehydratedDeviceKey.prototype[Symbol.dispose] = DehydratedDeviceKey.prototype.free;\n\n/**\n * Struct collecting methods to create and rehydrate dehydrated devices.\n */\nexport class DehydratedDevices {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(DehydratedDevices.prototype);\n obj.__wbg_ptr = ptr;\n DehydratedDevicesFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n DehydratedDevicesFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_dehydrateddevices_free(ptr, 0);\n }\n /**\n * Get the cached dehydrated device key if any.\n *\n * `None` if the key was not previously cached (via\n * {@link DehydratedDevices.saveDehydratedDeviceKey}).\n * @returns {Promise<DehydratedDeviceKey | undefined>}\n */\n getDehydratedDeviceKey() {\n const ret = wasm.dehydrateddevices_getDehydratedDeviceKey(this.__wbg_ptr);\n return ret;\n }\n /**\n * Store the dehydrated device key in the crypto store.\n * @param {DehydratedDeviceKey} dehydrated_device_key\n * @returns {Promise<void>}\n */\n saveDehydratedDeviceKey(dehydrated_device_key) {\n _assertClass(dehydrated_device_key, DehydratedDeviceKey);\n const ret = wasm.dehydrateddevices_saveDehydratedDeviceKey(this.__wbg_ptr, dehydrated_device_key.__wbg_ptr);\n return ret;\n }\n /**\n * Clear the dehydrated device key saved in the crypto store.\n * @returns {Promise<void>}\n */\n deleteDehydratedDeviceKey() {\n const ret = wasm.dehydrateddevices_deleteDehydratedDeviceKey(this.__wbg_ptr);\n return ret;\n }\n /**\n * Create a new {@link DehydratedDevice} which can be uploaded to the\n * server.\n * @returns {Promise<DehydratedDevice>}\n */\n create() {\n const ret = wasm.dehydrateddevices_create(this.__wbg_ptr);\n return ret;\n }\n /**\n * Rehydrate a dehydrated device.\n * @param {DehydratedDeviceKey} dehydrated_device_key\n * @param {DeviceId} device_id\n * @param {string} device_data\n * @returns {Promise<RehydratedDevice>}\n */\n rehydrate(dehydrated_device_key, device_id, device_data) {\n _assertClass(dehydrated_device_key, DehydratedDeviceKey);\n _assertClass(device_id, DeviceId);\n const ptr0 = passStringToWasm0(device_data, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.dehydrateddevices_rehydrate(this.__wbg_ptr, dehydrated_device_key.__wbg_ptr, device_id.__wbg_ptr, ptr0, len0);\n return ret;\n }\n}\nif (Symbol.dispose) DehydratedDevices.prototype[Symbol.dispose] = DehydratedDevices.prototype.free;\n\n/**\n * A device represents a E2EE capable client of an user.\n */\nexport class Device {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(Device.prototype);\n obj.__wbg_ptr = ptr;\n DeviceFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n DeviceFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_device_free(ptr, 0);\n }\n /**\n * Get the list of algorithms this device supports.\n *\n * Returns `Array<EncryptionAlgorithm>`.\n * @returns {Array<any>}\n */\n get algorithms() {\n const ret = wasm.device_algorithms(this.__wbg_ptr);\n return ret;\n }\n /**\n * Is the device deleted?\n * @returns {boolean}\n */\n isDeleted() {\n const ret = wasm.device_isDeleted(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Get a map containing all the device signatures.\n * @returns {Signatures}\n */\n get signatures() {\n const ret = wasm.device_signatures(this.__wbg_ptr);\n return Signatures.__wrap(ret);\n }\n /**\n * Get the Ed25519 key of the given device.\n * @returns {Ed25519PublicKey | undefined}\n */\n get ed25519Key() {\n const ret = wasm.device_ed25519Key(this.__wbg_ptr);\n return ret === 0 ? undefined : Ed25519PublicKey.__wrap(ret);\n }\n /**\n * Is this device considered to be verified.\n *\n * This method returns true if either the `is_locally_trusted`\n * method returns `true` or if the `is_cross_signing_trusted`\n * method returns `true`.\n * @returns {boolean}\n */\n isVerified() {\n const ret = wasm.device_isVerified(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Get the human readable name of the device.\n * @returns {string | undefined}\n */\n get displayName() {\n const ret = wasm.device_displayName(this.__wbg_ptr);\n let v1;\n if (ret[0] !== 0) {\n v1 = getStringFromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n }\n return v1;\n }\n /**\n * Whether or not the device is a dehydrated device.\n * @returns {boolean}\n */\n get isDehydrated() {\n const ret = wasm.device_isDehydrated(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Get the Curve25519 key of the given device.\n * @returns {Curve25519PublicKey | undefined}\n */\n get curve25519Key() {\n const ret = wasm.device_curve25519Key(this.__wbg_ptr);\n return ret === 0 ? undefined : Curve25519PublicKey.__wrap(ret);\n }\n /**\n * Is the device locally marked as blacklisted?\n *\n * Blacklisted devices won’t receive any group sessions.\n * @returns {boolean}\n */\n isBlacklisted() {\n const ret = wasm.device_isBlacklisted(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Timestamp representing the first time this device has been seen (in\n * milliseconds).\n * @returns {bigint}\n */\n firstTimeSeen() {\n const ret = wasm.device_firstTimeSeen(this.__wbg_ptr);\n return BigInt.asUintN(64, ret);\n }\n /**\n * Set the local trust state of the device to the given state.\n *\n * This won’t affect any cross signing trust state, this only\n * sets a flag marking to have the given trust state.\n *\n * `trust_state` represents the new trust state that should be\n * set for the device.\n * @param {LocalTrust} local_state\n * @returns {Promise<any>}\n */\n setLocalTrust(local_state) {\n const ret = wasm.device_setLocalTrust(this.__wbg_ptr, local_state);\n return ret;\n }\n /**\n * Get the trust state of the device.\n * @returns {LocalTrust}\n */\n get localTrustState() {\n const ret = wasm.device_localTrustState(this.__wbg_ptr);\n return ret;\n }\n /**\n * Is the device locally marked as trusted?\n * @returns {boolean}\n */\n isLocallyTrusted() {\n const ret = wasm.device_isLocallyTrusted(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Request an interactive verification with this device.\n *\n * Returns a 2-element array `[VerificationRequest, ToDeviceRequest]`.\n * @param {any[] | null} [methods]\n * @returns {Array<any>}\n */\n requestVerification(methods) {\n var ptr0 = isLikeNone(methods) ? 0 : passArrayJsValueToWasm0(methods, wasm.__wbindgen_malloc);\n var len0 = WASM_VECTOR_LEN;\n const ret = wasm.device_requestVerification(this.__wbg_ptr, ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * Encrypt a to-device message to be sent to this device, using Olm\n * encryption.\n *\n * Prior to calling this method you must ensure that an Olm session is\n * available for the target device. This can be done by calling\n * {@link OlmMachine.getMissingSessions}.\n *\n * The caller is responsible for sending the encrypted\n * event to the target device. If multiple messages are\n * encrypted for the same device using this method they should be sent in\n * the same order as they are encrypted.\n *\n * # Returns\n *\n * Returns a promise for a JSON string containing the `content` of an\n * encrypted event, which be used to create the payload for a\n * `/sendToDevice` API.\n * @param {string} event_type\n * @param {any} content\n * @param {CollectStrategy | null} [share_strategy]\n * @returns {Promise<string>}\n */\n encryptToDeviceEvent(event_type, content, share_strategy) {\n const ptr0 = passStringToWasm0(event_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n let ptr1 = 0;\n if (!isLikeNone(share_strategy)) {\n _assertClass(share_strategy, CollectStrategy);\n ptr1 = share_strategy.__destroy_into_raw();\n }\n const ret = wasm.device_encryptToDeviceEvent(this.__wbg_ptr, ptr0, len0, content, ptr1);\n return ret;\n }\n /**\n * Is this device cross-signed by its owner?\n * @returns {boolean}\n */\n isCrossSignedByOwner() {\n const ret = wasm.device_isCrossSignedByOwner(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Is this device considered to be verified using cross signing.\n * @returns {boolean}\n */\n isCrossSigningTrusted() {\n const ret = wasm.device_isCrossSigningTrusted(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Get a map containing all the device keys.\n * @returns {Map<any, any>}\n */\n get keys() {\n const ret = wasm.device_keys(this.__wbg_ptr);\n return ret;\n }\n /**\n * Mark this device as verified.\n * Works only if the device is owned by the current user.\n *\n * Returns a signature upload request that needs to be sent out.\n * @returns {Promise<any>}\n */\n verify() {\n const ret = wasm.device_verify(this.__wbg_ptr);\n return ret;\n }\n /**\n * Get the key of the given key algorithm belonging to this device.\n * @param {DeviceKeyAlgorithmName} algorithm\n * @returns {DeviceKey | undefined}\n */\n getKey(algorithm) {\n const ret = wasm.device_getKey(this.__wbg_ptr, algorithm);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return ret[0] === 0 ? undefined : DeviceKey.__wrap(ret[0]);\n }\n /**\n * The user ID of the device owner.\n * @returns {UserId}\n */\n get userId() {\n const ret = wasm.device_userId(this.__wbg_ptr);\n return UserId.__wrap(ret);\n }\n /**\n * The unique ID of the device.\n * @returns {DeviceId}\n */\n get deviceId() {\n const ret = wasm.device_deviceId(this.__wbg_ptr);\n return DeviceId.__wrap(ret);\n }\n}\nif (Symbol.dispose) Device.prototype[Symbol.dispose] = Device.prototype.free;\n\n/**\n * A Matrix key ID.\n *\n * Device identifiers in Matrix are completely opaque character\n * sequences. This type is provided simply for its semantic value.\n */\nexport class DeviceId {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(DeviceId.prototype);\n obj.__wbg_ptr = ptr;\n DeviceIdFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n DeviceIdFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_deviceid_free(ptr, 0);\n }\n /**\n * Create a new `DeviceId`.\n * @param {string} id\n */\n constructor(id) {\n const ptr0 = passStringToWasm0(id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.deviceid_new(ptr0, len0);\n this.__wbg_ptr = ret >>> 0;\n DeviceIdFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n /**\n * Return the device ID as a string.\n * @returns {string}\n */\n toString() {\n let deferred1_0;\n let deferred1_1;\n try {\n const ret = wasm.deviceid_toString(this.__wbg_ptr);\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n }\n}\nif (Symbol.dispose) DeviceId.prototype[Symbol.dispose] = DeviceId.prototype.free;\n\n/**\n * An enum over the different key types a device can have.\n *\n * Currently devices have a curve25519 and ed25519 keypair. The keys\n * transport format is a base64 encoded string, any unknown key type\n * will be left as such a string.\n */\nexport class DeviceKey {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(DeviceKey.prototype);\n obj.__wbg_ptr = ptr;\n DeviceKeyFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n DeviceKeyFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_devicekey_free(ptr, 0);\n }\n /**\n * Get the value associated to the `Curve25519` device key name.\n * @returns {Curve25519PublicKey | undefined}\n */\n get curve25519() {\n const ret = wasm.devicekey_curve25519(this.__wbg_ptr);\n return ret === 0 ? undefined : Curve25519PublicKey.__wrap(ret);\n }\n /**\n * Get the name of the device key.\n * @returns {DeviceKeyName}\n */\n get name() {\n const ret = wasm.devicekey_name(this.__wbg_ptr);\n return ret;\n }\n /**\n * Get the value associated to the `Ed25519` device key name.\n * @returns {Ed25519PublicKey | undefined}\n */\n get ed25519() {\n const ret = wasm.devicekey_ed25519(this.__wbg_ptr);\n return ret === 0 ? undefined : Ed25519PublicKey.__wrap(ret);\n }\n /**\n * Get the value associated to the `Unknown` device key name.\n * @returns {string | undefined}\n */\n get unknown() {\n const ret = wasm.devicekey_unknown(this.__wbg_ptr);\n let v1;\n if (ret[0] !== 0) {\n v1 = getStringFromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n }\n return v1;\n }\n /**\n * Convert the `DeviceKey` into a base64 encoded string.\n * @returns {string}\n */\n toBase64() {\n let deferred1_0;\n let deferred1_1;\n try {\n const ret = wasm.devicekey_toBase64(this.__wbg_ptr);\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n }\n}\nif (Symbol.dispose) DeviceKey.prototype[Symbol.dispose] = DeviceKey.prototype.free;\n\n/**\n * The basic key algorithms in the specification.\n */\nexport class DeviceKeyAlgorithm {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(DeviceKeyAlgorithm.prototype);\n obj.__wbg_ptr = ptr;\n DeviceKeyAlgorithmFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n DeviceKeyAlgorithmFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_devicekeyalgorithm_free(ptr, 0);\n }\n /**\n * Read the device key algorithm's name. If the name is\n * `Unknown`, one may be interested by the `to_string` method to\n * read the original name.\n * @returns {DeviceKeyAlgorithmName}\n */\n get name() {\n const ret = wasm.devicekeyalgorithm_name(this.__wbg_ptr);\n return ret;\n }\n /**\n * Return the device key algorithm as a string.\n * @returns {string}\n */\n toString() {\n let deferred1_0;\n let deferred1_1;\n try {\n const ret = wasm.devicekeyalgorithm_toString(this.__wbg_ptr);\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n }\n}\nif (Symbol.dispose) DeviceKeyAlgorithm.prototype[Symbol.dispose] = DeviceKeyAlgorithm.prototype.free;\n\n/**\n * The basic key algorithm names in the specification.\n * @enum {0 | 1 | 3}\n */\nexport const DeviceKeyAlgorithmName = Object.freeze({\n /**\n * The Ed25519 signature algorithm.\n */\n Ed25519: 0, \"0\": \"Ed25519\",\n /**\n * The Curve25519 ECDH algorithm.\n */\n Curve25519: 1, \"1\": \"Curve25519\",\n /**\n * An unknown device key algorithm.\n */\n Unknown: 3, \"3\": \"Unknown\",\n});\n\n/**\n * A Matrix device key ID.\n *\n * A key algorithm and a device ID, combined with a ‘:’.\n */\nexport class DeviceKeyId {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(DeviceKeyId.prototype);\n obj.__wbg_ptr = ptr;\n DeviceKeyIdFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n DeviceKeyIdFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_devicekeyid_free(ptr, 0);\n }\n /**\n * Parse/validate and create a new `DeviceKeyId`.\n * @param {string} id\n */\n constructor(id) {\n const ptr0 = passStringToWasm0(id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.devicekeyid_new(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n this.__wbg_ptr = ret[0] >>> 0;\n DeviceKeyIdFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n /**\n * Returns key algorithm of the device key ID.\n * @returns {DeviceKeyAlgorithm}\n */\n get algorithm() {\n const ret = wasm.devicekeyid_algorithm(this.__wbg_ptr);\n return DeviceKeyAlgorithm.__wrap(ret);\n }\n /**\n * Returns device ID of the device key ID.\n * @returns {DeviceId}\n */\n get deviceId() {\n const ret = wasm.devicekeyid_deviceId(this.__wbg_ptr);\n return DeviceId.__wrap(ret);\n }\n /**\n * Return the device key ID as a string.\n * @returns {string}\n */\n toString() {\n let deferred1_0;\n let deferred1_1;\n try {\n const ret = wasm.devicekeyid_toString(this.__wbg_ptr);\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n }\n}\nif (Symbol.dispose) DeviceKeyId.prototype[Symbol.dispose] = DeviceKeyId.prototype.free;\n\n/**\n * An enum over the different key types a device can have.\n *\n * Currently devices have a curve25519 and ed25519 keypair. The keys\n * transport format is a base64 encoded string, any unknown key type\n * will be left as such a string.\n * @enum {0 | 1 | 2}\n */\nexport const DeviceKeyName = Object.freeze({\n /**\n * The curve25519 device key.\n */\n Curve25519: 0, \"0\": \"Curve25519\",\n /**\n * The ed25519 device key.\n */\n Ed25519: 1, \"1\": \"Ed25519\",\n /**\n * An unknown device key.\n */\n Unknown: 2, \"2\": \"Unknown\",\n});\n\n/**\n * Information on E2E device updates.\n */\nexport class DeviceLists {\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n DeviceListsFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_devicelists_free(ptr, 0);\n }\n /**\n * Create an empty `DeviceLists`.\n *\n * `changed` and `left` must be an array of `UserId`.\n *\n * Items inside `changed` and `left` will be invalidated by this method. Be\n * careful not to use the `UserId`s after this method has been called.\n * @param {UserId[] | null} [changed]\n * @param {UserId[] | null} [left]\n */\n constructor(changed, left) {\n var ptr0 = isLikeNone(changed) ? 0 : passArrayJsValueToWasm0(changed, wasm.__wbindgen_malloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(left) ? 0 : passArrayJsValueToWasm0(left, wasm.__wbindgen_malloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.devicelists_new(ptr0, len0, ptr1, len1);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n this.__wbg_ptr = ret[0] >>> 0;\n DeviceListsFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n /**\n * List of users who no longer share encrypted rooms since the\n * previous sync response.\n * @returns {UserId[]}\n */\n get left() {\n const ret = wasm.devicelists_left(this.__wbg_ptr);\n var v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);\n return v1;\n }\n /**\n * List of users who have updated their device identity keys or\n * who now share an encrypted room with the client since the\n * previous sync\n * @returns {UserId[]}\n */\n get changed() {\n const ret = wasm.devicelists_changed(this.__wbg_ptr);\n var v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);\n return v1;\n }\n /**\n * Returns true if there are no device list updates.\n * @returns {boolean}\n */\n isEmpty() {\n const ret = wasm.devicelists_isEmpty(this.__wbg_ptr);\n return ret !== 0;\n }\n}\nif (Symbol.dispose) DeviceLists.prototype[Symbol.dispose] = DeviceLists.prototype.free;\n\n/**\n * An unestablished ECIES session.\n */\nexport class Ecies {\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n EciesFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_ecies_free(ptr, 0);\n }\n /**\n * Get our [`Curve25519PublicKey`].\n *\n * This public key needs to be sent to the other side to be able to\n * establish an ECIES channel.\n * @returns {Curve25519PublicKey}\n */\n public_key() {\n const ret = wasm.ecies_public_key(this.__wbg_ptr);\n return Curve25519PublicKey.__wrap(ret);\n }\n /**\n * Create a [`EstablishedEcies`] from an initial message encrypted by the\n * other side.\n * @param {string} initial_message\n * @returns {InboundCreationResult}\n */\n establish_inbound_channel(initial_message) {\n const ptr0 = passStringToWasm0(initial_message, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.ecies_establish_inbound_channel(this.__wbg_ptr, ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return InboundCreationResult.__wrap(ret[0]);\n }\n /**\n * Create an [`EstablishedEcies`] session using the other side's Curve25519\n * public key and an initial plaintext.\n *\n * After the channel has been established, we can encrypt messages to send\n * to the other side. The other side uses the initial message to\n * establishes the same channel on its side.\n * @param {Curve25519PublicKey} public_key\n * @param {string} initial_message\n * @returns {OutboundCreationResult}\n */\n establish_outbound_channel(public_key, initial_message) {\n _assertClass(public_key, Curve25519PublicKey);\n const ptr0 = passStringToWasm0(initial_message, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.ecies_establish_outbound_channel(this.__wbg_ptr, public_key.__wbg_ptr, ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return OutboundCreationResult.__wrap(ret[0]);\n }\n /**\n * Create a new, random, unestablished ECIES session.\n *\n * This method will use the\n * [`MATRIX_QR_CODE_LOGIN`](https://github.com/matrix-org/matrix-spec-proposals/pull/4108)\n * info for domain separation when creating the session.\n */\n constructor() {\n const ret = wasm.ecies_new();\n this.__wbg_ptr = ret >>> 0;\n EciesFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n}\nif (Symbol.dispose) Ecies.prototype[Symbol.dispose] = Ecies.prototype.free;\n\n/**\n * An Ed25519 public key, used to verify digital signatures.\n */\nexport class Ed25519PublicKey {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(Ed25519PublicKey.prototype);\n obj.__wbg_ptr = ptr;\n Ed25519PublicKeyFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n Ed25519PublicKeyFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_ed25519publickey_free(ptr, 0);\n }\n /**\n * The number of bytes an Ed25519 public key has.\n * @returns {number}\n */\n get length() {\n const ret = wasm.ed25519publickey_length(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * Serialize an Ed25519 public key to an unpadded base64\n * representation.\n * @returns {string}\n */\n toBase64() {\n let deferred1_0;\n let deferred1_1;\n try {\n const ret = wasm.ed25519publickey_toBase64(this.__wbg_ptr);\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n }\n}\nif (Symbol.dispose) Ed25519PublicKey.prototype[Symbol.dispose] = Ed25519PublicKey.prototype.free;\n\n/**\n * An Ed25519 digital signature, can be used to verify the\n * authenticity of a message.\n */\nexport class Ed25519Signature {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(Ed25519Signature.prototype);\n obj.__wbg_ptr = ptr;\n Ed25519SignatureFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n Ed25519SignatureFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_ed25519signature_free(ptr, 0);\n }\n /**\n * Try to create an Ed25519 signature from an unpadded base64\n * representation.\n * @param {string} signature\n */\n constructor(signature) {\n const ptr0 = passStringToWasm0(signature, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.ed25519signature_new(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n this.__wbg_ptr = ret[0] >>> 0;\n Ed25519SignatureFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n /**\n * Serialize a Ed25519 signature to an unpadded base64\n * representation.\n * @returns {string}\n */\n toBase64() {\n let deferred1_0;\n let deferred1_1;\n try {\n const ret = wasm.ed25519signature_toBase64(this.__wbg_ptr);\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n }\n}\nif (Symbol.dispose) Ed25519Signature.prototype[Symbol.dispose] = Ed25519Signature.prototype.free;\n\n/**\n * An emoji that is used for interactive verification using a short\n * auth string.\n *\n * This will contain a single emoji and description from the list of\n * emojis from [the specification].\n *\n * [the specification]: https://spec.matrix.org/unstable/client-server-api/#sas-method-emoji\n */\nexport class Emoji {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(Emoji.prototype);\n obj.__wbg_ptr = ptr;\n EmojiFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n EmojiFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_emoji_free(ptr, 0);\n }\n /**\n * The description of the emoji, for example ‘Dog’.\n * @returns {string}\n */\n get description() {\n const ret = wasm.emoji_description(this.__wbg_ptr);\n return ret;\n }\n /**\n * The emoji symbol that represents a part of the short auth\n * string, for example: 🐶\n * @returns {string}\n */\n get symbol() {\n const ret = wasm.emoji_symbol(this.__wbg_ptr);\n return ret;\n }\n}\nif (Symbol.dispose) Emoji.prototype[Symbol.dispose] = Emoji.prototype.free;\n\n/**\n * An encrypted attachment, usually created from `Attachment.encrypt`.\n */\nexport class EncryptedAttachment {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(EncryptedAttachment.prototype);\n obj.__wbg_ptr = ptr;\n EncryptedAttachmentFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n EncryptedAttachmentFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_encryptedattachment_free(ptr, 0);\n }\n /**\n * The actual encrypted data.\n *\n * **Warning**: It returns a **copy** of the entire encrypted\n * data; be nice with your memory.\n * @returns {Uint8Array}\n */\n get encryptedData() {\n const ret = wasm.encryptedattachment_encryptedData(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * Return the media encryption info as a JSON-encoded object. The\n * structure is fully valid.\n *\n * If the media encryption info have been consumed already, it\n * will return `null`.\n * @returns {string | undefined}\n */\n get mediaEncryptionInfo() {\n const ret = wasm.encryptedattachment_mediaEncryptionInfo(this.__wbg_ptr);\n let v1;\n if (ret[0] !== 0) {\n v1 = getStringFromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n }\n return v1;\n }\n /**\n * Check whether the media encryption info has been consumed by\n * `Attachment.decrypt` already.\n * @returns {boolean}\n */\n get hasMediaEncryptionInfoBeenConsumed() {\n const ret = wasm.encryptedattachment_hasMediaEncryptionInfoBeenConsumed(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Create a new encrypted attachment manually.\n *\n * It needs encrypted data, stored in an `Uint8Array`, and a\n * [media encryption\n * information](https://docs.rs/matrix-sdk-crypto/latest/matrix_sdk_crypto/struct.MediaEncryptionInfo.html),\n * as a JSON-encoded object.\n *\n * The media encryption information aren't stored as a string:\n * they are parsed, validated and fully deserialized.\n *\n * See [the specification to learn\n * more](https://spec.matrix.org/unstable/client-server-api/#extensions-to-mroommessage-msgtypes).\n * @param {Uint8Array} encrypted_data\n * @param {string} media_encryption_info\n */\n constructor(encrypted_data, media_encryption_info) {\n const ptr0 = passArray8ToWasm0(encrypted_data, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(media_encryption_info, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n const ret = wasm.encryptedattachment_new(ptr0, len0, ptr1, len1);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n this.__wbg_ptr = ret[0] >>> 0;\n EncryptedAttachmentFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n}\nif (Symbol.dispose) EncryptedAttachment.prototype[Symbol.dispose] = EncryptedAttachment.prototype.free;\n\n/**\n * An encryption algorithm to be used to encrypt messages sent to a\n * room.\n * @enum {0 | 1 | 2}\n */\nexport const EncryptionAlgorithm = Object.freeze({\n /**\n * Olm version 1 using Curve25519, AES-256, and SHA-256.\n */\n OlmV1Curve25519AesSha2: 0, \"0\": \"OlmV1Curve25519AesSha2\",\n /**\n * Megolm version 1 using AES-256 and SHA-256.\n */\n MegolmV1AesSha2: 1, \"1\": \"MegolmV1AesSha2\",\n /**\n * Unsupported algorithm.\n *\n * Applications should ignore this value if it is received, and should\n * never set it.\n */\n Unknown: 2, \"2\": \"Unknown\",\n});\n\n/**\n * Struct containing information on how a room event was decrypted.\n */\nexport class EncryptionInfo {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(EncryptionInfo.prototype);\n obj.__wbg_ptr = ptr;\n EncryptionInfoFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n EncryptionInfoFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_encryptioninfo_free(ptr, 0);\n }\n /**\n * The verification state of the device that sent us the event.\n * Note this is the state of the device at the time of\n * decryption. It may change in the future if a device gets\n * verified or deleted.\n *\n * # Arguments\n *\n * * `strict` - whether to enable \"strict mode\" verification. In non-strict\n * mode, unverified users are given no shield, and keys that have been\n * forwarded or restored from an insecure backup are given a grey shield\n * (both get a red shield in strict mode).\n * @param {boolean} strict\n * @returns {ShieldState}\n */\n shieldState(strict) {\n const ret = wasm.encryptioninfo_shieldState(this.__wbg_ptr, strict);\n return ShieldState.__wrap(ret);\n }\n /**\n * The user ID of the sender of the event.\n *\n * Note this is untrusted data unless {@link shieldState} shows that the\n * sender is verified.\n * @returns {UserId}\n */\n get sender() {\n const ret = wasm.__wbg_get_encryptioninfo_sender(this.__wbg_ptr);\n return UserId.__wrap(ret);\n }\n /**\n * The user ID of the sender of the event.\n *\n * Note this is untrusted data unless {@link shieldState} shows that the\n * sender is verified.\n * @param {UserId} arg0\n */\n set sender(arg0) {\n _assertClass(arg0, UserId);\n var ptr0 = arg0.__destroy_into_raw();\n wasm.__wbg_set_encryptioninfo_sender(this.__wbg_ptr, ptr0);\n }\n /**\n * The device ID of the device that sent us the event.\n *\n * Note this is untrusted data unless {@link shieldState} shows that the\n * sender is verified.\n * @returns {DeviceId | undefined}\n */\n get senderDevice() {\n const ret = wasm.__wbg_get_encryptioninfo_senderDevice(this.__wbg_ptr);\n return ret === 0 ? undefined : DeviceId.__wrap(ret);\n }\n /**\n * The device ID of the device that sent us the event.\n *\n * Note this is untrusted data unless {@link shieldState} shows that the\n * sender is verified.\n * @param {DeviceId | null} [arg0]\n */\n set senderDevice(arg0) {\n let ptr0 = 0;\n if (!isLikeNone(arg0)) {\n _assertClass(arg0, DeviceId);\n ptr0 = arg0.__destroy_into_raw();\n }\n wasm.__wbg_set_encryptioninfo_senderDevice(this.__wbg_ptr, ptr0);\n }\n /**\n * The ID of the user who sent us the keys with which we decrypted this\n * event as part of an MSC4268 key bundle, if present. Only applicable for\n * room events.\n * @returns {UserId | undefined}\n */\n get forwarder() {\n const ret = wasm.__wbg_get_encryptioninfo_forwarder(this.__wbg_ptr);\n return ret === 0 ? undefined : UserId.__wrap(ret);\n }\n /**\n * The ID of the user who sent us the keys with which we decrypted this\n * event as part of an MSC4268 key bundle, if present. Only applicable for\n * room events.\n * @param {UserId | null} [arg0]\n */\n set forwarder(arg0) {\n let ptr0 = 0;\n if (!isLikeNone(arg0)) {\n _assertClass(arg0, UserId);\n ptr0 = arg0.__destroy_into_raw();\n }\n wasm.__wbg_set_encryptioninfo_forwarder(this.__wbg_ptr, ptr0);\n }\n /**\n * The device ID of the user who sent us the keys with which we decrypted\n * this event as part of an MSC4268 key bundle, if present. Only applicable\n * for room events.\n * @returns {DeviceId | undefined}\n */\n get forwarderDevice() {\n const ret = wasm.__wbg_get_encryptioninfo_forwarderDevice(this.__wbg_ptr);\n return ret === 0 ? undefined : DeviceId.__wrap(ret);\n }\n /**\n * The device ID of the user who sent us the keys with which we decrypted\n * this event as part of an MSC4268 key bundle, if present. Only applicable\n * for room events.\n * @param {DeviceId | null} [arg0]\n */\n set forwarderDevice(arg0) {\n let ptr0 = 0;\n if (!isLikeNone(arg0)) {\n _assertClass(arg0, DeviceId);\n ptr0 = arg0.__destroy_into_raw();\n }\n wasm.__wbg_set_encryptioninfo_forwarderDevice(this.__wbg_ptr, ptr0);\n }\n /**\n * The base64-encoded public Curve25519 key of the device that created the\n * megolm decryption key originally.\n * @returns {string}\n */\n get senderCurve25519Key() {\n let deferred1_0;\n let deferred1_1;\n try {\n const ret = wasm.__wbg_get_encryptioninfo_senderCurve25519Key(this.__wbg_ptr);\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n }\n /**\n * The base64-encoded public Curve25519 key of the device that created the\n * megolm decryption key originally.\n * @param {string} arg0\n */\n set senderCurve25519Key(arg0) {\n const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n wasm.__wbg_set_backupsecretsbundle_key(this.__wbg_ptr, ptr0, len0);\n }\n /**\n * The signing Ed25519 key that created the megolm key that\n * was used to decrypt this session.\n * @returns {string | undefined}\n */\n get senderClaimedEd25519Key() {\n const ret = wasm.__wbg_get_encryptioninfo_senderClaimedEd25519Key(this.__wbg_ptr);\n let v1;\n if (ret[0] !== 0) {\n v1 = getStringFromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n }\n return v1;\n }\n /**\n * The signing Ed25519 key that created the megolm key that\n * was used to decrypt this session.\n * @param {string | null} [arg0]\n */\n set senderClaimedEd25519Key(arg0) {\n var ptr0 = isLikeNone(arg0) ? 0 : passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n wasm.__wbg_set_basemigrationdata_backupVersion(this.__wbg_ptr, ptr0, len0);\n }\n}\nif (Symbol.dispose) EncryptionInfo.prototype[Symbol.dispose] = EncryptionInfo.prototype.free;\n\n/**\n * Settings for an encrypted room.\n *\n * This determines the algorithm and rotation periods of a group\n * session.\n */\nexport class EncryptionSettings {\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n EncryptionSettingsFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_encryptionsettings_free(ptr, 0);\n }\n /**\n * Create a new `EncryptionSettings` with default values.\n */\n constructor() {\n const ret = wasm.encryptionsettings_new();\n this.__wbg_ptr = ret >>> 0;\n EncryptionSettingsFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n /**\n * The encryption algorithm that should be used in the room.\n * @returns {EncryptionAlgorithm}\n */\n get algorithm() {\n const ret = wasm.__wbg_get_encryptionsettings_algorithm(this.__wbg_ptr);\n return ret;\n }\n /**\n * The encryption algorithm that should be used in the room.\n * @param {EncryptionAlgorithm} arg0\n */\n set algorithm(arg0) {\n wasm.__wbg_set_encryptionsettings_algorithm(this.__wbg_ptr, arg0);\n }\n /**\n * Whether state event encryption is enabled.\n * @returns {boolean}\n */\n get encryptStateEvents() {\n const ret = wasm.__wbg_get_encryptionsettings_encryptStateEvents(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Whether state event encryption is enabled.\n * @param {boolean} arg0\n */\n set encryptStateEvents(arg0) {\n wasm.__wbg_set_encryptionsettings_encryptStateEvents(this.__wbg_ptr, arg0);\n }\n /**\n * How long the session should be used before changing it,\n * expressed in microseconds.\n * @returns {bigint}\n */\n get rotationPeriod() {\n const ret = wasm.__wbg_get_encryptionsettings_rotationPeriod(this.__wbg_ptr);\n return BigInt.asUintN(64, ret);\n }\n /**\n * How long the session should be used before changing it,\n * expressed in microseconds.\n * @param {bigint} arg0\n */\n set rotationPeriod(arg0) {\n wasm.__wbg_set_encryptionsettings_rotationPeriod(this.__wbg_ptr, arg0);\n }\n /**\n * How many messages should be sent before changing the session.\n * @returns {bigint}\n */\n get rotationPeriodMessages() {\n const ret = wasm.__wbg_get_encryptionsettings_rotationPeriodMessages(this.__wbg_ptr);\n return BigInt.asUintN(64, ret);\n }\n /**\n * How many messages should be sent before changing the session.\n * @param {bigint} arg0\n */\n set rotationPeriodMessages(arg0) {\n wasm.__wbg_set_encryptionsettings_rotationPeriodMessages(this.__wbg_ptr, arg0);\n }\n /**\n * The history visibility of the room when the session was\n * created.\n * @returns {HistoryVisibility}\n */\n get historyVisibility() {\n const ret = wasm.__wbg_get_encryptionsettings_historyVisibility(this.__wbg_ptr);\n return ret;\n }\n /**\n * The history visibility of the room when the session was\n * created.\n * @param {HistoryVisibility} arg0\n */\n set historyVisibility(arg0) {\n wasm.__wbg_set_encryptionsettings_historyVisibility(this.__wbg_ptr, arg0);\n }\n /**\n * Should untrusted devices receive the room key, or should they be\n * excluded from the conversation.\n * @returns {CollectStrategy}\n */\n get sharingStrategy() {\n const ret = wasm.__wbg_get_encryptionsettings_sharingStrategy(this.__wbg_ptr);\n return CollectStrategy.__wrap(ret);\n }\n /**\n * Should untrusted devices receive the room key, or should they be\n * excluded from the conversation.\n * @param {CollectStrategy} arg0\n */\n set sharingStrategy(arg0) {\n _assertClass(arg0, CollectStrategy);\n var ptr0 = arg0.__destroy_into_raw();\n wasm.__wbg_set_encryptionsettings_sharingStrategy(this.__wbg_ptr, ptr0);\n }\n}\nif (Symbol.dispose) EncryptionSettings.prototype[Symbol.dispose] = EncryptionSettings.prototype.free;\n\n/**\n * An established ECIES session.\n *\n * This session can be used to encrypt and decrypt messages between the two\n * sides of the channel.\n */\nexport class EstablishedEcies {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(EstablishedEcies.prototype);\n obj.__wbg_ptr = ptr;\n EstablishedEciesFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n EstablishedEciesFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_establishedecies_free(ptr, 0);\n }\n /**\n * Get the [`CheckCode`] which uniquely identifies this\n * [`EstablishedEcies`] session.\n *\n * This check code can be used to verify and confirm that both sides of the\n * session are indeed using the same shared secret.\n * @returns {CheckCode}\n */\n check_code() {\n const ret = wasm.establishedecies_check_code(this.__wbg_ptr);\n return CheckCode.__wrap(ret);\n }\n /**\n * Get our [`Curve25519PublicKey`].\n *\n * This public key needs to be sent to the other side so that it can\n * complete the ECIES channel establishment.\n * @returns {Curve25519PublicKey}\n */\n public_key() {\n const ret = wasm.establishedecies_public_key(this.__wbg_ptr);\n return Curve25519PublicKey.__wrap(ret);\n }\n /**\n * Decrypt the given message using this [`EstablishedEcies`] session.\n * @param {string} message\n * @returns {string}\n */\n decrypt(message) {\n let deferred3_0;\n let deferred3_1;\n try {\n const ptr0 = passStringToWasm0(message, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.establishedecies_decrypt(this.__wbg_ptr, ptr0, len0);\n var ptr2 = ret[0];\n var len2 = ret[1];\n if (ret[3]) {\n ptr2 = 0; len2 = 0;\n throw takeFromExternrefTable0(ret[2]);\n }\n deferred3_0 = ptr2;\n deferred3_1 = len2;\n return getStringFromWasm0(ptr2, len2);\n } finally {\n wasm.__wbindgen_free(deferred3_0, deferred3_1, 1);\n }\n }\n /**\n * Encrypt the given plaintext using this [`EstablishedEcies`] session.\n * @param {string} message\n * @returns {string}\n */\n encrypt(message) {\n let deferred2_0;\n let deferred2_1;\n try {\n const ptr0 = passStringToWasm0(message, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.establishedecies_encrypt(this.__wbg_ptr, ptr0, len0);\n deferred2_0 = ret[0];\n deferred2_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred2_0, deferred2_1, 1);\n }\n }\n}\nif (Symbol.dispose) EstablishedEcies.prototype[Symbol.dispose] = EstablishedEcies.prototype.free;\n\n/**\n * A Matrix [event ID].\n *\n * An `EventId` is generated randomly or converted from a string\n * slice, and can be converted back into a string as needed.\n *\n * [event ID]: https://spec.matrix.org/v1.2/appendices/#room-ids-and-event-ids\n */\nexport class EventId {\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n EventIdFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_eventid_free(ptr, 0);\n }\n /**\n * Returns the server name of the event ID.\n * @returns {ServerName | undefined}\n */\n get serverName() {\n const ret = wasm.eventid_serverName(this.__wbg_ptr);\n return ret === 0 ? undefined : ServerName.__wrap(ret);\n }\n /**\n * Parse/validate and create a new `EventId`.\n * @param {string} id\n */\n constructor(id) {\n const ptr0 = passStringToWasm0(id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.eventid_new(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n this.__wbg_ptr = ret[0] >>> 0;\n EventIdFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n /**\n * Returns the event's localpart.\n * @returns {string}\n */\n get localpart() {\n let deferred1_0;\n let deferred1_1;\n try {\n const ret = wasm.eventid_localpart(this.__wbg_ptr);\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n }\n /**\n * Return the event ID as a string.\n * @returns {string}\n */\n toString() {\n let deferred1_0;\n let deferred1_1;\n try {\n const ret = wasm.eventid_toString(this.__wbg_ptr);\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n }\n}\nif (Symbol.dispose) EventId.prototype[Symbol.dispose] = EventId.prototype.free;\n\n/**\n * Who can see a room's history.\n * @enum {0 | 1 | 2 | 3}\n */\nexport const HistoryVisibility = Object.freeze({\n /**\n * Previous events are accessible to newly joined members from\n * the point they were invited onwards.\n *\n * Events stop being accessible when the member's state changes\n * to something other than *invite* or *join*.\n */\n Invited: 0, \"0\": \"Invited\",\n /**\n * Previous events are accessible to newly joined members from\n * the point they joined the room onwards.\n *\n * Events stop being accessible when the member's state changes\n * to something other than *join*.\n */\n Joined: 1, \"1\": \"Joined\",\n /**\n * Previous events are always accessible to newly joined members.\n *\n * All events in the room are accessible, even those sent when\n * the member was not a part of the room.\n */\n Shared: 2, \"2\": \"Shared\",\n /**\n * All events while this is the `HistoryVisibility` value may be\n * shared by any participating homeserver with anyone, regardless\n * of whether they have ever joined the room.\n */\n WorldReadable: 3, \"3\": \"WorldReadable\",\n});\n\n/**\n * Struct holding the two public identity keys of an account.\n */\nexport class IdentityKeys {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(IdentityKeys.prototype);\n obj.__wbg_ptr = ptr;\n IdentityKeysFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n IdentityKeysFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_identitykeys_free(ptr, 0);\n }\n /**\n * The Ed25519 public key, used for signing.\n * @returns {Ed25519PublicKey}\n */\n get ed25519() {\n const ret = wasm.__wbg_get_identitykeys_ed25519(this.__wbg_ptr);\n return Ed25519PublicKey.__wrap(ret);\n }\n /**\n * The Ed25519 public key, used for signing.\n * @param {Ed25519PublicKey} arg0\n */\n set ed25519(arg0) {\n _assertClass(arg0, Ed25519PublicKey);\n var ptr0 = arg0.__destroy_into_raw();\n wasm.__wbg_set_identitykeys_ed25519(this.__wbg_ptr, ptr0);\n }\n /**\n * The Curve25519 public key, used for establish shared secrets.\n * @returns {Curve25519PublicKey}\n */\n get curve25519() {\n const ret = wasm.__wbg_get_identitykeys_curve25519(this.__wbg_ptr);\n return Curve25519PublicKey.__wrap(ret);\n }\n /**\n * The Curve25519 public key, used for establish shared secrets.\n * @param {Curve25519PublicKey} arg0\n */\n set curve25519(arg0) {\n _assertClass(arg0, Curve25519PublicKey);\n var ptr0 = arg0.__destroy_into_raw();\n wasm.__wbg_set_identitykeys_curve25519(this.__wbg_ptr, ptr0);\n }\n}\nif (Symbol.dispose) IdentityKeys.prototype[Symbol.dispose] = IdentityKeys.prototype.free;\n\n/**\n * The result of an inbound ECIES channel establishment.\n */\nexport class InboundCreationResult {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(InboundCreationResult.prototype);\n obj.__wbg_ptr = ptr;\n InboundCreationResultFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n InboundCreationResultFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_inboundcreationresult_free(ptr, 0);\n }\n /**\n * The established ECIES channel.\n * @returns {EstablishedEcies}\n */\n get channel() {\n const ret = wasm.__wbg_get_inboundcreationresult_channel(this.__wbg_ptr);\n return EstablishedEcies.__wrap(ret);\n }\n /**\n * The established ECIES channel.\n * @param {EstablishedEcies} arg0\n */\n set channel(arg0) {\n _assertClass(arg0, EstablishedEcies);\n var ptr0 = arg0.__destroy_into_raw();\n wasm.__wbg_set_inboundcreationresult_channel(this.__wbg_ptr, ptr0);\n }\n /**\n * The plaintext of the initial message.\n * @returns {string}\n */\n get message() {\n let deferred1_0;\n let deferred1_1;\n try {\n const ret = wasm.__wbg_get_inboundcreationresult_message(this.__wbg_ptr);\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n }\n /**\n * The plaintext of the initial message.\n * @param {string} arg0\n */\n set message(arg0) {\n const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n wasm.__wbg_set_backupsecretsbundle_key(this.__wbg_ptr, ptr0, len0);\n }\n}\nif (Symbol.dispose) InboundCreationResult.prototype[Symbol.dispose] = InboundCreationResult.prototype.free;\n\n/**\n * Inbound group session.\n *\n * Inbound group sessions are used to exchange room messages between a group of\n * participants. Inbound group sessions are used to decrypt the room messages.\n */\nexport class InboundGroupSession {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(InboundGroupSession.prototype);\n obj.__wbg_ptr = ptr;\n InboundGroupSessionFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n InboundGroupSessionFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_inboundgroupsession_free(ptr, 0);\n }\n /**\n * The Curve25519 key of the sender of this session, as a\n * [Curve25519PublicKey].\n * @returns {Curve25519PublicKey}\n */\n get senderKey() {\n const ret = wasm.inboundgroupsession_senderKey(this.__wbg_ptr);\n return Curve25519PublicKey.__wrap(ret);\n }\n /**\n * Returns the unique identifier for this session.\n * @returns {string}\n */\n get sessionId() {\n let deferred1_0;\n let deferred1_1;\n try {\n const ret = wasm.inboundgroupsession_sessionId(this.__wbg_ptr);\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n }\n /**\n * Has the session been imported from a file or server-side backup? As\n * opposed to being directly received as an `m.room_key` event.\n * @returns {boolean}\n */\n hasBeenImported() {\n const ret = wasm.inboundgroupsession_hasBeenImported(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * The room where this session is used in.\n * @returns {RoomId}\n */\n get roomId() {\n const ret = wasm.inboundgroupsession_roomId(this.__wbg_ptr);\n return RoomId.__wrap(ret);\n }\n}\nif (Symbol.dispose) InboundGroupSession.prototype[Symbol.dispose] = InboundGroupSession.prototype.free;\n\n/**\n * Represents an invalid to-device event that was ignored (because it is\n * missing some mandatory fields, for example).\n */\nexport class InvalidToDeviceEvent {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(InvalidToDeviceEvent.prototype);\n obj.__wbg_ptr = ptr;\n InvalidToDeviceEventFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n InvalidToDeviceEventFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_invalidtodeviceevent_free(ptr, 0);\n }\n /**\n * The original message as received from sync, encoded as JSON.\n * @returns {string}\n */\n get rawEvent() {\n const ret = wasm.__wbg_get_invalidtodeviceevent_rawEvent(this.__wbg_ptr);\n return ret;\n }\n /**\n * The type of processed to-device event. Always {@link\n * ProcessedToDeviceEventType.Invalid} for this type.\n * @returns {ProcessedToDeviceEventType}\n */\n get type() {\n const ret = wasm.invalidtodeviceevent_type(this.__wbg_ptr);\n return ret;\n }\n}\nif (Symbol.dispose) InvalidToDeviceEvent.prototype[Symbol.dispose] = InvalidToDeviceEvent.prototype.free;\n\n/**\n * A request that will back up a batch of room keys to the server\n * ([specification]).\n *\n * [specification]: https://spec.matrix.org/unstable/client-server-api/#put_matrixclientv3room_keyskeys\n */\nexport class KeysBackupRequest {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(KeysBackupRequest.prototype);\n obj.__wbg_ptr = ptr;\n KeysBackupRequestFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n KeysBackupRequestFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_keysbackuprequest_free(ptr, 0);\n }\n /**\n * Get its request type.\n * @returns {RequestType}\n */\n get type() {\n const ret = wasm.keysbackuprequest_type(this.__wbg_ptr);\n return ret;\n }\n /**\n * Create a new `KeysBackupRequest`.\n * @param {string} id\n * @param {string} body\n * @param {string} version\n */\n constructor(id, body, version) {\n const ret = wasm.keysbackuprequest_new(id, body, version);\n this.__wbg_ptr = ret >>> 0;\n KeysBackupRequestFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n /**\n * The request ID.\n * @returns {string}\n */\n get id() {\n const ret = wasm.__wbg_get_keysbackuprequest_id(this.__wbg_ptr);\n return ret;\n }\n /**\n * A JSON-encoded object containing the rest of the payload: `rooms`.\n *\n * It represents the body of the HTTP request.\n * @returns {string}\n */\n get body() {\n const ret = wasm.__wbg_get_keysbackuprequest_body(this.__wbg_ptr);\n return ret;\n }\n /**\n * The backup version that these room keys should be part of.\n * @returns {string}\n */\n get version() {\n const ret = wasm.__wbg_get_keysbackuprequest_version(this.__wbg_ptr);\n return ret;\n }\n}\nif (Symbol.dispose) KeysBackupRequest.prototype[Symbol.dispose] = KeysBackupRequest.prototype.free;\n\n/**\n * Data for a request to the `/keys/claim` API endpoint\n * ([specification]).\n *\n * Claims one-time keys that can be used to establish 1-to-1 E2EE\n * sessions.\n *\n * [specification]: https://spec.matrix.org/unstable/client-server-api/#post_matrixclientv3keysclaim\n */\nexport class KeysClaimRequest {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(KeysClaimRequest.prototype);\n obj.__wbg_ptr = ptr;\n KeysClaimRequestFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n KeysClaimRequestFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_keysclaimrequest_free(ptr, 0);\n }\n /**\n * Get its request type.\n * @returns {RequestType}\n */\n get type() {\n const ret = wasm.keysclaimrequest_type(this.__wbg_ptr);\n return ret;\n }\n /**\n * Create a new `KeysClaimRequest`.\n * @param {string} id\n * @param {string} body\n */\n constructor(id, body) {\n const ret = wasm.keysclaimrequest_new(id, body);\n this.__wbg_ptr = ret >>> 0;\n KeysClaimRequestFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n /**\n * The request ID.\n * @returns {string}\n */\n get id() {\n const ret = wasm.__wbg_get_keysclaimrequest_id(this.__wbg_ptr);\n return ret;\n }\n /**\n * A JSON-encoded object containing the rest of the payload: `timeout`,\n * `one_time_keys`.\n *\n * It represents the body of the HTTP request.\n * @returns {string}\n */\n get body() {\n const ret = wasm.__wbg_get_keysclaimrequest_body(this.__wbg_ptr);\n return ret;\n }\n}\nif (Symbol.dispose) KeysClaimRequest.prototype[Symbol.dispose] = KeysClaimRequest.prototype.free;\n\n/**\n * Data for a request to the `/keys/query` API endpoint\n * ([specification]).\n *\n * Returns the current devices and identity keys for the given users.\n *\n * [specification]: https://spec.matrix.org/unstable/client-server-api/#post_matrixclientv3keysquery\n */\nexport class KeysQueryRequest {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(KeysQueryRequest.prototype);\n obj.__wbg_ptr = ptr;\n KeysQueryRequestFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n KeysQueryRequestFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_keysqueryrequest_free(ptr, 0);\n }\n /**\n * Get its request type.\n * @returns {RequestType}\n */\n get type() {\n const ret = wasm.keysqueryrequest_type(this.__wbg_ptr);\n return ret;\n }\n /**\n * Create a new `KeysQueryRequest`.\n * @param {string} id\n * @param {string} body\n */\n constructor(id, body) {\n const ret = wasm.keysqueryrequest_new(id, body);\n this.__wbg_ptr = ret >>> 0;\n KeysQueryRequestFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n /**\n * The request ID.\n * @returns {string}\n */\n get id() {\n const ret = wasm.__wbg_get_keysqueryrequest_id(this.__wbg_ptr);\n return ret;\n }\n /**\n * A JSON-encoded object containing the rest of the payload: `timeout`,\n * `device_keys`, `token`.\n *\n * It represents the body of the HTTP request.\n * @returns {string}\n */\n get body() {\n const ret = wasm.__wbg_get_keysqueryrequest_body(this.__wbg_ptr);\n return ret;\n }\n}\nif (Symbol.dispose) KeysQueryRequest.prototype[Symbol.dispose] = KeysQueryRequest.prototype.free;\n\n/**\n * Outgoing Requests *\n * Data for a request to the `/keys/upload` API endpoint\n * ([specification]).\n *\n * Publishes end-to-end encryption keys for the device.\n *\n * [specification]: https://spec.matrix.org/unstable/client-server-api/#post_matrixclientv3keysupload\n */\nexport class KeysUploadRequest {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(KeysUploadRequest.prototype);\n obj.__wbg_ptr = ptr;\n KeysUploadRequestFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n KeysUploadRequestFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_keysuploadrequest_free(ptr, 0);\n }\n /**\n * Get its request type.\n * @returns {RequestType}\n */\n get type() {\n const ret = wasm.keysuploadrequest_type(this.__wbg_ptr);\n return ret;\n }\n /**\n * Create a new `KeysUploadRequest`.\n * @param {string} id\n * @param {string} body\n */\n constructor(id, body) {\n const ret = wasm.keysuploadrequest_new(id, body);\n this.__wbg_ptr = ret >>> 0;\n KeysUploadRequestFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n /**\n * The request ID.\n * @returns {string}\n */\n get id() {\n const ret = wasm.__wbg_get_keysuploadrequest_id(this.__wbg_ptr);\n return ret;\n }\n /**\n * A JSON-encoded object containing the rest of the payload: `device_keys`,\n * `one_time_keys`, `fallback_keys`.\n *\n * It represents the body of the HTTP request.\n * @returns {string}\n */\n get body() {\n const ret = wasm.__wbg_get_keysuploadrequest_body(this.__wbg_ptr);\n return ret;\n }\n}\nif (Symbol.dispose) KeysUploadRequest.prototype[Symbol.dispose] = KeysUploadRequest.prototype.free;\n\n/**\n * The local trust state of a device.\n * @enum {0 | 1 | 2 | 3}\n */\nexport const LocalTrust = Object.freeze({\n /**\n * The device has been verified and is trusted.\n */\n Verified: 0, \"0\": \"Verified\",\n /**\n * The device been blacklisted from communicating.\n */\n BlackListed: 1, \"1\": \"BlackListed\",\n /**\n * The trust state of the device is being ignored.\n */\n Ignored: 2, \"2\": \"Ignored\",\n /**\n * The trust state is unset.\n */\n Unset: 3, \"3\": \"Unset\",\n});\n\n/**\n * Logger level.\n * @enum {0 | 1 | 2 | 3 | 4}\n */\nexport const LoggerLevel = Object.freeze({\n /**\n * `TRACE` level.\n *\n * Designate very low priority, often extremely verbose,\n * information.\n */\n Trace: 0, \"0\": \"Trace\",\n /**\n * `DEBUG` level.\n *\n * Designate lower priority information.\n */\n Debug: 1, \"1\": \"Debug\",\n /**\n * `INFO` level.\n *\n * Designate useful information.\n */\n Info: 2, \"2\": \"Info\",\n /**\n * `WARN` level.\n *\n * Designate hazardous situations.\n */\n Warn: 3, \"3\": \"Warn\",\n /**\n * `ERROR` level.\n *\n * Designate very serious errors.\n */\n Error: 4, \"4\": \"Error\",\n});\n\n/**\n * Represents a signature that is either valid _or_ that could not be\n * decoded.\n */\nexport class MaybeSignature {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(MaybeSignature.prototype);\n obj.__wbg_ptr = ptr;\n MaybeSignatureFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n MaybeSignatureFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_maybesignature_free(ptr, 0);\n }\n /**\n * Check whether the signature could not be successfully decoded.\n * @returns {boolean}\n */\n isInvalid() {\n const ret = wasm.maybesignature_isInvalid(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * The base64 encoded string that is claimed to contain a\n * signature but could not be decoded, if any.\n * @returns {string | undefined}\n */\n get invalidSignatureSource() {\n const ret = wasm.maybesignature_invalidSignatureSource(this.__wbg_ptr);\n let v1;\n if (ret[0] !== 0) {\n v1 = getStringFromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n }\n return v1;\n }\n /**\n * Check whether the signature has been successfully decoded.\n * @returns {boolean}\n */\n isValid() {\n const ret = wasm.maybesignature_isValid(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * The signature, if successfully decoded.\n * @returns {Signature | undefined}\n */\n get signature() {\n const ret = wasm.maybesignature_signature(this.__wbg_ptr);\n return ret === 0 ? undefined : Signature.__wrap(ret);\n }\n}\nif (Symbol.dispose) MaybeSignature.prototype[Symbol.dispose] = MaybeSignature.prototype.free;\n\n/**\n * Js Decryption error with code.\n */\nexport class MegolmDecryptionError {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(MegolmDecryptionError.prototype);\n obj.__wbg_ptr = ptr;\n MegolmDecryptionErrorFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n MegolmDecryptionErrorFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_megolmdecryptionerror_free(ptr, 0);\n }\n /**\n * Description code for the error. See `DecryptionErrorCode`\n * @returns {DecryptionErrorCode}\n */\n get code() {\n const ret = wasm.__wbg_get_megolmdecryptionerror_code(this.__wbg_ptr);\n return ret;\n }\n /**\n * detailed description\n * @returns {string}\n */\n get description() {\n const ret = wasm.__wbg_get_megolmdecryptionerror_description(this.__wbg_ptr);\n return ret;\n }\n /**\n * The withheld code, if any.\n *\n * Example: \"m.unverified\"\n *\n * `undefined` if we have not received a withheld code for the megolm\n * session.\n * @returns {string | undefined}\n */\n get withheldCode() {\n const ret = wasm.megolmdecryptionerror_withheldCode(this.__wbg_ptr);\n let v1;\n if (ret[0] !== 0) {\n v1 = getStringFromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n }\n return v1;\n }\n /**\n * Textual description of the withheld code, if any.\n *\n * Example: \"The sender has disabled encrypting to unverified devices.\"\n *\n * `undefined` if we have not received a withheld code for the megolm\n * session.\n * @returns {string | undefined}\n */\n get maybe_withheld() {\n const ret = wasm.megolmdecryptionerror_maybe_withheld(this.__wbg_ptr);\n let v1;\n if (ret[0] !== 0) {\n v1 = getStringFromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n }\n return v1;\n }\n /**\n * Creates generic error with description\n * @param {string} desc\n * @returns {MegolmDecryptionError}\n */\n static unable_to_decrypt(desc) {\n const ptr0 = passStringToWasm0(desc, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.megolmdecryptionerror_unable_to_decrypt(ptr0, len0);\n return MegolmDecryptionError.__wrap(ret);\n }\n}\nif (Symbol.dispose) MegolmDecryptionError.prototype[Symbol.dispose] = MegolmDecryptionError.prototype.free;\n\n/**\n * The public part of the backup key.\n */\nexport class MegolmV1BackupKey {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(MegolmV1BackupKey.prototype);\n obj.__wbg_ptr = ptr;\n MegolmV1BackupKeyFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n MegolmV1BackupKeyFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_megolmv1backupkey_free(ptr, 0);\n }\n /**\n * The actual base64 encoded public key.\n * @returns {string}\n */\n get publicKeyBase64() {\n const ret = wasm.megolmv1backupkey_publicKeyBase64(this.__wbg_ptr);\n return ret;\n }\n /**\n * Get the full name of the backup algorithm this backup key supports.\n * @returns {string}\n */\n get algorithm() {\n const ret = wasm.megolmv1backupkey_algorithm(this.__wbg_ptr);\n return ret;\n }\n}\nif (Symbol.dispose) MegolmV1BackupKey.prototype[Symbol.dispose] = MegolmV1BackupKey.prototype.free;\n\n/**\n * Migration routines\n *\n * The public methods are exposed as static methods on this class, for\n * namespacing and to enable easier mocking in unit tests.\n */\nexport class Migration {\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n MigrationFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_migration_free(ptr, 0);\n }\n /**\n * Import the base dataset from a libolm-based setup to a vodozemac-based\n * setup stored in IndexedDB.\n *\n * Populates the user credentials, Olm account, backup data, etc. This is\n * the first step in the migration process. Once this base data is\n * imported, further data can be imported with {@link\n * migrateOlmSessions}, {@link migrateMegolmSessions}, and TODO room\n * settings.\n *\n * # Arguments\n *\n * * `data` - The data to be migrated\n * * `pickle_key` - The libolm pickle key that was used to pickle the olm\n * account objects.\n * * `store_handle` - A connection to the CryptoStore which will be used to\n * store the vodozemac data.\n * * `logger` - An optional logger instance to use for writing log messages\n * during the migration operation. An instance of `JsLogger`.\n * @param {BaseMigrationData} data\n * @param {Uint8Array} pickle_key\n * @param {StoreHandle} store_handle\n * @param {any | null} [logger]\n * @returns {Promise<void>}\n */\n static migrateBaseData(data, pickle_key, store_handle, logger) {\n _assertClass(data, BaseMigrationData);\n _assertClass(store_handle, StoreHandle);\n const ret = wasm.migration_migrateBaseData(data.__wbg_ptr, pickle_key, store_handle.__wbg_ptr, isLikeNone(logger) ? 0 : addToExternrefTable0(logger));\n return ret;\n }\n /**\n * Migrate Olm sessions of a libolm-based setup to a vodozemac-based setup\n * stored in an indexedDB crypto store.\n *\n * Before this method can be used, {@link migrateBaseData} must be used to\n * import the base data into the crypto store.\n *\n * This method should be called a number of times, with separate batches of\n * `sessions`. If a progress display is given, it can be updated after\n * each batch is successfully imported.\n *\n * # Arguments\n *\n * * `sessions` - An `Array` of {@link PickledSession}s to import. Items\n * inside `sessions` will be invalidated by this method.\n * * `pickle_key` - The libolm pickle key that was used to pickle the olm\n * session objects.\n * * `store_handle` - A connection to the CryptoStore which will be used to\n * store the vodozemac data.\n * * `logger` - An optional logger instance to use for writing log messages\n * during the migration operation. An instance of `JsLogger`.\n * @param {PickledSession[]} sessions\n * @param {Uint8Array} pickle_key\n * @param {StoreHandle} store_handle\n * @param {any | null} [logger]\n * @returns {Promise<void>}\n */\n static migrateOlmSessions(sessions, pickle_key, store_handle, logger) {\n const ptr0 = passArrayJsValueToWasm0(sessions, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n _assertClass(store_handle, StoreHandle);\n const ret = wasm.migration_migrateOlmSessions(ptr0, len0, pickle_key, store_handle.__wbg_ptr, isLikeNone(logger) ? 0 : addToExternrefTable0(logger));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * Migrate Megolm sessions of a libolm-based setup to a vodozemac-based\n * setup stored in an indexedDB crypto store.\n *\n * Before this method can be used, {@link migrateBaseData} must be used to\n * import the base data into the crypto store.\n *\n * This method should be called a number of times, with separate batches of\n * `sessions`. If a progress display is given, it can be updated after\n * each batch is successfully imported.\n *\n * # Arguments\n *\n * * `sessions` - An `Array` of {@link PickledInboundGroupSession}s to\n * import. Items inside `sessions` will be invalidated by this method.\n * * `pickle_key` - The libolm pickle key that was used to pickle the\n * megolm session objects.\n * * `store_handle` - A connection to the CryptoStore which will be used to\n * store the vodozemac data.\n * * `logger` - An optional logger instance to use for writing log messages\n * during the migration operation. An instance of `JsLogger`.\n * @param {PickledInboundGroupSession[]} sessions\n * @param {Uint8Array} pickle_key\n * @param {StoreHandle} store_handle\n * @param {any | null} [logger]\n * @returns {Promise<void>}\n */\n static migrateMegolmSessions(sessions, pickle_key, store_handle, logger) {\n const ptr0 = passArrayJsValueToWasm0(sessions, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n _assertClass(store_handle, StoreHandle);\n const ret = wasm.migration_migrateMegolmSessions(ptr0, len0, pickle_key, store_handle.__wbg_ptr, isLikeNone(logger) ? 0 : addToExternrefTable0(logger));\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n}\nif (Symbol.dispose) Migration.prototype[Symbol.dispose] = Migration.prototype.free;\n\n/**\n * State machine implementation of the Olm/Megolm encryption protocol\n * used for Matrix end to end encryption.\n */\nexport class OlmMachine {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(OlmMachine.prototype);\n obj.__wbg_ptr = ptr;\n OlmMachineFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n OlmMachineFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_olmmachine_free(ptr, 0);\n }\n /**\n * Get a specific device of a user.\n *\n * ### Parameters\n *\n * * `user_id` - The unique ID of the user that the device belongs to.\n *\n * * `device_id` - The unique ID of the device.\n *\n * * `timeout_secs` - The amount of time we should wait for a `/keys/query`\n * response before returning if the user's device list has been marked as\n * stale. **Note**, this assumes that the requests from {@link\n * OlmMachine.outgoingRequests} are being processed and sent out.\n *\n * If unset, we will return immediately even if the device list is stale.\n *\n * ### Returns\n *\n * If the device is known, a {@link Device}. Otherwise, `undefined`.\n * @param {UserId} user_id\n * @param {DeviceId} device_id\n * @param {number | null} [timeout_secs]\n * @returns {Promise<any>}\n */\n getDevice(user_id, device_id, timeout_secs) {\n _assertClass(user_id, UserId);\n _assertClass(device_id, DeviceId);\n const ret = wasm.olmmachine_getDevice(this.__wbg_ptr, user_id.__wbg_ptr, device_id.__wbg_ptr, !isLikeNone(timeout_secs), isLikeNone(timeout_secs) ? 0 : timeout_secs);\n return ret;\n }\n /**\n * Create a new `OlmMachine`.\n *\n * The created machine will keep the encryption keys either in a IndexedDB\n * based store, or in a memory store and once the objects is dropped,\n * the keys will be lost.\n *\n * # Arguments\n *\n * * `user_id` - represents the unique ID of the user that owns this\n * machine.\n *\n * * `device_id` - represents the unique ID of the device\n * that owns this machine.\n *\n * * `store_name` - The name that should be used to open the IndexedDB\n * based database. If this isn't provided, a memory-only store will be\n * used. *Note* the memory-only store will lose your E2EE keys when the\n * `OlmMachine` gets dropped.\n *\n * * `store_passphrase` - The passphrase that should be used to encrypt the\n * IndexedDB-based store.\n *\n * * `logger` - Optional logger to use for all operations on this machine.\n * An instance of `JsLogger`.\n * @param {UserId} user_id\n * @param {DeviceId} device_id\n * @param {string | null} [store_name]\n * @param {string | null} [store_passphrase]\n * @param {any | null} [logger]\n * @returns {Promise<OlmMachine>}\n */\n static initialize(user_id, device_id, store_name, store_passphrase, logger) {\n _assertClass(user_id, UserId);\n _assertClass(device_id, DeviceId);\n var ptr0 = isLikeNone(store_name) ? 0 : passStringToWasm0(store_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(store_passphrase) ? 0 : passStringToWasm0(store_passphrase, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.olmmachine_initialize(user_id.__wbg_ptr, device_id.__wbg_ptr, ptr0, len0, ptr1, len1, isLikeNone(logger) ? 0 : addToExternrefTable0(logger));\n return ret;\n }\n /**\n * Get the display name of our own device.\n * @returns {Promise<any>}\n */\n get displayName() {\n const ret = wasm.olmmachine_displayName(this.__wbg_ptr);\n return ret;\n }\n /**\n * Get the cross signing user identity of a user.\n *\n * Returns a promise for an {@link OwnUserIdentity}, a\n * {@link OtherUserIdentity}, or `undefined`.\n * @param {UserId} user_id\n * @returns {Promise<any>}\n */\n getIdentity(user_id) {\n _assertClass(user_id, UserId);\n const ret = wasm.olmmachine_getIdentity(this.__wbg_ptr, user_id.__wbg_ptr);\n return ret;\n }\n /**\n * Get the public parts of our Olm identity keys.\n * @returns {IdentityKeys}\n */\n get identityKeys() {\n const ret = wasm.olmmachine_identityKeys(this.__wbg_ptr);\n return IdentityKeys.__wrap(ret);\n }\n /**\n * Get the list of users whose devices we are currently tracking.\n *\n * A user can be marked for tracking using the\n * [`update_tracked_users`](#method.update_tracked_users) method.\n *\n * Returns a `Set<UserId>`.\n * @returns {Promise<any>}\n */\n trackedUsers() {\n const ret = wasm.olmmachine_trackedUsers(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * Check if the given backup has been verified by us or by another of our\n * devices that we trust.\n *\n * The `backup_info` should be a Javascript object with the following\n * format:\n *\n * ```json\n * {\n * \"algorithm\": \"m.megolm_backup.v1.curve25519-aes-sha2\",\n * \"auth_data\": {\n * \"public_key\":\"XjhWTCjW7l59pbfx9tlCBQolfnIQWARoKOzjTOPSlWM\",\n * \"signatures\": {}\n * }\n * }\n * ```\n *\n * Returns a {@link SignatureVerification} object.\n * @param {any} backup_info\n * @returns {Promise<any>}\n */\n verifyBackup(backup_info) {\n const ret = wasm.olmmachine_verifyBackup(this.__wbg_ptr, backup_info);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * Disable and reset our backup state.\n *\n * This will remove any pending backup request, remove the backup key and\n * reset the backup state of each room key we have.\n *\n * Returns `Promise<void>`.\n * @returns {Promise<any>}\n */\n disableBackup() {\n const ret = wasm.olmmachine_disableBackup(this.__wbg_ptr);\n return ret;\n }\n /**\n * Get to-device requests to share a room key with users in a room.\n *\n * `room_id` is the room ID. `users` is an array of `UserId`\n * objects. `encryption_settings` are an `EncryptionSettings`\n * object.\n *\n * Note: Care should be taken that only one such request at a\n * time is in flight for the same room, e.g. using a lock.\n *\n * Returns an array of `ToDeviceRequest`s.\n *\n * Items inside `users` will be invalidated by this method. Be careful not\n * to use the `UserId`s after this method has been called.\n * @param {RoomId} room_id\n * @param {UserId[]} users\n * @param {EncryptionSettings} encryption_settings\n * @returns {Promise<any>}\n */\n shareRoomKey(room_id, users, encryption_settings) {\n _assertClass(room_id, RoomId);\n const ptr0 = passArrayJsValueToWasm0(users, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n _assertClass(encryption_settings, EncryptionSettings);\n const ret = wasm.olmmachine_shareRoomKey(this.__wbg_ptr, room_id.__wbg_ptr, ptr0, len0, encryption_settings.__wbg_ptr);\n return ret;\n }\n /**\n * Get the backup keys we have saved in our store.\n * Returns a `Promise` for {@link BackupKeys}.\n * @returns {Promise<any>}\n */\n getBackupKeys() {\n const ret = wasm.olmmachine_getBackupKeys(this.__wbg_ptr);\n return ret;\n }\n /**\n * Create a new `OlmMachine` backed by an existing store.\n *\n * # Arguments\n *\n * * `user_id` - represents the unique ID of the user that owns this\n * machine.\n *\n * * `device_id` - represents the unique ID of the device\n * that owns this machine.\n *\n * * `store_handle` - the connection to the crypto store to be used for\n * this machine.\n *\n * * `logger` - Optional logger to use for all operations on this machine.\n * An instance of `JsLogger`.\n * @param {UserId} user_id\n * @param {DeviceId} device_id\n * @param {StoreHandle} store_handle\n * @param {any | null} [logger]\n * @returns {Promise<OlmMachine>}\n */\n static initFromStore(user_id, device_id, store_handle, logger) {\n _assertClass(user_id, UserId);\n _assertClass(device_id, DeviceId);\n _assertClass(store_handle, StoreHandle);\n const ret = wasm.olmmachine_initFromStore(user_id.__wbg_ptr, device_id.__wbg_ptr, store_handle.__wbg_ptr, isLikeNone(logger) ? 0 : addToExternrefTable0(logger));\n return ret;\n }\n /**\n * Get the number of backed up room keys and the total number of room keys.\n * Returns a {@link RoomKeyCounts}.\n * @returns {Promise<any>}\n */\n roomKeyCounts() {\n const ret = wasm.olmmachine_roomKeyCounts(this.__wbg_ptr);\n return ret;\n }\n /**\n * Encrypt a batch of room keys and return a request that needs to be sent\n * out to backup the room keys.\n *\n * Returns an optional {@link KeysBackupRequest}.\n * @returns {Promise<any>}\n */\n backupRoomKeys() {\n const ret = wasm.olmmachine_backupRoomKeys(this.__wbg_ptr);\n return ret;\n }\n /**\n * Activate the given backup key to be used with the given backup version.\n *\n * **Warning**: The caller needs to make sure that the given `BackupKey` is\n * trusted, otherwise we might be encrypting room keys that a malicious\n * party could decrypt.\n *\n * The {@link verifyBackup} method can be used to do so.\n *\n * Returns `Promise<void>`.\n * @param {string} public_key_base_64\n * @param {string} version\n * @returns {Promise<any>}\n */\n enableBackupV1(public_key_base_64, version) {\n const ptr0 = passStringToWasm0(public_key_base_64, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(version, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n const ret = wasm.olmmachine_enableBackupV1(this.__wbg_ptr, ptr0, len0, ptr1, len1);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * Export the keys that match the given predicate.\n *\n * `predicate` is a closure that will be called for every known\n * `InboundGroupSession`, which represents a room key. If the closure\n * returns `true`, the `InboundGroupSession` will be included in the\n * export; otherwise it won't.\n *\n * Returns a Promise containing a Result containing a String which is a\n * JSON-encoded array of ExportedRoomKey objects.\n * @param {Function} predicate\n * @returns {Promise<any>}\n */\n exportRoomKeys(predicate) {\n const ret = wasm.olmmachine_exportRoomKeys(this.__wbg_ptr, predicate);\n return ret;\n }\n /**\n * Get a map holding all the devices of a user.\n *\n * ### Parameters\n *\n * * `user_id` - The unique ID of the user that the device belongs to.\n *\n * * `timeout_secs` - The amount of time we should wait for a `/keys/query`\n * response before returning if the user's device list has been marked as\n * stale. **Note**, this assumes that the requests from {@link\n * OlmMachine.outgoingRequests} are being processed and sent out.\n *\n * If unset, we will return immediately even if the device list is stale.\n *\n * ### Returns\n *\n * A {@link UserDevices} object.\n * @param {UserId} user_id\n * @param {number | null} [timeout_secs]\n * @returns {Promise<any>}\n */\n getUserDevices(user_id, timeout_secs) {\n _assertClass(user_id, UserId);\n const ret = wasm.olmmachine_getUserDevices(this.__wbg_ptr, user_id.__wbg_ptr, !isLikeNone(timeout_secs), isLikeNone(timeout_secs) ? 0 : timeout_secs);\n return ret;\n }\n /**\n * Get a verification object for the given user ID with the given\n * flow ID (a to-device request ID if the verification has been\n * requested by a to-device request, or a room event ID if the\n * verification has been requested by a room event).\n *\n * It returns a “`Verification` object”, which is either a `Sas`\n * or `Qr` object.\n * @param {UserId} user_id\n * @param {string} flow_id\n * @returns {any}\n */\n getVerification(user_id, flow_id) {\n _assertClass(user_id, UserId);\n const ptr0 = passStringToWasm0(flow_id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.olmmachine_getVerification(this.__wbg_ptr, user_id.__wbg_ptr, ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * Import the given room keys into our store.\n *\n * Mostly, a deprecated alias for `importExportedRoomKeys`, though the\n * return type is different.\n *\n * Returns a String containing a JSON-encoded object, holding three\n * properties:\n * * `total_count` (the total number of keys found in the export data).\n * * `imported_count` (the number of keys that were imported).\n * * `keys` (the keys that were imported; a map from room id to a map of\n * the sender key to a list of session ids).\n *\n * @deprecated Use `importExportedRoomKeys` or `importBackedUpRoomKeys`.\n * @param {string} exported_room_keys\n * @param {Function} progress_listener\n * @returns {Promise<any>}\n */\n importRoomKeys(exported_room_keys, progress_listener) {\n const ptr0 = passStringToWasm0(exported_room_keys, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.olmmachine_importRoomKeys(this.__wbg_ptr, ptr0, len0, progress_listener);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * Get the stored room settings, such as the encryption algorithm or\n * whether to encrypt only for trusted devices.\n *\n * These settings can be modified via {@link setRoomSettings}.\n *\n * # Returns\n *\n * `Promise<RoomSettings|undefined>`\n * @param {RoomId} room_id\n * @returns {Promise<RoomSettings|undefined>}\n */\n getRoomSettings(room_id) {\n _assertClass(room_id, RoomId);\n const ret = wasm.olmmachine_getRoomSettings(this.__wbg_ptr, room_id.__wbg_ptr);\n return ret;\n }\n /**\n * Are we able to encrypt room keys.\n *\n * This returns true if we have an active `BackupKey` and backup version\n * registered with the state machine.\n *\n * Returns `Promise<bool>`.\n * @returns {Promise<any>}\n */\n isBackupEnabled() {\n const ret = wasm.olmmachine_isBackupEnabled(this.__wbg_ptr);\n return ret;\n }\n /**\n * Get the outgoing requests that need to be sent out.\n *\n * This returns a list of values, each of which can be any of:\n * * {@link KeysUploadRequest},\n * * {@link KeysQueryRequest},\n * * {@link KeysClaimRequest},\n * * {@link ToDeviceRequest},\n * * {@link SignatureUploadRequest},\n * * {@link RoomMessageRequest}, or\n * * {@link KeysBackupRequest}.\n *\n * Those requests need to be sent out to the server and the\n * responses need to be passed back to the state machine\n * using {@link OlmMachine.markRequestAsSent}.\n * @returns {Promise<any>}\n */\n outgoingRequests() {\n const ret = wasm.olmmachine_outgoingRequests(this.__wbg_ptr);\n return ret;\n }\n /**\n * Store encryption settings for the given room.\n *\n * This method checks if the new settings are \"safe\" -- ie, that they do\n * not represent a downgrade in encryption security from any previous\n * settings. Attempts to downgrade security will result in an error.\n *\n * If the settings are valid, they will be persisted to the crypto store.\n * These settings are not used directly by this library, but the saved\n * settings can be retrieved via {@link getRoomSettings}.\n * @param {RoomId} room_id\n * @param {RoomSettings} room_settings\n * @returns {Promise<void>}\n */\n setRoomSettings(room_id, room_settings) {\n _assertClass(room_id, RoomId);\n _assertClass(room_settings, RoomSettings);\n const ret = wasm.olmmachine_setRoomSettings(this.__wbg_ptr, room_id.__wbg_ptr, room_settings.__wbg_ptr);\n return ret;\n }\n /**\n * Decrypt an event from a room timeline.\n *\n * # Arguments\n *\n * * `event`, the event that should be decrypted.\n * * `room_id`, the ID of the room where the event was sent to.\n *\n * # Returns\n *\n * A `Promise` which resolves to a {@link DecryptedRoomEvent} instance, or\n * rejects with a {@link MegolmDecryptionError} instance.\n * @param {string} event\n * @param {RoomId} room_id\n * @param {DecryptionSettings} decryption_settings\n * @returns {Promise<any>}\n */\n decryptRoomEvent(event, room_id, decryption_settings) {\n const ptr0 = passStringToWasm0(event, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n _assertClass(room_id, RoomId);\n _assertClass(decryption_settings, DecryptionSettings);\n const ret = wasm.olmmachine_decryptRoomEvent(this.__wbg_ptr, ptr0, len0, room_id.__wbg_ptr, decryption_settings.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * Manage dehydrated devices\n * @returns {DehydratedDevices}\n */\n dehydratedDevices() {\n const ret = wasm.olmmachine_dehydratedDevices(this.__wbg_ptr);\n return DehydratedDevices.__wrap(ret);\n }\n /**\n * Encrypt a room message for the given room.\n *\n * **Note**: A room key needs to be shared with the group of users that are\n * members in the given room. If this is not done this method will panic.\n *\n * The usual flow to encrypt an event using this state machine is as\n * follows:\n *\n * 1. Get the one-time key claim request to establish 1:1 Olm sessions for\n * the room members of the room we wish to participate in. This is done\n * using the [`get_missing_sessions()`](Self::get_missing_sessions)\n * method. This method call should be locked per call.\n *\n * 2. Share a room key with all the room members using the\n * [`share_room_key()`](Self::share_room_key). This method call should\n * be locked per room.\n *\n * 3. Encrypt the event using this method.\n *\n * 4. Send the encrypted event to the server.\n *\n * After the room key is shared steps 1 and 2 will become noops, unless\n * there's some changes in the room membership or in the list of devices a\n * member has.\n *\n *\n * `room_id` is the ID of the room for which the message should\n * be encrypted. `event_type` is the type of the event. `content`\n * is the plaintext content of the message that should be\n * encrypted.\n *\n * # Panics\n *\n * Panics if a group session for the given room wasn't shared\n * beforehand.\n * @param {RoomId} room_id\n * @param {string} event_type\n * @param {string} content\n * @returns {Promise<any>}\n */\n encryptRoomEvent(room_id, event_type, content) {\n _assertClass(room_id, RoomId);\n const ptr0 = passStringToWasm0(event_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(content, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n const ret = wasm.olmmachine_encryptRoomEvent(this.__wbg_ptr, room_id.__wbg_ptr, ptr0, len0, ptr1, len1);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * Encrypt a state event for the given room.\n *\n * This method encrypts a state event for the specified room, using the\n * current group session. The event will be encrypted so that only\n * authorized room members can decrypt it.\n *\n * **Note**: A room key must have been shared with the group of users in\n * the room before calling this method. If not, this method will panic.\n *\n * The usual flow to encrypt a state event using this machine is identical\n * to that outlined for [`OlmMachine::encrypt_room_event`].\n *\n * # Arguments\n *\n * * `room_id` - The ID of the room for which the state event should be\n * encrypted.\n * * `event_type` - The type of the state event.\n * * `state_key` - The state key for the event.\n * * `content` - The plaintext JSON content of the event to encrypt.\n *\n * # Returns\n *\n * A `Promise` resolving to a JSON string containing the encrypted event.\n *\n * # Panics\n *\n * Panics if a group session for the given room was not previously shared.\n * @param {RoomId} room_id\n * @param {string} event_type\n * @param {string} state_key\n * @param {string} content\n * @returns {Promise<any>}\n */\n encryptStateEvent(room_id, event_type, state_key, content) {\n _assertClass(room_id, RoomId);\n const ptr0 = passStringToWasm0(event_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(state_key, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passStringToWasm0(content, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len2 = WASM_VECTOR_LEN;\n const ret = wasm.olmmachine_encryptStateEvent(this.__wbg_ptr, room_id.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * Get the status of the private cross signing keys.\n *\n * This can be used to check which private cross signing keys we\n * have stored locally.\n * @returns {Promise<any>}\n */\n crossSigningStatus() {\n const ret = wasm.olmmachine_crossSigningStatus(this.__wbg_ptr);\n return ret;\n }\n /**\n * Get the a key claiming request for the user/device pairs that\n * we are missing Olm sessions for.\n *\n * Returns `null` if no key claiming request needs to be sent\n * out, otherwise it returns a `KeysClaimRequest` object.\n *\n * Sessions need to be established between devices so group\n * sessions for a room can be shared with them.\n *\n * This should be called every time a group session needs to be\n * shared as well as between sync calls. After a sync some\n * devices may request room keys without us having a valid Olm\n * session with them, making it impossible to server the room key\n * request, thus it’s necessary to check for missing sessions\n * between sync as well.\n *\n * Note: Care should be taken that only one such request at a\n * time is in flight, e.g. using a lock.\n *\n * The response of a successful key claiming requests needs to be\n * passed to the `OlmMachine` with the `mark_request_as_sent`.\n *\n * `users` represents the list of users that we should check if\n * we lack a session with one of their devices. This can be an\n * empty iterator when calling this method between sync requests.\n *\n * Items inside `users` will be invalidated by this method. Be careful not\n * to use the `UserId`s after this method has been called.\n * @param {UserId[]} users\n * @returns {Promise<any>}\n */\n getMissingSessions(users) {\n const ptr0 = passArrayJsValueToWasm0(users, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.olmmachine_getMissingSessions(this.__wbg_ptr, ptr0, len0);\n return ret;\n }\n /**\n * Mark the request with the given request ID as sent (see\n * `outgoing_requests`).\n *\n * Arguments are:\n *\n * * `request_id` represents the unique ID of the request that was sent\n * out. This is needed to couple the response with the now sent out\n * request.\n * * `response_type` represents the type of the request that was sent out.\n * * `response` represents the response that was received from the server\n * after the outgoing request was sent out.\n * @param {string} request_id\n * @param {RequestType} request_type\n * @param {string} response\n * @returns {Promise<any>}\n */\n markRequestAsSent(request_id, request_type, response) {\n const ptr0 = passStringToWasm0(request_id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(response, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n const ret = wasm.olmmachine_markRequestAsSent(this.__wbg_ptr, ptr0, len0, request_type, ptr1, len1);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * Generate an \"out-of-band\" key query request for the given set of users.\n *\n * This can be useful if we need the results from `getIdentity` or\n * `getUserDevices` to be as up-to-date as possible.\n *\n * Returns a `KeysQueryRequest` object. The response of the request should\n * be passed to the `OlmMachine` with the `mark_request_as_sent`.\n *\n * Items inside `users` will be invalidated by this method. Be careful not\n * to use the `UserId`s after this method has been called.\n * @param {UserId[]} users\n * @returns {KeysQueryRequest}\n */\n queryKeysForUsers(users) {\n const ptr0 = passArrayJsValueToWasm0(users, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.olmmachine_queryKeysForUsers(this.__wbg_ptr, ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return KeysQueryRequest.__wrap(ret[0]);\n }\n /**\n * Handle to-device events and one-time key counts from a sync\n * response.\n *\n * This will decrypt and handle to-device events returning the\n * decrypted versions of them.\n *\n * To decrypt an event from the room timeline call\n * `decrypt_room_event`.\n *\n * # Arguments\n *\n * * `to_device_events`: the JSON-encoded to-device evens from the `/sync`\n * response\n * * `changed_devices`: the mapping of changed and left devices, from the\n * `/sync` response\n * * `one_time_keys_counts`: The number of one-time keys on the server,\n * from the `/sync` response. A `Map` from string (encryption algorithm)\n * to number (number of keys).\n * * `unused_fallback_keys`: Optionally, a `Set` of unused fallback keys on\n * the server, from the `/sync` response. If this is set, it is used to\n * determine if new fallback keys should be uploaded.\n * * `decryption_settings`: Optionally, the settings to use when decrypting\n * to-device events. If not set, to-device events will be decrypted with\n * a {@link TrustRequirement} of `Untrusted`.\n *\n * # Returns\n *\n * A list of values, each of which can be any of:\n * * {@link DecryptedToDeviceEvent}\n * * {@link PlainTextToDeviceEvent}\n * * {@link UTDToDeviceEvent}\n * * {@link InvalidToDeviceEvent}\n * @param {string} to_device_events\n * @param {DeviceLists} changed_devices\n * @param {Map<any, any>} one_time_keys_counts\n * @param {Set<any> | null} [unused_fallback_keys]\n * @param {DecryptionSettings | null} [decryption_settings]\n * @returns {Promise<any>}\n */\n receiveSyncChanges(to_device_events, changed_devices, one_time_keys_counts, unused_fallback_keys, decryption_settings) {\n const ptr0 = passStringToWasm0(to_device_events, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n _assertClass(changed_devices, DeviceLists);\n let ptr1 = 0;\n if (!isLikeNone(decryption_settings)) {\n _assertClass(decryption_settings, DecryptionSettings);\n ptr1 = decryption_settings.__destroy_into_raw();\n }\n const ret = wasm.olmmachine_receiveSyncChanges(this.__wbg_ptr, ptr0, len0, changed_devices.__wbg_ptr, one_time_keys_counts, isLikeNone(unused_fallback_keys) ? 0 : addToExternrefTable0(unused_fallback_keys), ptr1);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * Update the list of tracked users.\n *\n * The OlmMachine maintains a list of users whose devices we are keeping\n * track of: these are known as \"tracked users\". These must be users\n * that we share a room with, so that the server sends us updates for\n * their device lists.\n *\n * # Arguments\n *\n * * `users` - An array of user ids that should be added to the list of\n * tracked users\n *\n * Any users that hadn't been seen before will be flagged for a key query\n * immediately, and whenever `receive_sync_changes` receives a\n * \"changed\" notification for that user in the future.\n *\n * Users that were already in the list are unaffected.\n *\n * Items inside `users` will be invalidated by this method. Be careful not\n * to use the `UserId`s after this method has been called.\n * @param {UserId[]} users\n * @returns {Promise<any>}\n */\n updateTrackedUsers(users) {\n const ptr0 = passArrayJsValueToWasm0(users, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.olmmachine_updateTrackedUsers(this.__wbg_ptr, ptr0, len0);\n return ret;\n }\n /**\n * Assemble, and encrypt, a room key bundle for sharing encrypted history,\n * as per {@link https://github.com/matrix-org/matrix-spec-proposals/pull/4268|MSC4268}.\n *\n * Returns `undefined` if there are no keys to share in the given room,\n * otherwise an {@link EncryptedAttachment}.\n *\n * The data should be uploaded to the media server, and the details then\n * passed to {@link shareRoomKeyBundleData}.\n *\n * @experimental\n * @param {RoomId} room_id\n * @returns {Promise<EncryptedAttachment | undefined>}\n */\n buildRoomKeyBundle(room_id) {\n _assertClass(room_id, RoomId);\n const ret = wasm.olmmachine_buildRoomKeyBundle(this.__wbg_ptr, room_id.__wbg_ptr);\n return ret;\n }\n /**\n * Export all the secrets we have in the store into a {@link\n * SecretsBundle}.\n *\n * This method will export all the private cross-signing keys and, if\n * available, the private part of a backup key and its accompanying\n * version.\n *\n * The method will fail if we don't have all three private cross-signing\n * keys available.\n *\n * **Warning**: Only export this and share it with a trusted recipient,\n * i.e. if an existing device is sharing this with a new device.\n * @returns {Promise<SecretsBundle>}\n */\n exportSecretsBundle() {\n const ret = wasm.olmmachine_exportSecretsBundle(this.__wbg_ptr);\n return ret;\n }\n /**\n * Import and persists secrets from a {@link SecretsBundle}.\n *\n * This method will import all the private cross-signing keys and, if\n * available, the private part of a backup key and its accompanying\n * version into the store.\n *\n * **Warning**: Only import this from a trusted source, i.e. if an existing\n * device is sharing this with a new device. The imported cross-signing\n * keys will create a {@link OwnUserIdentity} and mark it as verified.\n *\n * The backup key will be persisted in the store and can be enabled using\n * the BackupMachine.\n *\n * The provided `SecretsBundle` is freed by this method; be careful not to\n * use it once this method has been called.\n * @param {SecretsBundle} bundle\n * @returns {Promise<void>}\n */\n importSecretsBundle(bundle) {\n _assertClass(bundle, SecretsBundle);\n var ptr0 = bundle.__destroy_into_raw();\n const ret = wasm.olmmachine_importSecretsBundle(this.__wbg_ptr, ptr0);\n return ret;\n }\n /**\n * Get all the secrets with the given secret_name we have currently\n * stored.\n * The only secret this will currently return is the\n * `m.megolm_backup.v1` secret.\n *\n * Usually you would just register a callback with\n * [`register_receive_secret_callback`], but if the client is shut down\n * before handling them, this method can be used to retrieve them.\n * This method should therefore be called at client startup to retrieve any\n * secrets received during the previous session.\n *\n * The secrets are guaranteed to have been received over a 1-to-1 encrypted\n * to_device message from one of the user's own verified devices.\n *\n * Returns a `Promise` for a `Set` of `String` corresponding to the secret\n * values.\n *\n * If the secret is valid and handled, the secret inbox should be cleared\n * by calling `delete_secrets_from_inbox`.\n * @param {string} secret_name\n * @returns {Promise<any>}\n */\n getSecretsFromInbox(secret_name) {\n const ptr0 = passStringToWasm0(secret_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.olmmachine_getSecretsFromInbox(this.__wbg_ptr, ptr0, len0);\n return ret;\n }\n /**\n * Create a new cross signing identity and get the upload request\n * to push the new public keys to the server.\n *\n * Warning: This will delete any existing cross signing keys that\n * might exist on the server and thus will reset the trust\n * between all the devices.\n *\n * Uploading these keys will require user interactive auth.\n *\n * # Arguments\n *\n * * `reset`, whether the method should create a new identity or use the\n * existing one during the request. If set to true, the request will\n * attempt to upload a new identity. If set to false, the request will\n * attempt to upload the existing identity. Since the uploading process\n * requires user interactive authentication, which involves sending out\n * the same request multiple times, setting this argument to false\n * enables you to reuse the same request.\n *\n * Returns a {@link CrossSigningBootstrapRequests}.\n * @param {boolean} reset\n * @returns {Promise<any>}\n */\n bootstrapCrossSigning(reset) {\n const ret = wasm.olmmachine_bootstrapCrossSigning(this.__wbg_ptr, reset);\n return ret;\n }\n /**\n * The time, in milliseconds since the unix epoch, at which the `Account`\n * backing this `OlmMachine` was created.\n *\n * An `Account` is created when an `OlmMachine` is first instantiated\n * against a given `Store`, at which point it creates identity keys etc.\n * This method returns the timestamp, according to the local clock, at\n * which that happened.\n * @returns {number}\n */\n get deviceCreationTimeMs() {\n const ret = wasm.olmmachine_deviceCreationTimeMs(this.__wbg_ptr);\n return ret;\n }\n /**\n * Import the message keys from a downloaded room key bundle.\n *\n * After {@link getReceivedRoomKeyBundleData} returns a truthy result, the\n * media file should be downloaded and then passed into this method to\n * actually do the import.\n *\n * @experimental\n * @param {StoredRoomKeyBundleData} bundle_data\n * @param {Uint8Array} encrypted_bundle\n * @returns {Promise<undefined>}\n */\n receiveRoomKeyBundle(bundle_data, encrypted_bundle) {\n _assertClass(bundle_data, StoredRoomKeyBundleData);\n var ptr0 = bundle_data.__destroy_into_raw();\n const ptr1 = passArray8ToWasm0(encrypted_bundle, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ret = wasm.olmmachine_receiveRoomKeyBundle(this.__wbg_ptr, ptr0, ptr1, len1);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * Get a verification request object with the given flow ID.\n * @param {UserId} user_id\n * @param {string} flow_id\n * @returns {VerificationRequest | undefined}\n */\n getVerificationRequest(user_id, flow_id) {\n _assertClass(user_id, UserId);\n const ptr0 = passStringToWasm0(flow_id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.olmmachine_getVerificationRequest(this.__wbg_ptr, user_id.__wbg_ptr, ptr0, len0);\n return ret === 0 ? undefined : VerificationRequest.__wrap(ret);\n }\n /**\n * Invalidate the currently active outbound group session for the\n * given room.\n *\n * Returns true if a session was invalidated, false if there was\n * no session to invalidate.\n * @param {RoomId} room_id\n * @returns {Promise<any>}\n */\n invalidateGroupSession(room_id) {\n _assertClass(room_id, RoomId);\n const ret = wasm.olmmachine_invalidateGroupSession(this.__wbg_ptr, room_id.__wbg_ptr);\n return ret;\n }\n /**\n * Delete all secrets with the given secret name from the inbox.\n *\n * Should be called after handling the secrets with\n * `get_secrets_from_inbox`.\n *\n * # Arguments\n *\n * * `secret_name` - The name of the secret to delete.\n * @param {string} secret_name\n * @returns {Promise<any>}\n */\n deleteSecretsFromInbox(secret_name) {\n const ptr0 = passStringToWasm0(secret_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.olmmachine_deleteSecretsFromInbox(this.__wbg_ptr, ptr0, len0);\n return ret;\n }\n /**\n * Export all the private cross signing keys we have.\n *\n * The export will contain the seeds for the ed25519 keys as\n * unpadded base64 encoded strings.\n *\n * Returns `null` if we don’t have any private cross signing keys;\n * otherwise returns a `CrossSigningKeyExport`.\n * @returns {Promise<any>}\n */\n exportCrossSigningKeys() {\n const ret = wasm.olmmachine_exportCrossSigningKeys(this.__wbg_ptr);\n return ret;\n }\n /**\n * Get all the verification requests of a given user.\n * @param {UserId} user_id\n * @returns {Array<any>}\n */\n getVerificationRequests(user_id) {\n _assertClass(user_id, UserId);\n const ret = wasm.olmmachine_getVerificationRequests(this.__wbg_ptr, user_id.__wbg_ptr);\n return ret;\n }\n /**\n * Import our private cross signing keys.\n *\n * The keys should be provided as unpadded-base64-encoded strings.\n *\n * Returns a `CrossSigningStatus`.\n * @param {string | null} [master_key]\n * @param {string | null} [self_signing_key]\n * @param {string | null} [user_signing_key]\n * @returns {Promise<any>}\n */\n importCrossSigningKeys(master_key, self_signing_key, user_signing_key) {\n var ptr0 = isLikeNone(master_key) ? 0 : passStringToWasm0(master_key, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(self_signing_key) ? 0 : passStringToWasm0(self_signing_key, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n var ptr2 = isLikeNone(user_signing_key) ? 0 : passStringToWasm0(user_signing_key, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len2 = WASM_VECTOR_LEN;\n const ret = wasm.olmmachine_importCrossSigningKeys(this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2);\n return ret;\n }\n /**\n * Import the given room keys into our store.\n *\n * `exported_keys` is a JSON-encoded list of previously exported keys that\n * should be imported into our store. If we already have a better\n * version of a key, the key will _not_ be imported.\n *\n * `progress_listener` is a closure that takes 2 `BigInt` arguments:\n * `progress` and `total`, and returns nothing.\n *\n * Returns a {@link RoomKeyImportResult}.\n * @param {string} exported_room_keys\n * @param {Function} progress_listener\n * @returns {Promise<any>}\n */\n importExportedRoomKeys(exported_room_keys, progress_listener) {\n const ptr0 = passStringToWasm0(exported_room_keys, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.olmmachine_importExportedRoomKeys(this.__wbg_ptr, ptr0, len0, progress_listener);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * Try to decrypt a reader into a list of exported room keys.\n *\n * `encrypted_exported_room_keys` is the result from\n * `encrypt_exported_room_keys`. `passphrase` is the passphrase that was\n * used when calling `encrypt_exported_room_keys`.\n * @param {string} encrypted_exported_room_keys\n * @param {string} passphrase\n * @returns {string}\n */\n static decryptExportedRoomKeys(encrypted_exported_room_keys, passphrase) {\n let deferred4_0;\n let deferred4_1;\n try {\n const ptr0 = passStringToWasm0(encrypted_exported_room_keys, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(passphrase, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n const ret = wasm.olmmachine_decryptExportedRoomKeys(ptr0, len0, ptr1, len1);\n var ptr3 = ret[0];\n var len3 = ret[1];\n if (ret[3]) {\n ptr3 = 0; len3 = 0;\n throw takeFromExternrefTable0(ret[2]);\n }\n deferred4_0 = ptr3;\n deferred4_1 = len3;\n return getStringFromWasm0(ptr3, len3);\n } finally {\n wasm.__wbindgen_free(deferred4_0, deferred4_1, 1);\n }\n }\n /**\n * Encrypt the list of exported room keys using the given passphrase.\n *\n * `exported_room_keys` is a list of sessions that should be encrypted\n * (it's generally returned by `export_room_keys`). `passphrase` is the\n * passphrase that will be used to encrypt the exported room keys. And\n * `rounds` is the number of rounds that should be used for the key\n * derivation when the passphrase gets turned into an AES key. More rounds\n * are increasingly computationnally intensive and as such help against\n * brute-force attacks. Should be at least `10_000`, while values in the\n * `100_000` ranges should be preferred.\n * @param {string} exported_room_keys\n * @param {string} passphrase\n * @param {number} rounds\n * @returns {string}\n */\n static encryptExportedRoomKeys(exported_room_keys, passphrase, rounds) {\n let deferred4_0;\n let deferred4_1;\n try {\n const ptr0 = passStringToWasm0(exported_room_keys, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(passphrase, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n const ret = wasm.olmmachine_encryptExportedRoomKeys(ptr0, len0, ptr1, len1, rounds);\n var ptr3 = ret[0];\n var len3 = ret[1];\n if (ret[3]) {\n ptr3 = 0; len3 = 0;\n throw takeFromExternrefTable0(ret[2]);\n }\n deferred4_0 = ptr3;\n deferred4_1 = len3;\n return getStringFromWasm0(ptr3, len3);\n } finally {\n wasm.__wbindgen_free(deferred4_0, deferred4_1, 1);\n }\n }\n /**\n * Import the given room keys into our store.\n *\n * # Arguments\n *\n * * `backed_up_room_keys`: keys that were retrieved from backup and that\n * should be added to our store (provided they are better than our\n * current versions of those keys). Specifically, it should be a Map from\n * {@link RoomId}, to a Map from session ID to a (decrypted) session data\n * structure.\n *\n * * `progress_listener`: an optional callback that takes 3 arguments:\n * `progress` (the number of keys that have successfully been imported),\n * `total` (the total number of keys), and `failures` (the number of keys\n * that failed to import), and returns nothing.\n *\n * # Returns\n *\n * A {@link RoomKeyImportResult}.\n * @param {Map<any, any>} backed_up_room_keys\n * @param {Function | null | undefined} progress_listener\n * @param {string} backup_version\n * @returns {Promise<any>}\n */\n importBackedUpRoomKeys(backed_up_room_keys, progress_listener, backup_version) {\n const ptr0 = passStringToWasm0(backup_version, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.olmmachine_importBackedUpRoomKeys(this.__wbg_ptr, backed_up_room_keys, isLikeNone(progress_listener) ? 0 : addToExternrefTable0(progress_listener), ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * Receive a verification event.\n *\n * This method can be used to pass verification events that are happening\n * in rooms to the `OlmMachine`. The event should be in the decrypted form.\n * @param {string} event\n * @param {RoomId} room_id\n * @returns {Promise<any>}\n */\n receiveVerificationEvent(event, room_id) {\n const ptr0 = passStringToWasm0(event, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n _assertClass(room_id, RoomId);\n const ret = wasm.olmmachine_receiveVerificationEvent(this.__wbg_ptr, ptr0, len0, room_id.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * Store the backup decryption key in the crypto store.\n *\n * This is useful if the client wants to support gossiping of the backup\n * key.\n *\n * Returns `Promise<void>`.\n * @param {BackupDecryptionKey} decryption_key\n * @param {string} version\n * @returns {Promise<any>}\n */\n saveBackupDecryptionKey(decryption_key, version) {\n _assertClass(decryption_key, BackupDecryptionKey);\n const ptr0 = passStringToWasm0(version, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.olmmachine_saveBackupDecryptionKey(this.__wbg_ptr, decryption_key.__wbg_ptr, ptr0, len0);\n return ret;\n }\n /**\n * Collect the devices belonging to the given user, and send the details\n * of a room key bundle to those devices.\n *\n * Returns a list of to-device requests which must be sent.\n *\n * @experimental\n * @param {UserId} user\n * @param {RoomId} room\n * @param {string} url\n * @param {string | null | undefined} media_encryption_info\n * @param {CollectStrategy} sharing_strategy\n * @returns {Promise<ToDeviceRequest[]>}\n */\n shareRoomKeyBundleData(user, room, url, media_encryption_info, sharing_strategy) {\n _assertClass(user, UserId);\n _assertClass(room, RoomId);\n const ptr0 = passStringToWasm0(url, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(media_encryption_info) ? 0 : passStringToWasm0(media_encryption_info, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n _assertClass(sharing_strategy, CollectStrategy);\n var ptr2 = sharing_strategy.__destroy_into_raw();\n const ret = wasm.olmmachine_shareRoomKeyBundleData(this.__wbg_ptr, user.__wbg_ptr, room.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * Whether automatic transmission of room key requests is enabled.\n *\n * Room key requests allow the device to request room keys that it might\n * have missed in the original share using `m.room_key_request`\n * events.\n * @returns {boolean}\n */\n get roomKeyRequestsEnabled() {\n const ret = wasm.olmmachine_roomKeyRequestsEnabled(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Enable or disable automatic transmission of room key requests.\n * @param {boolean} enabled\n */\n set roomKeyRequestsEnabled(enabled) {\n wasm.olmmachine_set_roomKeyRequestsEnabled(this.__wbg_ptr, enabled);\n }\n /**\n * Get encryption info for a decrypted timeline event.\n *\n * This recalculates the `EncryptionInfo` data that is returned by\n * `decryptRoomEvent`, based on the current\n * verification status of the sender, etc.\n *\n * Returns an error for an unencrypted event.\n *\n * # Arguments\n *\n * * `event` - The event to get information for.\n * * `room_id` - The ID of the room where the event was sent to.\n *\n * # Returns\n *\n * {@link EncryptionInfo}\n * @param {string} event\n * @param {RoomId} room_id\n * @returns {Promise<any>}\n */\n getRoomEventEncryptionInfo(event, room_id) {\n const ptr0 = passStringToWasm0(event, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n _assertClass(room_id, RoomId);\n const ret = wasm.olmmachine_getRoomEventEncryptionInfo(this.__wbg_ptr, ptr0, len0, room_id.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * Whether room key forwarding is enabled.\n *\n * If room key forwarding is enabled, we will automatically reply to\n * incoming `m.room_key_request` messages from verified devices by\n * forwarding the requested key (if we have it).\n * @returns {boolean}\n */\n get roomKeyForwardingEnabled() {\n const ret = wasm.olmmachine_roomKeyForwardingEnabled(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Mark all tracked users as dirty.\n *\n * All users *whose device lists we are tracking* are flagged as needing a\n * key query. Users whose devices we are not tracking are ignored.\n * @returns {Promise<void>}\n */\n markAllTrackedUsersAsDirty() {\n const ret = wasm.olmmachine_markAllTrackedUsersAsDirty(this.__wbg_ptr);\n return ret;\n }\n /**\n * Enable or disable room key forwarding.\n * @param {boolean} enabled\n */\n set roomKeyForwardingEnabled(enabled) {\n wasm.olmmachine_set_roomKeyForwardingEnabled(this.__wbg_ptr, enabled);\n }\n /**\n * Register a callback which will be called whenever a secret\n * (`m.secret.send`) is received.\n *\n * The only secret this will currently broadcast is the\n * `m.megolm_backup.v1` (the cross signing secrets are handled internally).\n *\n * To request a secret from other devices, a client sends an\n * `m.secret.request` device event with `action` set to `request` and\n * `name` set to the identifier of the secret. A device that wishes to\n * share the secret will reply with an `m.secret.send` event, encrypted\n * using olm.\n *\n * The secrets are guaranteed to have been received over a 1-to-1 encrypted\n * to_device message from a one of the user's own verified devices.\n *\n * See https://matrix-org.github.io/matrix-rust-sdk/matrix_sdk_crypto/store/struct.Store.html#method.secrets_stream for more information.\n *\n * `callback` should be a function that takes 2 arguments: the secret name\n * (string) and value (string).\n *\n * **Note**: if the secret is valid and handled on the javascript side, the\n * secret inbox should be cleared by calling\n * `delete_secrets_from_inbox`.\n * @param {Function} callback\n */\n registerReceiveSecretCallback(callback) {\n wasm.olmmachine_registerReceiveSecretCallback(this.__wbg_ptr, callback);\n }\n /**\n * See if we have received an {@link https://github.com/matrix-org/matrix-spec-proposals/pull/4268|MSC4268}\n * room key bundle for the given room from the given user.\n *\n * Before calling this, the application must make sure that we have an\n * up-to-date copy of the inviter's cross-signing keys, so that we can\n * verify the device that sent us the key bundle data message. (For\n * now, the easiest way to do that is by calling {@link queryKeysForUsers}\n * for the inviter, and making the resultant request.)\n *\n * Returns either `undefined` if no suitable bundle has been received,\n * or an {@link StoredRoomKeyBundleData}, in which case, the bundle\n * should be downloaded, and then passed to {@link\n * receiveRoomKeyBundle}.\n *\n * @experimental\n * @param {RoomId} room_id\n * @param {UserId} inviter\n * @returns {Promise<StoredRoomKeyBundleData | undefined>}\n */\n getReceivedRoomKeyBundleData(room_id, inviter) {\n _assertClass(room_id, RoomId);\n _assertClass(inviter, UserId);\n const ret = wasm.olmmachine_getReceivedRoomKeyBundleData(this.__wbg_ptr, room_id.__wbg_ptr, inviter.__wbg_ptr);\n return ret;\n }\n /**\n * Register a callback which will be called whenever there is an update to\n * a device.\n *\n * `callback` should be a function that takes a single argument (an array\n * of user IDs as strings) and returns a Promise.\n * @param {Function} callback\n */\n registerDevicesUpdatedCallback(callback) {\n wasm.olmmachine_registerDevicesUpdatedCallback(this.__wbg_ptr, callback);\n }\n /**\n * Request missing local secrets from our other trusted devices.\n *\n * \"Local secrets\" refers to secrets which can be shared between trusted\n * devices, such as private cross-signing keys, and the megolm backup\n * decryption key.\n *\n * This method will cause the sdk to generated outgoing secret requests\n * (`m.secret.request`) to get the missing secrets. These requests will\n * then be returned by a future call to {@link\n * OlmMachine#outgoingRequests}.\n *\n * # Returns\n *\n * A `Promise` for a `bool` result, which will be true if secrets were\n * missing, and a request was generated.\n * @returns {Promise<any>}\n */\n requestMissingSecretsIfNeeded() {\n const ret = wasm.olmmachine_requestMissingSecretsIfNeeded(this.__wbg_ptr);\n return ret;\n }\n /**\n * Register a callback which will be called whenever there is an update to\n * a room key.\n *\n * `callback` should be a function that takes a single argument (an array\n * of {@link RoomKeyInfo}) and returns a Promise.\n * @param {Function} callback\n */\n registerRoomKeyUpdatedCallback(callback) {\n wasm.olmmachine_registerRoomKeyUpdatedCallback(this.__wbg_ptr, callback);\n }\n /**\n * Register a callback which will be called whenever we receive a\n * notification that some room keys have been withheld.\n *\n * `callback` should be a function that takes a single argument (an array\n * of {@link RoomKeyWithheldInfo}) and returns a Promise.\n * @param {Function} callback\n */\n registerRoomKeysWithheldCallback(callback) {\n wasm.olmmachine_registerRoomKeysWithheldCallback(this.__wbg_ptr, callback);\n }\n /**\n * Register a callback which will be called whenever there is an update to\n * a user identity.\n *\n * `callback` should be a function that takes a single argument (a {@link\n * UserId}) and returns a Promise.\n * @param {Function} callback\n */\n registerUserIdentityUpdatedCallback(callback) {\n wasm.olmmachine_registerUserIdentityUpdatedCallback(this.__wbg_ptr, callback);\n }\n /**\n * Constructor will always fail. To create a new `OlmMachine`, please use\n * the `initialize` method.\n *\n * Why this pattern? `initialize` returns a `Promise`. Returning a\n * `Promise` from a constructor is not idiomatic in JavaScript.\n */\n constructor() {\n const ret = wasm.olmmachine_new();\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n this.__wbg_ptr = ret[0] >>> 0;\n OlmMachineFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n /**\n * Sign the given message using our device key and if available\n * cross-signing master key.\n * @param {string} message\n * @returns {Promise<any>}\n */\n sign(message) {\n const ptr0 = passStringToWasm0(message, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.olmmachine_sign(this.__wbg_ptr, ptr0, len0);\n return ret;\n }\n /**\n * Shut down the `OlmMachine`.\n *\n * The `OlmMachine` cannot be used after this method has been called.\n *\n * All associated resources will be closed too, like IndexedDB\n * connections.\n */\n close() {\n const ptr = this.__destroy_into_raw();\n wasm.olmmachine_close(ptr);\n }\n /**\n * The unique user ID that owns this `OlmMachine` instance.\n * @returns {UserId}\n */\n get userId() {\n const ret = wasm.olmmachine_userId(this.__wbg_ptr);\n return UserId.__wrap(ret);\n }\n /**\n * The unique device ID that identifies this `OlmMachine`.\n * @returns {DeviceId}\n */\n get deviceId() {\n const ret = wasm.olmmachine_deviceId(this.__wbg_ptr);\n return DeviceId.__wrap(ret);\n }\n}\nif (Symbol.dispose) OlmMachine.prototype[Symbol.dispose] = OlmMachine.prototype.free;\n\n/**\n * Struct representing a cross signing identity of a user.\n *\n * This is the user identity of a user that isn't our own. Other users will\n * only contain a master key and a self signing key, meaning that only device\n * signatures can be checked with this identity.\n *\n * This struct wraps a read-only version of the struct and allows verifications\n * to be requested to verify our own device with the user identity.\n */\nexport class OtherUserIdentity {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(OtherUserIdentity.prototype);\n obj.__wbg_ptr = ptr;\n OtherUserIdentityFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n OtherUserIdentityFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_otheruseridentity_free(ptr, 0);\n }\n /**\n * Get the master key of the identity.\n * @returns {string}\n */\n get masterKey() {\n let deferred2_0;\n let deferred2_1;\n try {\n const ret = wasm.otheruseridentity_masterKey(this.__wbg_ptr);\n var ptr1 = ret[0];\n var len1 = ret[1];\n if (ret[3]) {\n ptr1 = 0; len1 = 0;\n throw takeFromExternrefTable0(ret[2]);\n }\n deferred2_0 = ptr1;\n deferred2_1 = len1;\n return getStringFromWasm0(ptr1, len1);\n } finally {\n wasm.__wbindgen_free(deferred2_0, deferred2_1, 1);\n }\n }\n /**\n * Is this user identity verified?\n * @returns {boolean}\n */\n isVerified() {\n const ret = wasm.otheruseridentity_isVerified(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Get the self-signing key of the identity.\n * @returns {string}\n */\n get selfSigningKey() {\n let deferred2_0;\n let deferred2_1;\n try {\n const ret = wasm.otheruseridentity_selfSigningKey(this.__wbg_ptr);\n var ptr1 = ret[0];\n var len1 = ret[1];\n if (ret[3]) {\n ptr1 = 0; len1 = 0;\n throw takeFromExternrefTable0(ret[2]);\n }\n deferred2_0 = ptr1;\n deferred2_1 = len1;\n return getStringFromWasm0(ptr1, len1);\n } finally {\n wasm.__wbindgen_free(deferred2_0, deferred2_1, 1);\n }\n }\n /**\n * Create a `VerificationRequest` object after the verification\n * request content has been sent out.\n * @param {RoomId} room_id\n * @param {EventId} request_event_id\n * @param {any[] | null} [methods]\n * @returns {VerificationRequest}\n */\n requestVerification(room_id, request_event_id, methods) {\n _assertClass(room_id, RoomId);\n _assertClass(request_event_id, EventId);\n var ptr0 = isLikeNone(methods) ? 0 : passArrayJsValueToWasm0(methods, wasm.__wbindgen_malloc);\n var len0 = WASM_VECTOR_LEN;\n const ret = wasm.otheruseridentity_requestVerification(this.__wbg_ptr, room_id.__wbg_ptr, request_event_id.__wbg_ptr, ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return VerificationRequest.__wrap(ret[0]);\n }\n /**\n * Remove the requirement for this identity to be verified.\n *\n * If an identity was previously verified and is not anymore it will be\n * reported to the user. In order to remove this notice users have to\n * verify again or to withdraw the verification requirement.\n * @returns {Promise<any>}\n */\n withdrawVerification() {\n const ret = wasm.otheruseridentity_withdrawVerification(this.__wbg_ptr);\n return ret;\n }\n /**\n * Pin the current identity (public part of the master signing key).\n * @returns {Promise<any>}\n */\n pinCurrentMasterKey() {\n const ret = wasm.otheruseridentity_pinCurrentMasterKey(this.__wbg_ptr);\n return ret;\n }\n /**\n * True if we verified this identity (with any own identity, at any\n * point).\n *\n * To set this latch back to false, call {@link withdrawVerification}.\n * @returns {boolean}\n */\n wasPreviouslyVerified() {\n const ret = wasm.otheruseridentity_wasPreviouslyVerified(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Was this identity verified since initial observation and is not anymore?\n *\n * Such a violation should be reported to the local user by the\n * application, and resolved by\n *\n * - Verifying the new identity with {@link requestVerification}, or:\n * - Withdrawing the verification requirement with {@link\n * withdrawVerification}.\n * @returns {boolean}\n */\n hasVerificationViolation() {\n const ret = wasm.otheruseridentity_hasVerificationViolation(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Has the identity changed in a way that requires approval from the user?\n *\n * A user identity needs approval if it changed after the crypto machine\n * has already observed (\"pinned\") a different identity for that user,\n * unless it is an explicitly verified identity (using for example\n * interactive verification).\n *\n * This situation can be resolved by:\n *\n * - Verifying the new identity with {@link requestVerification}, or:\n * - Updating the pin to the new identity with {@link pinCurrentMasterKey}.\n * @returns {boolean}\n */\n identityNeedsUserApproval() {\n const ret = wasm.otheruseridentity_identityNeedsUserApproval(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Send a verification request to the given user.\n *\n * The returned content needs to be sent out into a DM room with the given\n * user.\n *\n * After the content has been sent out a VerificationRequest can be started\n * with the `request_verification` method.\n * @param {any[] | null} [methods]\n * @returns {string}\n */\n verificationRequestContent(methods) {\n let deferred3_0;\n let deferred3_1;\n try {\n var ptr0 = isLikeNone(methods) ? 0 : passArrayJsValueToWasm0(methods, wasm.__wbindgen_malloc);\n var len0 = WASM_VECTOR_LEN;\n const ret = wasm.otheruseridentity_verificationRequestContent(this.__wbg_ptr, ptr0, len0);\n var ptr2 = ret[0];\n var len2 = ret[1];\n if (ret[3]) {\n ptr2 = 0; len2 = 0;\n throw takeFromExternrefTable0(ret[2]);\n }\n deferred3_0 = ptr2;\n deferred3_1 = len2;\n return getStringFromWasm0(ptr2, len2);\n } finally {\n wasm.__wbindgen_free(deferred3_0, deferred3_1, 1);\n }\n }\n /**\n * Manually verify this user.\n *\n * This method will attempt to sign the user identity using our private\n * cross signing key.\n *\n * This method fails if we don't have the private part of our user-signing\n * key.\n *\n * Returns a request that needs to be sent out for the user to be marked as\n * verified.\n * @returns {Promise<any>}\n */\n verify() {\n const ret = wasm.otheruseridentity_verify(this.__wbg_ptr);\n return ret;\n }\n}\nif (Symbol.dispose) OtherUserIdentity.prototype[Symbol.dispose] = OtherUserIdentity.prototype.free;\n\n/**\n * The result of an outbound ECIES channel establishment.\n */\nexport class OutboundCreationResult {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(OutboundCreationResult.prototype);\n obj.__wbg_ptr = ptr;\n OutboundCreationResultFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n OutboundCreationResultFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_outboundcreationresult_free(ptr, 0);\n }\n /**\n * The established ECIES channel.\n * @returns {EstablishedEcies}\n */\n get channel() {\n const ret = wasm.__wbg_get_inboundcreationresult_channel(this.__wbg_ptr);\n return EstablishedEcies.__wrap(ret);\n }\n /**\n * The established ECIES channel.\n * @param {EstablishedEcies} arg0\n */\n set channel(arg0) {\n _assertClass(arg0, EstablishedEcies);\n var ptr0 = arg0.__destroy_into_raw();\n wasm.__wbg_set_inboundcreationresult_channel(this.__wbg_ptr, ptr0);\n }\n /**\n * The initial encrypted message.\n * @returns {string}\n */\n get initial_message() {\n let deferred1_0;\n let deferred1_1;\n try {\n const ret = wasm.__wbg_get_outboundcreationresult_initial_message(this.__wbg_ptr);\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n }\n /**\n * The initial encrypted message.\n * @param {string} arg0\n */\n set initial_message(arg0) {\n const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n wasm.__wbg_set_backupsecretsbundle_key(this.__wbg_ptr, ptr0, len0);\n }\n}\nif (Symbol.dispose) OutboundCreationResult.prototype[Symbol.dispose] = OutboundCreationResult.prototype.free;\n\n/**\n * Struct representing a cross signing identity of a user.\n *\n * This is the user identity of a user that is our own.\n */\nexport class OwnUserIdentity {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(OwnUserIdentity.prototype);\n obj.__wbg_ptr = ptr;\n OwnUserIdentityFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n OwnUserIdentityFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_ownuseridentity_free(ptr, 0);\n }\n /**\n * Get the master key of the identity.\n * @returns {string}\n */\n get masterKey() {\n let deferred2_0;\n let deferred2_1;\n try {\n const ret = wasm.ownuseridentity_masterKey(this.__wbg_ptr);\n var ptr1 = ret[0];\n var len1 = ret[1];\n if (ret[3]) {\n ptr1 = 0; len1 = 0;\n throw takeFromExternrefTable0(ret[2]);\n }\n deferred2_0 = ptr1;\n deferred2_1 = len1;\n return getStringFromWasm0(ptr1, len1);\n } finally {\n wasm.__wbindgen_free(deferred2_0, deferred2_1, 1);\n }\n }\n /**\n * Is this user identity verified?\n * @returns {boolean}\n */\n isVerified() {\n const ret = wasm.ownuseridentity_isVerified(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Get the self-signing key of the identity.\n * @returns {string}\n */\n get selfSigningKey() {\n let deferred2_0;\n let deferred2_1;\n try {\n const ret = wasm.ownuseridentity_selfSigningKey(this.__wbg_ptr);\n var ptr1 = ret[0];\n var len1 = ret[1];\n if (ret[3]) {\n ptr1 = 0; len1 = 0;\n throw takeFromExternrefTable0(ret[2]);\n }\n deferred2_0 = ptr1;\n deferred2_1 = len1;\n return getStringFromWasm0(ptr1, len1);\n } finally {\n wasm.__wbindgen_free(deferred2_0, deferred2_1, 1);\n }\n }\n /**\n * Get the user-signing key of the identity. This is only present for our\n * own user identity.\n * @returns {string}\n */\n get userSigningKey() {\n let deferred2_0;\n let deferred2_1;\n try {\n const ret = wasm.ownuseridentity_userSigningKey(this.__wbg_ptr);\n var ptr1 = ret[0];\n var len1 = ret[1];\n if (ret[3]) {\n ptr1 = 0; len1 = 0;\n throw takeFromExternrefTable0(ret[2]);\n }\n deferred2_0 = ptr1;\n deferred2_1 = len1;\n return getStringFromWasm0(ptr1, len1);\n } finally {\n wasm.__wbindgen_free(deferred2_0, deferred2_1, 1);\n }\n }\n /**\n * Send a verification request to our other devices.\n * @param {any[] | null} [methods]\n * @returns {Promise<any>}\n */\n requestVerification(methods) {\n var ptr0 = isLikeNone(methods) ? 0 : passArrayJsValueToWasm0(methods, wasm.__wbindgen_malloc);\n var len0 = WASM_VECTOR_LEN;\n const ret = wasm.ownuseridentity_requestVerification(this.__wbg_ptr, ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * Does our user identity trust our own device, i.e. have we signed our own\n * device keys with our self-signing key?\n * @returns {Promise<any>}\n */\n trustsOurOwnDevice() {\n const ret = wasm.ownuseridentity_trustsOurOwnDevice(this.__wbg_ptr);\n return ret;\n }\n /**\n * Remove the requirement for this identity to be verified.\n *\n * If an identity was previously verified and is not any longer, it will be\n * reported to the user. In order to remove this notice users have to\n * verify again or to withdraw the verification requirement.\n * @returns {Promise<any>}\n */\n withdrawVerification() {\n const ret = wasm.ownuseridentity_withdrawVerification(this.__wbg_ptr);\n return ret;\n }\n /**\n * True if we verified our own identity at some point in the past.\n *\n * To reset this latch back to `false`, call {@link withdrawVerification}.\n * @returns {boolean}\n */\n wasPreviouslyVerified() {\n const ret = wasm.ownuseridentity_wasPreviouslyVerified(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Was this identity verified since initial observation and is not anymore?\n *\n * Such a violation should be reported to the local user by the\n * application, and resolved by\n *\n * - Verifying the new identity with {@link requestVerification}, or:\n * - Withdrawing the verification requirement with {@link\n * withdrawVerification}.\n * @returns {boolean}\n */\n hasVerificationViolation() {\n const ret = wasm.ownuseridentity_hasVerificationViolation(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Mark our user identity as verified.\n *\n * This will mark the identity locally as verified and sign it with our own\n * device.\n *\n * Returns a signature upload request that needs to be sent out.\n * @returns {Promise<any>}\n */\n verify() {\n const ret = wasm.ownuseridentity_verify(this.__wbg_ptr);\n return ret;\n }\n}\nif (Symbol.dispose) OwnUserIdentity.prototype[Symbol.dispose] = OwnUserIdentity.prototype.free;\n\n/**\n * A pickled version of an `InboundGroupSession`.\n *\n * Holds all the information that needs to be stored in a database to restore\n * an InboundGroupSession.\n */\nexport class PickledInboundGroupSession {\n static __unwrap(jsValue) {\n if (!(jsValue instanceof PickledInboundGroupSession)) {\n return 0;\n }\n return jsValue.__destroy_into_raw();\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n PickledInboundGroupSessionFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_pickledinboundgroupsession_free(ptr, 0);\n }\n /**\n * The pickle string holding the Megolm Session, as returned by\n * `olm_pickle_inbound_group_session` in libolm.\n * @returns {string}\n */\n get pickle() {\n let deferred1_0;\n let deferred1_1;\n try {\n const ret = wasm.__wbg_get_pickledinboundgroupsession_pickle(this.__wbg_ptr);\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n }\n /**\n * The pickle string holding the Megolm Session, as returned by\n * `olm_pickle_inbound_group_session` in libolm.\n * @param {string} arg0\n */\n set pickle(arg0) {\n const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n wasm.__wbg_set_backupsecretsbundle_key(this.__wbg_ptr, ptr0, len0);\n }\n /**\n * The public curve25519 key of the account that sent us the session.\n * @returns {string}\n */\n get senderKey() {\n let deferred1_0;\n let deferred1_1;\n try {\n const ret = wasm.__wbg_get_pickledinboundgroupsession_senderKey(this.__wbg_ptr);\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n }\n /**\n * The public curve25519 key of the account that sent us the session.\n * @param {string} arg0\n */\n set senderKey(arg0) {\n const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n wasm.__wbg_set_backupsecretsbundle_backup_version(this.__wbg_ptr, ptr0, len0);\n }\n /**\n * The public ed25519 key of the account that is believed to have initiated\n * the session, if known.\n *\n * If the session was received directly from the creator via an\n * Olm-encrypted `m.room_key` event, this value is taken from the `keys`\n * property of the plaintext payload of that event (see\n * [`m.olm.v1.curve25519-aes-sha2`]).\n *\n * If the session was forwarded to us using an [`m.forwarded_room_key`],\n * this value is a copy of the `sender_claimed_ed25519_key` from the\n * content of the event.\n *\n * [`m.olm.v1.curve25519-aes-sha2`]: https://spec.matrix.org/v1.9/client-server-api/#molmv1curve25519-aes-sha2\n * [`m.forwarded_room_key`]: https://spec.matrix.org/v1.9/client-server-api/#mforwarded_room_key\n * @returns {string | undefined}\n */\n get senderSigningKey() {\n const ret = wasm.__wbg_get_pickledinboundgroupsession_senderSigningKey(this.__wbg_ptr);\n let v1;\n if (ret[0] !== 0) {\n v1 = getStringFromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n }\n return v1;\n }\n /**\n * The public ed25519 key of the account that is believed to have initiated\n * the session, if known.\n *\n * If the session was received directly from the creator via an\n * Olm-encrypted `m.room_key` event, this value is taken from the `keys`\n * property of the plaintext payload of that event (see\n * [`m.olm.v1.curve25519-aes-sha2`]).\n *\n * If the session was forwarded to us using an [`m.forwarded_room_key`],\n * this value is a copy of the `sender_claimed_ed25519_key` from the\n * content of the event.\n *\n * [`m.olm.v1.curve25519-aes-sha2`]: https://spec.matrix.org/v1.9/client-server-api/#molmv1curve25519-aes-sha2\n * [`m.forwarded_room_key`]: https://spec.matrix.org/v1.9/client-server-api/#mforwarded_room_key\n * @param {string | null} [arg0]\n */\n set senderSigningKey(arg0) {\n var ptr0 = isLikeNone(arg0) ? 0 : passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n wasm.__wbg_set_basemigrationdata_backupRecoveryKey(this.__wbg_ptr, ptr0, len0);\n }\n /**\n * The id of the room that the session is used in.\n *\n * Nullable so that a `PickledInboundGroupSession` can be constructed\n * incrementally. Must be populated!\n * @returns {RoomId | undefined}\n */\n get roomId() {\n const ret = wasm.__wbg_get_pickledinboundgroupsession_roomId(this.__wbg_ptr);\n return ret === 0 ? undefined : RoomId.__wrap(ret);\n }\n /**\n * The id of the room that the session is used in.\n *\n * Nullable so that a `PickledInboundGroupSession` can be constructed\n * incrementally. Must be populated!\n * @param {RoomId | null} [arg0]\n */\n set roomId(arg0) {\n let ptr0 = 0;\n if (!isLikeNone(arg0)) {\n _assertClass(arg0, RoomId);\n ptr0 = arg0.__destroy_into_raw();\n }\n wasm.__wbg_set_pickledinboundgroupsession_roomId(this.__wbg_ptr, ptr0);\n }\n /**\n * Flag remembering if the session was directly sent to us by the sender\n * or if it was imported.\n * @returns {boolean}\n */\n get imported() {\n const ret = wasm.__wbg_get_pickledinboundgroupsession_imported(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Flag remembering if the session was directly sent to us by the sender\n * or if it was imported.\n * @param {boolean} arg0\n */\n set imported(arg0) {\n wasm.__wbg_set_pickledinboundgroupsession_imported(this.__wbg_ptr, arg0);\n }\n /**\n * Flag remembering if the session has been backed up.\n * @returns {boolean}\n */\n get backedUp() {\n const ret = wasm.__wbg_get_pickledinboundgroupsession_backedUp(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Flag remembering if the session has been backed up.\n * @param {boolean} arg0\n */\n set backedUp(arg0) {\n wasm.__wbg_set_pickledinboundgroupsession_backedUp(this.__wbg_ptr, arg0);\n }\n /**\n * Construct a new `PickledInboundGroupSession`, with default values.\n */\n constructor() {\n const ret = wasm.pickledinboundgroupsession_new();\n this.__wbg_ptr = ret >>> 0;\n PickledInboundGroupSessionFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n}\nif (Symbol.dispose) PickledInboundGroupSession.prototype[Symbol.dispose] = PickledInboundGroupSession.prototype.free;\n\n/**\n * A pickled version of a `Session`.\n *\n * Holds all the information that needs to be stored in a database to restore\n * an Olm Session. Can be imported into the rust store with {@link\n * Migration::migrateOlmSessions}.\n */\nexport class PickledSession {\n static __unwrap(jsValue) {\n if (!(jsValue instanceof PickledSession)) {\n return 0;\n }\n return jsValue.__destroy_into_raw();\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n PickledSessionFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_pickledsession_free(ptr, 0);\n }\n /**\n * Construct a new `PickledSession`, with default values.\n */\n constructor() {\n const ret = wasm.pickledsession_new();\n this.__wbg_ptr = ret >>> 0;\n PickledSessionFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n /**\n * The pickle string holding the Olm Session, as returned by\n * `olm_pickle_session` in libolm.\n * @returns {string}\n */\n get pickle() {\n let deferred1_0;\n let deferred1_1;\n try {\n const ret = wasm.__wbg_get_pickledsession_pickle(this.__wbg_ptr);\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n }\n /**\n * The pickle string holding the Olm Session, as returned by\n * `olm_pickle_session` in libolm.\n * @param {string} arg0\n */\n set pickle(arg0) {\n const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n wasm.__wbg_set_backupsecretsbundle_key(this.__wbg_ptr, ptr0, len0);\n }\n /**\n * The base64-encoded public curve25519 key of the other user that we share\n * this session with.\n * @returns {string}\n */\n get senderKey() {\n let deferred1_0;\n let deferred1_1;\n try {\n const ret = wasm.__wbg_get_pickledsession_senderKey(this.__wbg_ptr);\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n }\n /**\n * The base64-encoded public curve25519 key of the other user that we share\n * this session with.\n * @param {string} arg0\n */\n set senderKey(arg0) {\n const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n wasm.__wbg_set_backupsecretsbundle_backup_version(this.__wbg_ptr, ptr0, len0);\n }\n /**\n * Was the session created using a fallback key?\n * @returns {boolean}\n */\n get createdUsingFallbackKey() {\n const ret = wasm.__wbg_get_pickledsession_createdUsingFallbackKey(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Was the session created using a fallback key?\n * @param {boolean} arg0\n */\n set createdUsingFallbackKey(arg0) {\n wasm.__wbg_set_pickledsession_createdUsingFallbackKey(this.__wbg_ptr, arg0);\n }\n /**\n * When the session was created.\n * @returns {Date}\n */\n get creationTime() {\n const ret = wasm.__wbg_get_pickledsession_creationTime(this.__wbg_ptr);\n return ret;\n }\n /**\n * When the session was created.\n * @param {Date} arg0\n */\n set creationTime(arg0) {\n wasm.__wbg_set_pickledsession_creationTime(this.__wbg_ptr, arg0);\n }\n /**\n * When the session was last used.\n * @returns {Date}\n */\n get lastUseTime() {\n const ret = wasm.__wbg_get_pickledsession_lastUseTime(this.__wbg_ptr);\n return ret;\n }\n /**\n * When the session was last used.\n * @param {Date} arg0\n */\n set lastUseTime(arg0) {\n wasm.__wbg_set_pickledsession_lastUseTime(this.__wbg_ptr, arg0);\n }\n}\nif (Symbol.dispose) PickledSession.prototype[Symbol.dispose] = PickledSession.prototype.free;\n\n/**\n * A class representing a public-key decryption instance.\n *\n * This implements the decryption part of the\n * `m.megolm_backup.v1.curve25519-aes-sha2` algorithm described in the Matrix\n * {@link https://spec.matrix.org/v1.11/client-server-api/#backup-algorithm-mmegolm_backupv1curve25519-aes-sha2 | spec}.\n *\n * @see {@link PkEncryption}\n *\n * More details can be found in the official {@link https://docs.rs/vodozemac/latest/vodozemac/pk_encryption/ | vodozemac documentation}.\n */\nexport class PkDecryption {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(PkDecryption.prototype);\n obj.__wbg_ptr = ptr;\n PkDecryptionFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n PkDecryptionFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_pkdecryption_free(ptr, 0);\n }\n /**\n * Returns the public key associated with this decryption instance.\n *\n * This can be used to construct a {@link PkEncryption} object to encrypt a\n * message for this `PkDecryption` object.\n * @returns {Curve25519PublicKey}\n */\n publicKey() {\n const ret = wasm.pkdecryption_publicKey(this.__wbg_ptr);\n return Curve25519PublicKey.__wrap(ret);\n }\n /**\n * Returns the secret key associated with this `PkDecryption` instance.\n * @returns {Curve25519SecretKey}\n */\n secretKey() {\n const ret = wasm.pkdecryption_secretKey(this.__wbg_ptr);\n return Curve25519SecretKey.__wrap(ret);\n }\n /**\n * Decrypts an encrypted message and returns the plaintext as a UTF-8\n * string.\n * @param {PkMessage} message\n * @returns {string}\n */\n decryptString(message) {\n let deferred2_0;\n let deferred2_1;\n try {\n _assertClass(message, PkMessage);\n const ret = wasm.pkdecryption_decryptString(this.__wbg_ptr, message.__wbg_ptr);\n var ptr1 = ret[0];\n var len1 = ret[1];\n if (ret[3]) {\n ptr1 = 0; len1 = 0;\n throw takeFromExternrefTable0(ret[2]);\n }\n deferred2_0 = ptr1;\n deferred2_1 = len1;\n return getStringFromWasm0(ptr1, len1);\n } finally {\n wasm.__wbindgen_free(deferred2_0, deferred2_1, 1);\n }\n }\n /**\n * Creates a new `PkDecryption` instance with a newly generated key pair.\n */\n constructor() {\n const ret = wasm.pkdecryption_new();\n this.__wbg_ptr = ret >>> 0;\n PkDecryptionFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n /**\n * Decrypts an encrypted message and returns the raw `Uint8Array`.\n * @param {PkMessage} message\n * @returns {Uint8Array}\n */\n decrypt(message) {\n _assertClass(message, PkMessage);\n const ret = wasm.pkdecryption_decrypt(this.__wbg_ptr, message.__wbg_ptr);\n if (ret[3]) {\n throw takeFromExternrefTable0(ret[2]);\n }\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * Creates a `PkDecryption` instance from a secret key.\n * @param {Curve25519SecretKey} key\n * @returns {PkDecryption}\n */\n static fromKey(key) {\n _assertClass(key, Curve25519SecretKey);\n const ret = wasm.pkdecryption_fromKey(key.__wbg_ptr);\n return PkDecryption.__wrap(ret);\n }\n}\nif (Symbol.dispose) PkDecryption.prototype[Symbol.dispose] = PkDecryption.prototype.free;\n\n/**\n * A class representing a public-key encryption instance.\n *\n * This implements the encryption part of the\n * `m.megolm_backup.v1.curve25519-aes-sha2` algorithm described in the Matrix\n * {@link https://spec.matrix.org/v1.11/client-server-api/#backup-algorithm-mmegolm_backupv1curve25519-aes-sha2 | spec}.\n *\n * @see {@link PkDecryption}\n *\n * More details can be found in the official {@link https://docs.rs/vodozemac/latest/vodozemac/pk_encryption/ | vodozemac documentation}.\n */\nexport class PkEncryption {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(PkEncryption.prototype);\n obj.__wbg_ptr = ptr;\n PkEncryptionFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n PkEncryptionFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_pkencryption_free(ptr, 0);\n }\n /**\n * Encrypts a string message and returns an encrypted {@link PkMessage}.\n * @param {string} message\n * @returns {PkMessage}\n */\n encryptString(message) {\n const ptr0 = passStringToWasm0(message, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.pkencryption_encrypt(this.__wbg_ptr, ptr0, len0);\n return PkMessage.__wrap(ret);\n }\n /**\n * Encrypts a byte message and returns an encrypted {@link PkMessage}.\n * @param {Uint8Array} message\n * @returns {PkMessage}\n */\n encrypt(message) {\n const ptr0 = passArray8ToWasm0(message, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.pkencryption_encrypt(this.__wbg_ptr, ptr0, len0);\n return PkMessage.__wrap(ret);\n }\n /**\n * Creates a new `PkEncryption` instance from a public key.\n * @param {Curve25519PublicKey} public_key\n * @returns {PkEncryption}\n */\n static fromKey(public_key) {\n _assertClass(public_key, Curve25519PublicKey);\n const ret = wasm.pkencryption_fromKey(public_key.__wbg_ptr);\n return PkEncryption.__wrap(ret);\n }\n}\nif (Symbol.dispose) PkEncryption.prototype[Symbol.dispose] = PkEncryption.prototype.free;\n\n/**\n * A class representing an encrypted message using {@link PkEncryption}.\n */\nexport class PkMessage {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(PkMessage.prototype);\n obj.__wbg_ptr = ptr;\n PkMessageFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n PkMessageFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_pkmessage_free(ptr, 0);\n }\n /**\n * Returns the raw ciphertext as a `Uint8Array`.\n * @returns {Uint8Array}\n */\n ciphertext() {\n const ret = wasm.pkmessage_ciphertext(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * Constructs a `PkMessage` from its parts: ciphertext, MAC, and ephemeral\n * key.\n * @param {Uint8Array} ciphertext\n * @param {Uint8Array} mac\n * @param {Curve25519PublicKey} ephemeral_key\n * @returns {PkMessage}\n */\n static fromParts(ciphertext, mac, ephemeral_key) {\n const ptr0 = passArray8ToWasm0(ciphertext, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray8ToWasm0(mac, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n _assertClass(ephemeral_key, Curve25519PublicKey);\n const ret = wasm.pkmessage_fromParts(ptr0, len0, ptr1, len1, ephemeral_key.__wbg_ptr);\n return PkMessage.__wrap(ret);\n }\n /**\n * Constructs a `PkMessage` from a base64-encoded representation.\n * @param {Base64EncodedPkMessage} message\n * @returns {PkMessage}\n */\n static fromBase64(message) {\n _assertClass(message, Base64EncodedPkMessage);\n const ret = wasm.pkmessage_fromBase64(message.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return PkMessage.__wrap(ret[0]);\n }\n /**\n * Returns the ephemeral public key used during encryption.\n * @returns {Curve25519PublicKey}\n */\n ephemeralKey() {\n const ret = wasm.pkmessage_ephemeralKey(this.__wbg_ptr);\n return Curve25519PublicKey.__wrap(ret);\n }\n /**\n * Returns the raw message authentication code (MAC) as a `Uint8Array`.\n * @returns {Uint8Array}\n */\n mac() {\n const ret = wasm.pkmessage_mac(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * Converts the `PkMessage` into a base64-encoded representation.\n * @returns {Base64EncodedPkMessage}\n */\n toBase64() {\n const ret = wasm.pkmessage_toBase64(this.__wbg_ptr);\n return Base64EncodedPkMessage.__wrap(ret);\n }\n}\nif (Symbol.dispose) PkMessage.prototype[Symbol.dispose] = PkMessage.prototype.free;\n\n/**\n * Represents a to-device event sent in the clear.\n */\nexport class PlainTextToDeviceEvent {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(PlainTextToDeviceEvent.prototype);\n obj.__wbg_ptr = ptr;\n PlainTextToDeviceEventFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n PlainTextToDeviceEventFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_plaintexttodeviceevent_free(ptr, 0);\n }\n /**\n * The to-device message, containing `type`, `sender` and `content` fields,\n * encoded as JSON.\n * @returns {string}\n */\n get rawEvent() {\n const ret = wasm.__wbg_get_plaintexttodeviceevent_rawEvent(this.__wbg_ptr);\n return ret;\n }\n /**\n * The type of processed to-device event. Always {@link\n * ProcessedToDeviceEventType.PlainText} for this type.\n * @returns {ProcessedToDeviceEventType}\n */\n get type() {\n const ret = wasm.plaintexttodeviceevent_type(this.__wbg_ptr);\n return ret;\n }\n}\nif (Symbol.dispose) PlainTextToDeviceEvent.prototype[Symbol.dispose] = PlainTextToDeviceEvent.prototype.free;\n\n/**\n * The type of a {@link ProcessedToDeviceEvent}.\n * @enum {0 | 1 | 2 | 3}\n */\nexport const ProcessedToDeviceEventType = Object.freeze({\n /**\n * A successfully-decrypted encrypted to-device message.\n */\n Decrypted: 0, \"0\": \"Decrypted\",\n /**\n * An encrypted to-device message which could not be decrypted.\n */\n UnableToDecrypt: 1, \"1\": \"UnableToDecrypt\",\n /**\n * An unencrypted to-device message (sent in clear).\n */\n PlainText: 2, \"2\": \"PlainText\",\n /**\n * An invalid to-device message that was ignored because it is missing some\n * required information to be processed (like no event `type` for\n * example)\n */\n Invalid: 3, \"3\": \"Invalid\",\n});\n\n/**\n * A request that will upload a dehydrated device to the server.\n */\nexport class PutDehydratedDeviceRequest {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(PutDehydratedDeviceRequest.prototype);\n obj.__wbg_ptr = ptr;\n PutDehydratedDeviceRequestFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n PutDehydratedDeviceRequestFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_putdehydrateddevicerequest_free(ptr, 0);\n }\n /**\n * A JSON-encoded object containing the rest of the payload: `rooms`.\n *\n * It represents the body of the HTTP request.\n * @returns {string}\n */\n get body() {\n const ret = wasm.__wbg_get_putdehydrateddevicerequest_body(this.__wbg_ptr);\n return ret;\n }\n /**\n * Create a new `PutDehydratedDeviceRequest`\n * @param {string} body\n */\n constructor(body) {\n const ret = wasm.putdehydrateddevicerequest_new(body);\n this.__wbg_ptr = ret >>> 0;\n PutDehydratedDeviceRequestFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n}\nif (Symbol.dispose) PutDehydratedDeviceRequest.prototype[Symbol.dispose] = PutDehydratedDeviceRequest.prototype.free;\n\n/**\n * QR code based verification.\n */\nexport class Qr {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(Qr.prototype);\n obj.__wbg_ptr = ptr;\n QrFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n QrFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_qr_free(ptr, 0);\n }\n /**\n * Generate a QR code object that is representing this\n * verification flow.\n *\n * The QrCode can then be rendered as an image or as an unicode\n * string.\n *\n * The `to_bytes` method can be used to instead output the raw\n * bytes that should be encoded as a QR code.\n *\n * Returns a `QrCode`.\n * @returns {QrCode}\n */\n toQrCode() {\n const ret = wasm.qr_toQrCode(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return QrCode.__wrap(ret[0]);\n }\n /**\n * Did we initiate the verification request?\n * @returns {boolean}\n */\n weStarted() {\n const ret = wasm.qr_weStarted(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Get info about the cancellation if the verification flow has\n * been cancelled.\n * @returns {CancelInfo | undefined}\n */\n cancelInfo() {\n const ret = wasm.qr_cancelInfo(this.__wbg_ptr);\n return ret === 0 ? undefined : CancelInfo.__wrap(ret);\n }\n /**\n * Notify the other side that we have successfully scanned the QR\n * code and that the QR verification flow can start.\n *\n * This will return some OutgoingContent if the object is in the\n * correct state to start the verification flow, otherwise None.\n * @returns {any}\n */\n reciprocate() {\n const ret = wasm.qr_reciprocate(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * Has the verification flow been cancelled?\n * @returns {boolean}\n */\n isCancelled() {\n const ret = wasm.qr_isCancelled(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Have we successfully scanned the QR code and are able to send\n * a reciprocation event?\n * @returns {boolean}\n */\n reciprocated() {\n const ret = wasm.qr_reciprocated(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Get the user id of the other user that is participating in\n * this verification flow.\n * @returns {UserId}\n */\n get otherUserId() {\n const ret = wasm.qr_otherUserId(this.__wbg_ptr);\n return UserId.__wrap(ret);\n }\n /**\n * Get the device ID of the other side.\n * @returns {DeviceId}\n */\n get otherDeviceId() {\n const ret = wasm.qr_otherDeviceId(this.__wbg_ptr);\n return DeviceId.__wrap(ret);\n }\n /**\n * Cancel the verification.\n *\n * This cancels the verification with given code (e.g. `m.user`).\n *\n * Returns either an `OutgoingRequest` which should be sent out, or\n * `undefined` if the verification is already cancelled.\n * @param {string} code\n * @returns {any}\n */\n cancelWithCode(code) {\n const ptr0 = passStringToWasm0(code, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.qr_cancelWithCode(this.__wbg_ptr, ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * Confirm that the other side has scanned our QR code.\n *\n * Returns either an `OutgoingRequest` which should be sent out, or\n * `undefined` if the verification is already confirmed.\n * @returns {any}\n */\n confirmScanning() {\n const ret = wasm.qr_confirmScanning(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * Has the QR verification been scanned by the other side.\n *\n * When the verification object is in this state it’s required\n * that the user confirms that the other side has scanned the QR\n * code.\n * @returns {boolean}\n */\n hasBeenScanned() {\n const ret = wasm.qr_hasBeenScanned(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Has the scanning of the QR code been confirmed by us?\n * @returns {boolean}\n */\n hasBeenConfirmed() {\n const ret = wasm.qr_hasBeenConfirmed(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Is this a verification that is verifying one of our own devices?\n * @returns {boolean}\n */\n isSelfVerification() {\n const ret = wasm.qr_isSelfVerification(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Register a callback which will be called whenever there is an update to\n * the request\n *\n * The `callback` is called with no parameters.\n * @param {Function} callback\n */\n registerChangesCallback(callback) {\n wasm.qr_registerChangesCallback(this.__wbg_ptr, callback);\n }\n /**\n * Get the current state of this request.\n *\n * Returns a `QrState`.\n * @returns {QrState}\n */\n state() {\n const ret = wasm.qr_state(this.__wbg_ptr);\n return ret;\n }\n /**\n * Cancel the verification flow.\n *\n * Returns either an `OutgoingRequest` which should be sent out, or\n * `undefined` if the verification is already cancelled.\n * @returns {any}\n */\n cancel() {\n const ret = wasm.qr_cancel(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * Get the unique ID that identifies this QR verification flow,\n * be either a to-device request ID or a room event ID.\n * @returns {string}\n */\n get flowId() {\n let deferred1_0;\n let deferred1_1;\n try {\n const ret = wasm.qr_flowId(this.__wbg_ptr);\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n }\n /**\n * Has the verification flow completed?\n * @returns {boolean}\n */\n isDone() {\n const ret = wasm.qr_isDone(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Get the room id if the verification is happening inside a\n * room.\n * @returns {RoomId | undefined}\n */\n get roomId() {\n const ret = wasm.qr_roomId(this.__wbg_ptr);\n return ret === 0 ? undefined : RoomId.__wrap(ret);\n }\n /**\n * Get our own user ID.\n * @returns {UserId}\n */\n get userId() {\n const ret = wasm.qr_userId(this.__wbg_ptr);\n return UserId.__wrap(ret);\n }\n /**\n * Generate a the raw bytes that should be encoded as a QR code\n * is representing this verification flow.\n *\n * The `to_qr_code` method can be used to instead output a QrCode\n * object that can be rendered.\n * @returns {Uint8ClampedArray}\n */\n toBytes() {\n const ret = wasm.qr_toBytes(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n}\nif (Symbol.dispose) Qr.prototype[Symbol.dispose] = Qr.prototype.free;\n\n/**\n * A QR code.\n */\nexport class QrCode {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(QrCode.prototype);\n obj.__wbg_ptr = ptr;\n QrCodeFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n QrCodeFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_qrcode_free(ptr, 0);\n }\n /**\n * Render the QR code into a `Uint8ClampedArray` where 1 represents a\n * dark pixel and 0 a white pixel.\n * @returns {Uint8ClampedArray}\n */\n renderIntoBuffer() {\n const ret = wasm.qrcode_renderIntoBuffer(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n}\nif (Symbol.dispose) QrCode.prototype[Symbol.dispose] = QrCode.prototype.free;\n\n/**\n * Data for the QR code login mechanism.\n *\n * The {@link QrCodeData} can be serialized and encoded as a QR code or it can\n * be decoded from a QR code.\n */\nexport class QrCodeData {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(QrCodeData.prototype);\n obj.__wbg_ptr = ptr;\n QrCodeDataFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n QrCodeDataFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_qrcodedata_free(ptr, 0);\n }\n /**\n * Attempt to decode a slice of bytes into a {@link QrCodeData} object.\n *\n * The slice of bytes would generally be returned by a QR code decoder.\n * @param {Uint8Array} bytes\n * @returns {QrCodeData}\n */\n static fromBytes(bytes) {\n const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.qrcodedata_fromBytes(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return QrCodeData.__wrap(ret[0]);\n }\n /**\n * Get the Curve25519 public key embedded in the {@link QrCodeData}.\n *\n * This Curve25519 public key should be used to establish an\n * [ECIES](https://en.wikipedia.org/wiki/Integrated_Encryption_Scheme)\n * (Elliptic Curve Integrated Encryption Scheme) channel with the other\n * device.\n * @returns {Curve25519PublicKey}\n */\n get publicKey() {\n const ret = wasm.qrcodedata_publicKey(this.__wbg_ptr);\n return Curve25519PublicKey.__wrap(ret);\n }\n /**\n * Attempt to decode a base64 encoded string into a {@link QrCodeData}\n * object.\n * @param {string} data\n * @returns {QrCodeData}\n */\n static fromBase64(data) {\n const ptr0 = passStringToWasm0(data, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.qrcodedata_fromBase64(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return QrCodeData.__wrap(ret[0]);\n }\n /**\n * Get the server name of the homeserver which the new device will be\n * logged in to.\n *\n * This will be only available if the existing device has generated the QR\n * code and the new device is the one scanning the QR code.\n * @returns {string | undefined}\n */\n get serverName() {\n const ret = wasm.qrcodedata_serverName(this.__wbg_ptr);\n let v1;\n if (ret[0] !== 0) {\n v1 = getStringFromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n }\n return v1;\n }\n /**\n * Get the URL of the rendezvous server which will be used to exchange\n * messages between the two devices.\n * @returns {string}\n */\n get rendezvousUrl() {\n let deferred1_0;\n let deferred1_1;\n try {\n const ret = wasm.qrcodedata_rendezvousUrl(this.__wbg_ptr);\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n }\n /**\n * Create new {@link QrCodeData} from a given public key, a rendezvous URL\n * and, optionally, a server name for the homeserver.\n *\n * If a server name is given, then the {@link QrCodeData} mode will be\n * {@link QrCodeMode.Reciprocate}, i.e. the QR code will contain data for\n * the existing device to display the QR code.\n *\n * If no server name is given, the {@link QrCodeData} mode will be\n * {@link QrCodeMode.Login}, i.e. the QR code will contain data for the\n * new device to display the QR code.\n * @param {Curve25519PublicKey} public_key\n * @param {string} rendezvous_url\n * @param {string | null} [server_name]\n */\n constructor(public_key, rendezvous_url, server_name) {\n _assertClass(public_key, Curve25519PublicKey);\n var ptr0 = public_key.__destroy_into_raw();\n const ptr1 = passStringToWasm0(rendezvous_url, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n var ptr2 = isLikeNone(server_name) ? 0 : passStringToWasm0(server_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len2 = WASM_VECTOR_LEN;\n const ret = wasm.qrcodedata_new(ptr0, ptr1, len1, ptr2, len2);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n this.__wbg_ptr = ret[0] >>> 0;\n QrCodeDataFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n /**\n * Get the mode of this {@link QrCodeData} instance.\n * @returns {QrCodeMode}\n */\n get mode() {\n const ret = wasm.qrcodedata_mode(this.__wbg_ptr);\n return ret;\n }\n /**\n * Encode the {@link QrCodeData} into a list of bytes.\n *\n * The list of bytes can be used by a QR code generator to create an image\n * containing a QR code.\n * @returns {Uint8Array}\n */\n toBytes() {\n const ret = wasm.qrcodedata_toBytes(this.__wbg_ptr);\n var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v1;\n }\n /**\n * Encode the {@link QrCodeData} into a string using base64.\n *\n * This format can be used for debugging purposes and the\n * [`QrcodeData::from_base64()`] method can be used to parse the string\n * again.\n * @returns {string}\n */\n toBase64() {\n let deferred1_0;\n let deferred1_1;\n try {\n const ret = wasm.qrcodedata_toBase64(this.__wbg_ptr);\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n }\n}\nif (Symbol.dispose) QrCodeData.prototype[Symbol.dispose] = QrCodeData.prototype.free;\n\n/**\n * The mode of the QR code login.\n *\n * The QR code login mechanism supports both, the new device, as well as the\n * existing device to display the QR code.\n *\n * The different modes have an explicit one-byte identifier which gets added to\n * the QR code data.\n * @enum {0 | 1}\n */\nexport const QrCodeMode = Object.freeze({\n /**\n * The new device is displaying the QR code.\n */\n Login: 0, \"0\": \"Login\",\n /**\n * The existing device is displaying the QR code.\n */\n Reciprocate: 1, \"1\": \"Reciprocate\",\n});\n\n/**\n * A scanned QR code.\n */\nexport class QrCodeScan {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(QrCodeScan.prototype);\n obj.__wbg_ptr = ptr;\n QrCodeScanFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n QrCodeScanFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_qrcodescan_free(ptr, 0);\n }\n /**\n * Parse the decoded payload of a QR code in byte slice form.\n *\n * This method is useful if you would like to do your own custom QR code\n * decoding.\n * @param {Uint8ClampedArray} buffer\n * @returns {QrCodeScan}\n */\n static fromBytes(buffer) {\n const ret = wasm.qrcodescan_fromBytes(buffer);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return QrCodeScan.__wrap(ret[0]);\n }\n}\nif (Symbol.dispose) QrCodeScan.prototype[Symbol.dispose] = QrCodeScan.prototype.free;\n\n/**\n * List of `Qr` states\n * @enum {0 | 1 | 2 | 3 | 4 | 5}\n */\nexport const QrState = Object.freeze({\n /**\n * We have received the other device's details (from the\n * `m.key.verification.request` or `m.key.verification.ready`) and\n * established the shared secret, so can\n * display the QR code.\n */\n Created: 0, \"0\": \"Created\",\n /**\n * The other side has scanned our QR code and sent an\n * `m.key.verification.start` message with `method: m.reciprocate.v1` with\n * matching shared secret.\n */\n Scanned: 1, \"1\": \"Scanned\",\n /**\n * Our user has confirmed that the other device scanned successfully. We\n * have sent an `m.key.verification.done`.\n */\n Confirmed: 2, \"2\": \"Confirmed\",\n /**\n * We have scanned the other side's QR code and are able to send a\n * `m.key.verification.start` message with `method: m.reciprocate.v1`.\n *\n * Call `Qr::reciprocate` to build the start message.\n *\n * Note that, despite the name of this state, we have not necessarily\n * yet sent the `m.reciprocate.v1` message.\n */\n Reciprocated: 3, \"3\": \"Reciprocated\",\n /**\n * Verification complete: we have received an `m.key.verification.done`\n * from the other side.\n */\n Done: 4, \"4\": \"Done\",\n /**\n * Verification cancelled or failed.\n */\n Cancelled: 5, \"5\": \"Cancelled\",\n});\n\n/**\n * A rehydrated device\n *\n * This device can receive to-device events to get room keys that were send to\n * it.\n */\nexport class RehydratedDevice {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(RehydratedDevice.prototype);\n obj.__wbg_ptr = ptr;\n RehydratedDeviceFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n RehydratedDeviceFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_rehydrateddevice_free(ptr, 0);\n }\n /**\n * Receive the to-device events that sent to the dehydrated device\n *\n * The rehydrated device will decrypt the events and pass the room keys\n * into the `OlmMachine`.\n *\n * # Arguments\n *\n * * `to_device_events` is a JSON-encoded result of the `events` array from\n * `/dehydrated_device/{device_id}/events`.\n * * `decryption_settings`: Optionally, the settings to use when decrypting\n * to-device events. If not set, to-device events will be decrypted with\n * a {@link TrustRequirement} of `Untrusted`.\n *\n * Returns an array of `RoomKeyInfo`, indicating the room keys that were\n * received.\n * @param {string} to_device_events\n * @param {DecryptionSettings | null} [decryption_settings]\n * @returns {Promise<Array<any>>}\n */\n receiveEvents(to_device_events, decryption_settings) {\n const ptr0 = passStringToWasm0(to_device_events, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n let ptr1 = 0;\n if (!isLikeNone(decryption_settings)) {\n _assertClass(decryption_settings, DecryptionSettings);\n ptr1 = decryption_settings.__destroy_into_raw();\n }\n const ret = wasm.rehydrateddevice_receiveEvents(this.__wbg_ptr, ptr0, len0, ptr1);\n return ret;\n }\n}\nif (Symbol.dispose) RehydratedDevice.prototype[Symbol.dispose] = RehydratedDevice.prototype.free;\n\n/**\n * Represent the type of a request.\n * @enum {0 | 1 | 2 | 3 | 4 | 5 | 6}\n */\nexport const RequestType = Object.freeze({\n /**\n * Represents a `KeysUploadRequest`.\n */\n KeysUpload: 0, \"0\": \"KeysUpload\",\n /**\n * Represents a `KeysQueryRequest`.\n */\n KeysQuery: 1, \"1\": \"KeysQuery\",\n /**\n * Represents a `KeysClaimRequest`.\n */\n KeysClaim: 2, \"2\": \"KeysClaim\",\n /**\n * Represents a `ToDeviceRequest`.\n */\n ToDevice: 3, \"3\": \"ToDevice\",\n /**\n * Represents a `SignatureUploadRequest`.\n */\n SignatureUpload: 4, \"4\": \"SignatureUpload\",\n /**\n * Represents a `RoomMessageRequest`.\n */\n RoomMessage: 5, \"5\": \"RoomMessage\",\n /**\n * Represents a `KeysBackupRequest`.\n */\n KeysBackup: 6, \"6\": \"KeysBackup\",\n});\n\n/**\n * A Matrix [room ID].\n *\n * [room ID]: https://spec.matrix.org/v1.2/appendices/#room-ids-and-event-ids\n */\nexport class RoomId {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(RoomId.prototype);\n obj.__wbg_ptr = ptr;\n RoomIdFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n static __unwrap(jsValue) {\n if (!(jsValue instanceof RoomId)) {\n return 0;\n }\n return jsValue.__destroy_into_raw();\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n RoomIdFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_roomid_free(ptr, 0);\n }\n /**\n * Parse/validate and create a new `RoomId`.\n * @param {string} id\n */\n constructor(id) {\n const ptr0 = passStringToWasm0(id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.roomid_new(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n this.__wbg_ptr = ret[0] >>> 0;\n RoomIdFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n /**\n * Return the room ID as a string.\n * @returns {string}\n */\n toString() {\n let deferred1_0;\n let deferred1_1;\n try {\n const ret = wasm.roomid_toString(this.__wbg_ptr);\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n }\n}\nif (Symbol.dispose) RoomId.prototype[Symbol.dispose] = RoomId.prototype.free;\n\n/**\n * Struct holding the number of room keys we have.\n */\nexport class RoomKeyCounts {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(RoomKeyCounts.prototype);\n obj.__wbg_ptr = ptr;\n RoomKeyCountsFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n RoomKeyCountsFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_roomkeycounts_free(ptr, 0);\n }\n /**\n * The total number of room keys.\n * @returns {number}\n */\n get total() {\n const ret = wasm.__wbg_get_roomkeycounts_total(this.__wbg_ptr);\n return ret;\n }\n /**\n * The total number of room keys.\n * @param {number} arg0\n */\n set total(arg0) {\n wasm.__wbg_set_roomkeycounts_total(this.__wbg_ptr, arg0);\n }\n /**\n * The number of backed up room keys.\n * @returns {number}\n */\n get backedUp() {\n const ret = wasm.__wbg_get_roomkeycounts_backedUp(this.__wbg_ptr);\n return ret;\n }\n /**\n * The number of backed up room keys.\n * @param {number} arg0\n */\n set backedUp(arg0) {\n wasm.__wbg_set_roomkeycounts_backedUp(this.__wbg_ptr, arg0);\n }\n}\nif (Symbol.dispose) RoomKeyCounts.prototype[Symbol.dispose] = RoomKeyCounts.prototype.free;\n\n/**\n * The result of a call to {@link OlmMachine.importExportedRoomKeys} or\n * {@link OlmMachine.importBackedUpRoomKeys}.\n */\nexport class RoomKeyImportResult {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(RoomKeyImportResult.prototype);\n obj.__wbg_ptr = ptr;\n RoomKeyImportResultFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n RoomKeyImportResultFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_roomkeyimportresult_free(ptr, 0);\n }\n /**\n * The keys that were imported.\n *\n * A Map from room id to a Map of the sender key to a Set of session ids.\n *\n * Typescript type: `Map<string, Map<string, Set<string>>`.\n * @returns {Map<any, any>}\n */\n keys() {\n const ret = wasm.roomkeyimportresult_keys(this.__wbg_ptr);\n return ret;\n }\n /**\n * The number of room keys that were imported.\n * @returns {number}\n */\n get importedCount() {\n const ret = wasm.__wbg_get_roomkeyimportresult_importedCount(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * The total number of room keys that were found in the export.\n * @returns {number}\n */\n get totalCount() {\n const ret = wasm.__wbg_get_roomkeyimportresult_totalCount(this.__wbg_ptr);\n return ret >>> 0;\n }\n}\nif (Symbol.dispose) RoomKeyImportResult.prototype[Symbol.dispose] = RoomKeyImportResult.prototype.free;\n\n/**\n * Information on a room key that has been received or imported.\n */\nexport class RoomKeyInfo {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(RoomKeyInfo.prototype);\n obj.__wbg_ptr = ptr;\n RoomKeyInfoFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n RoomKeyInfoFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_roomkeyinfo_free(ptr, 0);\n }\n /**\n * The Curve25519 key of the device which initiated the session originally.\n * @returns {Curve25519PublicKey}\n */\n get senderKey() {\n const ret = wasm.roomkeyinfo_senderKey(this.__wbg_ptr);\n return Curve25519PublicKey.__wrap(ret);\n }\n /**\n * The ID of the session that the key is for.\n * @returns {string}\n */\n get sessionId() {\n let deferred1_0;\n let deferred1_1;\n try {\n const ret = wasm.roomkeyinfo_sessionId(this.__wbg_ptr);\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n }\n /**\n * The room where the key is used.\n * @returns {RoomId}\n */\n get roomId() {\n const ret = wasm.roomkeyinfo_roomId(this.__wbg_ptr);\n return RoomId.__wrap(ret);\n }\n /**\n * The {@link EncryptionAlgorithm} that this key is used for. Will be one\n * of the `m.megolm.*` algorithms.\n * @returns {EncryptionAlgorithm}\n */\n get algorithm() {\n const ret = wasm.roomkeyinfo_algorithm(this.__wbg_ptr);\n return ret;\n }\n}\nif (Symbol.dispose) RoomKeyInfo.prototype[Symbol.dispose] = RoomKeyInfo.prototype.free;\n\n/**\n * Information on a received `m.room_key.withheld` event.\n */\nexport class RoomKeyWithheldInfo {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(RoomKeyWithheldInfo.prototype);\n obj.__wbg_ptr = ptr;\n RoomKeyWithheldInfoFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n RoomKeyWithheldInfoFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_roomkeywithheldinfo_free(ptr, 0);\n }\n /**\n * The session ID of the session that is being withheld.\n * @returns {string}\n */\n get sessionId() {\n let deferred1_0;\n let deferred1_1;\n try {\n const ret = wasm.roomkeywithheldinfo_sessionId(this.__wbg_ptr);\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n }\n /**\n * The `code` indicating why the key was withheld, such as `m.unverified`.\n *\n * This may be from an `m.room_key.withheld` event (such as\n * `m.unverified`), or from a shared room key bundle under MSC4268.\n * @returns {string}\n */\n get withheldCode() {\n let deferred1_0;\n let deferred1_1;\n try {\n const ret = wasm.roomkeywithheldinfo_withheldCode(this.__wbg_ptr);\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n }\n /**\n * The User ID of the sender of the withheld information.\n *\n * This may be the sender of an `m.room_key.withheld` event, or the sender\n * of a shared room key bundle under MSC4268.\n * @returns {UserId}\n */\n get sender() {\n const ret = wasm.roomkeywithheldinfo_sender(this.__wbg_ptr);\n return UserId.__wrap(ret);\n }\n /**\n * The room ID of the session that is being withheld.\n * @returns {RoomId}\n */\n get roomId() {\n const ret = wasm.roomkeywithheldinfo_roomId(this.__wbg_ptr);\n return RoomId.__wrap(ret);\n }\n /**\n * The encryption algorithm of the session that is being withheld.\n *\n * This may be from an `m.room_key.withheld` event, or from a shared room\n * key bundle under MSC4268.\n * @returns {EncryptionAlgorithm}\n */\n get algorithm() {\n const ret = wasm.roomkeywithheldinfo_algorithm(this.__wbg_ptr);\n return ret;\n }\n}\nif (Symbol.dispose) RoomKeyWithheldInfo.prototype[Symbol.dispose] = RoomKeyWithheldInfo.prototype.free;\n\n/**\n * A customized owned request type for sending out room messages\n * ([specification]).\n *\n * [specification]: https://spec.matrix.org/unstable/client-server-api/#put_matrixclientv3roomsroomidsendeventtypetxnid\n */\nexport class RoomMessageRequest {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(RoomMessageRequest.prototype);\n obj.__wbg_ptr = ptr;\n RoomMessageRequestFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n RoomMessageRequestFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_roommessagerequest_free(ptr, 0);\n }\n /**\n * Get its request type.\n * @returns {RequestType}\n */\n get type() {\n const ret = wasm.roommessagerequest_type(this.__wbg_ptr);\n return ret;\n }\n /**\n * Create a new `RoomMessageRequest`.\n * @param {string} id\n * @param {string} room_id\n * @param {string} txn_id\n * @param {string} event_type\n * @param {string} content\n */\n constructor(id, room_id, txn_id, event_type, content) {\n const ret = wasm.roommessagerequest_new(id, room_id, txn_id, event_type, content);\n this.__wbg_ptr = ret >>> 0;\n RoomMessageRequestFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n /**\n * The request ID.\n * @returns {string}\n */\n get id() {\n const ret = wasm.__wbg_get_roommessagerequest_id(this.__wbg_ptr);\n return ret;\n }\n /**\n * A string representing the room to send the event to.\n * @returns {string}\n */\n get room_id() {\n const ret = wasm.__wbg_get_roommessagerequest_room_id(this.__wbg_ptr);\n return ret;\n }\n /**\n * A string representing the transaction ID for this event.\n *\n * Clients should generate an ID unique across requests with the same\n * access token; it will be used by the server to ensure idempotency of\n * requests.\n * @returns {string}\n */\n get txn_id() {\n const ret = wasm.__wbg_get_roommessagerequest_txn_id(this.__wbg_ptr);\n return ret;\n }\n /**\n * A string representing the type of event to be sent.\n * @returns {string}\n */\n get event_type() {\n const ret = wasm.__wbg_get_roommessagerequest_event_type(this.__wbg_ptr);\n return ret;\n }\n /**\n * A JSON-encoded object containing the message's content.\n * @returns {string}\n */\n get body() {\n const ret = wasm.__wbg_get_roommessagerequest_body(this.__wbg_ptr);\n return ret;\n }\n}\nif (Symbol.dispose) RoomMessageRequest.prototype[Symbol.dispose] = RoomMessageRequest.prototype.free;\n\n/**\n * Room encryption settings which are modified by state events or user options\n */\nexport class RoomSettings {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(RoomSettings.prototype);\n obj.__wbg_ptr = ptr;\n RoomSettingsFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n RoomSettingsFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_roomsettings_free(ptr, 0);\n }\n /**\n * Create a new `RoomSettings` with default values.\n */\n constructor() {\n const ret = wasm.roomsettings_new();\n this.__wbg_ptr = ret >>> 0;\n RoomSettingsFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n /**\n * The encryption algorithm that should be used in the room.\n *\n * Should be one of the members of {@link EncryptionAlgorithm}.\n * @returns {EncryptionAlgorithm}\n */\n get algorithm() {\n const ret = wasm.__wbg_get_roomsettings_algorithm(this.__wbg_ptr);\n return ret;\n }\n /**\n * The encryption algorithm that should be used in the room.\n *\n * Should be one of the members of {@link EncryptionAlgorithm}.\n * @param {EncryptionAlgorithm} arg0\n */\n set algorithm(arg0) {\n wasm.__wbg_set_roomsettings_algorithm(this.__wbg_ptr, arg0);\n }\n /**\n * Whether state event encryption is enabled.\n * @returns {boolean}\n */\n get encryptStateEvents() {\n const ret = wasm.__wbg_get_roomsettings_encryptStateEvents(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Whether state event encryption is enabled.\n * @param {boolean} arg0\n */\n set encryptStateEvents(arg0) {\n wasm.__wbg_set_roomsettings_encryptStateEvents(this.__wbg_ptr, arg0);\n }\n /**\n * Whether untrusted devices should receive room keys. If this is `false`,\n * they will be excluded from the conversation.\n * @returns {boolean}\n */\n get onlyAllowTrustedDevices() {\n const ret = wasm.__wbg_get_roomsettings_onlyAllowTrustedDevices(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Whether untrusted devices should receive room keys. If this is `false`,\n * they will be excluded from the conversation.\n * @param {boolean} arg0\n */\n set onlyAllowTrustedDevices(arg0) {\n wasm.__wbg_set_roomsettings_onlyAllowTrustedDevices(this.__wbg_ptr, arg0);\n }\n /**\n * The maximum time, in milliseconds, that an encryption session should be\n * used for, before it is rotated.\n * @returns {number | undefined}\n */\n get sessionRotationPeriodMs() {\n const ret = wasm.__wbg_get_roomsettings_sessionRotationPeriodMs(this.__wbg_ptr);\n return ret[0] === 0 ? undefined : ret[1];\n }\n /**\n * The maximum time, in milliseconds, that an encryption session should be\n * used for, before it is rotated.\n * @param {number | null} [arg0]\n */\n set sessionRotationPeriodMs(arg0) {\n wasm.__wbg_set_roomsettings_sessionRotationPeriodMs(this.__wbg_ptr, !isLikeNone(arg0), isLikeNone(arg0) ? 0 : arg0);\n }\n /**\n * The maximum number of messages an encryption session should be used for,\n * before it is rotated.\n * @returns {number | undefined}\n */\n get sessionRotationPeriodMessages() {\n const ret = wasm.__wbg_get_roomsettings_sessionRotationPeriodMessages(this.__wbg_ptr);\n return ret[0] === 0 ? undefined : ret[1];\n }\n /**\n * The maximum number of messages an encryption session should be used for,\n * before it is rotated.\n * @param {number | null} [arg0]\n */\n set sessionRotationPeriodMessages(arg0) {\n wasm.__wbg_set_roomsettings_sessionRotationPeriodMessages(this.__wbg_ptr, !isLikeNone(arg0), isLikeNone(arg0) ? 0 : arg0);\n }\n}\nif (Symbol.dispose) RoomSettings.prototype[Symbol.dispose] = RoomSettings.prototype.free;\n\n/**\n * Short Authentication String (SAS) verification.\n */\nexport class Sas {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(Sas.prototype);\n obj.__wbg_ptr = ptr;\n SasFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n SasFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_sas_free(ptr, 0);\n }\n /**\n * True if we initiated the verification flow (ie, we sent the\n * `m.key.verification.request`).\n * @returns {boolean}\n */\n weStarted() {\n const ret = wasm.sas_weStarted(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Get info about the cancellation if the verification flow has\n * been cancelled.\n * @returns {CancelInfo | undefined}\n */\n cancelInfo() {\n const ret = wasm.sas_cancelInfo(this.__wbg_ptr);\n return ret === 0 ? undefined : CancelInfo.__wrap(ret);\n }\n /**\n * Get the index of the emoji representing the short auth string\n *\n * Returns `undefined` if we can’t yet present the short auth\n * string, otherwise seven `u8` numbers in the range from 0 to 63\n * inclusive which can be converted to an emoji using [the\n * relevant specification\n * entry](https://spec.matrix.org/unstable/client-server-api/#sas-method-emoji).\n * @returns {Uint8Array | undefined}\n */\n emojiIndex() {\n const ret = wasm.sas_emojiIndex(this.__wbg_ptr);\n let v1;\n if (ret[0] !== 0) {\n v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n }\n return v1;\n }\n /**\n * Is the SAS flow cancelled?\n * @returns {boolean}\n */\n isCancelled() {\n const ret = wasm.sas_isCancelled(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Get the user id of the other side.\n * @returns {UserId}\n */\n get otherUserId() {\n const ret = wasm.sas_otherUserId(this.__wbg_ptr);\n return UserId.__wrap(ret);\n }\n /**\n * Does this verification flow support displaying emoji for the\n * short authentication string?\n * @returns {boolean}\n */\n supportsEmoji() {\n const ret = wasm.sas_supportsEmoji(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Get the device ID of the other side.\n * @returns {DeviceId}\n */\n get otherDeviceId() {\n const ret = wasm.sas_otherDeviceId(this.__wbg_ptr);\n return DeviceId.__wrap(ret);\n }\n /**\n * Are we in a state where we can show the short auth string?\n * @returns {boolean}\n */\n canBePresented() {\n const ret = wasm.sas_canBePresented(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Cancel the verification.\n *\n * This cancels the verification with given code (e.g. `m.user`).\n *\n * Returns either an `OutgoingRequest` which should be sent out, or\n * `undefined` if the verification is already cancelled.\n * @param {string} code\n * @returns {any}\n */\n cancelWithCode(code) {\n const ptr0 = passStringToWasm0(code, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.sas_cancelWithCode(this.__wbg_ptr, ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * Has the verification been accepted by both parties?\n * @returns {boolean}\n */\n hasBeenAccepted() {\n const ret = wasm.sas_hasBeenAccepted(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Have we confirmed that the short auth string matches?\n * @returns {boolean}\n */\n haveWeConfirmed() {\n const ret = wasm.sas_haveWeConfirmed(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Is this a verification that is verifying one of our own\n * devices?\n * @returns {boolean}\n */\n isSelfVerification() {\n const ret = wasm.sas_isSelfVerification(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Did this verification flow start from a verification request?\n * @returns {boolean}\n */\n startedFromRequest() {\n const ret = wasm.sas_startedFromRequest(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Register a callback which will be called whenever there is an update to\n * the request.\n *\n * The `callback` is called with no parameters.\n * @param {Function} callback\n */\n registerChangesCallback(callback) {\n wasm.sas_registerChangesCallback(this.__wbg_ptr, callback);\n }\n /**\n * Get the emoji version of the short auth string.\n *\n * Returns `undefined` if we can't yet present the short auth string,\n * otherwise an array of seven `Emoji` objects.\n * @returns {Emoji[] | undefined}\n */\n emoji() {\n const ret = wasm.sas_emoji(this.__wbg_ptr);\n let v1;\n if (ret[0] !== 0) {\n v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);\n }\n return v1;\n }\n /**\n * Accept the SAS verification.\n *\n * This does nothing (and returns `undefined`) if the verification was\n * already accepted, otherwise it returns an `OutgoingRequest`\n * that needs to be sent out.\n * @returns {any}\n */\n accept() {\n const ret = wasm.sas_accept(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * Cancel the verification.\n *\n * Returns either an `OutgoingRequest` which should be sent out, or\n * `undefined` if the verification is already cancelled.\n * @returns {any}\n */\n cancel() {\n const ret = wasm.sas_cancel(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * Confirm the SAS verification.\n *\n * This confirms that the short auth strings match on both sides.\n *\n * Does nothing if we’re not in a state where we can confirm the\n * short auth string.\n *\n * Returns a `Promise` for an array of `OutgoingRequest`s.\n * @returns {Promise<any>}\n */\n confirm() {\n const ret = wasm.sas_confirm(this.__wbg_ptr);\n return ret;\n }\n /**\n * Get the unique ID that identifies this SAS verification flow,\n * be either a to-device request ID or a room event ID.\n * @returns {string}\n */\n get flowId() {\n let deferred1_0;\n let deferred1_1;\n try {\n const ret = wasm.sas_flowId(this.__wbg_ptr);\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n }\n /**\n * Is the SAS flow done?\n * @returns {boolean}\n */\n isDone() {\n const ret = wasm.sas_isDone(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Get the room ID if the verification is happening inside a\n * room.\n * @returns {RoomId | undefined}\n */\n get roomId() {\n const ret = wasm.sas_roomId(this.__wbg_ptr);\n return ret === 0 ? undefined : RoomId.__wrap(ret);\n }\n /**\n * Get our own user ID.\n * @returns {UserId}\n */\n get userId() {\n const ret = wasm.sas_userId(this.__wbg_ptr);\n return UserId.__wrap(ret);\n }\n /**\n * Get the decimal version of the short auth string.\n *\n * Returns None if we can’t yet present the short auth string,\n * otherwise a tuple containing three 4-digit integers that\n * represent the short auth string.\n * @returns {Uint16Array | undefined}\n */\n decimals() {\n const ret = wasm.sas_decimals(this.__wbg_ptr);\n let v1;\n if (ret[0] !== 0) {\n v1 = getArrayU16FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 2, 2);\n }\n return v1;\n }\n /**\n * Get our own device ID.\n * @returns {DeviceId}\n */\n get deviceId() {\n const ret = wasm.sas_deviceId(this.__wbg_ptr);\n return DeviceId.__wrap(ret);\n }\n /**\n * Has the SAS verification flow timed out?\n * @returns {boolean}\n */\n timedOut() {\n const ret = wasm.sas_timedOut(this.__wbg_ptr);\n return ret !== 0;\n }\n}\nif (Symbol.dispose) Sas.prototype[Symbol.dispose] = Sas.prototype.free;\n\n/**\n * Struct containing the bundle of secrets to fully activate a new device for\n * end-to-end encryption.\n */\nexport class SecretsBundle {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(SecretsBundle.prototype);\n obj.__wbg_ptr = ptr;\n SecretsBundleFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n SecretsBundleFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_secretsbundle_free(ptr, 0);\n }\n /**\n * The seed of the master key encoded as unpadded base64.\n * @returns {string}\n */\n get masterKey() {\n let deferred1_0;\n let deferred1_1;\n try {\n const ret = wasm.secretsbundle_masterKey(this.__wbg_ptr);\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n }\n /**\n * The bundle of the backup decryption key and backup version if any.\n * @returns {BackupSecretsBundle | undefined}\n */\n get backupBundle() {\n const ret = wasm.secretsbundle_backupBundle(this.__wbg_ptr);\n return ret === 0 ? undefined : BackupSecretsBundle.__wrap(ret);\n }\n /**\n * The seed of the self signing key encoded as unpadded base64.\n * @returns {string}\n */\n get selfSigningKey() {\n let deferred1_0;\n let deferred1_1;\n try {\n const ret = wasm.secretsbundle_selfSigningKey(this.__wbg_ptr);\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n }\n /**\n * The seed of the user signing key encoded as unpadded base64.\n * @returns {string}\n */\n get userSigningKey() {\n let deferred1_0;\n let deferred1_1;\n try {\n const ret = wasm.secretsbundle_userSigningKey(this.__wbg_ptr);\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n }\n /**\n * Serialize the [`SecretsBundle`] to a JSON object.\n * @returns {any}\n */\n to_json() {\n const ret = wasm.secretsbundle_to_json(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * Deserialize the [`SecretsBundle`] from a JSON object.\n * @param {any} json\n * @returns {SecretsBundle}\n */\n static from_json(json) {\n const ret = wasm.secretsbundle_from_json(json);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return SecretsBundle.__wrap(ret[0]);\n }\n}\nif (Symbol.dispose) SecretsBundle.prototype[Symbol.dispose] = SecretsBundle.prototype.free;\n\n/**\n * A Matrix-spec compliant [server name].\n *\n * It consists of a host and an optional port (separated by a colon if\n * present).\n *\n * [server name]: https://spec.matrix.org/v1.2/appendices/#server-name\n */\nexport class ServerName {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(ServerName.prototype);\n obj.__wbg_ptr = ptr;\n ServerNameFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n ServerNameFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_servername_free(ptr, 0);\n }\n /**\n * Returns true if and only if the server name is an IPv4 or IPv6\n * address.\n * @returns {boolean}\n */\n isIpLiteral() {\n const ret = wasm.servername_isIpLiteral(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Parse/validate and create a new `ServerName`.\n * @param {string} name\n */\n constructor(name) {\n const ptr0 = passStringToWasm0(name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.servername_new(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n this.__wbg_ptr = ret[0] >>> 0;\n ServerNameFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n /**\n * Returns the host of the server name.\n *\n * That is: Return the part of the server before `:<port>` or the\n * full server name if there is no port.\n * @returns {string}\n */\n get host() {\n let deferred1_0;\n let deferred1_1;\n try {\n const ret = wasm.servername_host(this.__wbg_ptr);\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n }\n /**\n * Returns the port of the server name if any.\n * @returns {number | undefined}\n */\n get port() {\n const ret = wasm.servername_port(this.__wbg_ptr);\n return ret === 0xFFFFFF ? undefined : ret;\n }\n}\nif (Symbol.dispose) ServerName.prototype[Symbol.dispose] = ServerName.prototype.free;\n\n/**\n * Take a look at [`matrix_sdk_common::deserialized_responses::ShieldState`]\n * for more info.\n * @enum {0 | 1 | 2}\n */\nexport const ShieldColor = Object.freeze({\n /**\n * Important warning\n */\n Red: 0, \"0\": \"Red\",\n /**\n * Low warning\n */\n Grey: 1, \"1\": \"Grey\",\n /**\n * No warning\n */\n None: 2, \"2\": \"None\",\n});\n\n/**\n * Take a look at [`matrix_sdk_common::deserialized_responses::ShieldState`]\n * for more info.\n */\nexport class ShieldState {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(ShieldState.prototype);\n obj.__wbg_ptr = ptr;\n ShieldStateFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n ShieldStateFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_shieldstate_free(ptr, 0);\n }\n /**\n * Error message that can be displayed as a tooltip\n * @returns {string | undefined}\n */\n get message() {\n const ret = wasm.shieldstate_message(this.__wbg_ptr);\n let v1;\n if (ret[0] !== 0) {\n v1 = getStringFromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n }\n return v1;\n }\n /**\n * The shield color\n * @returns {ShieldColor}\n */\n get color() {\n const ret = wasm.__wbg_get_shieldstate_color(this.__wbg_ptr);\n return ret;\n }\n /**\n * The shield color\n * @param {ShieldColor} arg0\n */\n set color(arg0) {\n wasm.__wbg_set_shieldstate_color(this.__wbg_ptr, arg0);\n }\n /**\n * A machine-readable representation of the authenticity for a\n * `ShieldState`.\n * @returns {ShieldStateCode | undefined}\n */\n get code() {\n const ret = wasm.__wbg_get_shieldstate_code(this.__wbg_ptr);\n return ret === 6 ? undefined : ret;\n }\n /**\n * A machine-readable representation of the authenticity for a\n * `ShieldState`.\n * @param {ShieldStateCode | null} [arg0]\n */\n set code(arg0) {\n wasm.__wbg_set_shieldstate_code(this.__wbg_ptr, isLikeNone(arg0) ? 6 : arg0);\n }\n}\nif (Symbol.dispose) ShieldState.prototype[Symbol.dispose] = ShieldState.prototype.free;\n\n/**\n * A machine-readable representation of the authenticity for a `ShieldState`.\n * @enum {0 | 1 | 2 | 3 | 4 | 5}\n */\nexport const ShieldStateCode = Object.freeze({\n /**\n * Not enough information available to check the authenticity.\n */\n AuthenticityNotGuaranteed: 0, \"0\": \"AuthenticityNotGuaranteed\",\n /**\n * The sending device isn't yet known by the Client.\n */\n UnknownDevice: 1, \"1\": \"UnknownDevice\",\n /**\n * The sending device hasn't been verified by the sender.\n */\n UnsignedDevice: 2, \"2\": \"UnsignedDevice\",\n /**\n * The sender hasn't been verified by the Client's user.\n */\n UnverifiedIdentity: 3, \"3\": \"UnverifiedIdentity\",\n /**\n * The sender was previously verified but changed their identity.\n */\n VerificationViolation: 4, \"4\": \"VerificationViolation\",\n /**\n * The `sender` field on the event does not match the owner of the device\n * that established the Megolm session.\n */\n MismatchedSender: 5, \"5\": \"MismatchedSender\",\n});\n\n/**\n * Represents a potentially decoded signature (but not a validated\n * one).\n */\nexport class Signature {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(Signature.prototype);\n obj.__wbg_ptr = ptr;\n SignatureFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n SignatureFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_signature_free(ptr, 0);\n }\n /**\n * Get the Ed25519 signature, if this is one.\n * @returns {Ed25519Signature | undefined}\n */\n get ed25519() {\n const ret = wasm.signature_ed25519(this.__wbg_ptr);\n return ret === 0 ? undefined : Ed25519Signature.__wrap(ret);\n }\n /**\n * Convert the signature to a base64 encoded string.\n * @returns {string}\n */\n toBase64() {\n let deferred1_0;\n let deferred1_1;\n try {\n const ret = wasm.signature_toBase64(this.__wbg_ptr);\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n }\n}\nif (Symbol.dispose) Signature.prototype[Symbol.dispose] = Signature.prototype.free;\n\n/**\n * The result of a signature check.\n * @enum {0 | 1 | 2 | 3}\n */\nexport const SignatureState = Object.freeze({\n /**\n * The signature is missing.\n */\n Missing: 0, \"0\": \"Missing\",\n /**\n * The signature is invalid.\n */\n Invalid: 1, \"1\": \"Invalid\",\n /**\n * The signature is valid but the device or user identity that created the\n * signature is not trusted.\n */\n ValidButNotTrusted: 2, \"2\": \"ValidButNotTrusted\",\n /**\n * The signature is valid and the device or user identity that created the\n * signature is trusted.\n */\n ValidAndTrusted: 3, \"3\": \"ValidAndTrusted\",\n});\n\n/**\n * Data for a request to the `/keys/signatures/upload` API endpoint\n * ([specification]).\n *\n * Publishes cross-signing signatures for the user.\n *\n * [specification]: https://spec.matrix.org/unstable/client-server-api/#post_matrixclientv3keyssignaturesupload\n */\nexport class SignatureUploadRequest {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(SignatureUploadRequest.prototype);\n obj.__wbg_ptr = ptr;\n SignatureUploadRequestFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n SignatureUploadRequestFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_signatureuploadrequest_free(ptr, 0);\n }\n /**\n * The request ID.\n * Some signature upload will have to an `id` field, some won't.\n * They have one when they are created automatically during an interactive\n * verification, otherwise they don't.\n * @returns {string | undefined}\n */\n get id() {\n const ret = wasm.__wbg_get_signatureuploadrequest_id(this.__wbg_ptr);\n return ret;\n }\n /**\n * A JSON-encoded object containing the payload of the request\n *\n * It represents the body of the HTTP request.\n * @returns {string}\n */\n get body() {\n const ret = wasm.__wbg_get_signatureuploadrequest_body(this.__wbg_ptr);\n return ret;\n }\n /**\n * Get its request type.\n * @returns {RequestType}\n */\n get type() {\n const ret = wasm.signatureuploadrequest_type(this.__wbg_ptr);\n return ret;\n }\n /**\n * Create a new `SignatureUploadRequest`.\n * @param {string} id\n * @param {string} signed_keys\n */\n constructor(id, signed_keys) {\n const ret = wasm.signatureuploadrequest_new(id, signed_keys);\n this.__wbg_ptr = ret >>> 0;\n SignatureUploadRequestFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n}\nif (Symbol.dispose) SignatureUploadRequest.prototype[Symbol.dispose] = SignatureUploadRequest.prototype.free;\n\n/**\n * The result of a signature verification of a signed JSON object.\n */\nexport class SignatureVerification {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(SignatureVerification.prototype);\n obj.__wbg_ptr = ptr;\n SignatureVerificationFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n SignatureVerificationFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_signatureverification_free(ptr, 0);\n }\n /**\n * Give the backup signature state from the current user identity.\n * See SignatureState for values\n * @returns {SignatureState}\n */\n get userState() {\n const ret = wasm.signatureverification_userState(this.__wbg_ptr);\n return ret;\n }\n /**\n * Give the backup signature state from the current device.\n * See SignatureState for values\n * @returns {SignatureState}\n */\n get deviceState() {\n const ret = wasm.signatureverification_deviceState(this.__wbg_ptr);\n return ret;\n }\n /**\n * Is the result considered to be trusted?\n *\n * This tells us if the result has a valid signature from any of the\n * following:\n *\n * * Our own device\n * * Our own user identity, provided the identity is trusted as well\n * * Any of our own devices, provided the device is trusted as well\n * @returns {boolean}\n */\n trusted() {\n const ret = wasm.signatureverification_trusted(this.__wbg_ptr);\n return ret !== 0;\n }\n}\nif (Symbol.dispose) SignatureVerification.prototype[Symbol.dispose] = SignatureVerification.prototype.free;\n\n/**\n * A collection of `Signature`.\n */\nexport class Signatures {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(Signatures.prototype);\n obj.__wbg_ptr = ptr;\n SignaturesFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n SignaturesFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_signatures_free(ptr, 0);\n }\n /**\n * Add the given signature from the given signer and the given key ID to\n * the collection.\n * @param {UserId} signer\n * @param {DeviceKeyId} key_id\n * @param {Ed25519Signature} signature\n * @returns {MaybeSignature | undefined}\n */\n addSignature(signer, key_id, signature) {\n _assertClass(signer, UserId);\n _assertClass(key_id, DeviceKeyId);\n _assertClass(signature, Ed25519Signature);\n const ret = wasm.signatures_addSignature(this.__wbg_ptr, signer.__wbg_ptr, key_id.__wbg_ptr, signature.__wbg_ptr);\n return ret === 0 ? undefined : MaybeSignature.__wrap(ret);\n }\n /**\n * Try to find an Ed25519 signature from the given signer with\n * the given key ID.\n * @param {UserId} signer\n * @param {DeviceKeyId} key_id\n * @returns {Ed25519Signature | undefined}\n */\n getSignature(signer, key_id) {\n _assertClass(signer, UserId);\n _assertClass(key_id, DeviceKeyId);\n const ret = wasm.signatures_getSignature(this.__wbg_ptr, signer.__wbg_ptr, key_id.__wbg_ptr);\n return ret === 0 ? undefined : Ed25519Signature.__wrap(ret);\n }\n /**\n * Get the map of signatures that belong to the given user.\n * @param {UserId} signer\n * @returns {Map<any, any> | undefined}\n */\n get(signer) {\n _assertClass(signer, UserId);\n const ret = wasm.signatures_get(this.__wbg_ptr, signer.__wbg_ptr);\n return ret;\n }\n /**\n * Creates a new, empty, signatures collection.\n */\n constructor() {\n const ret = wasm.signatures_new();\n this.__wbg_ptr = ret >>> 0;\n SignaturesFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n /**\n * Remove all the signatures we currently hold.\n */\n clear() {\n wasm.signatures_clear(this.__wbg_ptr);\n }\n /**\n * How many signatures do we currently hold.\n * @returns {number}\n */\n get count() {\n const ret = wasm.signatures_count(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * Get the json with all signatures\n * @returns {string}\n */\n asJSON() {\n const ret = wasm.signatures_asJSON(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * Do we hold any signatures or is our collection completely\n * empty.\n * @returns {boolean}\n */\n isEmpty() {\n const ret = wasm.signatures_isEmpty(this.__wbg_ptr);\n return ret !== 0;\n }\n}\nif (Symbol.dispose) Signatures.prototype[Symbol.dispose] = Signatures.prototype.free;\n\n/**\n * A struct containing an open connection to a CryptoStore.\n *\n * Opening the CryptoStore can take some time, due to the PBKDF calculation\n * involved, so if multiple operations are being done on the same store, it is\n * more efficient to open it once.\n */\nexport class StoreHandle {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(StoreHandle.prototype);\n obj.__wbg_ptr = ptr;\n StoreHandleFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n StoreHandleFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_storehandle_free(ptr, 0);\n }\n /**\n * Open a crypto store.\n *\n * The created store will be based on IndexedDB if a `store_name` is\n * provided; otherwise it will be based on a memory store and once the\n * objects is dropped, the keys will be lost.\n *\n * # Arguments\n *\n * * `store_name` - The name that should be used to open the IndexedDB\n * based database. If this isn't provided, a memory-only store will be\n * used. *Note* the memory-only store will lose your E2EE keys when the\n * `StoreHandle` gets dropped.\n *\n * * `store_passphrase` - The passphrase that should be used to encrypt the\n * store, for IndexedDB-based stores\n *\n * * `logger` - An optional logger instance to use for writing log messages\n * during the open operation. An instance of `JsLogger`.\n * @param {string | null} [store_name]\n * @param {string | null} [store_passphrase]\n * @param {any | null} [logger]\n * @returns {Promise<StoreHandle>}\n */\n static open(store_name, store_passphrase, logger) {\n var ptr0 = isLikeNone(store_name) ? 0 : passStringToWasm0(store_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = isLikeNone(store_passphrase) ? 0 : passStringToWasm0(store_passphrase, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n const ret = wasm.storehandle_open(ptr0, len0, ptr1, len1, isLikeNone(logger) ? 0 : addToExternrefTable0(logger));\n return ret;\n }\n /**\n * Open a crypto store based on IndexedDB, using the given key for\n * encryption.\n *\n * # Arguments\n *\n * * `store_name` - The name that should be used to open the IndexedDB\n * based database.\n *\n * * `store_key` - The key that should be used to encrypt the store, for\n * IndexedDB-based stores. Must be a 32-byte array.\n *\n * * `logger` - An optional logger instance to use for writing log messages\n * during the open operation. An instance of `JsLogger`.\n * @param {string} store_name\n * @param {Uint8Array} store_key\n * @param {any | null} [logger]\n * @returns {Promise<StoreHandle>}\n */\n static openWithKey(store_name, store_key, logger) {\n const ptr0 = passStringToWasm0(store_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray8ToWasm0(store_key, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ret = wasm.storehandle_openWithKey(ptr0, len0, ptr1, len1, isLikeNone(logger) ? 0 : addToExternrefTable0(logger));\n return ret;\n }\n}\nif (Symbol.dispose) StoreHandle.prototype[Symbol.dispose] = StoreHandle.prototype.free;\n\n/**\n * Information on a stored room key bundle data event.\n */\nexport class StoredRoomKeyBundleData {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(StoredRoomKeyBundleData.prototype);\n obj.__wbg_ptr = ptr;\n StoredRoomKeyBundleDataFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n StoredRoomKeyBundleDataFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_storedroomkeybundledata_free(ptr, 0);\n }\n /**\n * The user that sent us this data.\n * @returns {UserId}\n */\n get senderUser() {\n const ret = wasm.storedroomkeybundledata_senderUser(this.__wbg_ptr);\n return UserId.__wrap(ret);\n }\n /**\n * The JSON-encoded encryption info for the key bundle.\n *\n * @deprecated Should not be used within applications.\n * @returns {string}\n */\n get encryptionInfo() {\n let deferred1_0;\n let deferred1_1;\n try {\n const ret = wasm.storedroomkeybundledata_encryptionInfo(this.__wbg_ptr);\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n }\n /**\n * The location of the bundle.\n * @returns {string}\n */\n get url() {\n let deferred1_0;\n let deferred1_1;\n try {\n const ret = wasm.storedroomkeybundledata_url(this.__wbg_ptr);\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n }\n /**\n * The room that these keys are for.\n * @returns {RoomId}\n */\n get roomId() {\n const ret = wasm.storedroomkeybundledata_roomId(this.__wbg_ptr);\n return RoomId.__wrap(ret);\n }\n}\nif (Symbol.dispose) StoredRoomKeyBundleData.prototype[Symbol.dispose] = StoredRoomKeyBundleData.prototype.free;\n\n/**\n * Struct containing information on how a to-device message was decrypted.\n */\nexport class ToDeviceEncryptionInfo {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(ToDeviceEncryptionInfo.prototype);\n obj.__wbg_ptr = ptr;\n ToDeviceEncryptionInfoFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n ToDeviceEncryptionInfoFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_todeviceencryptioninfo_free(ptr, 0);\n }\n /**\n * The base64-encoded public Curve25519 key of the device that encrypted\n * the message.\n * @returns {string}\n */\n get senderCurve25519Key() {\n let deferred1_0;\n let deferred1_1;\n try {\n const ret = wasm.__wbg_get_todeviceencryptioninfo_senderCurve25519Key(this.__wbg_ptr);\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n }\n /**\n * The base64-encoded public Curve25519 key of the device that encrypted\n * the message.\n * @param {string} arg0\n */\n set senderCurve25519Key(arg0) {\n const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n wasm.__wbg_set_backupsecretsbundle_key(this.__wbg_ptr, ptr0, len0);\n }\n /**\n * The user ID of the sender of the event.\n *\n * Note this is untrusted data unless {@link isSenderVerified} is true.\n * @returns {UserId}\n */\n get sender() {\n const ret = wasm.__wbg_get_todeviceencryptioninfo_sender(this.__wbg_ptr);\n return UserId.__wrap(ret);\n }\n /**\n * The user ID of the sender of the event.\n *\n * Note this is untrusted data unless {@link isSenderVerified} is true.\n * @param {UserId} arg0\n */\n set sender(arg0) {\n _assertClass(arg0, UserId);\n var ptr0 = arg0.__destroy_into_raw();\n wasm.__wbg_set_todeviceencryptioninfo_sender(this.__wbg_ptr, ptr0);\n }\n /**\n * The device ID of the device that sent us the to-device message.\n *\n * Could be `undefined` in the case where the to-device message sender\n * checks are delayed. There is no delay for to-device messages other\n * than `m.room_key`, so this will always be truthy for other\n * message types (the decryption would fail if the sender device keys\n * cannot be found).\n *\n * Note this is untrusted data unless {@link isSenderVerified} is true.\n * @returns {DeviceId | undefined}\n */\n get senderDevice() {\n const ret = wasm.__wbg_get_todeviceencryptioninfo_senderDevice(this.__wbg_ptr);\n return ret === 0 ? undefined : DeviceId.__wrap(ret);\n }\n /**\n * The device ID of the device that sent us the to-device message.\n *\n * Could be `undefined` in the case where the to-device message sender\n * checks are delayed. There is no delay for to-device messages other\n * than `m.room_key`, so this will always be truthy for other\n * message types (the decryption would fail if the sender device keys\n * cannot be found).\n *\n * Note this is untrusted data unless {@link isSenderVerified} is true.\n * @param {DeviceId | null} [arg0]\n */\n set senderDevice(arg0) {\n let ptr0 = 0;\n if (!isLikeNone(arg0)) {\n _assertClass(arg0, DeviceId);\n ptr0 = arg0.__destroy_into_raw();\n }\n wasm.__wbg_set_todeviceencryptioninfo_senderDevice(this.__wbg_ptr, ptr0);\n }\n /**\n * Returns whether the sender device is in a verified state.\n * This reflects the state at the time of decryption.\n * @returns {boolean}\n */\n isSenderVerified() {\n const ret = wasm.todeviceencryptioninfo_isSenderVerified(this.__wbg_ptr);\n return ret !== 0;\n }\n}\nif (Symbol.dispose) ToDeviceEncryptionInfo.prototype[Symbol.dispose] = ToDeviceEncryptionInfo.prototype.free;\n\n/**\n * Data for a request to the `/sendToDevice` API endpoint\n * ([specification]).\n *\n * Send an event to a single device or to a group of devices.\n *\n * [specification]: https://spec.matrix.org/unstable/client-server-api/#put_matrixclientv3sendtodeviceeventtypetxnid\n */\nexport class ToDeviceRequest {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(ToDeviceRequest.prototype);\n obj.__wbg_ptr = ptr;\n ToDeviceRequestFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n ToDeviceRequestFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_todevicerequest_free(ptr, 0);\n }\n /**\n * Get its request type.\n * @returns {RequestType}\n */\n get type() {\n const ret = wasm.todevicerequest_type(this.__wbg_ptr);\n return ret;\n }\n /**\n * Create a new `ToDeviceRequest`.\n * @param {string} id\n * @param {string} event_type\n * @param {string} txn_id\n * @param {string} body\n */\n constructor(id, event_type, txn_id, body) {\n const ret = wasm.todevicerequest_new(id, event_type, txn_id, body);\n this.__wbg_ptr = ret >>> 0;\n ToDeviceRequestFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n /**\n * The request ID.\n * For to-device request this would be the same value as `txn_id`. It is\n * exposed also as `id` so that the js bindings are consistent with the\n * other request types by using this field to mark as sent.\n * @returns {string}\n */\n get id() {\n const ret = wasm.__wbg_get_todevicerequest_id(this.__wbg_ptr);\n return ret;\n }\n /**\n * A string representing the type of event being sent to each devices.\n * @returns {string}\n */\n get event_type() {\n const ret = wasm.__wbg_get_todevicerequest_event_type(this.__wbg_ptr);\n return ret;\n }\n /**\n * A string representing a request identifier unique to the access token\n * used to send the request.\n * @returns {string}\n */\n get txn_id() {\n const ret = wasm.__wbg_get_todevicerequest_txn_id(this.__wbg_ptr);\n return ret;\n }\n /**\n * A JSON-encoded object containing the rest of the payload: `messages`.\n *\n * It represents the body of the HTTP request.\n * @returns {string}\n */\n get body() {\n const ret = wasm.__wbg_get_todevicerequest_body(this.__wbg_ptr);\n return ret;\n }\n}\nif (Symbol.dispose) ToDeviceRequest.prototype[Symbol.dispose] = ToDeviceRequest.prototype.free;\n\n/**\n * Metadata about a to-device event that could not be decrypted.\n */\nexport class ToDeviceUnableToDecryptInfo {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(ToDeviceUnableToDecryptInfo.prototype);\n obj.__wbg_ptr = ptr;\n ToDeviceUnableToDecryptInfoFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n ToDeviceUnableToDecryptInfoFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_todeviceunabletodecryptinfo_free(ptr, 0);\n }\n /**\n * Reason code for the decryption failure\n * @returns {ToDeviceUnableToDecryptReason}\n */\n get reason() {\n const ret = wasm.__wbg_get_todeviceunabletodecryptinfo_reason(this.__wbg_ptr);\n return ret;\n }\n /**\n * Reason code for the decryption failure\n * @param {ToDeviceUnableToDecryptReason} arg0\n */\n set reason(arg0) {\n wasm.__wbg_set_todeviceunabletodecryptinfo_reason(this.__wbg_ptr, arg0);\n }\n}\nif (Symbol.dispose) ToDeviceUnableToDecryptInfo.prototype[Symbol.dispose] = ToDeviceUnableToDecryptInfo.prototype.free;\n\n/**\n * Reason code for a to-device decryption failure\n * @enum {0 | 1 | 2 | 3}\n */\nexport const ToDeviceUnableToDecryptReason = Object.freeze({\n /**\n * An error occurred while encrypting the event. This covers all\n * `OlmError` types.\n */\n DecryptionFailure: 0, \"0\": \"DecryptionFailure\",\n /**\n * We refused to decrypt the message because the sender's device is not\n * verified, or more generally, the sender's identity did not match the\n * trust requirement we were asked to provide.\n */\n UnverifiedSenderDevice: 1, \"1\": \"UnverifiedSenderDevice\",\n /**\n * We have no `OlmMachine`. This should not happen unless we forget to set\n * things up by calling `OlmMachine::activate()`.\n */\n NoOlmMachine: 2, \"2\": \"NoOlmMachine\",\n /**\n * The Matrix SDK was compiled without encryption support.\n */\n EncryptionIsDisabled: 3, \"3\": \"EncryptionIsDisabled\",\n});\n\n/**\n * Type to install and to manipulate the tracing layer.\n */\nexport class Tracing {\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n TracingFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_tracing_free(ptr, 0);\n }\n /**\n * Check whether the `tracing` feature has been enabled.\n *\n * @deprecated: `tracing` is now always enabled.\n * @returns {boolean}\n */\n static isAvailable() {\n const ret = wasm.tracing_isAvailable();\n return ret !== 0;\n }\n /**\n * Install the tracing layer.\n * @param {LoggerLevel} min_level\n */\n constructor(min_level) {\n const ret = wasm.tracing_new(min_level);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n this.__wbg_ptr = ret[0] >>> 0;\n TracingFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n /**\n * Turn the logger on, i.e. it emits logs again if it was turned\n * off.\n */\n turnOn() {\n const ret = wasm.tracing_turnOn(this.__wbg_ptr);\n if (ret[1]) {\n throw takeFromExternrefTable0(ret[0]);\n }\n }\n /**\n * Turn the logger off, i.e. it no longer emits logs.\n */\n turnOff() {\n const ret = wasm.tracing_turnOff(this.__wbg_ptr);\n if (ret[1]) {\n throw takeFromExternrefTable0(ret[0]);\n }\n }\n /**\n * Re-define the minimum logger level.\n * @param {LoggerLevel} min_level\n */\n set minLevel(min_level) {\n const ret = wasm.tracing_set_minLevel(this.__wbg_ptr, min_level);\n if (ret[1]) {\n throw takeFromExternrefTable0(ret[0]);\n }\n }\n}\nif (Symbol.dispose) Tracing.prototype[Symbol.dispose] = Tracing.prototype.free;\n\n/**\n * The trust level required to decrypt an event\n * @enum {0 | 1 | 2}\n */\nexport const TrustRequirement = Object.freeze({\n /**\n * Decrypt events from everyone regardless of trust\n */\n Untrusted: 0, \"0\": \"Untrusted\",\n /**\n * Only decrypt events from cross-signed or legacy devices\n */\n CrossSignedOrLegacy: 1, \"1\": \"CrossSignedOrLegacy\",\n /**\n * Only decrypt events from cross-signed devices\n */\n CrossSigned: 2, \"2\": \"CrossSigned\",\n});\n\n/**\n * Represents an encrypted to-device event that could not be decrypted.\n */\nexport class UTDToDeviceEvent {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(UTDToDeviceEvent.prototype);\n obj.__wbg_ptr = ptr;\n UTDToDeviceEventFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n UTDToDeviceEventFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_utdtodeviceevent_free(ptr, 0);\n }\n /**\n * The type of processed to-device event. Always {@link\n * ProcessedToDeviceEventType.UnableToDecrypt} for this type.\n * @returns {ProcessedToDeviceEventType}\n */\n get type() {\n const ret = wasm.utdtodeviceevent_type(this.__wbg_ptr);\n return ret;\n }\n /**\n * The original message (of type `m.room.encrypted`) that failed to be\n * decrypted, encoded as JSON.\n * @returns {string}\n */\n get rawEvent() {\n const ret = wasm.__wbg_get_utdtodeviceevent_rawEvent(this.__wbg_ptr);\n return ret;\n }\n /**\n * Information on the reason we failed to decrypt\n * @returns {ToDeviceUnableToDecryptInfo}\n */\n get utdInfo() {\n const ret = wasm.__wbg_get_utdtodeviceevent_utdInfo(this.__wbg_ptr);\n return ToDeviceUnableToDecryptInfo.__wrap(ret);\n }\n}\nif (Symbol.dispose) UTDToDeviceEvent.prototype[Symbol.dispose] = UTDToDeviceEvent.prototype.free;\n\n/**\n * Other Requests *\n * Request that will publish a cross signing identity.\n *\n * This uploads the public cross signing key triplet.\n */\nexport class UploadSigningKeysRequest {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(UploadSigningKeysRequest.prototype);\n obj.__wbg_ptr = ptr;\n UploadSigningKeysRequestFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n UploadSigningKeysRequestFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_uploadsigningkeysrequest_free(ptr, 0);\n }\n /**\n * A JSON-encoded object containing the rest of the payload: `master_key`,\n * `self_signing_key`, `user_signing_key`.\n *\n * It represents the body of the HTTP request.\n * @returns {string}\n */\n get body() {\n const ret = wasm.__wbg_get_uploadsigningkeysrequest_body(this.__wbg_ptr);\n return ret;\n }\n /**\n * Create a new `UploadSigningKeysRequest`.\n * @param {string} body\n */\n constructor(body) {\n const ret = wasm.uploadsigningkeysrequest_new(body);\n this.__wbg_ptr = ret >>> 0;\n UploadSigningKeysRequestFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n}\nif (Symbol.dispose) UploadSigningKeysRequest.prototype[Symbol.dispose] = UploadSigningKeysRequest.prototype.free;\n\n/**\n * A read only view over all devices belonging to a user.\n */\nexport class UserDevices {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(UserDevices.prototype);\n obj.__wbg_ptr = ptr;\n UserDevicesFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n UserDevicesFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_userdevices_free(ptr, 0);\n }\n /**\n * Returns true if there is at least one devices of this user\n * that is considered to be verified, false otherwise.\n *\n * This won't consider your own device as verified, as your own\n * device is always implicitly verified.\n * @returns {boolean}\n */\n isAnyVerified() {\n const ret = wasm.userdevices_isAnyVerified(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Get the specific device with the given device ID.\n * @param {DeviceId} device_id\n * @returns {Device | undefined}\n */\n get(device_id) {\n _assertClass(device_id, DeviceId);\n const ret = wasm.userdevices_get(this.__wbg_ptr, device_id.__wbg_ptr);\n return ret === 0 ? undefined : Device.__wrap(ret);\n }\n /**\n * Array over all the device IDs of the user devices.\n * @returns {Array<any>}\n */\n keys() {\n const ret = wasm.userdevices_keys(this.__wbg_ptr);\n return ret;\n }\n /**\n * Iterator over all the devices of the user devices.\n * @returns {Array<any>}\n */\n devices() {\n const ret = wasm.userdevices_devices(this.__wbg_ptr);\n return ret;\n }\n}\nif (Symbol.dispose) UserDevices.prototype[Symbol.dispose] = UserDevices.prototype.free;\n\n/**\n * A Matrix [user ID].\n *\n * [user ID]: https://spec.matrix.org/v1.2/appendices/#user-identifiers\n */\nexport class UserId {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(UserId.prototype);\n obj.__wbg_ptr = ptr;\n UserIdFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n static __unwrap(jsValue) {\n if (!(jsValue instanceof UserId)) {\n return 0;\n }\n return jsValue.__destroy_into_raw();\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n UserIdFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_userid_free(ptr, 0);\n }\n /**\n * Returns the server name of the user ID.\n * @returns {ServerName}\n */\n get serverName() {\n const ret = wasm.userid_serverName(this.__wbg_ptr);\n return ServerName.__wrap(ret);\n }\n /**\n * Whether this user ID is a historical one.\n *\n * A historical user ID is one that doesn't conform to the latest\n * specification of the user ID grammar but is still accepted\n * because it was previously allowed.\n * @returns {boolean}\n */\n isHistorical() {\n const ret = wasm.userid_isHistorical(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Parse/validate and create a new `UserId`.\n * @param {string} id\n */\n constructor(id) {\n const ptr0 = passStringToWasm0(id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.userid_new(ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n this.__wbg_ptr = ret[0] >>> 0;\n UserIdFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n /**\n * Create a clone of this `UserId`.\n *\n * This can be useful when passing a `UserId` instance to methods such as\n * {@link OlmMachine.updateTrackedUsers} which destroy the instance.\n * @returns {UserId}\n */\n clone() {\n const ret = wasm.userid_clone(this.__wbg_ptr);\n return UserId.__wrap(ret);\n }\n /**\n * Returns the user's localpart.\n * @returns {string}\n */\n get localpart() {\n let deferred1_0;\n let deferred1_1;\n try {\n const ret = wasm.userid_localpart(this.__wbg_ptr);\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n }\n /**\n * Return the user ID as a string.\n * @returns {string}\n */\n toString() {\n let deferred1_0;\n let deferred1_1;\n try {\n const ret = wasm.userid_toString(this.__wbg_ptr);\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n }\n}\nif (Symbol.dispose) UserId.prototype[Symbol.dispose] = UserId.prototype.free;\n\n/**\n * List of available verification methods.\n * @enum {0 | 1 | 2 | 3}\n */\nexport const VerificationMethod = Object.freeze({\n /**\n * The `m.sas.v1` verification method.\n *\n * SAS means Short Authentication String.\n */\n SasV1: 0, \"0\": \"SasV1\",\n /**\n * The `m.qr_code.scan.v1` verification method.\n */\n QrCodeScanV1: 1, \"1\": \"QrCodeScanV1\",\n /**\n * The `m.qr_code.show.v1` verification method.\n */\n QrCodeShowV1: 2, \"2\": \"QrCodeShowV1\",\n /**\n * The `m.reciprocate.v1` verification method.\n */\n ReciprocateV1: 3, \"3\": \"ReciprocateV1\",\n});\n\n/**\n * An object controlling key verification requests.\n *\n * Interactive verification flows usually start with a verification\n * request, this object lets you send and reply to such a\n * verification request.\n *\n * After the initial handshake the verification flow transitions into\n * one of the verification methods.\n */\nexport class VerificationRequest {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(VerificationRequest.prototype);\n obj.__wbg_ptr = ptr;\n VerificationRequestFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n VerificationRequestFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_verificationrequest_free(ptr, 0);\n }\n /**\n * Has the verification request been answered by another device?\n * @returns {boolean}\n */\n isPassive() {\n const ret = wasm.verificationrequest_isPassive(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Did we initiate the verification request?\n * @returns {boolean}\n */\n weStarted() {\n const ret = wasm.verificationrequest_weStarted(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Get info about the cancellation if the verification request\n * has been cancelled.\n * @returns {CancelInfo | undefined}\n */\n get cancelInfo() {\n const ret = wasm.verificationrequest_cancelInfo(this.__wbg_ptr);\n return ret === 0 ? undefined : CancelInfo.__wrap(ret);\n }\n /**\n * Our own user id.\n * @returns {UserId}\n */\n get ownUserId() {\n const ret = wasm.verificationrequest_ownUserId(this.__wbg_ptr);\n return UserId.__wrap(ret);\n }\n /**\n * Has the verification flow that was started with this request\n * been cancelled?\n * @returns {boolean}\n */\n isCancelled() {\n const ret = wasm.verificationrequest_isCancelled(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Start a QR code verification by providing a scanned QR code\n * for this verification flow.\n * @param {QrCodeScan} data\n * @returns {Promise<any>}\n */\n scanQrCode(data) {\n _assertClass(data, QrCodeScan);\n const ret = wasm.verificationrequest_scanQrCode(this.__wbg_ptr, data.__wbg_ptr);\n return ret;\n }\n /**\n * The ID of the other user that is participating in this\n * verification request.\n * @returns {UserId}\n */\n get otherUserId() {\n const ret = wasm.verificationrequest_otherUserId(this.__wbg_ptr);\n return UserId.__wrap(ret);\n }\n /**\n * The ID of the other device that is participating in this\n * verification.\n * @returns {DeviceId | undefined}\n */\n get otherDeviceId() {\n const ret = wasm.verificationrequest_otherDeviceId(this.__wbg_ptr);\n return ret === 0 ? undefined : DeviceId.__wrap(ret);\n }\n /**\n * Generate a QR code that can be used by another client to start\n * a QR code based verification.\n *\n * Returns a `Qr` or `undefined`.\n * @returns {Promise<any>}\n */\n generateQrCode() {\n const ret = wasm.verificationrequest_generateQrCode(this.__wbg_ptr);\n return ret;\n }\n /**\n * If this request has transitioned into a concrete verification\n * flow (and not yet been completed or cancelled), returns a `Verification`\n * object.\n *\n * Returns: a `Sas`, a `Qr`, or `undefined`.\n * @returns {any}\n */\n getVerification() {\n const ret = wasm.verificationrequest_getVerification(this.__wbg_ptr);\n return ret;\n }\n /**\n * Accept the verification request signaling that our client\n * supports the given verification methods.\n *\n * `methods` represents the methods that we should advertise as\n * supported by us.\n *\n * It returns either a `ToDeviceRequest`, a `RoomMessageRequest`\n * or `undefined`.\n * @param {any[]} methods\n * @returns {any}\n */\n acceptWithMethods(methods) {\n const ptr0 = passArrayJsValueToWasm0(methods, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.verificationrequest_acceptWithMethods(this.__wbg_ptr, ptr0, len0);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * Is this a verification that is verifying one of our own\n * devices?\n * @returns {boolean}\n */\n isSelfVerification() {\n const ret = wasm.verificationrequest_isSelfVerification(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Get our own supported verification methods that we advertised.\n *\n * Will be present only we requested the verification or if we’re\n * in the ready state.\n * @returns {any[] | undefined}\n */\n get ourSupportedMethods() {\n const ret = wasm.verificationrequest_ourSupportedMethods(this.__wbg_ptr);\n if (ret[3]) {\n throw takeFromExternrefTable0(ret[2]);\n }\n let v1;\n if (ret[0] !== 0) {\n v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);\n }\n return v1;\n }\n /**\n * The number of milliseconds remaining before this verification flow times\n * out.\n *\n * Returns zero if the time has already passed.\n * @returns {number}\n */\n timeRemainingMillis() {\n const ret = wasm.verificationrequest_timeRemainingMillis(this.__wbg_ptr);\n return ret;\n }\n /**\n * Get the supported verification methods of the other side.\n *\n * Will be present only if the other side requested the\n * verification or if we’re in the ready state.\n *\n * # Returns\n *\n * `undefined` if we do not yet know the supported methods; otherwise, an\n * array of `VerificationMethod`s.\n * @returns {any[] | undefined}\n */\n get theirSupportedMethods() {\n const ret = wasm.verificationrequest_theirSupportedMethods(this.__wbg_ptr);\n if (ret[3]) {\n throw takeFromExternrefTable0(ret[2]);\n }\n let v1;\n if (ret[0] !== 0) {\n v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);\n }\n return v1;\n }\n /**\n * Register a callback which will be called whenever there is an update to\n * the request.\n *\n * The `callback` is called with no parameters.\n * @param {Function} callback\n */\n registerChangesCallback(callback) {\n wasm.verificationrequest_registerChangesCallback(this.__wbg_ptr, callback);\n }\n /**\n * Get the current phase of this request.\n *\n * Returns a `VerificationRequestPhase`.\n * @returns {VerificationRequestPhase}\n */\n phase() {\n const ret = wasm.verificationrequest_phase(this.__wbg_ptr);\n return ret;\n }\n /**\n * Accept the verification request.\n *\n * This method will accept the request and signal that it\n * supports the `m.sas.v1`, the `m.qr_code.show.v1`, and\n * `m.reciprocate.v1` method.\n *\n * `m.qr_code.show.v1` will only be signaled if the `qrcode`\n * feature is enabled. This feature is disabled by default. If\n * it's enabled and QR code scanning should be supported or QR\n * code showing shouldn't be supported the `accept_with_methods`\n * method should be used instead.\n *\n * It returns either a `ToDeviceRequest`, a `RoomMessageRequest`\n * or `undefined`.\n * @returns {any}\n */\n accept() {\n const ret = wasm.verificationrequest_accept(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * Cancel the verification request.\n *\n * It returns either a `ToDeviceRequest`, a `RoomMessageRequest`\n * or `undefined`.\n * @returns {any}\n */\n cancel() {\n const ret = wasm.verificationrequest_cancel(this.__wbg_ptr);\n if (ret[2]) {\n throw takeFromExternrefTable0(ret[1]);\n }\n return takeFromExternrefTable0(ret[0]);\n }\n /**\n * Get the unique ID of this verification request.\n * @returns {string}\n */\n get flowId() {\n let deferred1_0;\n let deferred1_1;\n try {\n const ret = wasm.verificationrequest_flowId(this.__wbg_ptr);\n deferred1_0 = ret[0];\n deferred1_1 = ret[1];\n return getStringFromWasm0(ret[0], ret[1]);\n } finally {\n wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);\n }\n }\n /**\n * Has the verification flow that was started with this request\n * finished?\n * @returns {boolean}\n */\n isDone() {\n const ret = wasm.verificationrequest_isDone(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Create an event content that can be sent as a room event to\n * request verification from the other side. This should be used\n * only for verifications of other users and it should be sent to\n * a room we consider to be a DM with the other user.\n * @param {UserId} own_user_id\n * @param {DeviceId} own_device_id\n * @param {UserId} other_user_id\n * @param {any[] | null} [methods]\n * @returns {string}\n */\n static request(own_user_id, own_device_id, other_user_id, methods) {\n let deferred3_0;\n let deferred3_1;\n try {\n _assertClass(own_user_id, UserId);\n _assertClass(own_device_id, DeviceId);\n _assertClass(other_user_id, UserId);\n var ptr0 = isLikeNone(methods) ? 0 : passArrayJsValueToWasm0(methods, wasm.__wbindgen_malloc);\n var len0 = WASM_VECTOR_LEN;\n const ret = wasm.verificationrequest_request(own_user_id.__wbg_ptr, own_device_id.__wbg_ptr, other_user_id.__wbg_ptr, ptr0, len0);\n var ptr2 = ret[0];\n var len2 = ret[1];\n if (ret[3]) {\n ptr2 = 0; len2 = 0;\n throw takeFromExternrefTable0(ret[2]);\n }\n deferred3_0 = ptr2;\n deferred3_1 = len2;\n return getStringFromWasm0(ptr2, len2);\n } finally {\n wasm.__wbindgen_free(deferred3_0, deferred3_1, 1);\n }\n }\n /**\n * Get the room ID if the verification is happening inside a\n * room.\n * @returns {RoomId | undefined}\n */\n get roomId() {\n const ret = wasm.verificationrequest_roomId(this.__wbg_ptr);\n return ret === 0 ? undefined : RoomId.__wrap(ret);\n }\n /**\n * Is the verification request ready to start a verification flow?\n * @returns {boolean}\n */\n isReady() {\n const ret = wasm.verificationrequest_isReady(this.__wbg_ptr);\n return ret !== 0;\n }\n /**\n * Transition from this verification request into a SAS verification flow.\n *\n * Returns `Promise<[Sas, RoomMessageRequest|ToDeviceRequest] | undefined>`\n * @returns {Promise<any>}\n */\n startSas() {\n const ret = wasm.verificationrequest_startSas(this.__wbg_ptr);\n return ret;\n }\n /**\n * Has the verification flow timed out?\n * @returns {boolean}\n */\n timedOut() {\n const ret = wasm.verificationrequest_timedOut(this.__wbg_ptr);\n return ret !== 0;\n }\n}\nif (Symbol.dispose) VerificationRequest.prototype[Symbol.dispose] = VerificationRequest.prototype.free;\n\n/**\n * List of VerificationRequestState phases\n * @enum {0 | 1 | 2 | 3 | 4 | 5}\n */\nexport const VerificationRequestPhase = Object.freeze({\n /**\n * The verification request has been newly created by us.\n */\n Created: 0, \"0\": \"Created\",\n /**\n * The verification request was received from the other party.\n */\n Requested: 1, \"1\": \"Requested\",\n /**\n * The verification request is ready to start a verification flow.\n */\n Ready: 2, \"2\": \"Ready\",\n /**\n * The verification request has transitioned into a concrete verification\n * flow. For example it transitioned into the emoji based SAS\n * verification.\n */\n Transitioned: 3, \"3\": \"Transitioned\",\n /**\n * The verification flow that was started with this request has finished.\n */\n Done: 4, \"4\": \"Done\",\n /**\n * The verification process has been cancelled.\n */\n Cancelled: 5, \"5\": \"Cancelled\",\n});\n\n/**\n * Object containing the versions of the Rust libraries we are using.\n */\nexport class Versions {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(Versions.prototype);\n obj.__wbg_ptr = ptr;\n VersionsFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n VersionsFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_versions_free(ptr, 0);\n }\n /**\n * The version of the vodozemac crate.\n * @returns {string}\n */\n get vodozemac() {\n const ret = wasm.__wbg_get_versions_vodozemac(this.__wbg_ptr);\n return ret;\n }\n /**\n * The version of the matrix-sdk-crypto crate.\n * @returns {string}\n */\n get matrix_sdk_crypto() {\n const ret = wasm.__wbg_get_versions_matrix_sdk_crypto(this.__wbg_ptr);\n return ret;\n }\n /**\n * The Git commit hash of the crate's source tree at build time.\n * @returns {string}\n */\n get git_sha() {\n const ret = wasm.__wbg_get_versions_git_sha(this.__wbg_ptr);\n return ret;\n }\n /**\n * The build-time output of the `git describe` command of the source tree\n * of crate.\n * @returns {string}\n */\n get git_description() {\n const ret = wasm.__wbg_get_versions_git_description(this.__wbg_ptr);\n return ret;\n }\n}\nif (Symbol.dispose) Versions.prototype[Symbol.dispose] = Versions.prototype.free;\n\n/**\n * Get the versions of the Rust libraries we are using.\n * @returns {Versions}\n */\nexport function getVersions() {\n const ret = wasm.getVersions();\n return Versions.__wrap(ret);\n}\n\n/**\n * Run some stuff when the Wasm module is instantiated.\n *\n * Right now, it does the following:\n *\n * * Redirect Rust panics to JavaScript console.\n */\nexport function start() {\n wasm.start();\n}\n\nexport function __wbg_Error_52673b7de5a0ca89(arg0, arg1) {\n const ret = Error(getStringFromWasm0(arg0, arg1));\n return ret;\n};\n\nexport function __wbg_Number_2d1dcfcf4ec51736(arg0) {\n const ret = Number(arg0);\n return ret;\n};\n\nexport function __wbg_String_8f0eb39a4a4c2f66(arg0, arg1) {\n const ret = String(arg1);\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n};\n\nexport function __wbg_Window_bad6cc2ef3d218d1(arg0) {\n const ret = arg0.Window;\n return ret;\n};\n\nexport function __wbg_WorkerGlobalScope_ce34368dd76f04b5(arg0) {\n const ret = arg0.WorkerGlobalScope;\n return ret;\n};\n\nexport function __wbg___wbindgen_bigint_get_as_i64_6e32f5e6aff02e1d(arg0, arg1) {\n const v = arg1;\n const ret = typeof(v) === 'bigint' ? v : undefined;\n getDataViewMemory0().setBigInt64(arg0 + 8 * 1, isLikeNone(ret) ? BigInt(0) : ret, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);\n};\n\nexport function __wbg___wbindgen_boolean_get_dea25b33882b895b(arg0) {\n const v = arg0;\n const ret = typeof(v) === 'boolean' ? v : undefined;\n return isLikeNone(ret) ? 0xFFFFFF : ret ? 1 : 0;\n};\n\nexport function __wbg___wbindgen_debug_string_adfb662ae34724b6(arg0, arg1) {\n const ret = debugString(arg1);\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n};\n\nexport function __wbg___wbindgen_in_0d3e1e8f0c669317(arg0, arg1) {\n const ret = arg0 in arg1;\n return ret;\n};\n\nexport function __wbg___wbindgen_is_bigint_0e1a2e3f55cfae27(arg0) {\n const ret = typeof(arg0) === 'bigint';\n return ret;\n};\n\nexport function __wbg___wbindgen_is_function_8d400b8b1af978cd(arg0) {\n const ret = typeof(arg0) === 'function';\n return ret;\n};\n\nexport function __wbg___wbindgen_is_null_dfda7d66506c95b5(arg0) {\n const ret = arg0 === null;\n return ret;\n};\n\nexport function __wbg___wbindgen_is_object_ce774f3490692386(arg0) {\n const val = arg0;\n const ret = typeof(val) === 'object' && val !== null;\n return ret;\n};\n\nexport function __wbg___wbindgen_is_string_704ef9c8fc131030(arg0) {\n const ret = typeof(arg0) === 'string';\n return ret;\n};\n\nexport function __wbg___wbindgen_is_undefined_f6b95eab589e0269(arg0) {\n const ret = arg0 === undefined;\n return ret;\n};\n\nexport function __wbg___wbindgen_jsval_eq_b6101cc9cef1fe36(arg0, arg1) {\n const ret = arg0 === arg1;\n return ret;\n};\n\nexport function __wbg___wbindgen_jsval_loose_eq_766057600fdd1b0d(arg0, arg1) {\n const ret = arg0 == arg1;\n return ret;\n};\n\nexport function __wbg___wbindgen_number_get_9619185a74197f95(arg0, arg1) {\n const obj = arg1;\n const ret = typeof(obj) === 'number' ? obj : undefined;\n getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);\n};\n\nexport function __wbg___wbindgen_string_get_a2a31e16edf96e42(arg0, arg1) {\n const obj = arg1;\n const ret = typeof(obj) === 'string' ? obj : undefined;\n var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n};\n\nexport function __wbg___wbindgen_throw_dd24417ed36fc46e(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n};\n\nexport function __wbg___wbindgen_try_into_number_9d33ffe037a9f5e5(arg0) {\n let result;\n try { result = +arg0 } catch (e) { result = e }\n const ret = result;\n return ret;\n};\n\nexport function __wbg__wbg_cb_unref_87dfb5aaa0cbcea7(arg0) {\n arg0._wbg_cb_unref();\n};\n\nexport function __wbg_abort_45186b2c363ae467() { return handleError(function (arg0) {\n arg0.abort();\n}, arguments) };\n\nexport function __wbg_add_c1fb373a6e8701af() { return handleError(function (arg0, arg1, arg2) {\n const ret = arg0.add(arg1, arg2);\n return ret;\n}, arguments) };\n\nexport function __wbg_add_f0bf6d9527665471(arg0, arg1) {\n const ret = arg0.add(arg1);\n return ret;\n};\n\nexport function __wbg_at_505937f1c4b80bfa(arg0, arg1) {\n const ret = arg0.at(arg1);\n return ret;\n};\n\nexport function __wbg_backupkeys_new(arg0) {\n const ret = BackupKeys.__wrap(arg0);\n return ret;\n};\n\nexport function __wbg_bound_6fa641bacd961cc0() { return handleError(function (arg0, arg1, arg2, arg3) {\n const ret = IDBKeyRange.bound(arg0, arg1, arg2 !== 0, arg3 !== 0);\n return ret;\n}, arguments) };\n\nexport function __wbg_call_3020136f7a2d6e44() { return handleError(function (arg0, arg1, arg2) {\n const ret = arg0.call(arg1, arg2);\n return ret;\n}, arguments) };\n\nexport function __wbg_call_78f94eb02ec7f9b2() { return handleError(function (arg0, arg1, arg2, arg3, arg4) {\n const ret = arg0.call(arg1, arg2, arg3, arg4);\n return ret;\n}, arguments) };\n\nexport function __wbg_call_abb4ff46ce38be40() { return handleError(function (arg0, arg1) {\n const ret = arg0.call(arg1);\n return ret;\n}, arguments) };\n\nexport function __wbg_call_c8baa5c5e72d274e() { return handleError(function (arg0, arg1, arg2, arg3) {\n const ret = arg0.call(arg1, arg2, arg3);\n return ret;\n}, arguments) };\n\nexport function __wbg_clearTimeout_5a54f8841c30079a(arg0) {\n const ret = clearTimeout(arg0);\n return ret;\n};\n\nexport function __wbg_clear_0e6ff4790cdabf11() { return handleError(function (arg0) {\n const ret = arg0.clear();\n return ret;\n}, arguments) };\n\nexport function __wbg_close_cf7ef4e294ac3858(arg0) {\n arg0.close();\n};\n\nexport function __wbg_code_c2a85f2863ec11b3(arg0) {\n const ret = arg0.code;\n return ret;\n};\n\nexport function __wbg_commit_073afc947129550a() { return handleError(function (arg0) {\n arg0.commit();\n}, arguments) };\n\nexport function __wbg_continue_f42217c3ef5cf6dd() { return handleError(function (arg0) {\n arg0.continue();\n}, arguments) };\n\nexport function __wbg_count_3fa291ea0e8fceec() { return handleError(function (arg0) {\n const ret = arg0.count();\n return ret;\n}, arguments) };\n\nexport function __wbg_count_c05e51d4a5d263a1() { return handleError(function (arg0) {\n const ret = arg0.count();\n return ret;\n}, arguments) };\n\nexport function __wbg_createIndex_3889f4177a3fa5d0() { return handleError(function (arg0, arg1, arg2, arg3, arg4) {\n const ret = arg0.createIndex(getStringFromWasm0(arg1, arg2), arg3, arg4);\n return ret;\n}, arguments) };\n\nexport function __wbg_createIndex_3c576f3c5564f5d7() { return handleError(function (arg0, arg1, arg2, arg3) {\n const ret = arg0.createIndex(getStringFromWasm0(arg1, arg2), arg3);\n return ret;\n}, arguments) };\n\nexport function __wbg_createObjectStore_dba64acfe84d4191() { return handleError(function (arg0, arg1, arg2) {\n const ret = arg0.createObjectStore(getStringFromWasm0(arg1, arg2));\n return ret;\n}, arguments) };\n\nexport function __wbg_crosssigningbootstraprequests_new(arg0) {\n const ret = CrossSigningBootstrapRequests.__wrap(arg0);\n return ret;\n};\n\nexport function __wbg_crosssigningkeyexport_new(arg0) {\n const ret = CrossSigningKeyExport.__wrap(arg0);\n return ret;\n};\n\nexport function __wbg_crosssigningstatus_new(arg0) {\n const ret = CrossSigningStatus.__wrap(arg0);\n return ret;\n};\n\nexport function __wbg_crypto_574e78ad8b13b65f(arg0) {\n const ret = arg0.crypto;\n return ret;\n};\n\nexport function __wbg_debug_949d8a9c97c02a01(arg0, arg1) {\n arg0.debug(arg1);\n};\n\nexport function __wbg_debug_9d0c87ddda3dc485(arg0) {\n console.debug(arg0);\n};\n\nexport function __wbg_decryptedroomevent_new(arg0) {\n const ret = DecryptedRoomEvent.__wrap(arg0);\n return ret;\n};\n\nexport function __wbg_decryptedtodeviceevent_new(arg0) {\n const ret = DecryptedToDeviceEvent.__wrap(arg0);\n return ret;\n};\n\nexport function __wbg_dehydrateddevice_new(arg0) {\n const ret = DehydratedDevice.__wrap(arg0);\n return ret;\n};\n\nexport function __wbg_dehydrateddevicekey_new(arg0) {\n const ret = DehydratedDeviceKey.__wrap(arg0);\n return ret;\n};\n\nexport function __wbg_deleteObjectStore_88e9fff1fbbc6189() { return handleError(function (arg0, arg1, arg2) {\n arg0.deleteObjectStore(getStringFromWasm0(arg1, arg2));\n}, arguments) };\n\nexport function __wbg_delete_91010f5a5282eb97() { return handleError(function (arg0) {\n const ret = arg0.delete();\n return ret;\n}, arguments) };\n\nexport function __wbg_delete_a8cf58aab29e18d2() { return handleError(function (arg0, arg1) {\n const ret = arg0.delete(arg1);\n return ret;\n}, arguments) };\n\nexport function __wbg_device_new(arg0) {\n const ret = Device.__wrap(arg0);\n return ret;\n};\n\nexport function __wbg_deviceid_new(arg0) {\n const ret = DeviceId.__wrap(arg0);\n return ret;\n};\n\nexport function __wbg_devicekey_new(arg0) {\n const ret = DeviceKey.__wrap(arg0);\n return ret;\n};\n\nexport function __wbg_devicekeyid_new(arg0) {\n const ret = DeviceKeyId.__wrap(arg0);\n return ret;\n};\n\nexport function __wbg_done_62ea16af4ce34b24(arg0) {\n const ret = arg0.done;\n return ret;\n};\n\nexport function __wbg_emoji_new(arg0) {\n const ret = Emoji.__wrap(arg0);\n return ret;\n};\n\nexport function __wbg_encryptedattachment_new(arg0) {\n const ret = EncryptedAttachment.__wrap(arg0);\n return ret;\n};\n\nexport function __wbg_encryptioninfo_new(arg0) {\n const ret = EncryptionInfo.__wrap(arg0);\n return ret;\n};\n\nexport function __wbg_entries_83c79938054e065f(arg0) {\n const ret = Object.entries(arg0);\n return ret;\n};\n\nexport function __wbg_entries_9af46b7eaf7dfefa(arg0) {\n const ret = arg0.entries();\n return ret;\n};\n\nexport function __wbg_error_7534b8e9a36f1ab4(arg0, arg1) {\n let deferred0_0;\n let deferred0_1;\n try {\n deferred0_0 = arg0;\n deferred0_1 = arg1;\n console.error(getStringFromWasm0(arg0, arg1));\n } finally {\n wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);\n }\n};\n\nexport function __wbg_error_7bc79084e71bc74a(arg0, arg1) {\n arg0.error(arg1);\n};\n\nexport function __wbg_error_7bc7d576a6aaf855(arg0) {\n console.error(arg0);\n};\n\nexport function __wbg_error_ad02a286da74488a() { return handleError(function (arg0) {\n const ret = arg0.error;\n return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);\n}, arguments) };\n\nexport function __wbg_from_29a8414a7a7cd19d(arg0) {\n const ret = Array.from(arg0);\n return ret;\n};\n\nexport function __wbg_getAllKeys_925405ffbd671e86() { return handleError(function (arg0) {\n const ret = arg0.getAllKeys();\n return ret;\n}, arguments) };\n\nexport function __wbg_getAll_236edca313646f4d() { return handleError(function (arg0) {\n const ret = arg0.getAll();\n return ret;\n}, arguments) };\n\nexport function __wbg_getAll_48e288420773a079() { return handleError(function (arg0, arg1) {\n const ret = arg0.getAll(arg1);\n return ret;\n}, arguments) };\n\nexport function __wbg_getAll_eec11317662a8eba() { return handleError(function (arg0, arg1, arg2) {\n const ret = arg0.getAll(arg1, arg2 >>> 0);\n return ret;\n}, arguments) };\n\nexport function __wbg_getRandomValues_9b655bdd369112f2() { return handleError(function (arg0, arg1) {\n globalThis.crypto.getRandomValues(getArrayU8FromWasm0(arg0, arg1));\n}, arguments) };\n\nexport function __wbg_getRandomValues_b8f5dbd5f3995a9e() { return handleError(function (arg0, arg1) {\n arg0.getRandomValues(arg1);\n}, arguments) };\n\nexport function __wbg_getTime_ad1e9878a735af08(arg0) {\n const ret = arg0.getTime();\n return ret;\n};\n\nexport function __wbg_get_10889f5b611cd1c6() { return handleError(function (arg0, arg1) {\n const ret = arg0.get(arg1);\n return ret;\n}, arguments) };\n\nexport function __wbg_get_6b7bd52aca3f9671(arg0, arg1) {\n const ret = arg0[arg1 >>> 0];\n return ret;\n};\n\nexport function __wbg_get_7d8b665fa88606d5() { return handleError(function (arg0, arg1) {\n const ret = arg0.get(arg1);\n return ret;\n}, arguments) };\n\nexport function __wbg_get_af9dab7e9603ea93() { return handleError(function (arg0, arg1) {\n const ret = Reflect.get(arg0, arg1);\n return ret;\n}, arguments) };\n\nexport function __wbg_get_with_ref_key_1dc361bd10053bfe(arg0, arg1) {\n const ret = arg0[arg1];\n return ret;\n};\n\nexport function __wbg_global_e78add1f0bdfe974(arg0) {\n const ret = arg0.global;\n return ret;\n};\n\nexport function __wbg_inboundgroupsession_new(arg0) {\n const ret = InboundGroupSession.__wrap(arg0);\n return ret;\n};\n\nexport function __wbg_index_6af68133e0cdd5f8() { return handleError(function (arg0, arg1, arg2) {\n const ret = arg0.index(getStringFromWasm0(arg1, arg2));\n return ret;\n}, arguments) };\n\nexport function __wbg_indexedDB_121c33bea2560f72() { return handleError(function (arg0) {\n const ret = arg0.indexedDB;\n return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);\n}, arguments) };\n\nexport function __wbg_indexedDB_23c232e00a1e28ad() { return handleError(function (arg0) {\n const ret = arg0.indexedDB;\n return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);\n}, arguments) };\n\nexport function __wbg_indexedDB_769a3833286f42f3() { return handleError(function (arg0) {\n const ret = arg0.indexedDB;\n return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);\n}, arguments) };\n\nexport function __wbg_info_ce6bcc489c22f6f0(arg0) {\n console.info(arg0);\n};\n\nexport function __wbg_info_fd876dbb310ad775(arg0, arg1) {\n arg0.info(arg1);\n};\n\nexport function __wbg_instanceof_ArrayBuffer_f3320d2419cd0355(arg0) {\n let result;\n try {\n result = arg0 instanceof ArrayBuffer;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n};\n\nexport function __wbg_instanceof_CursorSys_383984afc1fa1bbc(arg0) {\n let result;\n try {\n result = arg0 instanceof IDBCursorWithValue;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n};\n\nexport function __wbg_instanceof_DomException_d430cd4fb5284a83(arg0) {\n let result;\n try {\n result = arg0 instanceof DOMException;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n};\n\nexport function __wbg_instanceof_Error_3443650560328fa9(arg0) {\n let result;\n try {\n result = arg0 instanceof Error;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n};\n\nexport function __wbg_instanceof_IdbCursor_5641812dc2120a05(arg0) {\n let result;\n try {\n result = arg0 instanceof IDBCursor;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n};\n\nexport function __wbg_instanceof_IdbDatabase_f4e157055e32c479(arg0) {\n let result;\n try {\n result = arg0 instanceof IDBDatabase;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n};\n\nexport function __wbg_instanceof_IdbOpenDbRequest_e4a587961e53201e(arg0) {\n let result;\n try {\n result = arg0 instanceof IDBOpenDBRequest;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n};\n\nexport function __wbg_instanceof_IdbRequest_9000a361b4bf0dc6(arg0) {\n let result;\n try {\n result = arg0 instanceof IDBRequest;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n};\n\nexport function __wbg_instanceof_Map_084be8da74364158(arg0) {\n let result;\n try {\n result = arg0 instanceof Map;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n};\n\nexport function __wbg_instanceof_Promise_eca6c43a2610558d(arg0) {\n let result;\n try {\n result = arg0 instanceof Promise;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n};\n\nexport function __wbg_instanceof_Uint8Array_da54ccc9d3e09434(arg0) {\n let result;\n try {\n result = arg0 instanceof Uint8Array;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n};\n\nexport function __wbg_invalidtodeviceevent_new(arg0) {\n const ret = InvalidToDeviceEvent.__wrap(arg0);\n return ret;\n};\n\nexport function __wbg_isArray_51fd9e6422c0a395(arg0) {\n const ret = Array.isArray(arg0);\n return ret;\n};\n\nexport function __wbg_isArray_ca6bc609f742df3f(arg0) {\n const ret = Array.isArray(arg0);\n return ret;\n};\n\nexport function __wbg_isSafeInteger_ae7d3f054d55fa16(arg0) {\n const ret = Number.isSafeInteger(arg0);\n return ret;\n};\n\nexport function __wbg_item_fa6253e690a05e50(arg0, arg1, arg2) {\n const ret = arg1.item(arg2 >>> 0);\n var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n};\n\nexport function __wbg_iterator_27b7c8b35ab3e86b() {\n const ret = Symbol.iterator;\n return ret;\n};\n\nexport function __wbg_key_5ffb2273b5ffc24a() { return handleError(function (arg0) {\n const ret = arg0.key;\n return ret;\n}, arguments) };\n\nexport function __wbg_keysbackuprequest_new(arg0) {\n const ret = KeysBackupRequest.__wrap(arg0);\n return ret;\n};\n\nexport function __wbg_keysclaimrequest_new(arg0) {\n const ret = KeysClaimRequest.__wrap(arg0);\n return ret;\n};\n\nexport function __wbg_keysqueryrequest_new(arg0) {\n const ret = KeysQueryRequest.__wrap(arg0);\n return ret;\n};\n\nexport function __wbg_keysuploadrequest_new(arg0) {\n const ret = KeysUploadRequest.__wrap(arg0);\n return ret;\n};\n\nexport function __wbg_length_22ac23eaec9d8053(arg0) {\n const ret = arg0.length;\n return ret;\n};\n\nexport function __wbg_length_9b7368e374b28279(arg0) {\n const ret = arg0.length;\n return ret;\n};\n\nexport function __wbg_length_d45040a40c570362(arg0) {\n const ret = arg0.length;\n return ret;\n};\n\nexport function __wbg_lowerBound_13747835b262040c() { return handleError(function (arg0, arg1) {\n const ret = IDBKeyRange.lowerBound(arg0, arg1 !== 0);\n return ret;\n}, arguments) };\n\nexport function __wbg_maybesignature_new(arg0) {\n const ret = MaybeSignature.__wrap(arg0);\n return ret;\n};\n\nexport function __wbg_megolmdecryptionerror_new(arg0) {\n const ret = MegolmDecryptionError.__wrap(arg0);\n return ret;\n};\n\nexport function __wbg_message_0305fa7903f4b3d9(arg0) {\n const ret = arg0.message;\n return ret;\n};\n\nexport function __wbg_message_a4e9a39ee8f92b17(arg0, arg1) {\n const ret = arg1.message;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n};\n\nexport function __wbg_msCrypto_a61aeb35a24c1329(arg0) {\n const ret = arg0.msCrypto;\n return ret;\n};\n\nexport function __wbg_name_9136863a055402ff(arg0, arg1) {\n const ret = arg1.name;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n};\n\nexport function __wbg_new_1ba21ce319a06297() {\n const ret = new Object();\n return ret;\n};\n\nexport function __wbg_new_25f239778d6112b9() {\n const ret = new Array();\n return ret;\n};\n\nexport function __wbg_new_6421f6084cc5bc5a(arg0) {\n const ret = new Uint8Array(arg0);\n return ret;\n};\n\nexport function __wbg_new_746bb58304020083(arg0) {\n const ret = new Set(arg0);\n return ret;\n};\n\nexport function __wbg_new_8a6f238a6ece86ea() {\n const ret = new Error();\n return ret;\n};\n\nexport function __wbg_new_b2db8aa2650f793a(arg0) {\n const ret = new Date(arg0);\n return ret;\n};\n\nexport function __wbg_new_b546ae120718850e() {\n const ret = new Map();\n return ret;\n};\n\nexport function __wbg_new_df1173567d5ff028(arg0, arg1) {\n const ret = new Error(getStringFromWasm0(arg0, arg1));\n return ret;\n};\n\nexport function __wbg_new_ff12d2b041fb48f1(arg0, arg1) {\n try {\n var state0 = {a: arg0, b: arg1};\n var cb0 = (arg0, arg1) => {\n const a = state0.a;\n state0.a = 0;\n try {\n return wasm_bindgen__convert__closures_____invoke__h8815fd477ac2dc7f(a, state0.b, arg0, arg1);\n } finally {\n state0.a = a;\n }\n };\n const ret = new Promise(cb0);\n return ret;\n } finally {\n state0.a = state0.b = 0;\n }\n};\n\nexport function __wbg_new_no_args_cb138f77cf6151ee(arg0, arg1) {\n const ret = new Function(getStringFromWasm0(arg0, arg1));\n return ret;\n};\n\nexport function __wbg_new_with_length_30843b434774b4c6(arg0) {\n const ret = new Uint8ClampedArray(arg0 >>> 0);\n return ret;\n};\n\nexport function __wbg_new_with_length_aa5eaf41d35235e5(arg0) {\n const ret = new Uint8Array(arg0 >>> 0);\n return ret;\n};\n\nexport function __wbg_next_138a17bbf04e926c(arg0) {\n const ret = arg0.next;\n return ret;\n};\n\nexport function __wbg_next_3cfe5c0fe2a4cc53() { return handleError(function (arg0) {\n const ret = arg0.next();\n return ret;\n}, arguments) };\n\nexport function __wbg_node_905d3e251edff8a2(arg0) {\n const ret = arg0.node;\n return ret;\n};\n\nexport function __wbg_now_2c95c9de01293173(arg0) {\n const ret = arg0.now();\n return ret;\n};\n\nexport function __wbg_now_69d776cd24f5215b() {\n const ret = Date.now();\n return ret;\n};\n\nexport function __wbg_objectStoreNames_90900f9a531513ac(arg0) {\n const ret = arg0.objectStoreNames;\n return ret;\n};\n\nexport function __wbg_objectStore_da9a077b8849dbe9() { return handleError(function (arg0, arg1, arg2) {\n const ret = arg0.objectStore(getStringFromWasm0(arg1, arg2));\n return ret;\n}, arguments) };\n\nexport function __wbg_oldVersion_2950700d81809b3e(arg0) {\n const ret = arg0.oldVersion;\n return ret;\n};\n\nexport function __wbg_olmmachine_new(arg0) {\n const ret = OlmMachine.__wrap(arg0);\n return ret;\n};\n\nexport function __wbg_openCursor_065c5304428cc4d8() { return handleError(function (arg0) {\n const ret = arg0.openCursor();\n return ret;\n}, arguments) };\n\nexport function __wbg_openCursor_99b45bb4fa3166ab() { return handleError(function (arg0) {\n const ret = arg0.openCursor();\n return ret;\n}, arguments) };\n\nexport function __wbg_openCursor_c5d6ba9ba92d3ab5() { return handleError(function (arg0, arg1) {\n const ret = arg0.openCursor(arg1);\n return ret;\n}, arguments) };\n\nexport function __wbg_open_0d7b85f4c0a38ffe() { return handleError(function (arg0, arg1, arg2, arg3) {\n const ret = arg0.open(getStringFromWasm0(arg1, arg2), arg3 >>> 0);\n return ret;\n}, arguments) };\n\nexport function __wbg_open_2a2740c93beabe29() { return handleError(function (arg0, arg1, arg2) {\n const ret = arg0.open(getStringFromWasm0(arg1, arg2));\n return ret;\n}, arguments) };\n\nexport function __wbg_otheruseridentity_new(arg0) {\n const ret = OtherUserIdentity.__wrap(arg0);\n return ret;\n};\n\nexport function __wbg_ownuseridentity_new(arg0) {\n const ret = OwnUserIdentity.__wrap(arg0);\n return ret;\n};\n\nexport function __wbg_parse_a09a54cf72639456() { return handleError(function (arg0, arg1) {\n const ret = JSON.parse(getStringFromWasm0(arg0, arg1));\n return ret;\n}, arguments) };\n\nexport function __wbg_performance_7a3ffd0b17f663ad(arg0) {\n const ret = arg0.performance;\n return ret;\n};\n\nexport function __wbg_pickledinboundgroupsession_unwrap(arg0) {\n const ret = PickledInboundGroupSession.__unwrap(arg0);\n return ret;\n};\n\nexport function __wbg_pickledsession_unwrap(arg0) {\n const ret = PickledSession.__unwrap(arg0);\n return ret;\n};\n\nexport function __wbg_plaintexttodeviceevent_new(arg0) {\n const ret = PlainTextToDeviceEvent.__wrap(arg0);\n return ret;\n};\n\nexport function __wbg_process_dc0fbacc7c1c06f7(arg0) {\n const ret = arg0.process;\n return ret;\n};\n\nexport function __wbg_prototypesetcall_d3dc3532c827f7d3(arg0, arg1, arg2) {\n Uint8ClampedArray.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), arg2);\n};\n\nexport function __wbg_prototypesetcall_dfe9b766cdc1f1fd(arg0, arg1, arg2) {\n Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), arg2);\n};\n\nexport function __wbg_push_7d9be8f38fc13975(arg0, arg1) {\n const ret = arg0.push(arg1);\n return ret;\n};\n\nexport function __wbg_put_d40a68e5a8902a46() { return handleError(function (arg0, arg1, arg2) {\n const ret = arg0.put(arg1, arg2);\n return ret;\n}, arguments) };\n\nexport function __wbg_putdehydrateddevicerequest_new(arg0) {\n const ret = PutDehydratedDeviceRequest.__wrap(arg0);\n return ret;\n};\n\nexport function __wbg_qr_new(arg0) {\n const ret = Qr.__wrap(arg0);\n return ret;\n};\n\nexport function __wbg_queueMicrotask_9b549dfce8865860(arg0) {\n const ret = arg0.queueMicrotask;\n return ret;\n};\n\nexport function __wbg_queueMicrotask_fca69f5bfad613a5(arg0) {\n queueMicrotask(arg0);\n};\n\nexport function __wbg_randomFillSync_ac0988aba3254290() { return handleError(function (arg0, arg1) {\n arg0.randomFillSync(arg1);\n}, arguments) };\n\nexport function __wbg_readyState_e534bc496011c2fd(arg0) {\n const ret = arg0.readyState;\n return (__wbindgen_enum_IdbRequestReadyState.indexOf(ret) + 1 || 3) - 1;\n};\n\nexport function __wbg_rehydrateddevice_new(arg0) {\n const ret = RehydratedDevice.__wrap(arg0);\n return ret;\n};\n\nexport function __wbg_request_c533970ff464e9b2(arg0) {\n const ret = arg0.request;\n return ret;\n};\n\nexport function __wbg_request_d3cccab75790c6a3(arg0) {\n const ret = arg0.request;\n return ret;\n};\n\nexport function __wbg_require_60cc747a6bc5215a() { return handleError(function () {\n const ret = module.require;\n return ret;\n}, arguments) };\n\nexport function __wbg_resolve_fd5bfbaa4ce36e1e(arg0) {\n const ret = Promise.resolve(arg0);\n return ret;\n};\n\nexport function __wbg_result_084f962aedb54250() { return handleError(function (arg0) {\n const ret = arg0.result;\n return ret;\n}, arguments) };\n\nexport function __wbg_roomid_unwrap(arg0) {\n const ret = RoomId.__unwrap(arg0);\n return ret;\n};\n\nexport function __wbg_roomkeycounts_new(arg0) {\n const ret = RoomKeyCounts.__wrap(arg0);\n return ret;\n};\n\nexport function __wbg_roomkeyimportresult_new(arg0) {\n const ret = RoomKeyImportResult.__wrap(arg0);\n return ret;\n};\n\nexport function __wbg_roomkeyinfo_new(arg0) {\n const ret = RoomKeyInfo.__wrap(arg0);\n return ret;\n};\n\nexport function __wbg_roomkeywithheldinfo_new(arg0) {\n const ret = RoomKeyWithheldInfo.__wrap(arg0);\n return ret;\n};\n\nexport function __wbg_roommessagerequest_new(arg0) {\n const ret = RoomMessageRequest.__wrap(arg0);\n return ret;\n};\n\nexport function __wbg_roomsettings_new(arg0) {\n const ret = RoomSettings.__wrap(arg0);\n return ret;\n};\n\nexport function __wbg_sas_new(arg0) {\n const ret = Sas.__wrap(arg0);\n return ret;\n};\n\nexport function __wbg_secretsbundle_new(arg0) {\n const ret = SecretsBundle.__wrap(arg0);\n return ret;\n};\n\nexport function __wbg_setTimeout_db2dbaeefb6f39c7() { return handleError(function (arg0, arg1) {\n const ret = setTimeout(arg0, arg1);\n return ret;\n}, arguments) };\n\nexport function __wbg_set_3f1d0b984ed272ed(arg0, arg1, arg2) {\n arg0[arg1] = arg2;\n};\n\nexport function __wbg_set_7df433eea03a5c14(arg0, arg1, arg2) {\n arg0[arg1 >>> 0] = arg2;\n};\n\nexport function __wbg_set_e2f933902557a0b5(arg0, arg1, arg2) {\n arg0.set(getArrayU8FromWasm0(arg1, arg2));\n};\n\nexport function __wbg_set_efaaf145b9377369(arg0, arg1, arg2) {\n const ret = arg0.set(arg1, arg2);\n return ret;\n};\n\nexport function __wbg_set_onabort_e3f60791db69f136(arg0, arg1) {\n arg0.onabort = arg1;\n};\n\nexport function __wbg_set_oncomplete_e4a04a9244826e8b(arg0, arg1) {\n arg0.oncomplete = arg1;\n};\n\nexport function __wbg_set_onerror_08fecec3bdc9d24d(arg0, arg1) {\n arg0.onerror = arg1;\n};\n\nexport function __wbg_set_onerror_e6509e1998f7da91(arg0, arg1) {\n arg0.onerror = arg1;\n};\n\nexport function __wbg_set_onsuccess_94332a00452de699(arg0, arg1) {\n arg0.onsuccess = arg1;\n};\n\nexport function __wbg_set_onupgradeneeded_3dc6e233a6d13fe2(arg0, arg1) {\n arg0.onupgradeneeded = arg1;\n};\n\nexport function __wbg_set_unique_3dd7b4ef717ec230(arg0, arg1) {\n arg0.unique = arg1 !== 0;\n};\n\nexport function __wbg_signatures_new(arg0) {\n const ret = Signatures.__wrap(arg0);\n return ret;\n};\n\nexport function __wbg_signatureuploadrequest_new(arg0) {\n const ret = SignatureUploadRequest.__wrap(arg0);\n return ret;\n};\n\nexport function __wbg_signatureverification_new(arg0) {\n const ret = SignatureVerification.__wrap(arg0);\n return ret;\n};\n\nexport function __wbg_stack_0ed75d68575b0f3c(arg0, arg1) {\n const ret = arg1.stack;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n};\n\nexport function __wbg_static_accessor_GLOBAL_769e6b65d6557335() {\n const ret = typeof global === 'undefined' ? null : global;\n return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);\n};\n\nexport function __wbg_static_accessor_GLOBAL_THIS_60cf02db4de8e1c1() {\n const ret = typeof globalThis === 'undefined' ? null : globalThis;\n return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);\n};\n\nexport function __wbg_static_accessor_SELF_08f5a74c69739274() {\n const ret = typeof self === 'undefined' ? null : self;\n return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);\n};\n\nexport function __wbg_static_accessor_WINDOW_a8924b26aa92d024() {\n const ret = typeof window === 'undefined' ? null : window;\n return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);\n};\n\nexport function __wbg_storedroomkeybundledata_new(arg0) {\n const ret = StoredRoomKeyBundleData.__wrap(arg0);\n return ret;\n};\n\nexport function __wbg_storehandle_new(arg0) {\n const ret = StoreHandle.__wrap(arg0);\n return ret;\n};\n\nexport function __wbg_stringify_655a6390e1f5eb6b() { return handleError(function (arg0) {\n const ret = JSON.stringify(arg0);\n return ret;\n}, arguments) };\n\nexport function __wbg_subarray_845f2f5bce7d061a(arg0, arg1, arg2) {\n const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);\n return ret;\n};\n\nexport function __wbg_target_0e3e05a6263c37a0(arg0) {\n const ret = arg0.target;\n return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);\n};\n\nexport function __wbg_then_429f7caf1026411d(arg0, arg1, arg2) {\n const ret = arg0.then(arg1, arg2);\n return ret;\n};\n\nexport function __wbg_then_4f95312d68691235(arg0, arg1) {\n const ret = arg0.then(arg1);\n return ret;\n};\n\nexport function __wbg_toString_f07112df359c997f(arg0) {\n const ret = arg0.toString();\n return ret;\n};\n\nexport function __wbg_todevicerequest_new(arg0) {\n const ret = ToDeviceRequest.__wrap(arg0);\n return ret;\n};\n\nexport function __wbg_transaction_257422def49a0094() { return handleError(function (arg0, arg1, arg2) {\n const ret = arg0.transaction(arg1, __wbindgen_enum_IdbTransactionMode[arg2]);\n return ret;\n}, arguments) };\n\nexport function __wbg_transaction_790ec170b8fbc74b() { return handleError(function (arg0, arg1, arg2, arg3) {\n const ret = arg0.transaction(getStringFromWasm0(arg1, arg2), __wbindgen_enum_IdbTransactionMode[arg3]);\n return ret;\n}, arguments) };\n\nexport function __wbg_transaction_94648249df85f2b3(arg0) {\n const ret = arg0.transaction;\n return ret;\n};\n\nexport function __wbg_transaction_edb5bc8f37fa6aec(arg0) {\n const ret = arg0.transaction;\n return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);\n};\n\nexport function __wbg_update_9d3d984f3dbd9e8d() { return handleError(function (arg0, arg1) {\n const ret = arg0.update(arg1);\n return ret;\n}, arguments) };\n\nexport function __wbg_upperBound_91858b3be3dd9f34() { return handleError(function (arg0, arg1) {\n const ret = IDBKeyRange.upperBound(arg0, arg1 !== 0);\n return ret;\n}, arguments) };\n\nexport function __wbg_userdevices_new(arg0) {\n const ret = UserDevices.__wrap(arg0);\n return ret;\n};\n\nexport function __wbg_userid_new(arg0) {\n const ret = UserId.__wrap(arg0);\n return ret;\n};\n\nexport function __wbg_userid_unwrap(arg0) {\n const ret = UserId.__unwrap(arg0);\n return ret;\n};\n\nexport function __wbg_utdtodeviceevent_new(arg0) {\n const ret = UTDToDeviceEvent.__wrap(arg0);\n return ret;\n};\n\nexport function __wbg_value_3ed795eaabbd91d4() { return handleError(function (arg0) {\n const ret = arg0.value;\n return ret;\n}, arguments) };\n\nexport function __wbg_value_57b7b035e117f7ee(arg0) {\n const ret = arg0.value;\n return ret;\n};\n\nexport function __wbg_values_9152c8c1ab032dfa(arg0) {\n const ret = arg0.values();\n return ret;\n};\n\nexport function __wbg_verificationrequest_new(arg0) {\n const ret = VerificationRequest.__wrap(arg0);\n return ret;\n};\n\nexport function __wbg_version_261774ad92018a58(arg0) {\n const ret = arg0.version;\n return ret;\n};\n\nexport function __wbg_versions_c01dfd4722a88165(arg0) {\n const ret = arg0.versions;\n return ret;\n};\n\nexport function __wbg_warn_6e567d0d926ff881(arg0) {\n console.warn(arg0);\n};\n\nexport function __wbg_warn_d7dd2130cf9e44bb(arg0, arg1) {\n arg0.warn(arg1);\n};\n\nexport function __wbindgen_cast_21f3b7099c9334bc(arg0, arg1) {\n // Cast intrinsic for `Closure(Closure { dtor_idx: 136, function: Function { arguments: [NamedExternref(\"IDBVersionChangeEvent\")], shim_idx: 137, ret: Result(Unit), inner_ret: Some(Result(Unit)) }, mutable: true }) -> Externref`.\n const ret = makeMutClosure(arg0, arg1, wasm.wasm_bindgen__closure__destroy__h3add1a2c74cd908e, wasm_bindgen__convert__closures_____invoke__h35b0a77e54c2db90);\n return ret;\n};\n\nexport function __wbindgen_cast_2241b6af4c4b2941(arg0, arg1) {\n // Cast intrinsic for `Ref(String) -> Externref`.\n const ret = getStringFromWasm0(arg0, arg1);\n return ret;\n};\n\nexport function __wbindgen_cast_3d323378c35251b8(arg0, arg1) {\n // Cast intrinsic for `Closure(Closure { dtor_idx: 121, function: Function { arguments: [NamedExternref(\"Event\")], shim_idx: 164, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.\n const ret = makeMutClosure(arg0, arg1, wasm.wasm_bindgen__closure__destroy__h3f1bc9bbb4835e8f, wasm_bindgen__convert__closures_____invoke__h89fab44ead303aca);\n return ret;\n};\n\nexport function __wbindgen_cast_4625c577ab2ec9ee(arg0) {\n // Cast intrinsic for `U64 -> Externref`.\n const ret = BigInt.asUintN(64, arg0);\n return ret;\n};\n\nexport function __wbindgen_cast_7c76986129f237a3(arg0, arg1) {\n // Cast intrinsic for `Closure(Closure { dtor_idx: 121, function: Function { arguments: [], shim_idx: 122, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.\n const ret = makeMutClosure(arg0, arg1, wasm.wasm_bindgen__closure__destroy__h3f1bc9bbb4835e8f, wasm_bindgen__convert__closures_____invoke__h22e674b566e32b64);\n return ret;\n};\n\nexport function __wbindgen_cast_9ae0607507abb057(arg0) {\n // Cast intrinsic for `I64 -> Externref`.\n const ret = arg0;\n return ret;\n};\n\nexport function __wbindgen_cast_c415cbf6e3c3f6d4(arg0, arg1) {\n // Cast intrinsic for `Closure(Closure { dtor_idx: 121, function: Function { arguments: [Externref], shim_idx: 164, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.\n const ret = makeMutClosure(arg0, arg1, wasm.wasm_bindgen__closure__destroy__h3f1bc9bbb4835e8f, wasm_bindgen__convert__closures_____invoke__h89fab44ead303aca);\n return ret;\n};\n\nexport function __wbindgen_cast_cb9088102bce6b30(arg0, arg1) {\n // Cast intrinsic for `Ref(Slice(U8)) -> NamedExternref(\"Uint8Array\")`.\n const ret = getArrayU8FromWasm0(arg0, arg1);\n return ret;\n};\n\nexport function __wbindgen_cast_d6cd19b81560fd6e(arg0) {\n // Cast intrinsic for `F64 -> Externref`.\n const ret = arg0;\n return ret;\n};\n\nexport function __wbindgen_cast_e481686c74984159(arg0, arg1) {\n var v0 = getArrayJsValueFromWasm0(arg0, arg1).slice();\n wasm.__wbindgen_free(arg0, arg1 * 4, 4);\n // Cast intrinsic for `Vector(Externref) -> Externref`.\n const ret = v0;\n return ret;\n};\n\nexport function __wbindgen_init_externref_table() {\n const table = wasm.__wbindgen_externrefs;\n const offset = table.grow(4);\n table.set(0, undefined);\n table.set(offset + 0, undefined);\n table.set(offset + 1, null);\n table.set(offset + 2, true);\n table.set(offset + 3, false);\n};\n","// Copyright 2024 The Matrix.org Foundation C.I.C.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// @ts-check\n\n/**\n * This is the entrypoint on non-node ESM environments.\n * `asyncLoad` will load the WASM module using a `fetch` call.\n */\n\nimport * as bindings from \"./pkg/matrix_sdk_crypto_wasm_bg.js\";\n\nconst defaultURL = new URL(\"./pkg/matrix_sdk_crypto_wasm_bg.wasm\", import.meta.url);\n\n// Although we could simply instantiate the WASM at import time with a top-level `await`,\n// we avoid that, to make it easier for callers to delay loading the WASM (and instead\n// wait until `initAsync` is called). (Also, Safari 14 doesn't support top-level `await`.)\n//\n// However, having done so, there is no way to synchronously load the WASM if the user ends\n// up using the bindings before calling `initAsync` (unlike under Node.js), so we just throw\n// an error.\nbindings.__wbg_set_wasm(\n new Proxy(\n {},\n {\n get() {\n throw new Error(\n \"@matrix-org/matrix-sdk-crypto-wasm was used before it was initialized. Call `initAsync` first.\",\n );\n },\n },\n ),\n);\n\n/**\n * Stores a promise of the `loadModuleAsync` call\n * @type {Promise<void> | null}\n */\nlet modPromise = null;\n\n/**\n * Loads and instantiates the WASM module asynchronously\n *\n * @param {URL | string} url - The URL to fetch the WebAssembly module from\n * @returns {Promise<void>}\n */\nasync function loadModuleAsync(url) {\n const { instance } = await WebAssembly.instantiateStreaming(fetch(url), {\n // @ts-expect-error: The bindings don't exactly match the 'ExportValue' type\n \"./matrix_sdk_crypto_wasm_bg.js\": bindings,\n });\n\n bindings.__wbg_set_wasm(instance.exports);\n // @ts-expect-error: Typescript doesn't know what the module exports are\n instance.exports.__wbindgen_start();\n}\n\n/**\n * Load the WebAssembly module in the background, if it has not already been loaded.\n *\n * Returns a promise which will resolve once the other methods are ready.\n *\n * @param {URL | string} [url] - The URL to fetch the WebAssembly module from. If not provided, a default URL will be used.\n * @returns {Promise<void>}\n */\nexport async function initAsync(url = defaultURL) {\n if (!modPromise) modPromise = loadModuleAsync(url);\n await modPromise;\n}\n\n// Re-export everything from the generated javascript wrappers\nexport * from \"./pkg/matrix_sdk_crypto_wasm_bg.js\";\n"],"names":["wasm","__wbg_set_wasm","val","addToExternrefTable0","obj","idx","_assertClass","instance","klass","CLOSURE_DTORS","state","debugString","type","description","name","length","debug","i","builtInMatches","className","getArrayJsValueFromWasm0","ptr","len","mem","getDataViewMemory0","result","getArrayU16FromWasm0","getUint16ArrayMemory0","getArrayU8FromWasm0","getUint8ArrayMemory0","cachedDataViewMemory0","getStringFromWasm0","decodeText","cachedUint16ArrayMemory0","cachedUint8ArrayMemory0","handleError","f","args","e","isLikeNone","x","makeMutClosure","arg0","arg1","dtor","real","a","passArray8ToWasm0","arg","malloc","WASM_VECTOR_LEN","passArrayJsValueToWasm0","array","add","passStringToWasm0","realloc","buf","cachedTextEncoder","offset","code","view","ret","takeFromExternrefTable0","value","cachedTextDecoder","MAX_SAFARI_DECODE_BYTES","numBytesDecoded","wasm_bindgen__convert__closures_____invoke__h89fab44ead303aca","arg2","wasm_bindgen__convert__closures_____invoke__h22e674b566e32b64","wasm_bindgen__convert__closures_____invoke__h35b0a77e54c2db90","wasm_bindgen__convert__closures_____invoke__h8815fd477ac2dc7f","arg3","__wbindgen_enum_IdbRequestReadyState","__wbindgen_enum_IdbTransactionMode","AttachmentFinalization","BackupDecryptionKeyFinalization","BackupKeysFinalization","BackupSecretsBundleFinalization","Base64EncodedPkMessageFinalization","BaseMigrationDataFinalization","CancelInfoFinalization","CheckCodeFinalization","CollectStrategyFinalization","CrossSigningBootstrapRequestsFinalization","CrossSigningKeyExportFinalization","CrossSigningStatusFinalization","Curve25519PublicKeyFinalization","Curve25519SecretKeyFinalization","DecryptedRoomEventFinalization","DecryptedToDeviceEventFinalization","DecryptionSettingsFinalization","DehydratedDeviceFinalization","DehydratedDeviceKeyFinalization","DehydratedDevicesFinalization","DeviceFinalization","DeviceIdFinalization","DeviceKeyFinalization","DeviceKeyAlgorithmFinalization","DeviceKeyIdFinalization","DeviceListsFinalization","EciesFinalization","Ed25519PublicKeyFinalization","Ed25519SignatureFinalization","EmojiFinalization","EncryptedAttachmentFinalization","EncryptionInfoFinalization","EncryptionSettingsFinalization","EstablishedEciesFinalization","EventIdFinalization","IdentityKeysFinalization","InboundCreationResultFinalization","InboundGroupSessionFinalization","InvalidToDeviceEventFinalization","KeysBackupRequestFinalization","KeysClaimRequestFinalization","KeysQueryRequestFinalization","KeysUploadRequestFinalization","MaybeSignatureFinalization","MegolmDecryptionErrorFinalization","MegolmV1BackupKeyFinalization","MigrationFinalization","OlmMachineFinalization","OtherUserIdentityFinalization","OutboundCreationResultFinalization","OwnUserIdentityFinalization","PickledInboundGroupSessionFinalization","PickledSessionFinalization","PkDecryptionFinalization","PkEncryptionFinalization","PkMessageFinalization","PlainTextToDeviceEventFinalization","PutDehydratedDeviceRequestFinalization","QrFinalization","QrCodeFinalization","QrCodeDataFinalization","QrCodeScanFinalization","RehydratedDeviceFinalization","RoomIdFinalization","RoomKeyCountsFinalization","RoomKeyImportResultFinalization","RoomKeyInfoFinalization","RoomKeyWithheldInfoFinalization","RoomMessageRequestFinalization","RoomSettingsFinalization","SasFinalization","SecretsBundleFinalization","ServerNameFinalization","ShieldStateFinalization","SignatureFinalization","SignatureUploadRequestFinalization","SignatureVerificationFinalization","SignaturesFinalization","StoreHandleFinalization","StoredRoomKeyBundleDataFinalization","ToDeviceEncryptionInfoFinalization","ToDeviceRequestFinalization","ToDeviceUnableToDecryptInfoFinalization","TracingFinalization","UTDToDeviceEventFinalization","UploadSigningKeysRequestFinalization","UserDevicesFinalization","UserIdFinalization","VerificationRequestFinalization","VersionsFinalization","Attachment","attachment","EncryptedAttachment","v1","ptr0","len0","BackupDecryptionKey","ephemeral_key","mac","ciphertext","deferred5_0","deferred5_1","ptr1","len1","ptr2","len2","ptr4","len4","key","MegolmV1BackupKey","BackupKeys","BackupSecretsBundle","deferred1_0","deferred1_1","Base64EncodedPkMessage","BaseMigrationData","UserId","DeviceId","CancelInfo","CheckCode","CollectStrategy","only_allow_trusted_devices","error_on_verified_user_problem","other","CrossSigningBootstrapRequests","UploadSigningKeysRequest","SignatureUploadRequest","CrossSigningKeyExport","CrossSigningStatus","Curve25519PublicKey","Curve25519SecretKey","slice","string","DecryptedRoomEvent","strict","ShieldState","DecryptedToDeviceEvent","ToDeviceEncryptionInfo","DecryptionErrorCode","DecryptionSettings","sender_device_trust_requirement","DehydratedDevice","initial_device_display_name","dehydrated_device_key","DehydratedDeviceKey","DehydratedDevices","device_id","device_data","Device","Signatures","Ed25519PublicKey","local_state","methods","event_type","content","share_strategy","algorithm","DeviceKey","id","DeviceKeyAlgorithm","DeviceKeyAlgorithmName","DeviceKeyId","DeviceKeyName","DeviceLists","changed","left","Ecies","initial_message","InboundCreationResult","public_key","OutboundCreationResult","Ed25519Signature","signature","Emoji","encrypted_data","media_encryption_info","EncryptionAlgorithm","EncryptionInfo","EncryptionSettings","EstablishedEcies","message","deferred3_0","deferred3_1","deferred2_0","deferred2_1","EventId","ServerName","HistoryVisibility","IdentityKeys","InboundGroupSession","RoomId","InvalidToDeviceEvent","KeysBackupRequest","body","version","KeysClaimRequest","KeysQueryRequest","KeysUploadRequest","LocalTrust","LoggerLevel","MaybeSignature","Signature","MegolmDecryptionError","desc","Migration","data","pickle_key","store_handle","logger","StoreHandle","sessions","OlmMachine","user_id","timeout_secs","store_name","store_passphrase","backup_info","room_id","users","encryption_settings","public_key_base_64","predicate","flow_id","exported_room_keys","progress_listener","room_settings","RoomSettings","event","decryption_settings","state_key","request_id","request_type","response","to_device_events","changed_devices","one_time_keys_counts","unused_fallback_keys","bundle","SecretsBundle","secret_name","reset","bundle_data","encrypted_bundle","StoredRoomKeyBundleData","VerificationRequest","master_key","self_signing_key","user_signing_key","encrypted_exported_room_keys","passphrase","deferred4_0","deferred4_1","ptr3","len3","rounds","backed_up_room_keys","backup_version","decryption_key","user","room","url","sharing_strategy","enabled","callback","inviter","OtherUserIdentity","request_event_id","OwnUserIdentity","PickledInboundGroupSession","jsValue","PickledSession","PkDecryption","PkMessage","PkEncryption","PlainTextToDeviceEvent","ProcessedToDeviceEventType","PutDehydratedDeviceRequest","Qr","QrCode","QrCodeData","bytes","rendezvous_url","server_name","QrCodeMode","QrCodeScan","buffer","QrState","RehydratedDevice","RequestType","RoomKeyCounts","RoomKeyImportResult","RoomKeyInfo","RoomKeyWithheldInfo","RoomMessageRequest","txn_id","Sas","json","ShieldColor","ShieldStateCode","SignatureState","signed_keys","SignatureVerification","signer","key_id","store_key","ToDeviceRequest","ToDeviceUnableToDecryptInfo","ToDeviceUnableToDecryptReason","Tracing","min_level","TrustRequirement","UTDToDeviceEvent","UserDevices","VerificationMethod","own_user_id","own_device_id","other_user_id","VerificationRequestPhase","Versions","getVersions","start","__wbg_Error_52673b7de5a0ca89","__wbg_Number_2d1dcfcf4ec51736","__wbg_String_8f0eb39a4a4c2f66","__wbg_Window_bad6cc2ef3d218d1","__wbg_WorkerGlobalScope_ce34368dd76f04b5","__wbg___wbindgen_bigint_get_as_i64_6e32f5e6aff02e1d","v","__wbg___wbindgen_boolean_get_dea25b33882b895b","__wbg___wbindgen_debug_string_adfb662ae34724b6","__wbg___wbindgen_in_0d3e1e8f0c669317","__wbg___wbindgen_is_bigint_0e1a2e3f55cfae27","__wbg___wbindgen_is_function_8d400b8b1af978cd","__wbg___wbindgen_is_null_dfda7d66506c95b5","__wbg___wbindgen_is_object_ce774f3490692386","__wbg___wbindgen_is_string_704ef9c8fc131030","__wbg___wbindgen_is_undefined_f6b95eab589e0269","__wbg___wbindgen_jsval_eq_b6101cc9cef1fe36","__wbg___wbindgen_jsval_loose_eq_766057600fdd1b0d","__wbg___wbindgen_number_get_9619185a74197f95","__wbg___wbindgen_string_get_a2a31e16edf96e42","__wbg___wbindgen_throw_dd24417ed36fc46e","__wbg___wbindgen_try_into_number_9d33ffe037a9f5e5","__wbg__wbg_cb_unref_87dfb5aaa0cbcea7","__wbg_abort_45186b2c363ae467","__wbg_add_c1fb373a6e8701af","__wbg_add_f0bf6d9527665471","__wbg_at_505937f1c4b80bfa","__wbg_backupkeys_new","__wbg_bound_6fa641bacd961cc0","__wbg_call_3020136f7a2d6e44","__wbg_call_78f94eb02ec7f9b2","arg4","__wbg_call_abb4ff46ce38be40","__wbg_call_c8baa5c5e72d274e","__wbg_clearTimeout_5a54f8841c30079a","__wbg_clear_0e6ff4790cdabf11","__wbg_close_cf7ef4e294ac3858","__wbg_code_c2a85f2863ec11b3","__wbg_commit_073afc947129550a","__wbg_continue_f42217c3ef5cf6dd","__wbg_count_3fa291ea0e8fceec","__wbg_count_c05e51d4a5d263a1","__wbg_createIndex_3889f4177a3fa5d0","__wbg_createIndex_3c576f3c5564f5d7","__wbg_createObjectStore_dba64acfe84d4191","__wbg_crosssigningbootstraprequests_new","__wbg_crosssigningkeyexport_new","__wbg_crosssigningstatus_new","__wbg_crypto_574e78ad8b13b65f","__wbg_debug_949d8a9c97c02a01","__wbg_debug_9d0c87ddda3dc485","__wbg_decryptedroomevent_new","__wbg_decryptedtodeviceevent_new","__wbg_dehydrateddevice_new","__wbg_dehydrateddevicekey_new","__wbg_deleteObjectStore_88e9fff1fbbc6189","__wbg_delete_91010f5a5282eb97","__wbg_delete_a8cf58aab29e18d2","__wbg_device_new","__wbg_deviceid_new","__wbg_devicekey_new","__wbg_devicekeyid_new","__wbg_done_62ea16af4ce34b24","__wbg_emoji_new","__wbg_encryptedattachment_new","__wbg_encryptioninfo_new","__wbg_entries_83c79938054e065f","__wbg_entries_9af46b7eaf7dfefa","__wbg_error_7534b8e9a36f1ab4","deferred0_0","deferred0_1","__wbg_error_7bc79084e71bc74a","__wbg_error_7bc7d576a6aaf855","__wbg_error_ad02a286da74488a","__wbg_from_29a8414a7a7cd19d","__wbg_getAllKeys_925405ffbd671e86","__wbg_getAll_236edca313646f4d","__wbg_getAll_48e288420773a079","__wbg_getAll_eec11317662a8eba","__wbg_getRandomValues_9b655bdd369112f2","__wbg_getRandomValues_b8f5dbd5f3995a9e","__wbg_getTime_ad1e9878a735af08","__wbg_get_10889f5b611cd1c6","__wbg_get_6b7bd52aca3f9671","__wbg_get_7d8b665fa88606d5","__wbg_get_af9dab7e9603ea93","__wbg_get_with_ref_key_1dc361bd10053bfe","__wbg_global_e78add1f0bdfe974","__wbg_inboundgroupsession_new","__wbg_index_6af68133e0cdd5f8","__wbg_indexedDB_121c33bea2560f72","__wbg_indexedDB_23c232e00a1e28ad","__wbg_indexedDB_769a3833286f42f3","__wbg_info_ce6bcc489c22f6f0","__wbg_info_fd876dbb310ad775","__wbg_instanceof_ArrayBuffer_f3320d2419cd0355","__wbg_instanceof_CursorSys_383984afc1fa1bbc","__wbg_instanceof_DomException_d430cd4fb5284a83","__wbg_instanceof_Error_3443650560328fa9","__wbg_instanceof_IdbCursor_5641812dc2120a05","__wbg_instanceof_IdbDatabase_f4e157055e32c479","__wbg_instanceof_IdbOpenDbRequest_e4a587961e53201e","__wbg_instanceof_IdbRequest_9000a361b4bf0dc6","__wbg_instanceof_Map_084be8da74364158","__wbg_instanceof_Promise_eca6c43a2610558d","__wbg_instanceof_Uint8Array_da54ccc9d3e09434","__wbg_invalidtodeviceevent_new","__wbg_isArray_51fd9e6422c0a395","__wbg_isArray_ca6bc609f742df3f","__wbg_isSafeInteger_ae7d3f054d55fa16","__wbg_item_fa6253e690a05e50","__wbg_iterator_27b7c8b35ab3e86b","__wbg_key_5ffb2273b5ffc24a","__wbg_keysbackuprequest_new","__wbg_keysclaimrequest_new","__wbg_keysqueryrequest_new","__wbg_keysuploadrequest_new","__wbg_length_22ac23eaec9d8053","__wbg_length_9b7368e374b28279","__wbg_length_d45040a40c570362","__wbg_lowerBound_13747835b262040c","__wbg_maybesignature_new","__wbg_megolmdecryptionerror_new","__wbg_message_0305fa7903f4b3d9","__wbg_message_a4e9a39ee8f92b17","__wbg_msCrypto_a61aeb35a24c1329","__wbg_name_9136863a055402ff","__wbg_new_1ba21ce319a06297","__wbg_new_25f239778d6112b9","__wbg_new_6421f6084cc5bc5a","__wbg_new_746bb58304020083","__wbg_new_8a6f238a6ece86ea","__wbg_new_b2db8aa2650f793a","__wbg_new_b546ae120718850e","__wbg_new_df1173567d5ff028","__wbg_new_ff12d2b041fb48f1","state0","cb0","__wbg_new_no_args_cb138f77cf6151ee","__wbg_new_with_length_30843b434774b4c6","__wbg_new_with_length_aa5eaf41d35235e5","__wbg_next_138a17bbf04e926c","__wbg_next_3cfe5c0fe2a4cc53","__wbg_node_905d3e251edff8a2","__wbg_now_2c95c9de01293173","__wbg_now_69d776cd24f5215b","__wbg_objectStoreNames_90900f9a531513ac","__wbg_objectStore_da9a077b8849dbe9","__wbg_oldVersion_2950700d81809b3e","__wbg_olmmachine_new","__wbg_openCursor_065c5304428cc4d8","__wbg_openCursor_99b45bb4fa3166ab","__wbg_openCursor_c5d6ba9ba92d3ab5","__wbg_open_0d7b85f4c0a38ffe","__wbg_open_2a2740c93beabe29","__wbg_otheruseridentity_new","__wbg_ownuseridentity_new","__wbg_parse_a09a54cf72639456","__wbg_performance_7a3ffd0b17f663ad","__wbg_pickledinboundgroupsession_unwrap","__wbg_pickledsession_unwrap","__wbg_plaintexttodeviceevent_new","__wbg_process_dc0fbacc7c1c06f7","__wbg_prototypesetcall_d3dc3532c827f7d3","__wbg_prototypesetcall_dfe9b766cdc1f1fd","__wbg_push_7d9be8f38fc13975","__wbg_put_d40a68e5a8902a46","__wbg_putdehydrateddevicerequest_new","__wbg_qr_new","__wbg_queueMicrotask_9b549dfce8865860","__wbg_queueMicrotask_fca69f5bfad613a5","__wbg_randomFillSync_ac0988aba3254290","__wbg_readyState_e534bc496011c2fd","__wbg_rehydrateddevice_new","__wbg_request_c533970ff464e9b2","__wbg_request_d3cccab75790c6a3","__wbg_require_60cc747a6bc5215a","__wbg_resolve_fd5bfbaa4ce36e1e","__wbg_result_084f962aedb54250","__wbg_roomid_unwrap","__wbg_roomkeycounts_new","__wbg_roomkeyimportresult_new","__wbg_roomkeyinfo_new","__wbg_roomkeywithheldinfo_new","__wbg_roommessagerequest_new","__wbg_roomsettings_new","__wbg_sas_new","__wbg_secretsbundle_new","__wbg_setTimeout_db2dbaeefb6f39c7","__wbg_set_3f1d0b984ed272ed","__wbg_set_7df433eea03a5c14","__wbg_set_e2f933902557a0b5","__wbg_set_efaaf145b9377369","__wbg_set_onabort_e3f60791db69f136","__wbg_set_oncomplete_e4a04a9244826e8b","__wbg_set_onerror_08fecec3bdc9d24d","__wbg_set_onerror_e6509e1998f7da91","__wbg_set_onsuccess_94332a00452de699","__wbg_set_onupgradeneeded_3dc6e233a6d13fe2","__wbg_set_unique_3dd7b4ef717ec230","__wbg_signatures_new","__wbg_signatureuploadrequest_new","__wbg_signatureverification_new","__wbg_stack_0ed75d68575b0f3c","__wbg_static_accessor_GLOBAL_769e6b65d6557335","__wbg_static_accessor_GLOBAL_THIS_60cf02db4de8e1c1","__wbg_static_accessor_SELF_08f5a74c69739274","__wbg_static_accessor_WINDOW_a8924b26aa92d024","__wbg_storedroomkeybundledata_new","__wbg_storehandle_new","__wbg_stringify_655a6390e1f5eb6b","__wbg_subarray_845f2f5bce7d061a","__wbg_target_0e3e05a6263c37a0","__wbg_then_429f7caf1026411d","__wbg_then_4f95312d68691235","__wbg_toString_f07112df359c997f","__wbg_todevicerequest_new","__wbg_transaction_257422def49a0094","__wbg_transaction_790ec170b8fbc74b","__wbg_transaction_94648249df85f2b3","__wbg_transaction_edb5bc8f37fa6aec","__wbg_update_9d3d984f3dbd9e8d","__wbg_upperBound_91858b3be3dd9f34","__wbg_userdevices_new","__wbg_userid_new","__wbg_userid_unwrap","__wbg_utdtodeviceevent_new","__wbg_value_3ed795eaabbd91d4","__wbg_value_57b7b035e117f7ee","__wbg_values_9152c8c1ab032dfa","__wbg_verificationrequest_new","__wbg_version_261774ad92018a58","__wbg_versions_c01dfd4722a88165","__wbg_warn_6e567d0d926ff881","__wbg_warn_d7dd2130cf9e44bb","__wbindgen_cast_21f3b7099c9334bc","__wbindgen_cast_2241b6af4c4b2941","__wbindgen_cast_3d323378c35251b8","__wbindgen_cast_4625c577ab2ec9ee","__wbindgen_cast_7c76986129f237a3","__wbindgen_cast_9ae0607507abb057","__wbindgen_cast_c415cbf6e3c3f6d4","__wbindgen_cast_cb9088102bce6b30","__wbindgen_cast_d6cd19b81560fd6e","__wbindgen_cast_e481686c74984159","v0","__wbindgen_init_externref_table","table","defaultURL","bindings.__wbg_set_wasm","modPromise","loadModuleAsync","bindings","initAsync"],"mappings":"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","x_google_ignoreList":[0,1]}