import { Declaracao } from '../declaracoes';
import { EstilizadorComumInterface, RegraEstilizacao, ViolacaoEstilo } from '../interfaces/estilizador-comum-interface';
/**
 * Estilizador de código para Delégua.
 * Aplica transformações no AST para enforcar convenções e melhorar qualidade do código.
 */
export declare class EstilizadorDelegua implements EstilizadorComumInterface {
    regras: RegraEstilizacao[];
    private violacoes;
    private modoValidacao;
    constructor(regras?: RegraEstilizacao[]);
    adicionarRegra(regra: RegraEstilizacao): void;
    removerRegra(nomeRegra: string): void;
    /**
     * Aplica as regras de estilização recursivamente em uma declaração.
     * @param declaracao A declaração a ser estilizada.
     * @returns A declaração estilizada.
     */
    private estilizarDeclaracao;
    /**
     * Verifica se uma declaração foi modificada comparando propriedades relevantes.
     */
    private declaracaoFoiModificada;
    /**
     * Clona uma declaração de forma superficial.
     */
    private clonarDeclaracao;
    /**
     * Estiliza construtos dentro de uma declaração.
     * @param declaracao A declaração cujos campos serão estilizados.
     */
    private estilizarCamposDeclaracao;
    /**
     * Aplica as regras de estilização em um construto.
     * @param construto O construto a ser estilizado.
     * @returns O construto estilizado.
     */
    private estilizarConstruto;
    /**
     * Estiliza campos dentro de um construto.
     * @param construto O construto cujos campos serão estilizados.
     */
    private estilizarCamposConstruto;
    /**
     * Verifica se um objeto é uma Declaração.
     */
    private ehDeclaracao;
    /**
     * Verifica se um objeto é um Construto.
     */
    private ehConstruto;
    estilizar(declaracoes: Declaracao[]): Declaracao[];
    validar(declaracoes: Declaracao[]): ViolacaoEstilo[];
}
//# sourceMappingURL=estilizador-delegua.d.ts.map