import { LogLevel } from '../types';
/**
 * Clase Logger que maneja diferentes niveles de log
 */
export declare class Logger {
    private level;
    private logDir;
    private enabled;
    constructor(level?: LogLevel, logDir?: string, enabled?: boolean);
    /**
     * Configura el nivel de log
     */
    setLevel(level: LogLevel): void;
    /**
     * Habilita o deshabilita los logs
     */
    setEnabled(enabled: boolean): void;
    /**
     * Configura el directorio de logs
     */
    setLogDirectory(dir: string): void;
    /**
     * Registra un mensaje de error
     */
    error(message: string, data?: any): void;
    /**
     * Registra un mensaje de advertencia
     */
    warn(message: string, data?: any): void;
    /**
     * Registra un mensaje informativo
     */
    info(message: string, data?: any): void;
    /**
     * Registra un mensaje de depuración
     */
    debug(message: string, data?: any): void;
    /**
     * Función interna de log
     */
    private log;
    /**
     * Asegura que exista un directorio
     */
    private ensureDirectoryExists;
    /**
     * Registra el uso de tokens en un archivo de log
     */
    logTokenUsage(requestId: string, operation: string, promptTokens: number, completionTokens: number, totalTokens: number, model: string): void;
    /**
     * Registra prompts y respuestas para análisis
     */
    logPromptAndResponse(requestId: string, operation: string, prompt: string, response: string, success: boolean, attempt?: number, model?: string): void;
}
/**
 * Cuenta tokens en un texto (estimación simple)
 */
export declare function countTokens(text: string): number;
export default Logger;
