import { Subject } from 'rxjs'; export declare enum LogLevel { TRACE = 0, DEBUG = 1, INFO = 2, WARN = 3, ERROR = 4 } export interface LogItem { timestamp: string; level: LogLevel; name: string; message: string; params: {}; } declare type LogArgs = { message: string; params: { [key: string]: unknown; }; } | string; export interface Logger { setLevel(level: LogLevel): void; trace(args: LogArgs): void; debug(args: LogArgs): void; info(args: LogArgs): void; warn(args: LogArgs): void; error(args: LogArgs): void; } declare class Log implements Logger { private logger$; private name; private localLevel; constructor(logger$: Subject, name: string); private createLogger; /** * Set the minimum log level to accept * @param level log level to accept */ setLevel(level: LogLevel): void; /** * Log at trace level */ trace: (args: LogArgs) => void; /** * Log at debug level */ debug: (args: LogArgs) => void; /** * Log at info level */ info: (args: LogArgs) => void; /** * Log at warn level */ warn: (args: LogArgs) => void; /** * Log at error level */ error: (args: LogArgs) => void; } /** * @class Singleton factor for creating logger and provides * a log stream which can be observed upon */ export default class LoggerFactory { private static logger$; private static level; static getLogger(name: string): Log; static setLogLevel(level: LogLevel): void; static getLog$(): import("rxjs").Observable; } /** * Set the level for all loggers. * @param level log level number trace(0) to error(5) */ export declare const setLogLevel: typeof LoggerFactory.setLogLevel; /** * Get the log stream, filters out logs based on global log level. * Emits logs of shape LogItem. */ export declare const getlog$: typeof LoggerFactory.getLog$; export {}; //# sourceMappingURL=LoggerFactory.d.ts.map