export interface ILogger { debug: (message: string, params?: Record) => void; info: (message: string, params?: Record) => void; warn: (message: string, params?: Record) => void; error: ( message: string, err?: Error, params?: Record, ) => void; } export interface LoggerOptions { componentName: string; logLevel?: LogLevel; isProduction: boolean; metadata?: Record; } export enum LogLevel { Debug = 'debug', Info = 'info', Warn = 'warn', Error = 'error', }