/** * Logger using pino with pretty printing by default. */ import type { Logger, LoggerOptions } from './types.js'; /** * Creates a logger instance with the specified options. * * Merges provided options with any global configuration set via {@link configureLogger}. * Options provided here override global settings. * * @param options - Configuration options for the logger. See {@link LoggerOptions} for details. * @returns A configured logger instance * @example * const logger = createLogger({ level: 'debug', colorize: true }); * logger.info('Starting application'); */ export declare function createLogger(options?: LoggerOptions): Logger; /** * Configures global logger defaults for the entire application. * * Subsequent calls to {@link createLogger} and {@link getLogger} will inherit these settings. * This is typically called once at application startup. * * @param options - Global logger configuration to apply * @example * configureLogger({ level: 'info', json: true }); * const logger = getLogger(); // Uses configured defaults */ export declare function configureLogger(options: LoggerOptions): void; /** * Retrieves the global logger instance. * * Returns the same logger instance on repeated calls. If not yet configured, * creates one with default settings (silent level). * Configure defaults via {@link configureLogger} before first use. * * @returns The global logger instance * @example * const logger = getLogger(); * logger.warn('An issue occurred'); */ export declare function getLogger(): Logger; /** * Resets the global logger to its initial state. * * Clears the cached global logger instance and resets global configuration * back to default (silent level). This is primarily useful for testing or * when reconfiguring logging in a fresh context. * * @example * // Configure logger for one test * configureLogger({ level: 'debug' }); * // Reset for next test * resetLogger(); * const logger = getLogger(); // New logger with silent level */ export declare function resetLogger(): void; /** * Creates a logger instance that suppresses all output. * * Useful for testing or scenarios where logging should be completely disabled. * * @returns A silent logger instance with no output * @example * const logger = createSilentLogger(); * logger.info('This will not print'); // No output produced */ export declare function createSilentLogger(): Logger;