using ErsatzTV.Core.Domain; namespace ErsatzTV.Core.Interfaces.Scheduling; public interface IMediaCollectionEnumerator { CollectionEnumeratorState State { get; } Option Current { get; } Option CurrentIncludeInProgramGuide { get; } int Count { get; } Option MinimumDuration { get; } void ResetState(CollectionEnumeratorState state); void MoveNext(); }