import { ASTNode } from '../types'; export interface TraversalOptions { maxDepth?: number; skipTypes?: string[]; visitOrder?: 'pre' | 'post' | 'both'; } export type NodeVisitor = (node: ASTNode, depth: number, path: ASTNode[]) => boolean | void; export declare class ASTTraversal { static traverse(node: ASTNode, visitor: NodeVisitor, options?: TraversalOptions): void; static findNodes(node: ASTNode, predicate: (node: ASTNode) => boolean, options?: TraversalOptions): ASTNode[]; static findNodesByType(node: ASTNode, type: string | string[]): ASTNode[]; static findAncestor(node: ASTNode, predicate: (node: ASTNode) => boolean): ASTNode | null; static findAncestorByType(node: ASTNode, type: string | string[]): ASTNode | null; static getScope(node: ASTNode): ASTNode[]; private static isScopeDefiningNode; static getPath(node: ASTNode): ASTNode[]; static getSiblings(node: ASTNode): ASTNode[]; static getNextSibling(node: ASTNode): ASTNode | null; static getPreviousSibling(node: ASTNode): ASTNode | null; } //# sourceMappingURL=traversal.d.ts.map