using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace WK5.Core
{
    /// <summary>
    /// Stellt ein Interface zur Verfügung, um aufeinander abhängige Abläufe darzustellen.
    /// </summary>
    /// <typeparam name="T"></typeparam>
    public interface IPipeline<T>
    {
        /// <summary>
        /// Ruft die Pipeline mit den Abläufen ab, oder legt diese fest.
        /// </summary>
        Pipeline<T> Pipeline { get; set; }
        /// <summary>
        /// Legt alle Aufrufe der <see cref="Pipeline"/> fest.
        /// </summary>
        /// <returns></returns>
        Task SetupPipelineAsync();
    }


}
