import { AcessoIndiceVariavel, AcessoMetodoOuPropriedade, AcessoPropriedade, Agrupamento, ArgumentoReferenciaFuncao, AtribuicaoPorIndice, Atribuir, Binario, Chamada, Construto, Deceto, Dicionario, Dupla, DefinirValor, Elvis, ExpressaoRegular, FuncaoConstruto, Leia, Literal, Logico, Noneto, Octeto, Quarteto, Quinteto, ReferenciaFuncao, Separador, Sexteto, Septeto, SeTernario, TipoDe, Trio, TuplaN, Unario, Variavel, Vetor } from '../construtos';
import { Ajuda, Bloco, Classe, Comentario, Const, ConstMultiplo, Declaracao, Enquanto, Escolha, Escreva, EscrevaMesmaLinha, Expressao, Falhar, Fazer, FuncaoDeclaracao, Importar, Para, ParaCada, Retorna, Se, TendoComo, Tente, TextoDocumentacao, Var, VarMultiplo } from '../declaracoes';
import { SimboloInterface } from '../interfaces';
import { CaminhoEscolha } from '../interfaces/construtos';
export declare class TradutorAssemblyScript {
    indentacao: number;
    declaracoesDeClasses: Classe[];
    traduzirSimboloOperador(operador: SimboloInterface): string;
    traduzirFuncoesNativas(metodo: string): string;
    traduzirFuncaoNativaGlobal(nomeFuncao: string, argumentos: string[]): string | null;
    traduzirConstrutoArgumentoReferenciaFuncao(argumentoReferenciaFuncao: ArgumentoReferenciaFuncao, argumentos: Construto[]): string;
    traduzirConstrutoReferenciaFuncao(referenciaFuncao: ReferenciaFuncao, argumentos: Construto[]): string;
    traduzirConstrutoSeparador(separador: Separador): string;
    traduzirDeclaracaoEscreva(declaracaoEscreva: Escreva): string;
    traduzirConstrutoLiteral(literal: Literal): string;
    resolveTipoDeclaracaoVarEContante(tipo: string): string;
    traduzirDeclaracaoVar(declaracaoVar: Var): string;
    traduzirDeclaracaoConst(declaracaoConst: Const): string;
    traduzirDeclaracaoTente(declaracaoTente: Tente): string;
    traduzirDeclaracaoVarMultiplo(declaracaoVarMultiplo: VarMultiplo): string;
    traduzirDeclaracaoConstMultiplo(declaracaoConstMultiplo: ConstMultiplo): string;
    traduzirDeclaracaoEscrevaMesmaLinha(declaracaoEscrevaMesmaLinha: EscrevaMesmaLinha): string;
    traduzirDeclaracaoTendoComo(declaracaoTendoComo: TendoComo): string;
    traduzirDeclaracaoAjuda(declaracaoAjuda: Ajuda): string;
    traduzirDeclaracaoTextoDocumentacao(declaracaoTextoDoc: TextoDocumentacao): string;
    logicaComumBlocoEscopo(declaracoes: Declaracao[]): string;
    logicaTraducaoMetodoClasse(metodoClasse: FuncaoDeclaracao): string;
    traduzirDeclaracaoClasse(declaracaoClasse: Classe): string;
    traduzirDeclaracaoSe(declaracaoSe: Se): string;
    traduzirDeclaracaoRetorna(declaracaoRetorna: Retorna): string;
    traduzirDeclaracaoParaCada(declaracaoParaCada: ParaCada): string;
    traduzirDeclaracaoPara(declaracaoPara: Para): string;
    traduzirDeclaracaoImportar(declaracaoImportar: Importar): string;
    traduzirDeclaracaoLeia(declaracaoLeia: Leia): string;
    traduzirDeclaracaoFuncao(declaracaoFuncao: FuncaoDeclaracao): string;
    inferirTipoRetornoFuncao(funcao: FuncaoConstruto): string;
    inferirTipoDeRetorno(corpo: Declaracao[]): string | null;
    traduzirDeclaracaoFalhar(falhar: Falhar): string;
    traduzirDeclaracaoFazer(declaracaoFazer: Fazer): string;
    traduzirDeclaracaoExpressao(declaracaoExpressao: Expressao): string;
    logicaComumCaminhosEscolha(caminho: CaminhoEscolha): string;
    traduzirDeclaracaoEscolha(declaracaoEscolha: Escolha): string;
    traduzirDeclaracaoEnquanto(declaracaoEnquanto: Enquanto): string;
    traduzirDeclaracaoBloco(declaracaoBloco: Bloco): string;
    traduzirConstrutoVetor(vetor: Vetor): string;
    traduzirConstrutoDicionario(dicionario: Dicionario): string;
    traduzirConstrutoDupla(dupla: Dupla): string;
    traduzirConstrutoTrio(trio: Trio): string;
    traduzirConstrutoQuarteto(quarteto: Quarteto): string;
    traduzirConstrutoQuinteto(quinteto: Quinteto): string;
    traduzirConstrutoSexteto(sexteto: Sexteto): string;
    traduzirConstrutoSepteto(septeto: Septeto): string;
    traduzirConstrutoOcteto(octeto: Octeto): string;
    traduzirConstrutoNoneto(noneto: Noneto): string;
    traduzirConstrutoDeceto(deceto: Deceto): string;
    traduzirConstrutoTuplaN(tuplaN: TuplaN): string;
    traduzirConstrutoSeTernario(seTernario: SeTernario): string;
    traduzirConstrutoElvis(elvis: Elvis): string;
    traduzirConstrutoAcessoPropriedade(acessoPropriedade: AcessoPropriedade): string;
    traduzirConstrutoExpressaoRegular(expressaoRegular: ExpressaoRegular): string;
    traduzirConstrutoVariavel(variavel: Variavel): string;
    traduzirConstrutoUnario(unario: Unario): string;
    traduzirConstrutoTipoDe(tipoDe: TipoDe): string;
    traduzirConstrutoLogico(logico: Logico): string;
    traduzirFuncaoConstruto(funcaoConstruto: FuncaoConstruto): string;
    traduzirConstrutoDefinirValor(definirValor: DefinirValor): string;
    traduzirConstrutoChamada(chamada: Chamada): string;
    traduzirConstrutoComentario(comentario: Comentario): string;
    traduzirConstrutoBinario(binario: Binario): string;
    traduzirConstrutoAtribuir(atribuir: Atribuir): string;
    traduzirConstrutoAtribuicaoPorIndice(AtribuicaoPorIndice: AtribuicaoPorIndice): string;
    traduzirConstrutoAcessoMetodo(acessoMetodo: AcessoMetodoOuPropriedade): string;
    traduzirConstrutoAcessoIndiceVariavel(acessoIndiceVariavel: AcessoIndiceVariavel): string;
    traduzirConstrutoAgrupamento(agrupamento: Agrupamento): string;
    dicionarioConstrutos: {
        AcessoIndiceVariavel: any;
        AcessoMetodo: any;
        AcessoMetodoOuPropriedade: any;
        AcessoPropriedade: any;
        Agrupamento: any;
        ArgumentoReferenciaFuncao: any;
        AtribuicaoPorIndice: any;
        Atribuir: any;
        Binario: any;
        Chamada: any;
        ComentarioComoConstruto: any;
        Deceto: any;
        DefinirValor: any;
        Dicionario: any;
        Dupla: any;
        Elvis: any;
        ExpressaoRegular: any;
        FuncaoConstruto: any;
        Isto: () => string;
        Literal: any;
        Logico: any;
        Noneto: any;
        Octeto: any;
        Quarteto: any;
        Quinteto: any;
        ReferenciaFuncao: any;
        Separador: any;
        SeTernario: any;
        Sexteto: any;
        Septeto: any;
        TipoDe: any;
        Trio: any;
        TuplaN: any;
        Unario: any;
        Variavel: any;
        Vetor: any;
    };
    dicionarioDeclaracoes: {
        Ajuda: any;
        Bloco: any;
        Enquanto: any;
        Comentario: any;
        Continua: () => string;
        Escolha: any;
        Expressao: any;
        Fazer: any;
        Falhar: any;
        FuncaoDeclaracao: any;
        Importar: any;
        Leia: any;
        Para: any;
        ParaCada: any;
        Retorna: any;
        Se: any;
        Sustar: () => string;
        Classe: any;
        Tente: any;
        Const: any;
        ConstMultiplo: any;
        Var: any;
        VarMultiplo: any;
        Escreva: any;
        EscrevaMesmaLinha: any;
        TendoComo: any;
        TextoDocumentacao: any;
    };
    detectarImportacoesNecessarias(declaracoes: Declaracao[]): string;
    private varrerDeclaracoesParaImports;
    traduzir(declaracoes: Declaracao[]): string;
}
//# sourceMappingURL=tradutor-assemblyscript.d.ts.map