/** * Logger for GREEN-API integration library. * Provides structured JSON logging with colored output and error handling. * Uses singleton pattern to maintain consistent logging instances across the application. * * @category Core * * @example * ```typescript * const logger = GreenApiLogger.getInstance("MyComponent"); * * // Basic logging * logger.info("Operation successful", { userId: 123 }); * * // Error logging * try { * // ... some code * } catch (error) { * logger.logErrorResponse(error, "Failed to process request"); * } * ``` */ export declare class GreenApiLogger { private readonly context; private static instances; private readonly colors; /** * Private constructor to enforce singleton pattern * @param context - The context (usually component name) for this logger instance */ private constructor(); /** * Gets a logger instance for the specified context. * Creates a new instance if one doesn't exist, otherwise returns existing instance. * * @param context - The context for the logger (default: "Global") * @returns Logger instance for the specified context * * @example * ```typescript * const logger = GreenApiLogger.getInstance("MyService"); * ``` */ static getInstance(context?: string): GreenApiLogger; /** * Formats timestamp in locale-specific format * @returns Formatted timestamp string * @private */ private formatTimestamp; /** * Sanitizes values for JSON serialization. * Handles special cases like Error objects and BigInt values. * * @param value - Value to sanitize * @returns Sanitized value safe for JSON serialization * @private */ private sanitizeValue; /** * Creates and outputs a log entry * @param level - Log level * @param message - Log message * @param additionalContext - Additional context data * @private */ private logEntry; /** * Logs a debug message * @param message - Debug message * @param context - Additional context data */ debug(message: string, context?: Record): void; /** * Logs an info message * @param message - Info message * @param context - Additional context data */ info(message: string, context?: Record): void; /** * Logs a warning message * @param message - Warning message * @param context - Additional context data */ warn(message: string, context?: Record): void; /** * Logs an error message * @param message - Error message * @param context - Additional context data */ error(message: string, context?: Record): void; /** * Alternative method for logging info messages * @param message - Log message * @param context - Context string */ log(message: string, context?: string): void; /** * Logs a verbose debug message * @param message - Debug message * @param context - Context string */ verbose(message: string, context?: string): void; /** * Logs a fatal error message * @param message - Fatal error message * @param context - Additional context data */ fatal(message: string, context?: Record): void; /** * Logs detailed error information, handling both Axios errors and regular errors. * Particularly useful for API errors and exceptions. * * @param error - Error object (Axios error or regular error) * @param context - Error context description * @param additionalContext - Additional context data * * @example * ```typescript * try { * await api.request(); * } catch (error) { * logger.logErrorResponse(error, "API Request failed", { requestId: "123" }); * } * ``` */ logErrorResponse(error: any, context: string, additionalContext?: Record): void; }