import { BlocoDeclaracao } from "../declaracoes";
import { Modificador } from "../modificadores";
import { DeclaracaoVariavel } from "../declaracoes/declaracao-variavel";
import { Declaracao } from "../declaracoes/declaracao";
import { Valor } from "../valores";
/**
 * A classe que efetivamente traduz FolEs para CSS.
 *
 * Normalmente o CSS traduzido é desaninhado por uma questão de compatibilidade
 * entre navegadores. Até então, CSS aninhado é uma funcionalidade nova, e
 * apenas navegadores mais recentes a implementam.
 */
export declare class Resolvedor {
    resolverComAninhamentos: boolean;
    variaveis: {
        [key: string]: Valor[];
    };
    constructor(resolverComAninhamentos?: boolean);
    protected resolverValor(valor: Valor, valoresAceitos?: {
        [valorFoles: string]: string;
    }): string;
    protected resolverModificador(modificador: Modificador, indentacao?: number): string;
    resolverBlocoDeclaracao(declaracao: BlocoDeclaracao, indentacao: number, textoSeletorAnterior: string): string;
    /**
     * Esta função pode ter dois comportamentos, dependendo da configuração
     * do Resolvedor:
     *
     * - Acumula o valor da variável para ser usada por outras declarações;
     * - Escreve um `var()` no resultado.
     * @param declaracaoVariavel
     */
    resolverDeclaracaoVariavel(declaracaoVariavel: DeclaracaoVariavel): void;
    /**
     * O processo de tradução. É recursivo.
     * @param declaracoes As declaracoes.
     * @returns Uma string com o resultado da tradução.
     */
    resolver(declaracoes: Declaracao[], indentacao?: number, seletorAnterior?: string): string;
}
