import LoggerPort from '../../ports/LoggerPort.ts';
/** Log levels in order of severity. */
export declare const LogLevel: Readonly<{
    DEBUG: 0;
    INFO: 1;
    WARN: 2;
    ERROR: 3;
    SILENT: 4;
}>;
/** Numeric log level values. */
export type LogLevelValue = (typeof LogLevel)[keyof typeof LogLevel];
/**
 * Console logger adapter with structured JSON output.
 *
 * Provides a production-ready implementation of LoggerPort that outputs
 * structured JSON logs to the console. Supports log level filtering,
 * timestamps, and child loggers with inherited context.
 *
 * @example
 * const logger = new ConsoleLogger({ level: LogLevel.INFO });
 * logger.info('Server started', { port: 3000 });
 * // Output: {"timestamp":"...","level":"INFO","message":"Server started","port":3000}
 */
export default class ConsoleLogger extends LoggerPort {
    private readonly _level;
    private readonly _context;
    private readonly _timestampFn;
    constructor(options?: {
        level?: number | string;
        context?: Record<string, unknown>;
        timestampFn?: () => string;
    });
    debug(message: string, context?: Record<string, unknown>): void;
    info(message: string, context?: Record<string, unknown>): void;
    warn(message: string, context?: Record<string, unknown>): void;
    error(message: string, context?: Record<string, unknown>): void;
    child(context: Record<string, unknown>): ConsoleLogger;
    private _log;
}
