//
// ITakeControlCommand.cs
//
// Copyright (c) František Boháček. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
namespace NosSmooth.Core.Commands.Control;
/// <summary>
/// Represents command that supports taking control. See <see cref="TakeControlCommand"/>.
/// </summary>
public interface ITakeControlCommand : ICommand
{
/// <summary>
/// Gets whether the command may be cancelled by another task within the same group.
/// </summary>
bool CanBeCancelledByAnother { get; }
/// <summary>
/// Gets whether to wait for finish of the previous task.
/// </summary>
bool WaitForCancellation { get; }
/// <summary>
/// Gets whether to allow the user to cancel by taking any walk/focus/unfollow action.
/// </summary>
bool AllowUserCancel { get; }
/// <summary>
/// Gets whether the command should be cancelled on map change.
/// </summary>
bool CancelOnMapChange { get; }
}