namespace Lattice.Core.DragDrop.Abstractions;
///
/// Определяет контракт для объектов, которые могут принимать сбрасываемые данные
/// в операции перетаскивания с поддержкой асинхронных операций.
///
public interface IAsyncDropTarget : IDropTarget
{
///
/// Определяет, может ли объект принять сбрасываемые данные (асинхронно).
///
Task CanAcceptDropAsync(Models.DropInfo dropInfo);
///
/// Вызывается, когда перетаскиваемый объект находится над целью (асинхронно).
///
Task DragOverAsync(Models.DropInfo dropInfo);
///
/// Вызывается, когда пользователь сбрасывает данные на цель (асинхронно).
///
Task DropAsync(Models.DropInfo dropInfo);
///
/// Вызывается, когда перетаскиваемый объект покидает область цели (асинхронно).
///
Task DragLeaveAsync();
}