import { AcessoIndiceVariavel, AcessoIntervaloVariavel, AcessoMetodo, AcessoPropriedade, Agrupamento, ArgumentoReferenciaFuncao, AtribuicaoPorIndice, Atribuir, Chamada, ComentarioComoConstruto, ExpressaoRegular, FimPara, FormatacaoEscrita, Leia, Literal, Logico, ReferenciaFuncao, Super, TipoDe, Tupla, TuplaN, Unario, Variavel } from '../../../construtos';
import { Bloco, CabecalhoPrograma, Classe, Comentario, Const, ConstMultiplo, Continua, Declaracao, Enquanto, Escolha, Escreva, EscrevaMesmaLinha, Expressao, Fazer, FuncaoDeclaracao, Importar, Para, ParaCada, Retorna, Se, Sustar, TendoComo, Tente, TextoDocumentacao, Var, VarMultiplo } from '../../../declaracoes';
import { EspacoMemoria } from '../../espaco-memoria';
import { ConstrutoInterface } from '../../../interfaces/construtos/construto-interface';
import { Chamavel } from '../../estruturas';
import { InterpretadorInterface, ResultadoParcialInterpretadorInterface, SimboloInterface, VariavelInterface } from '../../../interfaces';
import { ErroInterpretadorInterface } from '../../../interfaces/erros/erro-interpretador-interface';
import { PilhaEscoposExecucaoInterface } from '../../../interfaces/pilha-escopos-execucao-interface';
import { RetornoInterpretadorInterface } from '../../../interfaces/retornos';
import { ContinuarQuebra, RetornoQuebra, SustarQuebra } from '../../../quebras';
import { InicioAlgoritmo } from '../../../declaracoes/inicio-algoritmo';
export declare class InterpretadorPortugolIpt implements InterpretadorInterface {
    diretorioBase: any;
    funcaoDeRetorno: Function;
    funcaoDeRetornoMesmaLinha: Function;
    pilhaEscoposExecucao: PilhaEscoposExecucaoInterface;
    interfaceEntradaSaida: any;
    declaracoes: Declaracao[];
    erros: ErroInterpretadorInterface[];
    hashArquivoDeclaracaoAtual: number;
    linhaDeclaracaoAtual: number;
    classeAtualEmExecucao: any;
    resultadoInterpretador: ResultadoParcialInterpretadorInterface[];
    constructor(diretorioBase: string, funcaoDeRetorno?: Function, funcaoDeRetornoMesmaLinha?: Function);
    resolverValor(objeto: any): any;
    eVerdadeiro(objeto: any): boolean;
    protected eIgual(esquerda: any, direita: any): boolean;
    protected verificarOperandosNumeros(operador: SimboloInterface, direita: VariavelInterface | any, esquerda: VariavelInterface | any): void;
    paraTexto(objeto: any): any;
    visitarExpressaoLiteral(expressao: Literal): Promise<any>;
    visitarExpressaoAgrupamento(expressao: Agrupamento): Promise<any>;
    visitarExpressaoBinaria(expressao: any): Promise<any>;
    visitarExpressaoLogica(expressao: Logico): Promise<any>;
    visitarExpressaoUnaria(expressao: Unario): Promise<any>;
    visitarExpressaoDeAtribuicao(expressao: Atribuir): Promise<any>;
    visitarExpressaoDeVariavel(expressao: Variavel): any;
    visitarExpressaoLeia(expressao: Leia): Promise<any>;
    visitarExpressaoFormatacaoEscrita(declaracao: FormatacaoEscrita): Promise<string>;
    visitarExpressaoAcessoIndiceVariavel(expressao: AcessoIndiceVariavel): Promise<any>;
    visitarExpressaoAtribuicaoPorIndice(expressao: AtribuicaoPorIndice): Promise<any>;
    visitarExpressaoDeChamada(expressao: Chamada): Promise<any>;
    private chamarFuncaoEmbutida;
    visitarDeclaracaoDeExpressao(declaracao: Expressao): Promise<any>;
    visitarDeclaracaoEscreva(declaracao: Escreva): Promise<any>;
    visitarDeclaracaoEscrevaMesmaLinha(declaracao: EscrevaMesmaLinha): Promise<any>;
    protected avaliarArgumentosEscreva(argumentos: ConstrutoInterface[]): Promise<string>;
    visitarDeclaracaoVar(declaracao: Var): Promise<any>;
    visitarDeclaracaoConst(declaracao: Const): Promise<any>;
    visitarDeclaracaoSe(declaracao: Se): Promise<any>;
    visitarDeclaracaoEnquanto(declaracao: Enquanto): Promise<any>;
    visitarDeclaracaoPara(declaracao: Para): Promise<any>;
    visitarDeclaracaoFazer(declaracao: Fazer): Promise<any>;
    visitarDeclaracaoEscolha(declaracao: Escolha): Promise<any>;
    visitarDeclaracaoComentario(declaracao: Comentario): Promise<any>;
    executarBloco(declaracoes: Declaracao[], ambiente?: EspacoMemoria): Promise<any>;
    visitarExpressaoBloco(declaracao: Bloco): Promise<any>;
    visitarExpressaoTuplaN(_expressao: TuplaN): Promise<any> | void;
    visitarExpressaoAcessoIntervaloVariavel(_expressao: AcessoIntervaloVariavel): Promise<any> | void;
    visitarDeclaracaoTextoDocumentacao(_declaracao: TextoDocumentacao): Promise<any> | void;
    visitarExpressaoSeparador(_expressao: any): Promise<any> | void;
    visitarExpressaoComentario(_expressao: ComentarioComoConstruto): Promise<any> | void;
    visitarExpressaoArgumentoReferenciaFuncao(_expressao: ArgumentoReferenciaFuncao): Promise<any> | void;
    visitarExpressaoReferenciaFuncao(_expressao: ReferenciaFuncao): Promise<any> | void;
    visitarExpressaoAcessoMetodo(_expressao: AcessoMetodo): Promise<any> | void;
    visitarExpressaoAcessoPropriedade(_expressao: AcessoPropriedade): Promise<any> | void;
    visitarDeclaracaoTendoComo(_declaracao: TendoComo): Promise<any>;
    visitarDeclaracaoInicioAlgoritmo(_declaracao: InicioAlgoritmo): Promise<any>;
    visitarDeclaracaoCabecalhoPrograma(_declaracao: CabecalhoPrograma): Promise<any>;
    visitarExpressaoTupla(_expressao: Tupla): Promise<any>;
    visitarExpressaoAcessoElementoMatriz(_expressao: any): never;
    visitarExpressaoAtribuicaoPorIndicesMatriz(_expressao: any): Promise<any>;
    visitarExpressaoExpressaoRegular(_expressao: ExpressaoRegular): Promise<any>;
    visitarExpressaoTipoDe(_expressao: TipoDe): Promise<any>;
    visitarExpressaoFalhar(_expressao: any): Promise<any>;
    visitarDeclaracaoParaCada(_declaracao: ParaCada): Promise<any>;
    visitarDeclaracaoVarMultiplo(_declaracao: VarMultiplo): Promise<any>;
    visitarDeclaracaoConstMultiplo(_declaracao: ConstMultiplo): Promise<any>;
    visitarExpressaoContinua(_declaracao?: Continua): ContinuarQuebra;
    visitarExpressaoSustar(_declaracao?: Sustar): SustarQuebra;
    visitarExpressaoRetornar(_declaracao: Retorna): Promise<RetornoQuebra>;
    visitarExpressaoFuncaoConstruto(_expressao: any): never;
    visitarExpressaoDefinirValor(_expressao: any): never;
    visitarDeclaracaoDefinicaoFuncao(_declaracao: FuncaoDeclaracao): never;
    visitarDeclaracaoClasse(_declaracao: Classe): never;
    visitarExpressaoAcessoMetodoOuPropriedade(_expressao: any): never;
    visitarExpressaoIsto(_expressao: any): never;
    visitarExpressaoDicionario(_expressao: any): never;
    visitarExpressaoVetor(expressao: any): Promise<any[]>;
    visitarExpressaoSuper(_expressao: Super): never;
    visitarExpressaoFimPara(_declaracao: FimPara): never;
    visitarDeclaracaoTente(_declaracao: Tente): never;
    visitarDeclaracaoImportar(_declaracao: Importar): never;
    avaliar(expressao: ConstrutoInterface | Declaracao): Promise<any>;
    protected procurarVariavel(simbolo: SimboloInterface): any;
    executar(declaracao: Declaracao, mostrarResultado?: boolean): Promise<any>;
    executarUltimoEscopo(manterAmbiente?: boolean): Promise<any>;
    executarChamavel(chamavel: Chamavel, argumentos: any[]): Promise<any>;
    interpretar(declaracoes: Declaracao[], manterAmbiente?: boolean): Promise<RetornoInterpretadorInterface>;
}
//# sourceMappingURL=interpretador-portugol-ipt.d.ts.map