import * as winston from 'winston'; import { LoggerConfig } from '../interfaces/index'; export default class Logger { private loggers; private config; private consoleSensitiveKeys; private logSensitiveKeys; constructor(config: LoggerConfig); getLoggerInstance(level?: 'error' | 'info' | 'warn' | 'debug' | 'hidden'): winston.Logger; private get loggerOptions(); private createLogger; private isSensitiveKey; private redactObject; private redact; /** * Stringifies a log entry without throwing on circular references. * `redact()` can fall back to the original (still-circular) object when * cloning fails, so this must never assume the input is cycle-free. */ private safeStringify; private shouldLog; error(message: string, meta?: any): void; warn(message: string, meta?: any): void; info(message: string, meta?: any): void; success(message: string, meta?: any): void; debug(message: string, meta?: any): void; logError(params: { type: string; message: string; error: any; context?: Record; hidden?: boolean; meta?: Record; }): void; logWarn(params: { type: string; message: string; warn?: any; context?: Record; meta?: Record; }): void; logInfo(params: { type: string; message: string; info?: any; context?: Record; meta?: Record; }): void; logSuccess(params: { type: string; message: string; data?: any; context?: Record; meta?: Record; }): void; logDebug(params: { type: string; message: string; debug?: any; context?: Record; meta?: Record; }): void; }