using Explorer.Domain; namespace Explorer.Contracts; public interface IWorkbenchHost { IIndexingHost Indexing { get; } ITransferHost Transfers { get; } } public interface IIndexingHost { event EventHandler? ProgressChanged; void EnqueueFullScan(long sourceId); void EnqueueFolderScan(long sourceId, string pathRel); void EnqueueReconcile(long sourceId, string pathRel); void Cancel(long sourceId); } public interface ITransferHost { event EventHandler? Changed; event EventHandler? JobFinished; bool IsPaused { get; } IReadOnlyList Snapshot(); void PauseAll(); void ResumeAll(); void Pause(long jobId); void Resume(long jobId); void Retry(long jobId); void Cancel(long jobId); void Dismiss(long jobId); void ClearFinished(); bool MoveUp(long jobId); bool MoveDown(long jobId); }