import { HashMap } from "@nebtex/hashmaps";
import { SymbolElement } from "./symbolElement";
export declare class SymbolTable {
    /**
     * 符号表的内部数据结构
     */
    private scopeLevelMap;
    /**
     * 作用域的初始值
     */
    private initLevel;
    /**
     * 向符号表里添加一个域的描述,即进入一个作用域
     */
    insertTable(parentLevel: string, table: HashMap<any, SymbolElement>): string;
    /**
     * 从当前作用域中退出
     * @param currentLevel
     */
    exitTable(currentLevel: string): string | undefined;
    /**
     * 根据作用域找到该作用域下的所有变量表
     * @param level
     */
    getTable(level: string): HashMap<any, SymbolElement>;
    getInitLevel(): string;
    /**
     * 获取符号表内的作用作用域
     */
    getAllLevel(): IterableIterator<string>;
}
