import { ResultadoAvaliacao } from '../../interfaces/depuracao';
import { InterpretadorComDepuracao } from './interpretador-com-depuracao';
/**
 * Avaliador de expressões para depuração.
 *
 * Este avaliador é usado para avaliar expressões no painel de depuração do VSCode
 * (watch panel) de forma segura, sem modificar o estado da execução do programa.
 *
 * Utiliza a infraestrutura existente do interpretador (MicroLexador, MicroAvaliadorSintatico)
 * e delega a avaliação para o InterpretadorComDepuracao, garantindo que expressões com
 * efeitos colaterais sejam bloqueadas.
 *
 * Exemplo de uso:
 * ```typescript
 * const avaliador = new AvaliadorExpressaoDepuracao(interpretador);
 * const resultado = await avaliador.avaliarExpressao('variavel + 10');
 * if (resultado.sucesso) {
 *     console.log(`Valor: ${resultado.valor}, Tipo: ${resultado.tipo}`);
 * } else {
 *     console.error(`Erro: ${resultado.erro}`);
 * }
 * ```
 */
export declare class AvaliadorExpressaoDepuracao {
    private interpretador;
    constructor(interpretador: InterpretadorComDepuracao);
    /**
     * Avalia uma expressão em formato de texto e retorna seu resultado.
     *
     * Este método:
     * 1. Usa o MicroLexador para tokenizar a expressão
     * 2. Usa o MicroAvaliadorSintatico para gerar a AST
     * 3. Valida se a expressão não tem efeitos colaterais
     * 4. Delega a avaliação para o interpretador
     * 5. Resolve e formata o valor resultante
     *
     * @param expressaoTexto A expressão em formato de texto (ex: "variavel + 10")
     * @param permitirEfeitosColaterais Se `true`, permite expressões com efeitos colaterais.
     *                                   Padrão: `false` (somente leitura).
     * @returns Uma Promise que resolve para um ResultadoAvaliacao com o resultado ou erro.
     */
    avaliarExpressao(expressaoTexto: string, permitirEfeitosColaterais?: boolean): Promise<ResultadoAvaliacao>;
    /**
     * Formata o valor de uma expressão para exibição no painel de depuração.
     * Converte o valor para uma representação textual legível.
     *
     * @param valor O valor a ser formatado.
     * @returns Uma string representando o valor.
     */
    formatarValorParaExibicao(valor: any): string;
    /**
     * Avalia uma expressão e retorna diretamente seu valor formatado para exibição.
     * Atalho para `avaliarExpressao()` seguido de `formatarValorParaExibicao()`.
     *
     * @param expressaoTexto A expressão em formato de texto.
     * @param permitirEfeitosColaterais Se `true`, permite expressões com efeitos colaterais.
     * @returns Uma Promise que resolve para uma string com o valor formatado ou mensagem de erro.
     */
    avaliarEFormatar(expressaoTexto: string, permitirEfeitosColaterais?: boolean): Promise<string>;
}
//# sourceMappingURL=avaliador-expressao-depuracao.d.ts.map