import { Declaracao } from '../../declaracoes';
import { ConstrutoInterface } from '../../interfaces/construtos';
import { OpcoesConvencaoNomenclaturaInterface, RegraEstilizacaoInterface } from '../../interfaces/estilizador';
/**
 * Regra que enforça convenções de nomenclatura.
 *
 * Exemplos:
 * - Variáveis em caixaCamelo: `var meuNome` (não `var MeuNome` ou `var meu_nome`)
 * - Constantes em CAIXA_ALTA: `constante PI_VALOR` (não `constante piValor`)
 * - Funções em caixaCamelo: `função calcularTotal()` (não `função CalcularTotal()`)
 */
export declare class RegraConvencaoNomenclatura implements RegraEstilizacaoInterface {
    nome: string;
    descricao: string;
    private opcoes;
    constructor(opcoes?: OpcoesConvencaoNomenclaturaInterface);
    aplicarEmDeclaracao(declaracao: Declaracao): Declaracao;
    aplicarEmConstruto(construto: ConstrutoInterface): ConstrutoInterface;
    /**
     * Aplica convenção em declaração Var.
     */
    private aplicarConvencaoVar;
    /**
     * Aplica convenção em declaração Const.
     */
    private aplicarConvencaoConst;
    /**
     * Aplica convenção em declaração de Função.
     */
    private aplicarConvencaoFuncao;
    /**
     * Converte um nome para a convenção especificada.
     */
    private converterNome;
    /**
     * Converte nome para camelCase.
     */
    private paraCamelCase;
    /**
     * Converte nome para snake_case.
     */
    private paraSnakeCase;
    private visitarObjeto;
    /**
     * Converte nome para PascalCase.
     */
    private paraPascalCase;
    /**
     * Converte nome para UPPER_CASE.
     */
    private paraUpperCase;
    /**
     * Valida se um nome está na convenção especificada.
     */
    validarNome(nome: string, convencao: string): boolean;
}
//# sourceMappingURL=regra-convencao-nomenclatura.d.ts.map