/**
 * Níveis de log
 */
export declare enum LogLevel {
    NONE = 0,
    ERROR = 1,
    WARN = 2,
    INFO = 3,
    DEBUG = 4,
    TRACE = 5
}
/**
 * Opções de configuração do logger
 */
export interface ILoggerOptions {
    /**
     * Nível mínimo de log (padrão: ERROR)
     */
    level?: LogLevel;
    /**
     * Prefixo para os logs (padrão: '[WordPress API]')
     */
    prefix?: string;
    /**
     * Se deve incluir timestamp nos logs (padrão: true)
     */
    timestamp?: boolean;
    /**
     * Função de log personalizada (padrão: console.log)
     */
    logFn?: (message: string) => void;
}
/**
 * Classe para gerenciar logs da aplicação
 */
export declare class Logger {
    private level;
    private prefix;
    private timestamp;
    private logFn;
    /**
     * Construtor do logger
     * @param options Opções de configuração
     */
    constructor(options?: ILoggerOptions);
    /**
     * Define o nível de log
     * @param level Novo nível de log
     */
    setLevel(level: LogLevel): void;
    /**
     * Obtém o nível de log atual
     * @returns Nível de log atual
     */
    getLevel(): LogLevel;
    /**
     * Verifica se um nível específico está habilitado
     * @param level Nível a verificar
     * @returns Verdadeiro se o nível estiver habilitado
     */
    isLevelEnabled(level: LogLevel): boolean;
    /**
     * Formata a mensagem de log
     * @param level Nível do log
     * @param message Mensagem ou objeto a ser logado
     * @returns Mensagem formatada
     */
    private format;
    /**
     * Registra um log de nível ERROR
     * @param message Mensagem ou objeto a ser logado
     * @param data Dados adicionais (opcional)
     */
    error(message: any, data?: any): void;
    /**
     * Registra um log de nível WARN
     * @param message Mensagem ou objeto a ser logado
     * @param data Dados adicionais (opcional)
     */
    warn(message: any, data?: any): void;
    /**
     * Registra um log de nível INFO
     * @param message Mensagem ou objeto a ser logado
     * @param data Dados adicionais (opcional)
     */
    info(message: any, data?: any): void;
    /**
     * Registra um log de nível DEBUG
     * @param message Mensagem ou objeto a ser logado
     * @param data Dados adicionais (opcional)
     */
    debug(message: any, data?: any): void;
    /**
     * Registra uma requisição HTTP
     * @param method Método HTTP
     * @param url URL da requisição
     * @param params Parâmetros da requisição (opcional)
     * @param data Dados da requisição (opcional)
     */
    request(method: string, url: string, params?: any, data?: any): void;
    /**
     * Registra uma resposta HTTP
     * @param method Método HTTP da requisição
     * @param url URL da requisição
     * @param status Status HTTP da resposta
     * @param data Dados da resposta (opcional)
     */
    response(method: string, url: string, status: number, data?: any): void;
    /**
     * Registra um erro HTTP
     * @param method Método HTTP da requisição
     * @param url URL da requisição
     * @param error Erro ocorrido
     */
    httpError(method: string, url: string, error: any): void;
    /**
     * Registra um log de nível TRACE (mais detalhado que DEBUG)
     * @param message Mensagem ou objeto a ser logado
     * @param data Dados adicionais (opcional)
     */
    trace(message: any, data?: any): void;
    /**
     * Registra detalhes de conexão
     * @param url URL da conexão
     * @param status Status da conexão
     * @param details Detalhes adicionais
     */
    connection(url: string, status: 'attempting' | 'success' | 'failed', details?: any): void;
    /**
     * Registra detalhes de autenticação
     * @param method Método de autenticação
     * @param status Status da autenticação
     * @param details Detalhes adicionais (sem credenciais sensíveis)
     */
    auth(method: string, status: 'attempting' | 'success' | 'failed', details?: any): void;
    /**
     * Registra informações de DNS/Network
     * @param operation Operação de rede
     * @param details Detalhes da operação
     */
    network(operation: string, details: any): void;
    /**
     * Registra tentativas de retry
     * @param attempt Número da tentativa
     * @param maxAttempts Máximo de tentativas
     * @param error Erro que causou o retry
     * @param nextRetryIn Tempo até próxima tentativa em ms
     */
    retry(attempt: number, maxAttempts: number, error: any, nextRetryIn?: number): void;
    /**
     * Remove informações sensíveis dos detalhes de autenticação
     * @param details Detalhes originais
     * @returns Detalhes sanitizados
     */
    private sanitizeAuthDetails;
}
