using System.Threading.Tasks;

namespace __NAMESPACE__;

public delegate void NotifyPacket(string data);

public abstract class JRpcTransport {
   public event NotifyPacket? OnPacket;
   public abstract Task Write(string data);

   // TODO: Spend some time finding a better permission, but it is fine for now
   public void SendPacketEvent(string data) {
      this.OnPacket?.Invoke(data);
   }
}
