export default function reduce(iterable: Iterable, reducer: (accumulator: T, value: T, index: number) => T): T; export default function reduce(iterable: Iterable, seed: T, reducer: (accumulator: T, value: T, index: number) => T): T; export default function reduce(iterable: Iterable, seed: R, reducer: (accumulator: R, value: T, index: number) => R): R;