import type { Logger as PinoLogger } from 'pino'; import { Logger } from './logger.ts'; import { type LoggerConfig, type LoggerManagerConfig } from './types.ts'; /** * Logger manager is used to manage multiple instances of the Logger. The * loggers are created using the default config and the logger instances * are cached forever. */ export declare class LoggerManager> extends Logger { #private; /** * Creates a new LoggerManager instance * @param config - The logger manager configuration */ constructor(config: LoggerManagerConfig); /** * Creates an instance of the logger * @param logger - The logger key * @param config - The logger configuration * @returns A new logger instance */ protected createLogger(logger: K, config: KnownLoggers[K]): Logger; /** * Get instance of a logger * @param logger - The logger key to retrieve * @returns The logger instance */ use(logger: K): Logger; /** * Get instance of the default logger * @returns The default logger instance */ use(): Logger; /** * Create a logger instance from the config. The created instance * is not managed by the manager * @param config - The logger configuration * @param pino - Optional Pino logger instance * @returns A new logger instance */ create(config: Config, pino?: PinoLogger): Logger; }