using System.Net;
using System.Net.WebSockets;
using Nostr.Client.Messages;
using Nostr.Client.Requests;
namespace NostrRelay;
public record NostrClientContext(WebSocket WebSocket, IPAddress Ip, string UserAgent);
public record HandleEventResponse(bool Ok, string? Message);
public interface INostrRelay
{
///
/// If we should handle this connection
///
///
///
ValueTask AcceptConnection(NostrClientContext context);
///
/// Respond to a request for content
///
///
///
///
IAsyncEnumerable HandleRequest(NostrClientContext context, NostrRequest req);
///
/// Handle new event publish
///
///
///
///
ValueTask HandleEvent(NostrClientContext context, NostrEvent ev);
}