namespace NexusReader.UI.Shared.Services;

public interface IReaderInteractionService
{
    event Func<string, Task>? OnNodeSelected;
    event Func<string, Task>? OnScrollToBlockRequested;
    event Func<string, Task>? OnHighlightBlockRequested;
    event Func<string, string, SelectionCoordinates, Task>? OnTextSelected;
    event Func<Task>? OnAssistantRequested;

    Task NotifyNodeSelected(string nodeId);
    Task RequestScrollToBlock(string blockId);
    Task RequestHighlightBlock(string blockId);
    Task NotifyTextSelected(string text, string blockId, SelectionCoordinates coords);
    Task RequestAssistant();
}

public record SelectionCoordinates(double Top, double Left, double Width);
