import "Peasant.idl";
import "Monarch.idl";


namespace Microsoft.Terminal.Remoting
{
    [default_interface] runtimeclass WindowManager
    {
        WindowManager();
        void ProposeCommandline(CommandlineArgs args);
        void SignalClose();
        Boolean ShouldCreateWindow { get; };
        IPeasant CurrentWindow();
        Boolean IsMonarch { get; };
        void SummonWindow(SummonWindowSelectionArgs args);
        void SummonAllWindows();
        void RequestShowNotificationIcon();
        void RequestHideNotificationIcon();
        Windows.Foundation.Collections.IVector<String> GetAllWindowLayouts();

        UInt64 GetNumberOfPeasants();
        void RequestQuitAll();
        void UpdateActiveTabTitle(String title);
        Boolean DoesQuakeWindowExist();
        Windows.Foundation.Collections.IVectorView<PeasantInfo> GetPeasantInfos();
        event Windows.Foundation.TypedEventHandler<Object, FindTargetWindowArgs> FindTargetWindowRequested;
        event Windows.Foundation.TypedEventHandler<Object, Object> BecameMonarch;
        event Windows.Foundation.TypedEventHandler<Object, Object> WindowCreated;
        event Windows.Foundation.TypedEventHandler<Object, Object> WindowClosed;
        event Windows.Foundation.TypedEventHandler<Object, QuitAllRequestedArgs> QuitAllRequested;
        event Windows.Foundation.TypedEventHandler<Object, GetWindowLayoutArgs> GetWindowLayoutRequested;
        event Windows.Foundation.TypedEventHandler<Object, Object> ShowNotificationIconRequested;
        event Windows.Foundation.TypedEventHandler<Object, Object> HideNotificationIconRequested;
    };
}
