export declare const LOG_LEVELS: readonly ["error", "warn", "info", "http", "verbose", "debug"]; export type LogLevel = (typeof LOG_LEVELS)[number]; export interface Logger { log(level: string, message: string, ...args: unknown[]): void; error(message: string | Error, ...args: unknown[]): void; warn(message: string, ...args: unknown[]): void; info(message: string, ...args: unknown[]): void; http(message: string, ...args: unknown[]): void; verbose(message: string, ...args: unknown[]): void; debug(message: string, ...args: unknown[]): void; child?(bindings: Record): Logger; } export declare namespace Logger { const Token = "Logger"; } export interface ConsoleLoggerOptions { level?: LogLevel; context?: Record; format?: "json" | "pretty" | "auto"; write?: (line: string) => void; } export declare class ConsoleLogger implements Logger { private readonly level; private readonly context; private readonly format; private readonly write; constructor(options?: ConsoleLoggerOptions); log(level: string, message: string, ...args: unknown[]): void; error(message: string | Error, ...args: unknown[]): void; warn(message: string, ...args: unknown[]): void; info(message: string, ...args: unknown[]): void; http(message: string, ...args: unknown[]): void; verbose(message: string, ...args: unknown[]): void; debug(message: string, ...args: unknown[]): void; child(bindings: Record): Logger; private emit; } export declare class NoopLogger implements Logger { log(_level: string, _message: string, ..._args: unknown[]): void; error(_message: string | Error, ..._args: unknown[]): void; warn(_message: string, ..._args: unknown[]): void; info(_message: string, ..._args: unknown[]): void; http(_message: string, ..._args: unknown[]): void; verbose(_message: string, ..._args: unknown[]): void; debug(_message: string, ..._args: unknown[]): void; child(_bindings: Record): Logger; }