import { AcessoIndiceVariavel, AcessoMetodo, AcessoMetodoOuPropriedade, AcessoPropriedade, Agrupamento, ArgumentoReferenciaFuncao, AtribuicaoPorIndice, Atribuir, Binario, Chamada, Construto, DefinirValor, Dicionario, FuncaoConstruto, ImportarComoConstruto, Leia, Literal, Logico, ReferenciaFuncao, Separador, SeTernario, TipoDe, Unario, Variavel, Vetor } from '../construtos';
import { Bloco, Classe, Comentario, Const, Declaracao, Enquanto, Escolha, Escreva, Expressao, Falhar, Fazer, FuncaoDeclaracao, Importar, Para, ParaCada, Retorna, Se, Tente, Var } from '../declaracoes';
import { SimboloInterface, TradutorInterface } from '../interfaces';
import { CaminhoEscolha } from '../interfaces/construtos';
/**
 * Esse tradutor traduz para JavaScript sem módulos, o que significa que
 * instruções em Delégua como `leia()` e `importar()` não são suportadas.
 * O tradutor levantará mensagem de alerta toda vez que essas instruções são encontradas.
 */
export declare class TradutorJavaScript implements TradutorInterface<Declaracao> {
    indentacao: number;
    declaracoesDeClasses: Classe[];
    traduzirSimboloOperador(operador: SimboloInterface): string;
    traduzirFuncaoOuMetodo(nomeMetodo: string, objetoResolvido: string, argumentos: Construto[]): string;
    traduzirConstrutoAgrupamento(agrupamento: Agrupamento): string;
    traduzirConstrutoAtribuir(atribuir: Atribuir): string;
    traduzirConstrutoBinario(binario: Binario): string;
    traduzirConstrutoChamada(chamada: Chamada): string;
    traduzirDeclaracaoComentario(comentario: Comentario): string;
    traduzirConstrutoDefinirValor(definirValor: DefinirValor): string;
    traduzirConstrutoDicionario(dicionario: Dicionario): string;
    traduzirConstrutoLiteral(literal: Literal): string;
    traduzirConstrutoVariavel(variavel: Variavel, argumentos: Construto[]): string;
    protected logicaComumBlocoEscopo(declaracoes: Declaracao[]): string;
    traduzirDeclaracaoBloco(declaracaoBloco: Bloco): string;
    logicaTraducaoMetodoClasse(metodoClasse: FuncaoDeclaracao): string;
    traduzirDeclaracaoClasse(declaracaoClasse: Classe): string;
    traduzirDeclaracaoEnquanto(declaracaoEnquanto: Enquanto): string;
    logicaComumCaminhosEscolha(caminho: CaminhoEscolha): string;
    traduzirDeclaracaoEscolha(declaracaoEscolha: Escolha): string;
    traduzirDeclaracaoEscreva(declaracaoEscreva: Escreva): string;
    traduzirDeclaracaoExpressao(declaracaoExpressao: Expressao): string;
    traduzirDeclaracaoFazer(declaracaoFazer: Fazer): string;
    traduzirDeclaracaoFuncao(declaracaoFuncao: FuncaoDeclaracao): string;
    traduzirDeclaracaoImportar(declaracaoImportar: Importar): string;
    traduzirExpressaoLeia(declaracaoLeia: Leia): string;
    traduzirDeclaracaoParaCada(declaracaoParaCada: ParaCada): string;
    traduzirDeclaracaoPara(declaracaoPara: Para): string;
    traduzirDeclaracaoRetorna(declaracaoRetorna: Retorna): string;
    traduzirDeclaracaoSe(declaracaoSe: Se): string;
    traduzirDeclaracaoTente(declaracaoTente: Tente): string;
    traduzirDeclaracaoConst(declaracaoConst: Const): string;
    traduzirDeclaracaoVar(declaracaoVar: Var, adicionarPontoEVirgula?: boolean): string;
    traduzirFuncaoAnonimaParaLambda(argumento: Construto): string;
    traduzirExpressaoAcessoMetodoVetor(objeto: Construto, nomeMetodo: string, argumentos: Construto[]): string;
    traduzirExpressaoAcessoMetodo(acessoMetodo: AcessoMetodo, argumentos: Construto[]): string;
    traduzirExpressaoAcessoMetodoOuPropriedade(acessoMetodo: AcessoMetodoOuPropriedade, argumentos: Construto[]): string;
    traduzirExpressaoAcessoPropriedade(acessoMetodo: AcessoPropriedade, argumentos: Construto[]): string;
    traduzirFuncaoConstruto(funcaoConstruto: FuncaoConstruto): string;
    traduzirExpressaoLogica(logico: Logico): string;
    traduzirExpressaoAtribuicaoPorIndice(AtribuicaoPorIndice: AtribuicaoPorIndice): string;
    traduzirExpressaoAcessoIndiceVariavel(acessoIndiceVariavel: AcessoIndiceVariavel): string;
    traduzirExpressaoArgumentoReferenciaFuncao(argumentoReferenciaFuncao: ArgumentoReferenciaFuncao, argumentos: Construto[]): string;
    traduzirExpressaoImportar(_: ImportarComoConstruto): string;
    traduzirExpressaoReferenciaFuncao(referenciaFuncao: ReferenciaFuncao, argumentos: Construto[]): string;
    traduzirConstrutoSeparador(separador: Separador): string;
    traduzirConstrutoSeTernario(seTernario: SeTernario): string;
    traduzirConstrutoTipoDe(tipoDe: TipoDe): string;
    traduzirConstrutoVetor(vetor: Vetor): string;
    traduzirConstrutoUnario(unario: Unario): string;
    traduzirDeclaracaoFalhar(falhar: Falhar): string;
    dicionarioConstrutos: {
        AcessoIndiceVariavel: any;
        AcessoMetodo: any;
        AcessoMetodoOuPropriedade: any;
        AcessoPropriedade: any;
        Agrupamento: any;
        ArgumentoReferenciaFuncao: any;
        AtribuicaoPorIndice: any;
        Atribuir: any;
        Binario: any;
        ComentarioComoConstruto: any;
        Chamada: any;
        DefinirValor: any;
        Dicionario: any;
        FuncaoConstruto: any;
        ImportarComoConstruto: any;
        Isto: () => string;
        Leia: any;
        Literal: any;
        Logico: any;
        ReferenciaFuncao: any;
        Separador: any;
        SeTernario: any;
        TipoDe: any;
        Unario: any;
        Variavel: any;
        Vetor: any;
    };
    dicionarioDeclaracoes: {
        Bloco: any;
        Classe: any;
        Const: any;
        Comentario: any;
        Continua: () => string;
        Enquanto: any;
        Escolha: any;
        Escreva: any;
        Expressao: any;
        Fazer: any;
        Falhar: any;
        FuncaoDeclaracao: any;
        Importar: any;
        Para: any;
        ParaCada: any;
        Retorna: any;
        Se: any;
        Sustar: () => string;
        Tente: any;
        Var: any;
    };
    traduzir(declaracoes: Declaracao[]): string;
}
//# sourceMappingURL=tradutor-javascript.d.ts.map