import { IterableX } from '../../iterable/iterablex.js'; import { memoize } from '../../iterable/operators/memoize.js'; export function memoizeProto( this: IterableX, readerCount?: number ): IterableX; export function memoizeProto( this: IterableX, readerCount?: number, selector?: (value: Iterable) => Iterable ): IterableX; /** * @ignore */ export function memoizeProto( this: IterableX, readerCount = -1, selector?: (value: Iterable) => Iterable ): IterableX { return memoize(readerCount, selector)(this); } IterableX.prototype.memoize = memoizeProto; declare module '../../iterable/iterablex' { interface IterableX { memoize: typeof memoizeProto; } }