API/ILichessBoardEventStream.cs

Interface for an unstarted Lichess board event stream. Declares events for receiving lines, errors and completion, a Completion Task, Start method and implements IAsyncDisposable.

Networking
#nullable enable annotations

namespace LichessNET.API;

/// <summary>
/// An unstarted Lichess board event stream.
/// </summary>
public interface ILichessBoardEventStream : IAsyncDisposable
{
    event Action<ILichessBoardEventStream, JsonElement>? LineReceived;
    event Action<ILichessBoardEventStream, Exception>? ErrorReceived;
    event Action<ILichessBoardEventStream>? Completed;

    Task Completion { get; }

    void Start();
}