using ErsatzTV.Core.Domain; using ErsatzTV.Core.Scheduling; namespace ErsatzTV.Core.Interfaces.Scheduling; public interface IPlayoutModeScheduler where T : ProgramScheduleItem { PlayoutSchedulerResult Schedule( PlayoutBuilderState playoutBuilderState, Dictionary collectionEnumerators, T scheduleItem, ProgramScheduleItem nextScheduleItem, DateTimeOffset hardStop, Random random, CancellationToken cancellationToken); }