import { ObjectWith } from '../interfaces'; /** * Reduces `collection` to a value which is the accumulated result of running each element in collection thru `iteratee`, where each successive invocation is supplied the return value of the previous. If accumulator is not given, the first element of collection is used as the initial value. * * Contribution to minified bundle size, when it is the only function imported: * - Lodash: 14,185 bytes * - Micro-dash: 345 bytes */ export declare function reduce(array: E[] | undefined, iteratee: (accumulator: E, value: E, index: number) => E): E; export declare function reduce(array: E[] | undefined, iteratee: (accumulator: A, value: E, index: number) => A, accumulator?: A): A; export declare function reduce(array: ObjectWith | undefined, iteratee: (accumulator: E, value: E, key: keyof E) => E): E; export declare function reduce(array: ObjectWith | undefined, iteratee: (accumulator: A, value: E, key: keyof E) => A, accumulator: A): A;