import { BlocoDeclaracao } from "../declaracoes";
import { Simbolo } from "../lexador";
import { ErroAvaliadorSintatico } from "./erro-avaliador-sintatico";
import { Modificador } from "../modificadores";
import { Seletor } from "../seletores";
import { AvaliadorSintaticoInterface, ImportadorInterface, SimboloInterface } from "../interfaces";
import { Valor } from "../valores/valor";
import { ValorNumerico } from "../valores";
/**
 * O avaliador sintático reverso avalia símbolos de arquivos CSS,
 * transformando-os em estruturas de alto nível prontas para
 * serem traduzidas para FolEs.
 */
export declare class AvaliadorSintaticoReverso implements AvaliadorSintaticoInterface {
    simbolos: Simbolo[];
    erros: ErroAvaliadorSintatico[];
    importador: ImportadorInterface;
    atual: number;
    constructor(importador: ImportadorInterface);
    erro(simbolo: Simbolo, mensagemDeErro: string): ErroAvaliadorSintatico;
    estaNoFinal(): boolean;
    avancarEDevolverAnterior(): Simbolo;
    verificarTipoSimboloAtual(tipo: string): boolean;
    consumir(tipo: string, mensagemDeErro: string): Simbolo;
    declaracaoPorSeletor(): BlocoDeclaracao;
    protected resolverPseudoclasse(): any;
    protected seletorPorEstrutura(): Seletor;
    protected seletorPorId(): Seletor;
    protected seletorPorNomeDeClasse(): Seletor;
    /**
     * Resolve os seletores. Por enquanto resolve apenas um seletor por vez.
     * @param espacoReservado
     */
    protected resolverSeletores(espacoReservado?: string): Seletor[];
    private resolverCor;
    private resolverMetodo;
    protected valorNumerico(nomeModificador: string, valorModificador: SimboloInterface, ponto: boolean): ValorNumerico;
    protected valoresModificador(nomeModificador: string): Array<Valor>;
    private resolverModificador;
    resolverModificadorEDeclaracoesAninhadas(): {
        modificadores: Modificador[];
        declaracoesAninhadas: BlocoDeclaracao[];
    };
    declaracao(): BlocoDeclaracao | null;
    analisar(simbolos: Simbolo[]): BlocoDeclaracao[];
}
