import { DeleguaFuncao } from './estruturas';
import { SimboloInterface, VariavelInterface } from '../interfaces';
import { EscopoExecucaoInterface } from '../interfaces/escopo-execucao';
import { PilhaEscoposExecucaoInterface } from '../interfaces/pilha-escopos-execucao-interface';
export declare class PilhaEscoposExecucao implements PilhaEscoposExecucaoInterface {
    pilha: EscopoExecucaoInterface[];
    constructor();
    empilhar(item: EscopoExecucaoInterface): void;
    eVazio(): boolean;
    elementos(): number;
    naPosicao(posicao: number): EscopoExecucaoInterface;
    topoDaPilha(): EscopoExecucaoInterface;
    removerUltimo(): EscopoExecucaoInterface;
    private tiposCompativeis;
    private converterValor;
    definirConstante(nomeConstante: string, valor: any, tipo?: string): void;
    definirVariavel(nomeVariavel: string, valor: any, tipo?: string, tipoExplicito?: boolean): void;
    atribuirVariavelEm(distancia: number, simbolo: any, valor: any): void;
    atribuirVariavel(simbolo: SimboloInterface, valor: any, indice?: number): void;
    obterEscopoPorTipo(tipo: string): EscopoExecucaoInterface | undefined;
    obterVariavelEm(distancia: number, nome: string): VariavelInterface;
    obterValorVariavel(simbolo: SimboloInterface): VariavelInterface;
    obterVariavelPorNome(nome: string): VariavelInterface;
    /**
     * Método usado pelo depurador para obter todas as variáveis definidas.
     */
    obterTodasVariaveis(todasVariaveis?: VariavelInterface[]): any[];
    /**
     * Obtém todas as funções declaradas ou por código-fonte, ou pelo desenvolvedor
     * em console, do último escopo.
     */
    obterTodasDeleguaFuncao(): {
        [nome: string]: DeleguaFuncao;
    };
    /**
     * Obtém todas as declarações de classe do último escopo.
     * @returns
     */
    obterTodasDeclaracoesClasse(): any;
    registrarReferenciaFuncao(idFuncao: string, funcao: DeleguaFuncao): void;
    obterReferenciaFuncao(idFuncao: string): DeleguaFuncao;
    registrarReferenciaMontao(endereco: string): void;
    migrarReferenciaMontaoParaEscopoDeVariavel(nomeVariavel: string, enderecoMontao: string): void;
}
//# sourceMappingURL=pilha-escopos-execucao.d.ts.map