Option Strict On
Option Explicit On

Namespace Nexamas.UI.Controls

    ''' <summary>
    ''' Friend-only readiness evidence for MASToast Round 17 refinement. Toast remains
    ''' owned by the application/FloatRuntime route; item layout, renderer state,
    ''' queue promotion, continuous lifetime progression, and callback dispatch are not public SDK models.
    ''' </summary>
    Friend NotInheritable Class MASToastReadinessManifest
        Friend Sub New(status As MASToastReadinessStatus,
                       hasVisualLifecyclePolicy As Boolean,
                       hasContinuousLifetimePolicy As Boolean,
                       hasFloatRuntimeBoundary As Boolean,
                       hasReducedMotionBoundary As Boolean,
                       publicToastItemRouteAbsent As Boolean,
                       parallelToastServiceAbsent As Boolean)
            Me.Status = status
            Me.HasVisualLifecyclePolicy = hasVisualLifecyclePolicy
            Me.HasContinuousLifetimePolicy = hasContinuousLifetimePolicy
            Me.HasFloatRuntimeBoundary = hasFloatRuntimeBoundary
            Me.HasReducedMotionBoundary = hasReducedMotionBoundary
            Me.PublicToastItemRouteAbsent = publicToastItemRouteAbsent
            Me.ParallelToastServiceAbsent = parallelToastServiceAbsent
        End Sub

        Friend ReadOnly Property Status As MASToastReadinessStatus
        Friend ReadOnly Property HasVisualLifecyclePolicy As Boolean
        Friend ReadOnly Property HasContinuousLifetimePolicy As Boolean
        Friend ReadOnly Property HasFloatRuntimeBoundary As Boolean
        Friend ReadOnly Property HasReducedMotionBoundary As Boolean
        Friend ReadOnly Property PublicToastItemRouteAbsent As Boolean
        Friend ReadOnly Property ParallelToastServiceAbsent As Boolean

        Friend Shared Function CreateCurrent() As MASToastReadinessManifest
            Return New MASToastReadinessManifest(MASToastReadinessStatus.Ready, True, True, True, True, True, True)
        End Function
    End Class

End Namespace
