export type Syntax = { [x: string]: string; }; export type acorn = typeof import("acorn"); export type SourceLocation = import("estree").SourceLocation; export type Node = import("estree").Node; export type Comment = import("estree").Comment; export type int = number; export type ExtendedComment = { extendedRange: [int, int]; range: [number, number]; } & Comment; export type NodeWithRange = Node & { range: [number, number]; }; export type VisitorCallback = (node: NodeWithRange, parent: Node) => Node | object | undefined; export type Visitor = { leave?: VisitorCallback; enter?: VisitorCallback; fallback?: "iteration" | ((obj: object) => string[]); keys?: { [key: string]: string[]; }; }; export const Syntax: { [x: string]: string; }; /** * @param {NodeWithRange} root * @param {Visitor} visitor */ export function traverse(root: NodeWithRange, visitor: Visitor): void; /** * @param {NodeWithRange} root * @param {Visitor} visitor */ export function replace(root: NodeWithRange, visitor: Visitor): import("estree").Node; /** * @typedef {{ * value: any; * start?: number; * end?: number; * loc?: SourceLocation; * range?: [number, number]; * regex?: {flags: string, pattern: string}; * }} BaseEsprimaToken * * @typedef {{ * type: string; * range: [number, number] * } & BaseEsprimaToken} EsprimaToken */ /** * @param {NodeWithRange} tree * @param {ExtendedComment[]} providedComments * @param {EsprimaToken[]} tokens */ export function attachComments(tree: NodeWithRange, providedComments: ExtendedComment[], tokens: ({ type: string; range: [number, number]; } & { value: any; start?: number; end?: number; loc?: SourceLocation; range?: [number, number]; regex?: { flags: string; pattern: string; }; })[]): NodeWithRange; export namespace VisitorKeys { let AssignmentExpression: string[]; let AssignmentPattern: string[]; let ArrayExpression: string[]; let ArrayPattern: string[]; let ArrowFunctionExpression: string[]; let AwaitExpression: string[]; let BlockStatement: string[]; let BinaryExpression: string[]; let BreakStatement: string[]; let CallExpression: string[]; let CatchClause: string[]; let ChainExpression: string[]; let ClassBody: string[]; let ClassDeclaration: string[]; let ClassExpression: string[]; let ComprehensionBlock: string[]; let ComprehensionExpression: string[]; let ConditionalExpression: string[]; let ContinueStatement: string[]; let DebuggerStatement: never[]; let DirectiveStatement: never[]; let DoWhileStatement: string[]; let EmptyStatement: never[]; let ExportAllDeclaration: string[]; let ExportDefaultDeclaration: string[]; let ExportNamedDeclaration: string[]; let ExportSpecifier: string[]; let ExpressionStatement: string[]; let ForStatement: string[]; let ForInStatement: string[]; let ForOfStatement: string[]; let FunctionDeclaration: string[]; let FunctionExpression: string[]; let GeneratorExpression: string[]; let Identifier: never[]; let IfStatement: string[]; let ImportExpression: string[]; let ImportDeclaration: string[]; let ImportDefaultSpecifier: string[]; let ImportNamespaceSpecifier: string[]; let ImportSpecifier: string[]; let Literal: never[]; let LabeledStatement: string[]; let LogicalExpression: string[]; let MemberExpression: string[]; let MetaProperty: string[]; let MethodDefinition: string[]; let ModuleSpecifier: never[]; let NewExpression: string[]; let ObjectExpression: string[]; let ObjectPattern: string[]; let PrivateIdentifier: never[]; let Program: string[]; let Property: string[]; let PropertyDefinition: string[]; let RestElement: string[]; let ReturnStatement: string[]; let SequenceExpression: string[]; let SpreadElement: string[]; let Super: never[]; let SwitchStatement: string[]; let SwitchCase: string[]; let TaggedTemplateExpression: string[]; let TemplateElement: never[]; let TemplateLiteral: string[]; let ThisExpression: never[]; let ThrowStatement: string[]; let TryStatement: string[]; let UnaryExpression: string[]; let UpdateExpression: string[]; let VariableDeclaration: string[]; let VariableDeclarator: string[]; let WhileStatement: string[]; let WithStatement: string[]; let YieldExpression: string[]; } export namespace VisitorOption { export { BREAK as Break }; export { SKIP as Skip }; export { REMOVE as Remove }; } export const Controller: { new (): { path(): (string | null)[] | null; type(): "Identifier" | "Literal" | "Program" | "ExpressionStatement" | "BlockStatement" | "EmptyStatement" | "DebuggerStatement" | "WithStatement" | "ReturnStatement" | "LabeledStatement" | "BreakStatement" | "ContinueStatement" | "IfStatement" | "SwitchStatement" | "SwitchCase" | "ThrowStatement" | "TryStatement" | "CatchClause" | "WhileStatement" | "DoWhileStatement" | "ForStatement" | "ForInStatement" | "FunctionDeclaration" | "VariableDeclaration" | "VariableDeclarator" | "ThisExpression" | "ArrayExpression" | "ObjectExpression" | "Property" | "FunctionExpression" | "UnaryExpression" | "UpdateExpression" | "BinaryExpression" | "AssignmentExpression" | "LogicalExpression" | "MemberExpression" | "ConditionalExpression" | "CallExpression" | "NewExpression" | "SequenceExpression" | "ForOfStatement" | "Super" | "SpreadElement" | "ArrowFunctionExpression" | "YieldExpression" | "TemplateLiteral" | "TaggedTemplateExpression" | "TemplateElement" | "ObjectPattern" | "ArrayPattern" | "RestElement" | "AssignmentPattern" | "ClassBody" | "MethodDefinition" | "ClassDeclaration" | "ClassExpression" | "MetaProperty" | "ImportDeclaration" | "ImportSpecifier" | "ImportDefaultSpecifier" | "ImportNamespaceSpecifier" | "ExportNamedDeclaration" | "ExportSpecifier" | "ExportDefaultDeclaration" | "ExportAllDeclaration" | "AwaitExpression" | "ChainExpression" | "ImportExpression" | "PropertyDefinition" | "PrivateIdentifier" | "StaticBlock"; parents(): ((import("estree").Property & { range: [number, number]; }) | (import("estree").CatchClause & { range: [number, number]; }) | (import("estree").ClassDeclaration & { range: [number, number]; }) | (import("estree").ClassExpression & { range: [number, number]; }) | (import("estree").ClassBody & { range: [number, number]; }) | (import("estree").Identifier & { range: [number, number]; }) | (import("estree").SimpleLiteral & { range: [number, number]; }) | (import("estree").RegExpLiteral & { range: [number, number]; }) | (import("estree").BigIntLiteral & { range: [number, number]; }) | (import("estree").ThisExpression & { range: [number, number]; }) | (import("estree").ArrayExpression & { range: [number, number]; }) | (import("estree").ObjectExpression & { range: [number, number]; }) | (import("estree").FunctionExpression & { range: [number, number]; }) | (import("estree").UnaryExpression & { range: [number, number]; }) | (import("estree").UpdateExpression & { range: [number, number]; }) | (import("estree").BinaryExpression & { range: [number, number]; }) | (import("estree").AssignmentExpression & { range: [number, number]; }) | (import("estree").LogicalExpression & { range: [number, number]; }) | (import("estree").MemberExpression & { range: [number, number]; }) | (import("estree").ConditionalExpression & { range: [number, number]; }) | (import("estree").SimpleCallExpression & { range: [number, number]; }) | (import("estree").NewExpression & { range: [number, number]; }) | (import("estree").SequenceExpression & { range: [number, number]; }) | (import("estree").ArrowFunctionExpression & { range: [number, number]; }) | (import("estree").YieldExpression & { range: [number, number]; }) | (import("estree").TemplateLiteral & { range: [number, number]; }) | (import("estree").TaggedTemplateExpression & { range: [number, number]; }) | (import("estree").MetaProperty & { range: [number, number]; }) | (import("estree").AwaitExpression & { range: [number, number]; }) | (import("estree").ChainExpression & { range: [number, number]; }) | (import("estree").ImportExpression & { range: [number, number]; }) | (import("estree").FunctionDeclaration & { range: [number, number]; }) | (import("estree").MethodDefinition & { range: [number, number]; }) | (import("estree").ImportDeclaration & { range: [number, number]; }) | (import("estree").ExportNamedDeclaration & { range: [number, number]; }) | (import("estree").ExportDefaultDeclaration & { range: [number, number]; }) | (import("estree").ExportAllDeclaration & { range: [number, number]; }) | (import("estree").ImportSpecifier & { range: [number, number]; }) | (import("estree").ImportDefaultSpecifier & { range: [number, number]; }) | (import("estree").ImportNamespaceSpecifier & { range: [number, number]; }) | (import("estree").ExportSpecifier & { range: [number, number]; }) | (import("estree").ObjectPattern & { range: [number, number]; }) | (import("estree").ArrayPattern & { range: [number, number]; }) | (import("estree").RestElement & { range: [number, number]; }) | (import("estree").AssignmentPattern & { range: [number, number]; }) | (import("estree").PrivateIdentifier & { range: [number, number]; }) | (import("estree").Program & { range: [number, number]; }) | (import("estree").PropertyDefinition & { range: [number, number]; }) | (import("estree").SpreadElement & { range: [number, number]; }) | (import("estree").ExpressionStatement & { range: [number, number]; }) | (import("estree").BlockStatement & { range: [number, number]; }) | (import("estree").StaticBlock & { range: [number, number]; }) | (import("estree").EmptyStatement & { range: [number, number]; }) | (import("estree").DebuggerStatement & { range: [number, number]; }) | (import("estree").WithStatement & { range: [number, number]; }) | (import("estree").ReturnStatement & { range: [number, number]; }) | (import("estree").LabeledStatement & { range: [number, number]; }) | (import("estree").BreakStatement & { range: [number, number]; }) | (import("estree").ContinueStatement & { range: [number, number]; }) | (import("estree").IfStatement & { range: [number, number]; }) | (import("estree").SwitchStatement & { range: [number, number]; }) | (import("estree").ThrowStatement & { range: [number, number]; }) | (import("estree").TryStatement & { range: [number, number]; }) | (import("estree").WhileStatement & { range: [number, number]; }) | (import("estree").DoWhileStatement & { range: [number, number]; }) | (import("estree").ForStatement & { range: [number, number]; }) | (import("estree").ForInStatement & { range: [number, number]; }) | (import("estree").ForOfStatement & { range: [number, number]; }) | (import("estree").VariableDeclaration & { range: [number, number]; }) | (import("estree").Super & { range: [number, number]; }) | (import("estree").SwitchCase & { range: [number, number]; }) | (import("estree").TemplateElement & { range: [number, number]; }) | (import("estree").VariableDeclarator & { range: [number, number]; }) | null)[]; current(): NodeWithRange | null; /** * @param {VisitorCallback|undefined} callback * @param {Element} element * @returns {undefined|Node|object} Object == skip, break, or replace */ __execute(callback: VisitorCallback | undefined, element: { node: NodeWithRange | null; path: string | [string, number] | null; wrap: "Property" | null; ref: { parent: import("estree").Node | { root: Node; } | (import("estree").Node | null)[]; key: string | number; /** * @param {Node|null} node * @returns {void} */ replace(node: Node | null): void; /** * @returns {boolean} */ remove(): boolean; } | null; }): undefined | Node | object; /** @type {Element|null} */ __current: { node: NodeWithRange | null; path: string | [string, number] | null; wrap: "Property" | null; ref: { parent: import("estree").Node | { root: Node; } | (import("estree").Node | null)[]; key: string | number; /** * @param {Node|null} node * @returns {void} */ replace(node: Node | null): void; /** * @returns {boolean} */ remove(): boolean; } | null; } | null; __state: object | null | undefined; /** * notify control skip / break * @param {object} flag */ notify(flag: object): void; /** * skip child nodes of current node */ skip(): void; /** * break traversals */ break(): void; /** * remove node */ remove(): void; /** @type {(Element|object)[]} */ __worklist: ({ node: NodeWithRange | null; path: string | [string, number] | null; wrap: "Property" | null; ref: { parent: import("estree").Node | { root: Node; } | (import("estree").Node | null)[]; key: string | number; /** * @param {Node|null} node * @returns {void} */ replace(node: Node | null): void; /** * @returns {boolean} */ remove(): boolean; } | null; } | object)[]; /** @type {Element[]} */ __leavelist: { node: NodeWithRange | null; path: string | [string, number] | null; wrap: "Property" | null; ref: { parent: import("estree").Node | { root: Node; } | (import("estree").Node | null)[]; key: string | number; /** * @param {Node|null} node * @returns {void} */ replace(node: Node | null): void; /** * @returns {boolean} */ remove(): boolean; } | null; }[]; /** @type {{[key: string]: string[]}} */ __keys: { [key: string]: string[]; }; /** * @param {Node} root * @param {Visitor} visitor * @returns {void} */ __initialize(root: Node, visitor: Visitor): void; visitor: Visitor | undefined; root: import("estree").Node | undefined; __fallback: ((obj: object) => string[]) | { (o: object): string[]; (o: {}): string[]; } | null | undefined; /** * @param {NodeWithRange} root * @param {Visitor} visitor * @returns {void} */ traverse(root: NodeWithRange, visitor: Visitor): void; /** * @param {NodeWithRange} root * @param {Visitor} visitor * @returns {Node} */ replace(root: NodeWithRange, visitor: Visitor): Node; }; }; export function cloneEnvironment(): { Syntax: Syntax; traverse: (root: NodeWithRange, visitor: Visitor) => void; replace: (root: NodeWithRange, visitor: Visitor) => import("estree").Node; attachComments: (tree: NodeWithRange, providedComments: ExtendedComment[], tokens: ({ type: string; range: [number, number]; } & { value: any; start?: number; end?: number; loc?: SourceLocation; range?: [number, number]; regex?: { flags: string; pattern: string; }; })[]) => NodeWithRange; VisitorKeys: { AssignmentExpression: string[]; AssignmentPattern: string[]; ArrayExpression: string[]; ArrayPattern: string[]; ArrowFunctionExpression: string[]; AwaitExpression: string[]; BlockStatement: string[]; BinaryExpression: string[]; BreakStatement: string[]; CallExpression: string[]; CatchClause: string[]; ChainExpression: string[]; ClassBody: string[]; ClassDeclaration: string[]; ClassExpression: string[]; ComprehensionBlock: string[]; ComprehensionExpression: string[]; ConditionalExpression: string[]; ContinueStatement: string[]; DebuggerStatement: never[]; DirectiveStatement: never[]; DoWhileStatement: string[]; EmptyStatement: never[]; ExportAllDeclaration: string[]; ExportDefaultDeclaration: string[]; ExportNamedDeclaration: string[]; ExportSpecifier: string[]; ExpressionStatement: string[]; ForStatement: string[]; ForInStatement: string[]; ForOfStatement: string[]; FunctionDeclaration: string[]; FunctionExpression: string[]; GeneratorExpression: string[]; Identifier: never[]; IfStatement: string[]; ImportExpression: string[]; ImportDeclaration: string[]; ImportDefaultSpecifier: string[]; ImportNamespaceSpecifier: string[]; ImportSpecifier: string[]; Literal: never[]; LabeledStatement: string[]; LogicalExpression: string[]; MemberExpression: string[]; MetaProperty: string[]; MethodDefinition: string[]; ModuleSpecifier: never[]; NewExpression: string[]; ObjectExpression: string[]; ObjectPattern: string[]; PrivateIdentifier: never[]; Program: string[]; Property: string[]; PropertyDefinition: string[]; RestElement: string[]; ReturnStatement: string[]; SequenceExpression: string[]; SpreadElement: string[]; Super: never[]; SwitchStatement: string[]; SwitchCase: string[]; TaggedTemplateExpression: string[]; TemplateElement: never[]; TemplateLiteral: string[]; ThisExpression: never[]; ThrowStatement: string[]; TryStatement: string[]; UnaryExpression: string[]; UpdateExpression: string[]; VariableDeclaration: string[]; VariableDeclarator: string[]; WhileStatement: string[]; WithStatement: string[]; YieldExpression: string[]; }; VisitorOption: { Break: {}; Skip: {}; Remove: {}; }; Controller: { new (): { path(): (string | null)[] | null; type(): "Identifier" | "Literal" | "Program" | "ExpressionStatement" | "BlockStatement" | "EmptyStatement" | "DebuggerStatement" | "WithStatement" | "ReturnStatement" | "LabeledStatement" | "BreakStatement" | "ContinueStatement" | "IfStatement" | "SwitchStatement" | "SwitchCase" | "ThrowStatement" | "TryStatement" | "CatchClause" | "WhileStatement" | "DoWhileStatement" | "ForStatement" | "ForInStatement" | "FunctionDeclaration" | "VariableDeclaration" | "VariableDeclarator" | "ThisExpression" | "ArrayExpression" | "ObjectExpression" | "Property" | "FunctionExpression" | "UnaryExpression" | "UpdateExpression" | "BinaryExpression" | "AssignmentExpression" | "LogicalExpression" | "MemberExpression" | "ConditionalExpression" | "CallExpression" | "NewExpression" | "SequenceExpression" | "ForOfStatement" | "Super" | "SpreadElement" | "ArrowFunctionExpression" | "YieldExpression" | "TemplateLiteral" | "TaggedTemplateExpression" | "TemplateElement" | "ObjectPattern" | "ArrayPattern" | "RestElement" | "AssignmentPattern" | "ClassBody" | "MethodDefinition" | "ClassDeclaration" | "ClassExpression" | "MetaProperty" | "ImportDeclaration" | "ImportSpecifier" | "ImportDefaultSpecifier" | "ImportNamespaceSpecifier" | "ExportNamedDeclaration" | "ExportSpecifier" | "ExportDefaultDeclaration" | "ExportAllDeclaration" | "AwaitExpression" | "ChainExpression" | "ImportExpression" | "PropertyDefinition" | "PrivateIdentifier" | "StaticBlock"; parents(): ((import("estree").Property & { range: [number, number]; }) | (import("estree").CatchClause & { range: [number, number]; }) | (import("estree").ClassDeclaration & { range: [number, number]; }) | (import("estree").ClassExpression & { range: [number, number]; }) | (import("estree").ClassBody & { range: [number, number]; }) | (import("estree").Identifier & { range: [number, number]; }) | (import("estree").SimpleLiteral & { range: [number, number]; }) | (import("estree").RegExpLiteral & { range: [number, number]; }) | (import("estree").BigIntLiteral & { range: [number, number]; }) | (import("estree").ThisExpression & { range: [number, number]; }) | (import("estree").ArrayExpression & { range: [number, number]; }) | (import("estree").ObjectExpression & { range: [number, number]; }) | (import("estree").FunctionExpression & { range: [number, number]; }) | (import("estree").UnaryExpression & { range: [number, number]; }) | (import("estree").UpdateExpression & { range: [number, number]; }) | (import("estree").BinaryExpression & { range: [number, number]; }) | (import("estree").AssignmentExpression & { range: [number, number]; }) | (import("estree").LogicalExpression & { range: [number, number]; }) | (import("estree").MemberExpression & { range: [number, number]; }) | (import("estree").ConditionalExpression & { range: [number, number]; }) | (import("estree").SimpleCallExpression & { range: [number, number]; }) | (import("estree").NewExpression & { range: [number, number]; }) | (import("estree").SequenceExpression & { range: [number, number]; }) | (import("estree").ArrowFunctionExpression & { range: [number, number]; }) | (import("estree").YieldExpression & { range: [number, number]; }) | (import("estree").TemplateLiteral & { range: [number, number]; }) | (import("estree").TaggedTemplateExpression & { range: [number, number]; }) | (import("estree").MetaProperty & { range: [number, number]; }) | (import("estree").AwaitExpression & { range: [number, number]; }) | (import("estree").ChainExpression & { range: [number, number]; }) | (import("estree").ImportExpression & { range: [number, number]; }) | (import("estree").FunctionDeclaration & { range: [number, number]; }) | (import("estree").MethodDefinition & { range: [number, number]; }) | (import("estree").ImportDeclaration & { range: [number, number]; }) | (import("estree").ExportNamedDeclaration & { range: [number, number]; }) | (import("estree").ExportDefaultDeclaration & { range: [number, number]; }) | (import("estree").ExportAllDeclaration & { range: [number, number]; }) | (import("estree").ImportSpecifier & { range: [number, number]; }) | (import("estree").ImportDefaultSpecifier & { range: [number, number]; }) | (import("estree").ImportNamespaceSpecifier & { range: [number, number]; }) | (import("estree").ExportSpecifier & { range: [number, number]; }) | (import("estree").ObjectPattern & { range: [number, number]; }) | (import("estree").ArrayPattern & { range: [number, number]; }) | (import("estree").RestElement & { range: [number, number]; }) | (import("estree").AssignmentPattern & { range: [number, number]; }) | (import("estree").PrivateIdentifier & { range: [number, number]; }) | (import("estree").Program & { range: [number, number]; }) | (import("estree").PropertyDefinition & { range: [number, number]; }) | (import("estree").SpreadElement & { range: [number, number]; }) | (import("estree").ExpressionStatement & { range: [number, number]; }) | (import("estree").BlockStatement & { range: [number, number]; }) | (import("estree").StaticBlock & { range: [number, number]; }) | (import("estree").EmptyStatement & { range: [number, number]; }) | (import("estree").DebuggerStatement & { range: [number, number]; }) | (import("estree").WithStatement & { range: [number, number]; }) | (import("estree").ReturnStatement & { range: [number, number]; }) | (import("estree").LabeledStatement & { range: [number, number]; }) | (import("estree").BreakStatement & { range: [number, number]; }) | (import("estree").ContinueStatement & { range: [number, number]; }) | (import("estree").IfStatement & { range: [number, number]; }) | (import("estree").SwitchStatement & { range: [number, number]; }) | (import("estree").ThrowStatement & { range: [number, number]; }) | (import("estree").TryStatement & { range: [number, number]; }) | (import("estree").WhileStatement & { range: [number, number]; }) | (import("estree").DoWhileStatement & { range: [number, number]; }) | (import("estree").ForStatement & { range: [number, number]; }) | (import("estree").ForInStatement & { range: [number, number]; }) | (import("estree").ForOfStatement & { range: [number, number]; }) | (import("estree").VariableDeclaration & { range: [number, number]; }) | (import("estree").Super & { range: [number, number]; }) | (import("estree").SwitchCase & { range: [number, number]; }) | (import("estree").TemplateElement & { range: [number, number]; }) | (import("estree").VariableDeclarator & { range: [number, number]; }) | null)[]; current(): NodeWithRange | null; /** * @param {VisitorCallback|undefined} callback * @param {Element} element * @returns {undefined|Node|object} Object == skip, break, or replace */ __execute(callback: VisitorCallback | undefined, element: { node: NodeWithRange | null; path: string | [string, number] | null; wrap: "Property" | null; ref: { parent: import("estree").Node | { root: Node; } | (import("estree").Node | null)[]; key: string | number; /** * @param {Node|null} node * @returns {void} */ replace(node: Node | null): void; /** * @returns {boolean} */ remove(): boolean; } | null; }): undefined | Node | object; /** @type {Element|null} */ __current: { node: NodeWithRange | null; path: string | [string, number] | null; wrap: "Property" | null; ref: { parent: import("estree").Node | { root: Node; } | (import("estree").Node | null)[]; key: string | number; /** * @param {Node|null} node * @returns {void} */ replace(node: Node | null): void; /** * @returns {boolean} */ remove(): boolean; } | null; } | null; __state: object | null | undefined; /** * notify control skip / break * @param {object} flag */ notify(flag: object): void; /** * skip child nodes of current node */ skip(): void; /** * break traversals */ break(): void; /** * remove node */ remove(): void; /** @type {(Element|object)[]} */ __worklist: ({ node: NodeWithRange | null; path: string | [string, number] | null; wrap: "Property" | null; ref: { parent: import("estree").Node | { root: Node; } | (import("estree").Node | null)[]; key: string | number; /** * @param {Node|null} node * @returns {void} */ replace(node: Node | null): void; /** * @returns {boolean} */ remove(): boolean; } | null; } | object)[]; /** @type {Element[]} */ __leavelist: { node: NodeWithRange | null; path: string | [string, number] | null; wrap: "Property" | null; ref: { parent: import("estree").Node | { root: Node; } | (import("estree").Node | null)[]; key: string | number; /** * @param {Node|null} node * @returns {void} */ replace(node: Node | null): void; /** * @returns {boolean} */ remove(): boolean; } | null; }[]; /** @type {{[key: string]: string[]}} */ __keys: { [key: string]: string[]; }; /** * @param {Node} root * @param {Visitor} visitor * @returns {void} */ __initialize(root: Node, visitor: Visitor): void; visitor: Visitor | undefined; root: import("estree").Node | undefined; __fallback: ((obj: object) => string[]) | { (o: object): string[]; (o: {}): string[]; } | null | undefined; /** * @param {NodeWithRange} root * @param {Visitor} visitor * @returns {void} */ traverse(root: NodeWithRange, visitor: Visitor): void; /** * @param {NodeWithRange} root * @param {Visitor} visitor * @returns {Node} */ replace(root: NodeWithRange, visitor: Visitor): Node; }; }; cloneEnvironment: () => /*elided*/ any; }; declare const BREAK: {}; declare const SKIP: {}; declare const REMOVE: {}; export {}; //# sourceMappingURL=estraverse.d.ts.map