import { type Logger } from 'pino'; import type { Config } from '../types/config.js'; export declare enum LogLevel { TRACE = "trace", DEBUG = "debug", INFO = "info", WARN = "warn", ERROR = "error", FATAL = "fatal" } interface LogContext { [key: string]: unknown; } interface TimeOperationOptions { slowThreshold?: number; context?: LogContext; } export declare function createLogger(config: Config): Logger; export declare class LoggingService { private logger; constructor(logger: Logger); trace(msg: string): void; trace(obj: LogContext, msg: string): void; debug(msg: string): void; debug(obj: LogContext, msg: string): void; info(msg: string): void; info(obj: LogContext, msg: string): void; warn(msg: string): void; warn(obj: LogContext, msg: string): void; error(msg: string): void; error(obj: LogContext, msg: string): void; fatal(msg: string): void; fatal(obj: LogContext, msg: string): void; child(bindings: LogContext): LoggingService; timeOperation(operation: string, fn: () => Promise, options?: TimeOperationOptions): Promise; } export declare function formatLogContext(command: string, options: Record): LogContext; export declare function createChildLogger(parentLogger: Logger, context: LogContext): Logger; interface CommandWithContext { execute(): Promise; context?: { logger?: Logger; }; name?: string; } type CommandConstructor = new (...args: unknown[]) => T; export declare function enhanceWithLogging(CommandClass: CommandConstructor): CommandConstructor; export {}; //# sourceMappingURL=logging-service.d.ts.map