import * as nodes from '../types/nodes'; export interface NodeVisitor { All?: NodeHandler; Program?: NodeHandler; MustacheStatement?: NodeHandler; BlockStatement?: NodeHandler; ElementModifierStatement?: NodeHandler; PartialStatement?: NodeHandler; CommentStatement?: NodeHandler; MustacheCommentStatement?: NodeHandler; ElementNode?: NodeHandler; AttrNode?: NodeHandler; TextNode?: NodeHandler; ConcatStatement?: NodeHandler; SubExpression?: NodeHandler; PathExpression?: NodeHandler; StringLiteral?: NodeHandler; BooleanLiteral?: NodeHandler; NumberLiteral?: NodeHandler; UndefinedLiteral?: NodeHandler; NullLiteral?: NodeHandler; Hash?: NodeHandler; HashPair?: NodeHandler; } export declare type NodeHandler = NodeHandlerFunction | EnterExitNodeHandler; export interface NodeHandlerFunction { (node: T): any; } export interface EnterExitNodeHandler { enter: NodeHandlerFunction; exit: NodeHandlerFunction; keys: any; } export default function traverse(node: nodes.BaseNode, visitor: NodeVisitor): void; export declare function normalizeVisitor(visitor: NodeVisitor): {};