import { Logger as PinoLogger } from 'pino'; import { LoggerConfig } from '../types'; /** * A highly configurable and structured logging utility using Pino. * This ensures that logs are clean, fast, and easy to parse, * while still being human-readable in the terminal via pino-pretty. */ export declare class Logger { private static instance; private logger; private constructor(); /** * Get the singleton instance of the Logger. * @param config Configuration for the logger (only used on first initialization). * @returns The Logger instance. */ static getInstance(config?: LoggerConfig): Logger; /** * Get the underlying Pino logger instance. * @returns The PinoLogger instance. */ getLogger(): PinoLogger; /** * Log a debug message. * @param msg The message to log. * @param obj Optional object to include in the log. */ debug(msg: string, obj?: object): void; /** * Log an info message. * @param msg The message to log. * @param obj Optional object to include in the log. */ info(msg: string, obj?: object): void; /** * Log a warning message. * @param msg The message to log. * @param obj Optional object to include in the log. */ warn(msg: string, obj?: object): void; /** * Log an error message. * @param msg The message to log. * @param obj Optional object to include in the log. */ error(msg: string, obj?: object): void; /** * Log a fatal error message. * @param msg The message to log. * @param obj Optional object to include in the log. */ fatal(msg: string, obj?: object): void; }