import { GraphNode, NodeDefinition, StatelessGraphNode, StatelessNodeDefinition, StatelessNodeType } from '../../types/graph'; import { IteratorResultNode } from '../graph/iterator-result'; import { NilNode } from '../graph/nil'; export interface ReduceNode extends StatelessGraphNode<'reduce', ReduceNodeProperties> { } export interface ReduceNodeDefinition extends StatelessNodeDefinition<'reduce', ReduceNodeProperties> { } export interface ReduceNodeProperties { source: NodeDefinition | GraphNode; reducer: NodeDefinition | GraphNode; initialState: any; } export declare const ReduceNodeType: StatelessNodeType<'reduce', ReduceNodeProperties>; export declare function reduce(source: NodeDefinition | GraphNode, reducer: NodeDefinition | GraphNode, initialState: any): ReduceNodeDefinition; export declare const isValidReducerStepResult: { predicate(node: GraphNode): boolean; errorMessage(node: GraphNode): string; }; export declare function getNextIteratorResult(iterable: GraphNode, callback: (value: IteratorResultNode | NilNode) => GraphNode): NodeDefinition;