import { LazyIterator } from './iterator.js'; type YieldMapper = (value: F, index: number) => T; type ReturnMapper = (value: F) => T; /** * A lazy iterator that maps values from the source iterator. */ declare class LazyMapIterator extends LazyIterator { source: LazyIterator; yieldMapper: YieldMapper; returnMapper: ReturnMapper; protected currentPos: number; constructor(source: LazyIterator, yieldMapper: YieldMapper, returnMapper: ReturnMapper); next(...args: [] | [TNext]): { done: true; value: TReturn; } | { done: false; value: T; }; } declare module "./iterator" { interface LazyIterator { /** * Creates a lazy iterator that maps values from this lazy iterator. * @param yieldMapper The mapper function to use to map values. * @param returnMapper The mapper function to use to map the return value. */ map(yieldMapper: YieldMapper, returnMapper?: ReturnMapper): LazyMapIterator; } } export { LazyMapIterator, ReturnMapper, YieldMapper };