import { AsyncIterableX } from '../../asynciterable/asynciterablex.js'; import { memoize } from '../../asynciterable/operators/memoize.js'; export function memoizeProto(this: AsyncIterableX, readerCount?: number): AsyncIterableX; export function memoizeProto( this: AsyncIterableX, readerCount?: number, selector?: (value: AsyncIterable, signal?: AbortSignal) => AsyncIterable ): AsyncIterableX; /** * @ignore */ export function memoizeProto( this: AsyncIterableX, readerCount = -1, selector?: (value: AsyncIterable, signal?: AbortSignal) => AsyncIterable ): AsyncIterableX { return memoize(readerCount, selector)(this); } AsyncIterableX.prototype.memoize = memoizeProto; declare module '../../asynciterable/asynciterablex' { interface AsyncIterableX { memoize: typeof memoizeProto; } }