import * as types from "ast-types"; import { parse } from "./lib/parser"; import { Options } from "./lib/options"; export { /** * Parse a string of code into an augmented syntax tree suitable for * arbitrary modification and reprinting. */ parse, /** * Convenient shorthand for the ast-types package. */ types, }; /** * Traverse and potentially modify an abstract syntax tree using a * convenient visitor syntax: * * recast.visit(ast, { * names: [], * visitIdentifier: function(path) { * var node = path.value; * this.visitor.names.push(node.name); * this.traverse(path); * } * }); */ export { visit } from "ast-types"; /** * Options shared between parsing and printing. */ export { Options } from "./lib/options"; /** * Reprint a modified syntax tree using as much of the original source * code as possible. */ export declare function print(node: types.ASTNode, options?: Options): import("./lib/printer").PrintResultType; /** * Print without attempting to reuse any original source code. */ export declare function prettyPrint(node: types.ASTNode, options?: Options): import("./lib/printer").PrintResultType; /** * Convenient command-line interface (see e.g. example/add-braces). */ export declare function run(transformer: Transformer, options?: RunOptions): void; export interface Transformer { (ast: types.ASTNode, callback: (ast: types.ASTNode) => void): void; } export interface RunOptions extends Options { writeback?(code: string): void; }