import type { IProc } from "./api.js"; import { AProc } from "./aproc.js"; /** * Composes the given {@link IProc}s into a single new processor instance. The * returned `IProc` processes the given procs in serial (sequence), i.e. output * from 1st proc is used as input for 2nd etc. * * @remarks * Provides optimized (loop free) versions for 2-4 inputs * * @param a - * @param b - */ export declare function serial(a: IProc, b: IProc): IProc; export declare function serial(a: IProc, b: IProc, c: IProc): IProc; export declare function serial(a: IProc, b: IProc, c: IProc, d: IProc): IProc; export declare function serial(a: IProc, b: IProc, c: IProc, d: IProc, ...procs: IProc[]): IProc; export declare class Serial2 extends AProc { protected _a: IProc; protected _b: IProc; constructor(_a: IProc, _b: IProc); next(x: A): C; } export declare class Serial3 extends AProc { protected _a: IProc; protected _b: IProc; protected _c: IProc; constructor(_a: IProc, _b: IProc, _c: IProc); next(x: A): D; } export declare class Serial4 extends AProc { protected _a: IProc; protected _b: IProc; protected _c: IProc; protected _d: IProc; constructor(_a: IProc, _b: IProc, _c: IProc, _d: IProc); next(x: A): E; } export declare class Serial extends AProc { protected _procs: IProc[]; constructor(_procs: IProc[]); next(x: any): any; } //# sourceMappingURL=serial.d.ts.map