type ReduceWhileTag = 'cont' | 'halt'; type ReduceWhileTuple = [ReduceWhileTag, TAccumulator]; type ReduceWhileObject = { tag: ReduceWhileTag; value: TAccumulator; }; type ReduceWhileStep = ReduceWhileTuple | ReduceWhileObject; type ReduceWhileReducer = (accumulator: TAccumulator, value: TValue, index: number, array: TValue[]) => ReduceWhileStep; export declare function reduce_while(values: TValue[] | unknown, initial: TAccumulator, reducer: ReduceWhileReducer): TAccumulator; export {};