export declare const WORKER_SOURCE = "\"use strict\";(()=>{var w=new Uint8Array([0,97,115,109,1,0,0,0,1,8,1,96,3,127,127,127,1,127,3,2,1,0,5,4,1,1,1,1,7,20,2,7,99,111,109,112,97,114,101,0,0,6,109,101,109,111,114,121,2,0,10,133,1,1,130,1,3,2,127,1,126,1,123,3,64,32,3,65,16,106,34,4,32,2,76,4,64,32,6,32,0,32,3,106,253,0,4,0,32,1,32,3,106,253,0,4,0,253,81,253,80,33,6,32,4,33,3,12,1,11,11,3,64,32,2,32,3,74,4,64,32,5,32,0,32,3,106,49,0,0,32,1,32,3,106,49,0,0,133,132,33,5,32,3,65,1,106,33,3,12,1,11,11,66,0,32,5,32,6,253,29,0,32,6,253,29,1,132,132,34,5,125,32,5,132,66,63,135,66,127,133,167,65,1,113,11]);var S=null,M=null,T=null,O=!1,A=null,v=32768;function I(){if(O){if(A)throw A;return}if(O=!0,!R())throw A=new Error(\"leviathan-crypto: constantTimeEqual requires WebAssembly SIMD, this runtime does not support it\"),A;try{let e=w.buffer.slice(w.byteOffset,w.byteOffset+w.byteLength),t=new WebAssembly.Module(e),n=new WebAssembly.Instance(t).exports;M=n.memory,T=new Uint8Array(M.buffer),S=n.compare}catch(e){throw A=new Error(`leviathan-crypto: cte WASM module failed to instantiate: ${e.message}`),A}}var x=(e,t)=>{if(e.length!==t.length)return!1;if(e.length>v)throw new RangeError(`constantTimeEqual: max ${v} bytes (got ${e.length})`);I();let r=T,n=S;if(!r||!n)throw new Error(\"leviathan-crypto: cte init invariant violated\");r.set(e,0),r.set(t,e.length);try{return n(0,e.length,e.length)===1}finally{r.fill(0,0,v*2)}};var C=e=>{e.fill(0)};var h=null;function R(){if(h!==null)return h;if(typeof WebAssembly>\"u\"||typeof WebAssembly.validate!=\"function\")return h=!1,h;try{h=WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11]))}catch{h=!1}return h}var m=class e extends Error{constructor(t){super(`${t}: authentication failed`),this.name=\"AuthenticationError\",Object.setPrototypeOf(this,e.prototype)}};var d=32,b=12,E=16,U=65536;function $(e,t,r,n,s){if(t.length!==d)throw new RangeError(`AES-GCM-SIV: key must be ${d} bytes (got ${t.length})`);if(r.length!==b)throw new RangeError(`AES-GCM-SIV: nonce must be ${b} bytes (got ${r.length})`);let o=e.getChunkSize();if(n.length>o)throw new RangeError(`AES-GCM-SIV: plaintext exceeds ${o} bytes, split into smaller chunks`);if(s.length>U)throw new RangeError(`AES-GCM-SIV: AAD must be \\u2264 ${U} bytes (got ${s.length})`);let f=new Uint8Array(e.memory.buffer);if(f.set(t,e.getKeyOffset()),e.loadKey(d)!==0)throw e.wipeBuffers(),new Error(\"AES-GCM-SIV: loadKey failed\");f.set(r,e.getNonceOffset()),s.length>0&&f.set(s,e.getAadOffset()),f.set(n,e.getChunkPtOffset()),e.sivDeriveKeys(e.getNonceOffset()),e.sivSeal(s.length,n.length);let y=e.getChunkPtOffset(),a=e.getTagOffset(),i=new Uint8Array(e.memory.buffer),u=i.slice(y,y+n.length),l=i.slice(a,a+E);return{ciphertext:u,tag:l}}function B(e,t,r,n,s,o,f=\"aes-gcm-siv\"){if(t.length!==d)throw new RangeError(`AES-GCM-SIV: key must be ${d} bytes (got ${t.length})`);if(r.length!==b)throw new RangeError(`AES-GCM-SIV: nonce must be ${b} bytes (got ${r.length})`);if(s.length!==E)throw new RangeError(`AES-GCM-SIV: tag must be ${E} bytes (got ${s.length})`);let y=e.getChunkSize();if(n.length>y)throw new RangeError(`AES-GCM-SIV: ciphertext exceeds ${y} bytes, split into smaller chunks`);if(o.length>U)throw new RangeError(`AES-GCM-SIV: AAD must be \\u2264 ${U} bytes (got ${o.length})`);let a=new Uint8Array(e.memory.buffer);if(a.set(t,e.getKeyOffset()),e.loadKey(d)!==0)throw e.wipeBuffers(),new Error(\"AES-GCM-SIV: loadKey failed\");a.set(r,e.getNonceOffset()),o.length>0&&a.set(o,e.getAadOffset()),a.set(n,e.getChunkCtOffset()),a.set(s,e.getSivIcOffset()),e.sivDeriveKeys(e.getNonceOffset()),e.sivOpen(o.length,n.length);let i=new Uint8Array(e.memory.buffer),u=i.slice(e.getTagOffset(),e.getTagOffset()+E),l=new Uint8Array(s);if(!x(u,l))throw e.sivWipeOnFail(),C(u),C(l),new m(f);let p=e.getChunkPtOffset();return i.slice(p,p+n.length)}var c,g;self.onmessage=async e=>{let t=e.data;if(t.type===\"init\"){try{let r=new WebAssembly.Memory({initial:4,maximum:4}),n=t.modules.aes;if(c=(await WebAssembly.instantiate(n,{env:{memory:r}})).exports,g=new Uint8Array(t.derivedKeyBytes),g.length!==32)throw new Error(`expected 32 derived key bytes (got ${g.length})`);t.derivedKeyBytes.fill(0),self.postMessage({type:\"ready\"})}catch(r){t.derivedKeyBytes&&t.derivedKeyBytes.fill(0),self.postMessage({type:\"error\",id:-1,message:r.message,isAuthError:!1})}return}if(t.type===\"wipe\"){g&&g.fill(0),g=void 0,c&&c.wipeBuffers(),c=void 0,self.postMessage({type:\"wiped\"});return}if(!c||!g){self.postMessage({type:\"error\",id:t.id,message:\"worker not initialized\",isAuthError:!1});return}try{let{id:r,op:n,counterNonce:s,data:o,aad:f}=t,y=f??new Uint8Array(0),a=t.derivedKeyBytes??g,i;if(n===\"seal\"){let{ciphertext:l,tag:p}=$(c,a,s,o,y);i=new Uint8Array(l.length+16),i.set(l),i.set(p,l.length)}else{let l=o.subarray(0,o.length-16),p=o.subarray(o.length-16);i=B(c,a,s,l,p,y,\"aes-gcm-siv\")}let u=i.buffer instanceof ArrayBuffer?[i.buffer]:[];self.postMessage({type:\"result\",id:r,data:i},{transfer:u})}catch(r){let n=r instanceof m;self.postMessage({type:\"error\",id:t.id,message:r.message,cipher:n?\"aes-gcm-siv\":void 0,isAuthError:n})}finally{t.derivedKeyBytes&&t.derivedKeyBytes.fill(0),c&&c.wipeBuffers()}};})();\n";