#nullable enable
using IGP.UnitySDK.Models;
using IGP.UnitySDK;

namespace IGP.Multiplayer.Core
{
    /// <summary>
    /// Current health of the hosted KCP data plane.
    /// </summary>
    public enum IGPKcpHealthState
    {
        Disconnected,
        Handshaking,
        Healthy,
        Suspect,
        Stalled
    }

    /// <summary>
    /// Confirmed reason for the most recent KCP transport fault.
    /// </summary>
    public enum IGPKcpFaultReason
    {
        None,
        SendQueueOverflow,
        KcpDeadLink,
        SocketFailure,
        SendProgressTimeout
    }

    internal enum IGPTransportSendResult
    {
        Accepted,
        WouldBlock,
        Unavailable,
        InvalidPayload,
        Faulted
    }
}
