using FluentResults;

namespace NexusReader.UI.Shared.Services;

public interface ISyncService
{
    Task<Result> InitializeAsync();
    Task<Result> UpdateProgressAsync(string pageId, Guid ebookId, double progress, string? chapterTitle, int chapterIndex);
    event Func<string, DateTime, Task> OnProgressReceived;
    event Func<string, double, Task>? OnIngestionProgressReceived;
    Task DisposeAsync();
}
