import { ParserRuleContext } from "antlr4ng"; import type { QueryExpr } from "../ir/ir.js"; import { type StatementCategory } from "../ir/statement.js"; /** * Lower a parsed T-SQL input (`tsql_file`, from `parseTSql`) into the IR, reporting the statement * category for ANY statement kind — the single entry, the same shape as the Databricks/Snowflake * `lower`. A query is modelled onto the IR (its body lowered, so the semantic layer runs on it); * DML / DDL / control-flow / admin statements are categorised but not modelled (no object-DDL * lowering — out of scope), returning a flagged-empty body that carries the category. */ export declare function lower(tree: ParserRuleContext): QueryExpr; /** Per-statement categories for every top-level unit of a parsed `tsql_file`, in source order — * the file-level view behind statementCategory (which folds >1 into "compound"). Lets consumers * (e.g. the corpus gates) see what a multi-statement script contains. */ export declare function statementCategories(tree: ParserRuleContext): StatementCategory[];