using System;
using System.Threading.Tasks;
using Jellyfin.Data.Events;
using Jellyfin.Data.Queries;
using Jellyfin.Database.Implementations.Entities;
using MediaBrowser.Model.Querying;
namespace MediaBrowser.Model.Activity;
///
/// Interface for the activity manager.
///
public interface IActivityManager
{
///
/// The event that is triggered when an entity is created.
///
event EventHandler> EntryCreated;
///
/// Create a new activity log entry.
///
/// The entry to create.
/// A representing the asynchronous operation.
Task CreateAsync(ActivityLog entry);
///
/// Get a paged list of activity log entries.
///
/// The activity log query.
/// The page of entries.
Task> GetPagedResultAsync(ActivityLogQuery query);
///
/// Remove all activity logs before the specified date.
///
/// Activity log start date.
/// A representing the asynchronous operation.
Task CleanAsync(DateTime startDate);
}