import { Wrappable } from '../../types/iterable'; declare function reduce(reducer: (result: T, value: T, i: number) => T): (iterable: Wrappable) => T; declare function reduce(reducer: (result: O, value: T, i: number) => O): (iterable: Wrappable) => O; declare function reduce(initial: O, reducer: (result: O, value: T, i: number) => O): (iterable: Wrappable) => O; declare function reduce(reducer: (result: T, value: T, i: number) => T, iterable: Wrappable): T; declare function reduce(reducer: (result: O, value: T, i: number) => O, iterable: Wrappable): O; declare function reduce(initial: O, reducer: (result: O, value: T, i: number) => O, iterable: Wrappable): O; export { reduce };