import type { AnyTxtNode, TxtNode, TxtParentNode } from "@textlint/ast-node-types"; export declare class TxtElement { node: AnyTxtNode | null; constructor(node: AnyTxtNode | null); } declare const VisitorOption: { Break: {}; Skip: {}; }; declare class Controller { private __worklist; private __leavelist; private __current; private __willStartTraverse; private __execute; /** * Gets parent nodes of current node. * The parent nodes are returned in order from the closest parent to the outer ones. * Current node is {@link current}. * @returns {Array} * @public */ parents(): TxtNode[]; /** * Gets current node during traverse. * @returns {TxtNode|null} * @public */ current(): TxtNode | null; /** * Traverse AST with visitor * @param {TxtParentNode} root * @param {Visitor} visitor */ traverse(root: TxtParentNode, visitor: Visitor): void; } export type Visitor = { enter?(node: TxtNode, parent?: TxtParentNode): unknown | void; leave?(node: TxtNode, parent?: TxtParentNode): unknown | void; }; declare function traverse(root: TxtParentNode, visitor: Visitor): void; export { Controller, traverse, VisitorOption }; //# sourceMappingURL=index.d.ts.map