using BotPages.Core.Context; using BotPages.Core.Messaging; namespace BotPages.Core.Abstractions; /// /// Контракт адаптера мессенджера. /// Определяет операции отправки сообщений, файлов и прогресса. /// public interface IMessengerAdapter { Capabilities Capabilities { get; } /// /// Отправить текстовое сообщение в чат. /// Task SendTextAsync(string chatId, string text, MessageFormat format, IEnumerable>? inline, IEnumerable>? reply, string? messageId, CancellationToken ct ); /// /// Отправить файл в чат. /// Task SendFileAsync(string chatId, FileDescriptor file, string? caption, MessageFormat? captionFormat, CancellationToken ct); /// /// Создать билдер альбома для отправки медиагруппы. /// IAlbumBuilder CreateAlbumBuilder(PageContext ctx); /// /// Вызывается при выходе со страницы. /// Task OnLeaveAsync(PageContext ctx, CancellationToken ct); } /// /// Контракт конфигурации адаптера. /// public interface IMessangerAdapterSetup : IMessengerAdapter { /// /// Запуск работы адаптера /// /// /// /// Task StartAdapterAsync(Func onUpdate, CancellationToken ct); }