import { AcessoMetodo, AcessoMetodoOuPropriedade, AcessoPropriedade, ArgumentoReferenciaFuncao, ReferenciaFuncao, TipoDe } from '../construtos';
import { InterpretadorBase } from './interpretador-base';
import { FuncaoDeclaracao, Retorna } from '../declaracoes';
import { RetornoQuebra } from '../quebras';
/**
 * O interpretador de Delégua.
 */
export declare class Interpretador extends InterpretadorBase {
    visitarDeclaracaoDefinicaoFuncao(declaracao: FuncaoDeclaracao): void;
    visitarExpressaoAcessoMetodo(expressao: AcessoMetodo): Promise<any>;
    /**
     * Casos que ocorrem aqui:
     *
     * - Quando o método ou propriedade é ou 'qualquer', ou vetor
     *   de 'qualquer' ('qualquer[]'), e uma primitiva é usada.
     * - Quando o objeto é uma classe definida em código.
     * @param {AcessoMetodoOuPropriedade} expressao A expressão de acesso a método ou propriedade.
     * @returns A primitiva encontrada.
     */
    visitarExpressaoAcessoMetodoOuPropriedade(expressao: AcessoMetodoOuPropriedade): Promise<any>;
    visitarExpressaoAcessoPropriedade(expressao: AcessoPropriedade): Promise<any>;
    visitarExpressaoArgumentoReferenciaFuncao(expressao: ArgumentoReferenciaFuncao): Promise<any>;
    visitarExpressaoReferenciaFuncao(expressao: ReferenciaFuncao): Promise<any>;
    visitarExpressaoRetornar(declaracao: Retorna): Promise<RetornoQuebra>;
    visitarExpressaoTipoDe(expressao: TipoDe): Promise<string>;
}
//# sourceMappingURL=interpretador.d.ts.map