import { TSESTree } from '@typescript-eslint/typescript-estree'; type Node = TSESTree.Node; type TraverseOptions = { [key in Node['type']]?: (this: AstTraverser, node: Node & { type: key; }, parent: Node | undefined) => void; } & Partial<{ enter: (this: AstTraverser, node: Node, parent: Node | undefined) => void; exit: (this: AstTraverser, node: Node, parent: Node | undefined) => void; }>; export declare class AstTraverser { private readonly allVisitorKeys; private readonly selectors; private readonly setParentPointers; private stopped; private skipped; constructor(selectors: TraverseOptions, setParentPointers?: boolean); break(): void; skip(): void; traverse(node: unknown, parent?: TSESTree.Node | undefined, _skipChildren?: boolean): void; } export declare function traverse(root: Node, options: TraverseOptions): void; export {};