import { LogLevel, LogContext, LogTimer, LogTransport, LoggerOptions, LogMetrics } from './types'; /** * Main logger class providing structured logging with multiple transports */ export declare class Logger { private options; private context; private correlationId?; private userId?; private sanitizer; private metrics; private isShuttingDown; private contextLevels; constructor(options: LoggerOptions); error(message: string, error?: Error, metadata?: Record): void; warn(message: string, metadata?: Record): void; info(message: string, metadata?: Record): void; http(message: string, metadata?: Record): void; verbose(message: string, metadata?: Record): void; debug(message: string, metadata?: Record): void; silly(message: string, metadata?: Record): void; /** * Log with an explicit context identifier for per-context level filtering. * The contextId is used to resolve context-specific log level overrides. */ logWithContext(level: LogLevel, message: string, contextId: string, metadata?: Record): void; /** * Core logging method */ log(level: LogLevel, message: string, metadata?: Record): void; /** * Internal method that builds and writes a log entry. Level checking * must be done by the caller (log or logWithContext). */ private writeLogEntry; /** * Writes log entry to all transports */ private writeToTransports; /** * Performance timing methods */ startTimer(label: string): LogTimer; time(label: string, fn: () => Promise): Promise; profile(label: string): void; /** * Context management */ child(childContext: Partial): Logger; setCorrelationId(id: string): void; setUserId(id: string): void; /** * Transport management */ addTransport(transport: LogTransport): void; removeTransport(transport: LogTransport): void; /** * Per-context log level management */ setContextLevel(contextId: string, level: LogLevel): void; removeContextLevel(contextId: string): void; getContextLevels(): Record; /** * Utility methods */ isLevelEnabled(level: LogLevel): boolean; /** * Checks if a log level is enabled, considering context-specific overrides. * Resolves the effective level by checking the context hierarchy: * e.g., for context 'nevar.audit.detail', checks 'nevar.audit.detail', then 'nevar.audit', then 'nevar'. */ isLevelEnabledForContext(level: LogLevel, contextId?: string): boolean; private resolveContextLevel; flush(): Promise; close(): Promise; /** * Gets logger metrics */ getMetrics(): LogMetrics; /** * Gets current configuration */ getConfig(): { level: LogLevel; transports: string[]; context: LogContext; sanitize: boolean; }; /** * Helper methods */ private truncateMessage; private limitMetadataSize; private extractTags; private updateMetrics; private setupGracefulShutdown; } //# sourceMappingURL=logger.d.ts.map