using BotPages.Core.Context; namespace BotPages.Core.Abstractions; /// /// Контракт адаптера мессенджера. /// Определяет операции отправки сообщений, файлов и прогресса. /// public interface IMessengerAdapter { /// /// Доступные возможности мессенджера. /// Capabilities Capabilities { get; } /// /// Универсальный метод отправки с использованием общего описания запроса. /// Task SendAsync(SendRequest request, CancellationToken ct = default); /// /// Создать билдер альбома для отправки медиагруппы. /// IAlbumBuilder CreateAlbumBuilder(PageContext ctx); /// /// Вызывается при выходе со страницы. /// Task OnLeaveAsync(PageContext ctx, CancellationToken ct); } /// /// Контракт конфигурации адаптера. /// public interface IMessengerAdapterSetup : IMessengerAdapter { /// /// Запуск работы адаптера /// /// /// /// Task StartAdapterAsync(Func onUpdate, List commands, CancellationToken ct); }