namespace BotPages.Core
{
///
/// Сервис навигации по страницам.
///
public interface INavigationService
{
///
/// Выполняет push новой страницы и вызывает её Enter.
///
Task PushAsync(string pageId, object? args, UpdateContext ctx, CancellationToken ct);
///
/// Выполняет replace текущей страницы и вызывает Enter новой.
///
Task ReplaceAsync(string pageId, object? args, UpdateContext ctx, CancellationToken ct);
///
/// Возвращается назад по стеку и вызывает Enter предыдущей.
///
Task PopAsync(UpdateContext ctx, CancellationToken ct);
///
/// Применяет декларативный результат страницы (навигация, текст, файлы).
///
Task ApplyResultAsync(UpdateContext ctx, PageResult result, CancellationToken ct);
///
/// Возвращает текущую запись стека.
///
Task CurrentAsync(UpdateContext ctx, CancellationToken ct);
///
/// Возвращает весь стек навигации.
///
Task> StackAsync(UpdateContext ctx, CancellationToken ct);
}
}