import { MySqlListenerBase } from "./mySqlListenerBase";
import { SymbolTable } from "../../symbols/symbolTable";
import { AtomTableItemContext, DeleteStatementContext, FullColumnNameContext, InsertStatementContext, QuerySpecificationContext, QuerySpecificationNointoContext, SqlStatementContext, SubqueryTableItemContext, TableNameContext, UidListContext, UpdateStatementContext } from "../../grammar/mysql/MySqlParser";
export declare class MysqlListener extends MySqlListenerBase {
    /**
     * 符号表
     */
    private symbolTable;
    /**
     * 当前作用域
     */
    private currentLevel;
    constructor(symbolTable: SymbolTable);
    /**
     * 进入到sqlStatement语句，创建一个顶级的作用域
     * @param ctx
     */
    enterSqlStatement: (ctx: SqlStatementContext) => void;
    /**
     * 退出sqlStatement语句的作用域
     * @param ctx
     */
    exitSqlStatement: (ctx: SqlStatementContext) => void;
    /***************************************开始select语句***************************************************/
    /**
     * 新建一个select语句的作用域
     */
    enterQuerySpecification: (ctx: QuerySpecificationContext) => void;
    /**
     * 退出一个select语句的作用域
     * @param ctx
     */
    exitQuerySpecification: (ctx: QuerySpecificationContext) => void;
    /**
     * 新建一个select语句的作用域
     * @param ctx
     */
    enterQuerySpecificationNointo: (ctx: QuerySpecificationNointoContext) => void;
    /**
     * 退出一个select语句的作用域
     */
    exitQuerySpecificationNointo: (ctx: QuerySpecificationNointoContext) => void;
    /**
     * 进入字段处理
     * @param ctx
     */
    enterFullColumnName: (ctx: FullColumnNameContext) => void;
    /**
     * 进入到表名处理
     * @param ctx
     */
    enterAtomTableItem: (ctx: AtomTableItemContext) => void;
    /**
     * 进入到有子select时，table的别名处理
     * @param ctx
     */
    enterSubqueryTableItem: (ctx: SubqueryTableItemContext) => void;
    /***************************************结束select语句***************************************************/
    /***************************************开始delete语句***************************************************/
    /**
     * 进入到了delete处理语句的作用域
     * @param ctx
     */
    enterDeleteStatement: (ctx: DeleteStatementContext) => void;
    /**
     * 退出delete处理语句的作用域
     * @param ctx
     */
    exitDeleteStatement: (ctx: DeleteStatementContext) => void;
    /**
     * 进入到表名处理
     */
    enterTableName: (ctx: TableNameContext) => void;
    /***************************************结束select语句***************************************************/
    /***************************************开始update语句***************************************************/
    /**
     * 进入update的域
     * @param ctx
     */
    enterUpdateStatement: (ctx: UpdateStatementContext) => void;
    /**
     * 退出update的域
     * @param ctx
     */
    exitUpdateStatement: (ctx: UpdateStatementContext) => void;
    /***************************************结束update语句***************************************************/
    /***************************************开始insert语句***************************************************/
    /**
     * 进入到insert域
     * @param ctx
     */
    enterInsertStatement: (ctx: InsertStatementContext) => void;
    /**
     * 退出insert域
     * @param ctx
     */
    exitInsertStatement: (ctx: InsertStatementContext) => void;
    enterUidList: (ctx: UidListContext) => void;
}
