type Predicate = (acc: Acc, key: keyof T, value: T[keyof T], index: number, keys: Array) => Acc declare function reduce( obj: T, predicate: Predicate, initialValue?: Acc ): Acc export default reduce