declare module "./iterator" { interface LazyIterator { /** * Creates a lazy iterator that reduces the values in this lazy iterator to a single value. * @param reducer The reducer function to use to reduce values. */ reduce(reducer: (accumulator: T, value: T) => T): T; /** * Creates a lazy iterator that reduces the values in this lazy iterator to a single value. * @param reducer The reducer function to use to reduce values. * @param initialValue The initial value to use for the accumulator. */ reduce(reducer: (accumulator: T, value: T) => T, initialValue: T): T; /** * Creates a lazy iterator that reduces the values in this lazy iterator to a single value. * @param reducer The reducer function to use to reduce values. * @param initialValue The initial value to use for the accumulator. */ reduce(reducer: (accumulator: U, value: T) => U, initialValue: U): U; } }