import { ComponentDefinition, NodeId, NodeType, NodeTypeWithChildren, NodeTypeWithPopover } from "../../data/types";
type OnPreOrderVisitNode = (node: NodeType, parent: NodeTypeWithChildren | null, popoverAnchorNode: NodeTypeWithPopover | null) => void;
type OnPostOrderVisitNode<T> = (node: NodeType, parent: NodeTypeWithChildren | null, childResults: T[] | null, popoverContent: T | null) => T;
export declare function traverseNodeDescendants<T>(definition: ComponentDefinition, nodeId: NodeId, onVisitNode: OnPostOrderVisitNode<T>): T;
export declare function preOrderTraverseNodeDescendants(definition: ComponentDefinition, nodeId: NodeId, onVisitNode: OnPreOrderVisitNode): void;
export {};
//# sourceMappingURL=custom-component-visitors.d.ts.map