import { Chamavel } from './chamavel';
import { EspacoMemoria } from '../espaco-memoria';
import { InterpretadorInterface } from '../../interfaces';
import { ObjetoDeleguaClasse } from './objeto-delegua-classe';
import { FuncaoConstruto } from '../../construtos';
import { ArgumentoInterface } from '../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>): EspacoMemoria;
    chamar(visitante: InterpretadorInterface, argumentos: Array<ArgumentoInterface>): Promise<any>;
    funcaoPorMetodoDeClasse(instancia: ObjetoDeleguaClasse): DeleguaFuncao;
}
//# sourceMappingURL=delegua-funcao.d.ts.map