import type { NASLObject } from '@lcap/nasl-types'; type SyntaxNode = NASLObject.SyntaxNodeObject; type TraverseCallBack = (node: SyntaxNode, nodePath: string, parentNode?: TraverseContext) => R; export interface TraverseContext { /** 上级节点路径 */ parentPath: string; /** 当前节点在上级节点的属性 Key */ parentKey: string; /** * 如果当前节点是上级节点的子节点数组,则表示它在数组中的下标值 */ index?: number; /** 上级节点数据 */ parentNode: SyntaxNode; } /** * 快速先序遍历未实例化 Nasl 数据 * * @description 会直接使用静态化的节点属性进行遍历,不使用对象反射+类型判断的形式 * @description 回调内传入的数据,一定是含有`concept`属性的对象 */ export declare function fastTraverseNaslObject(root: SyntaxNode, cb: TraverseCallBack): void; /** * 快速先序遍历未实例化 Nasl 数据 * * @description 会直接使用静态化的节点属性进行遍历,不使用对象反射+类型判断的形式 * @description 回调内传入的数据,一定是含有`concept`属性的对象 * @param rootPath 表示输入节点的节点路径 */ export declare function fastTraverseNaslObject(root: SyntaxNode, rootPath: string, cb: TraverseCallBack): void; /** * 带剪枝的快速先序遍历未实例化 Nasl 数据 * * @description 会直接使用静态化的节点属性进行遍历,不使用对象反射+类型判断的形式 * @description 回调内传入的数据,一定是含有`concept`属性的对象 * @description 回调返回`true`时将不会继续迭代子树(不是终止迭代) */ export declare function fastTraverseNaslObjectWithPruning(root: SyntaxNode, cb: TraverseCallBack): void; /** * 带剪枝的快速先序遍历未实例化 Nasl 数据 * * @description 会直接使用静态化的节点属性进行遍历,不使用对象反射+类型判断的形式 * @description 回调内传入的数据,一定是含有`concept`属性的对象 * @description 回调返回`true`时将不会继续迭代子树(不是终止迭代) * @param rootPath 表示输入节点的节点路径 */ export declare function fastTraverseNaslObjectWithPruning(root: SyntaxNode, rootPath: string, cb: TraverseCallBack): void; /** * 带终止条件的快速先序遍历未实例化 Nasl 数据 * * @description 会直接使用静态化的节点属性进行遍历,不使用对象反射+类型判断的形式 * @description 回调内传入的数据,一定是含有`concept`属性的对象 * @description 回调返回`true`时将终止整个迭代 */ export declare function fastTraverseNaslObjectWithStop(root: SyntaxNode, cb: TraverseCallBack): void; /** * 带终止条件的快速先序遍历未实例化 Nasl 数据 * * @description 会直接使用静态化的节点属性进行遍历,不使用对象反射+类型判断的形式 * @description 回调内传入的数据,一定是含有`concept`属性的对象 * @description 回调返回`true`时将终止整个迭代 * @param rootPath 表示输入节点的节点路径 */ export declare function fastTraverseNaslObjectWithStop(root: SyntaxNode, rootPath: string, cb: TraverseCallBack): void; /** 按照节点路径找到节点 */ export declare function findNodeObjectByPath(root: SyntaxNode, nodePath: string): SyntaxNode | undefined; export {}; //# sourceMappingURL=traverse.d.ts.map