import * as ASTv1 from '../v1/api'; import { VisitorKey } from '../v1/visitor-keys'; import WalkerPath from './path'; export interface FullNodeTraversal { enter?(node: N, path: WalkerPath): void; exit?(node: N, path: WalkerPath): void; keys?: KeysVisitor; } export declare type NodeHandler = (node: N, path: WalkerPath) => void; export declare type NodeTraversal = FullNodeTraversal | NodeHandler; export declare type NodeVisitor = { [P in keyof ASTv1.Nodes]?: NodeTraversal; } & { All?: NodeTraversal; }; export interface FullKeyTraversal { enter?(node: N, key: K): void; exit?(node: N, key: K): void; } export declare type KeyHandler> = (node: N, key: K) => void; export declare type KeyTraversal> = FullKeyTraversal | KeyHandler; export declare type KeysVisitor = { [P in VisitorKey]?: KeyTraversal; } & { All?: KeyTraversal>; }; //# sourceMappingURL=visitor.d.ts.map