export interface IContext { readonly data: T; } export interface IPipelineTask { readonly name: string; executeAsync(context: IContext): Promise; } export interface IPipelineTaskQueue { then(task: IPipelineTask | ((context: IContext) => Promise)): IPipelineTaskQueue; }