const e=require("compact-encoding"),{MessageId:d,ChatEvent:o,DisplayEvent:n,GenericEvent:c,FileRecord:i}=require("./messages"),r={TYPE:3,preencode(c,i){let r=0;i.display&&(r|=1),i.replyTo&&(r|=2),e.uint.preencode(c,r),o.preencode(c,i),i.display&&n.preencode(c,i.display),i.replyTo&&d.preencode(c,i.replyTo)},encode(c,i){let r=0;i.display&&(r|=1),i.replyTo&&(r|=2),e.uint.encode(c,r),o.encode(c,i),i.display&&n.encode(c,i.display),i.replyTo&&d.encode(c,i.replyTo)},decode(c){const i=e.uint.decode(c);return{...o.decode(c),display:1&i?n.decode(c):null,replyTo:2&i?d.decode(c):null}}},p={TYPE:4,preencode(c,i){let r=0;i.display&&(r|=1),i.replyTo&&(r|=2),e.uint.preencode(c,r),d.preencode(c,i.id),o.preencode(c,i),i.display&&n.preencode(c,i.display),i.replyTo&&d.preencode(c,i.replyTo)},encode(c,i){let r=0;i.display&&(r|=1),i.replyTo&&(r|=2),e.uint.encode(c,r),d.encode(c,i.id),o.encode(c,i),i.display&&n.encode(c,i.display),i.replyTo&&d.encode(c,i.replyTo)},decode(c){const i=e.uint.decode(c);return{id:d.decode(c),...o.decode(c),display:1&i?n.decode(c):null,replyTo:2&i?d.decode(c):null}}},l={TYPE:5,preencode(e,o){d.preencode(e,o.id)},encode(e,o){d.encode(e,o.id)},decode:e=>({id:d.decode(e)})},t={TYPE:6,...c},s={TYPE:7,preencode(e,o){d.preencode(e,o.id)},encode(e,o){d.encode(e,o.id)},decode:e=>({id:d.decode(e)})},a={TYPE:1,preencode(d,o){d.end++,i.preencode(d,o.file),o.description&&e.string.preencode(d,o.description)},encode(d,o){const n=d.start++;i.encode(d,o.file);let c=0;o.description&&(c|=1,e.string.encode(d,o.description)),d.buffer[n]=c},decode(d){const o=e.uint.decode(d);return{file:i.decode(d),description:1&o?e.string.decode(d):null}}},y={TYPE:2,preencode(e,o){d.preencode(e,o.id)},encode(e,o){d.encode(e,o.id)},decode:e=>({id:d.decode(e)})};module.exports={AddChatMessageOperation:r,UpdateChatMessageOperation:p,RemoveChatMessageOperation:l,AddGenericEventOperation:t,RemoveGenericEventOperation:s,AddFileOperation:a,RemoveFileOperation:y};