import { Format } from './logger-format'; import { LoggerTransport } from './LoggerTransport'; import { LEVEL } from '../constants'; export type LogType = 'emerg' | 'error' | 'warn' | 'info' | 'debug'; export declare const LogLevel: Record; export interface LogInfo { level: LogType; message: any; splat: unknown[]; [LEVEL]: LogType; [key: string]: unknown; } type LoggerFunc = (...args: unknown[]) => void; export interface LoggerOptions { format?: Format; level?: LogType; transports?: LoggerTransport | LoggerTransport[]; } export declare class Logger { emerg: LoggerFunc; error: LoggerFunc; warn: LoggerFunc; info: LoggerFunc; debug: LoggerFunc; readonly level: LogType; readonly levels: Record; protected format: Format; protected readonly transports?: LoggerTransport[]; constructor({ format, level, transports, }?: LoggerOptions); add(transport: any, options?: { force: boolean; }): void; remove(transport: any): void; updateFormat(format: Format): void; private log; private createLogFunc; private write; } export {};