export declare enum Level { error = 0, warn = 1, info = 2, verbose = 3, debug = 4, } export declare type LevelSpec = string; export declare function levelStr(spec: LevelSpec): string; export declare function levelVal(spec: LevelSpec): Level; export interface SimpleLogger { level: LevelSpec; log(level: LevelSpec, msg: string, ...args: any[]): SimpleLogger; error(msg: string | Error, ...args: any[]): SimpleLogger; warn(msg: string | Error, ...args: any[]): SimpleLogger; info(msg: string | Error, ...args: any[]): SimpleLogger; verbose(msg: string | Error, ...args: any[]): SimpleLogger; debug(msg: string | Error, ...args: any[]): SimpleLogger; visible(level: LevelSpec): boolean; } export declare abstract class BaseLogger implements SimpleLogger { abstract level: LevelSpec; abstract log(level: LevelSpec, msg: string, ...args: any[]): SimpleLogger; abstract visible(level: LevelSpec): boolean; errStackFlag: boolean; error(msg: string | Error, ...args: any[]): SimpleLogger; warn(msg: string | Error, ...args: any[]): SimpleLogger; info(msg: string | Error, ...args: any[]): SimpleLogger; verbose(msg: string | Error, ...args: any[]): SimpleLogger; debug(msg: string | Error, ...args: any[]): SimpleLogger; } export declare class ProxyLogger extends BaseLogger { private implVar; impl: SimpleLogger; level: LevelSpec; log(level: LevelSpec, msg: string | Error, ...args: any[]): SimpleLogger; visible(level: LevelSpec): boolean; } export declare abstract class ConfigurableLogger extends BaseLogger { private configVar; config: any; abstract configModified(): void; } export declare function proxyLogger(logger: SimpleLogger): ProxyLogger; export declare function fileLogger(config?: any): BaseLogger; export declare const defaultLogger: ProxyLogger; export default defaultLogger;