/** * Gestor de contexto de logging para filtrado inteligente * Reduce el ruido en logs durante pruebas y operaciones específicas * @finity.org/ccl - Currency Conversion Library */ import { LogLevel } from './logger'; export interface LogContext { environment: 'test' | 'development' | 'production'; operation: string; suppressWarnings: boolean; suppressInfo: boolean; suppressAlerts: boolean; maxLogLevel: LogLevel; } export declare class LogContextManager { private static instance; private currentContext; private contextStack; private originalLogLevel; private constructor(); static getInstance(): LogContextManager; /** * Establece un contexto de logging específico */ setContext(context: Partial): void; /** * Empuja un nuevo contexto al stack (para operaciones anidadas) */ pushContext(context: Partial): void; /** * Restaura el contexto anterior del stack */ popContext(): void; /** * Obtiene el contexto actual */ getCurrentContext(): LogContext; /** * Configura contexto específico para pruebas */ enableTestMode(options?: { suppressWarnings?: boolean; suppressInfo?: boolean; suppressAlerts?: boolean; operation?: string; }): void; /** * Desactiva el modo de prueba */ disableTestMode(): void; /** * Configura contexto para operaciones de validación */ enableValidationContext(operation: string): void; /** * Configura contexto para operaciones de conversión */ enableConversionContext(operation: string): void; /** * Verifica si un log debe ser suprimido según el contexto actual */ shouldSuppressLog(level: LogLevel, module: string): boolean; /** * Verifica si las alertas deben ser suprimidas */ shouldSuppressAlerts(): boolean; /** * Obtiene un prefijo contextual para los logs */ getContextPrefix(): string; /** * Aplica la configuración del contexto actual */ private applyContextSettings; /** * Resetea el contexto a los valores por defecto */ reset(): void; /** * Ejecuta una función con un contexto específico */ withContext(context: Partial, fn: () => Promise): Promise; /** * Ejecuta una función en modo silencioso (solo errores) */ withSilentMode(fn: () => Promise): Promise; /** * Ejecuta una función en modo de validación */ withValidationMode(operation: string, fn: () => Promise): Promise; } export declare const logContextManager: LogContextManager; export declare const withTestMode: (fn: () => Promise) => Promise; export declare const withSilentMode: (fn: () => Promise) => Promise; export declare const withValidationMode: (operation: string, fn: () => Promise) => Promise; //# sourceMappingURL=log-context-manager.d.ts.map