namespace InABox.IPC
{
    public interface IRPCClientTransport : IRPCTransport
    {

        void Connect();

        void Send(RPCMessage message);
        
        TResult Send<TCommand, TParameters, TResult>(TParameters properties) where TCommand : IRPCCommand<TParameters,TResult>;
        
        void Disconnect();
        
        event RPCTransportMessageEvent OnMessage;
        
    }
}