import { ParserRuleContext } from "antlr4ng"; import type { QueryExpr } from "../ir/ir.js"; import { type StatementCategory } from "../ir/statement.js"; /** Lower a parsed MySQL file (`root`: a `;`-separated batch of statements) into the IR. A single * SELECT / VALUES / TABLE statement (plus the WITH/SELECT rejoin) lowers fully; anything else * (DDL/DML/admin/utility, multi-statement batches) becomes a flagged non-query body — a valid * parse never throws, and neither does broken/partial input. */ export declare function lower(tree: ParserRuleContext): QueryExpr; /** Per-statement categories for every `sqlStatement` in a parsed `root`, in source order — the * file-level view behind statementCategory (which folds >1 into "compound"). Parity with the other * dialects; feeds the corpus reclassifier. Note the WITH/SELECT split shows here as two "query" * entries even though lowerImpl rejoins them into one query. */ export declare function statementCategories(tree: ParserRuleContext): StatementCategory[];