import { Chamavel } from './chamavel';
import { EspacoVariaveis } from '../espaco-variaveis';
import { VisitanteComumInterface } from '../interfaces';
import { ObjetoDeleguaClasse } from './objeto-delegua-classe';
import { FuncaoConstruto } from '../construtos';
import { ArgumentoInterface } from '../interpretador/argumento-interface';
/**
 * Qualquer função declarada em código é uma DeleguaFuncao.
 */
export declare class DeleguaFuncao extends Chamavel {
    nome: string;
    declaracao: FuncaoConstruto;
    eInicializador: boolean;
    instancia: ObjetoDeleguaClasse;
    constructor(nome: string, declaracao: FuncaoConstruto, instancia?: ObjetoDeleguaClasse, eInicializador?: boolean);
    aridade(): number;
    /**
     * Método utilizado por Delégua para representar esta função quando impressa.
     * @returns {string} A representação da função como texto.
     */
    paraTexto(): string;
    /**
     * Método utilizado pelo VSCode para inspecionar esta função em depuração.
     * @returns {string} A representação da função como texto.
     */
    toString(): string;
    private resolverParametrosEspalhados;
    protected resolverAmbiente(argumentos: Array<ArgumentoInterface>): EspacoVariaveis;
    chamar(visitante: VisitanteComumInterface, argumentos: Array<ArgumentoInterface>): Promise<any>;
    funcaoPorMetodoDeClasse(instancia: ObjetoDeleguaClasse): DeleguaFuncao;
}
//# sourceMappingURL=delegua-funcao.d.ts.map