///
import { UnaryFunction, OperatorFunction } from '../interfaces';
/**
* This class serves as the base for all operations which support [Symbol.iterator].
*/
export declare abstract class IterableX implements Iterable {
abstract [Symbol.iterator](): Iterator;
forEach(projection: (value: T, index: number) => void, thisArg?: any): void;
/** @nocollapse */
pipe(...operations: UnaryFunction, R>[]): R;
pipe(...operations: OperatorFunction[]): IterableX;
pipe(writable: R, options?: {
end?: boolean;
}): R;
}
declare module '../iterable/iterablex' {
interface IterableX extends Iterable {
pipe(): IterableX;
pipe(op1: OperatorFunction): IterableX;
pipe(op1: OperatorFunction, op2: OperatorFunction): IterableX;
pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction): IterableX;
pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction): IterableX;
pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction): IterableX;
pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction, op6: OperatorFunction): IterableX;
pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction, op6: OperatorFunction, op7: OperatorFunction): IterableX;
pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction, op6: OperatorFunction, op7: OperatorFunction, op8: OperatorFunction): IterableX;
pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction, op6: OperatorFunction, op7: OperatorFunction, op8: OperatorFunction, op9: OperatorFunction): IterableX;
pipe(...operations: OperatorFunction[]): IterableX;
pipe(op1: A, options?: {
end?: boolean;
}): A;
}
}