import { BasePipeline } from './base-pipeline'; import { MiddlewareContextInterface, MiddlewareLikeType } from './interfaces'; /** * Pipeline sequentially executes internally stored middleware against the context provided as .process argument. * * @implements IterableIterator * @implements PipelineInterface */ export declare class Pipeline> extends BasePipeline { /** * Pointer interface for lifting given pieces of middleware to a Pipeline. * * @param {...MiddlewareLikeType} middleware * @returns {Pipeline} */ static of>(...middleware: Array>): Pipeline; /** * Pointer interface for creating a Pipeline from array of middleware. * * @param {Array>} middleware * @returns {Pipeline} */ static from>(middleware: Array>): Pipeline; /** * Pointer interface for creating an empty pipeline. Context type is optional and defaults to * MiddlewareContextInterface. * * @returns {Pipeline} */ static empty>(): Pipeline; /** * Sequentially process middleware internally stored in the Pipeline. * * If the middleware currently being executed returns a Promise, the Promise will be resolved before moving on to * the next middleware. Pipeline does not block the event loop. To avoid resolving the Promise, assign it to a key * of the middleware context and return void. * * @param {TContext} ctx * @returns {Promise} */ process(ctx: TContext): Promise; }