const e=require("compact-encoding"),{MemberId:i}=require("../members/messages.js"),n={TYPE:14,preencode(i,n){i.end++,e.fixed32.preencode(i,n.key),e.fixed32.preencode(i,n.noisePublicKey),n.capabilities&&e.uint.preencode(i,n.capabilities),n.invitation&&e.fixed32.preencode(i,n.invitation),n.receipt&&e.buffer.preencode(i,n.receipt)},encode(i,n){const d=i.start++;e.fixed32.encode(i,n.key),e.fixed32.encode(i,n.noisePublicKey);let c=0;n.capabilities&&(c|=1,e.uint.encode(i,n.capabilities)),n.invitation&&(c|=2,e.fixed32.encode(i,n.invitation)),n.receipt&&(c|=4,e.buffer.encode(i,n.receipt)),n.isMobile&&(c|=8),i.buffer[d]=c},decode(i){const n=e.uint.decode(i);return{key:e.fixed32.decode(i),noisePublicKey:e.fixed32.decode(i),capabilities:1&n?e.uint.decode(i):null,invitation:2&n?e.fixed32.decode(i):null,receipt:4&n?e.buffer.decode(i):null,isMobile:!!(8&n)}}},d={TYPE:18,preencode(i,n){i.end++,e.fixed32.preencode(i,n.key),e.fixed32.preencode(i,n.noisePublicKey),n.capabilities&&e.uint.preencode(i,n.capabilities),n.invitation&&e.fixed32.preencode(i,n.invitation),n.receipt&&e.buffer.preencode(i,n.receipt),n.name&&e.string.preencode(i,n.name)},encode(i,n){const d=i.start++;e.fixed32.encode(i,n.key),e.fixed32.encode(i,n.noisePublicKey);let c=0;n.capabilities&&(c|=1,e.uint.encode(i,n.capabilities)),n.invitation&&(c|=2,e.fixed32.encode(i,n.invitation)),n.receipt&&(c|=4,e.buffer.encode(i,n.receipt)),n.isMobile&&(c|=8),n.name&&(c|=16,e.string.encode(i,n.name)),i.buffer[d]=c},decode(i){const n=e.uint.decode(i);return{key:e.fixed32.decode(i),noisePublicKey:e.fixed32.decode(i),capabilities:1&n?e.uint.decode(i):null,invitation:2&n?e.fixed32.decode(i):null,receipt:4&n?e.buffer.decode(i):null,isMobile:!!(8&n),name:16&n?e.string.decode(i):null}}},c={TYPE:19,preencode(i,n){i.end++,n.name&&e.string.preencode(i,n.name)},encode(i,n){const d=i.start++;let c=0;n.isMobile&&(c|=1),n.name&&(c|=2,e.string.encode(i,n.name)),i.buffer[d]=c},decode(i){const n=e.uint.decode(i);return{isMobile:!!(1&n),name:2&n?e.string.decode(i):null}}},o={TYPE:15,preencode(e,n){i.preencode(e,n.key)},encode(e,n){i.encode(e,n.key)},decode:e=>({key:i.decode(e)})},t={TYPE:27,preencode(e,n){i.preencode(e,n.key)},encode(e,n){i.encode(e,n.key)},decode:e=>({key:i.decode(e)})};module.exports={AddDeviceOperationV1:n,AddDeviceOperationV2:d,UpdateDeviceOperation:c,RemoveDeviceOperationV1:o,RemoveDeviceOperationV2:t};