export declare type Collection = T | T[] | Map> | Iterable; /** * Top level visitor that will expect an implemented _visit function to visit * a single node and then provides a generic function for collections of nodes * and will visit each member of the collection. */ export declare abstract class AbstractVisitor { visit(node: Collection | null): void; protected abstract _visit(node: T): void; } export declare abstract class AbstractTransformVisitor { visit(node: Collection | null): Collection | null; protected abstract _visit(node: T): T; }