media-stream-library
Version:
Media stream library for Node & the Web.
56 lines (55 loc) • 1.85 kB
TypeScript
import { Component, Sink, Source, Tube } from '../components/component';
/**
* Pipeline
*
* A pipeline is a linked list of components with some convenience methods to
* handle inserting or removing components from the linked list.
*
* A internal set keeps track of which components the pipeline contains, while
* any order is completely determined by the component's connectedness.
*/
export declare class Pipeline {
firstComponent: Component;
lastComponent: Component;
private _set;
/**
* @param components - The components of the pipeline in order.
*/
constructor(...components: Component[]);
/**
* @param components - The components of the pipeline in order.
*/
init(...components: Component[]): void;
/**
* Inserts a component into the pipeline.
*
* @param component - Tube or Source behind which to insert a new component.
* @param component - Tube or Sink to insert.
*/
insertAfter(component: Source | Tube, newComponent: Tube | Sink): this;
/**
* Inserts a component into the pipeline.
*
* @param component - Tube or Sink in front of which to insert a new component.
* @param component - Tube or Source to insert.
*/
insertBefore(component: Tube | Sink, newComponent: Source | Tube): this;
/**
* Removes a component from the pipeline.
*
* @param component - Component to remove.
*/
remove(component: Component): this;
/**
* Inserts a component at the end of the pipeline.
*
* @param component - Tube or Sink to insert.
*/
append(...components: Array<Tube | Sink>): this;
/**
* Inserts a component at the beginning of the pipeline.
*
* @param component - Tube or Source to insert.
*/
prepend(...components: Array<Source | Tube>): this;
}