import { Node } from "./cst/Node"; type NodeByType = Extract; /** * A map with a transform function for each Node type, like: * * { select_clause: (node: SelectClause) => {}, * from_clause: (node: FromClause) => {}, * paren_expr: (node: ParenExpr) => {}, * ... } */ export type FullTransformMap = { [TType in TNode["type"]]: (node: NodeByType) => T; }; export type TransformMap = Partial>; /** * Creates a function that transforms the whole syntax tree to data type T. * @param map An object with a transform function for each CST node type */ export declare function cstTransformer(map: TransformMap): (node: Node) => T; export {};