import * as S from './types'; export declare type VisitFunction = (node: T) => void; export interface VisitObject { enter?: VisitFunction; exit?: VisitFunction; } export declare type Visit = VisitFunction | VisitObject; export declare type Visitor = { [K in S.NodeType]?: Visit; }; export declare function visit(node: T, visitor: Visitor): void;