Option Strict On
Option Explicit On

Namespace Nexamas.UI.Services

    ''' <summary>
    ''' Abstract clipboard service used by MAS text input components.
    ''' </summary>
    ''' <remarks>
    ''' Text-input core classes depend on this abstraction instead of WinForms directly.
    ''' Implementations may use WinForms, a test clipboard, or another platform clipboard.
    ''' </remarks>
    <Global.System.ComponentModel.EditorBrowsable(Global.System.ComponentModel.EditorBrowsableState.Advanced)>
    Friend Interface IMASClipboardService

        ''' <summary>
        ''' Returns True when the clipboard currently contains text that can be pasted.
        ''' </summary>
        Function HasText() As Boolean

        ''' <summary>
        ''' Reads clipboard text. Implementations should return an empty string when no text is available.
        ''' </summary>
        Function GetText() As String

        ''' <summary>
        ''' Writes text to the clipboard. Null values should be treated as an empty string by implementations.
        ''' </summary>
        Sub SetText(text As String)

    End Interface

End Namespace
