export interface ILogger { debug(message?: any, ...params: any[]): void; info(message?: any, ...params: any[]): void; warn(message?: any, ...params: any[]): void; error(message?: any, ...params: any[]): void; getLevel(): LogLevelThreshold; setLevel(level: LogLevelThreshold): void; } export type LogLevel = 'debug' | 'info' | 'warn' | 'error'; export type LogLevelThreshold = LogLevel | 'off'; export declare abstract class BaseLogger implements ILogger { private level; private static severity; constructor(level?: LogLevelThreshold); abstract log(lvl: LogLevel, msg?: any, ...extra: any[]): void; doLog(msgLevel: LogLevel, message?: any, ...params: any[]): void; debug(message?: any, ...params: any[]): void; info(message?: any, ...params: any[]): void; warn(message?: any, ...params: any[]): void; error(message?: any, ...params: any[]): void; getLevel(): LogLevelThreshold; setLevel(level: LogLevelThreshold): void; } export declare class ConsoleLogger extends BaseLogger { log(level: LogLevel, msg?: string, ...params: any[]): void; } export declare class NoOpLogger extends BaseLogger { log(_l: LogLevel, _m?: string, ..._p: any[]): void; } export declare class Logger { static debug(message?: any, ...params: any[]): void; static info(message?: any, ...params: any[]): void; static warn(message?: any, ...params: any[]): void; static error(message?: any, ...params: any[]): void; static getLevel(): LogLevelThreshold; static setLevel(level: LogLevelThreshold): void; private static defaultLogger; static setDefaultLogger(logger: ILogger): void; } export declare const withTiming: (fn: () => T, onDidComplete: (elapsed: number) => void) => T; export declare const withTimingAsync: (fn: () => Promise, onDidComplete: (elapsed: number) => void) => Promise; //# sourceMappingURL=log.d.ts.map