import { Event } from '../../../base/common/event.js'; import { Disposable, IDisposable } from '../../../base/common/lifecycle.js'; import { RawContextKey } from '../../contextkey/common/contextkey.js'; export declare const ILogService: import("../../instantiation/common/instantiation.js").ServiceIdentifier; export declare enum LogLevel { Off = 0, Trace = 1, Debug = 2, Info = 3, Warning = 4, Error = 5 } export declare const DEFAULT_LOG_LEVEL: LogLevel; export interface ILogger extends IDisposable { onDidChangeLogLevel: Event; getLevel(): LogLevel; setLevel(level: LogLevel): void; trace(message: string, ...args: any[]): void; debug(message: string, ...args: any[]): void; info(message: string, ...args: any[]): void; warn(message: string, ...args: any[]): void; error(message: string | Error, ...args: any[]): void; /** * An operation to flush the contents. Can be synchronous. */ flush(): void; } export interface ILogService extends ILogger { readonly _serviceBrand: undefined; } export declare abstract class AbstractLogger extends Disposable implements ILogger { private level; private readonly _onDidChangeLogLevel; readonly onDidChangeLogLevel: Event; setLevel(level: LogLevel): void; getLevel(): LogLevel; protected checkLogLevel(level: LogLevel): boolean; protected canLog(level: LogLevel): boolean; abstract trace(message: string, ...args: any[]): void; abstract debug(message: string, ...args: any[]): void; abstract info(message: string, ...args: any[]): void; abstract warn(message: string, ...args: any[]): void; abstract error(message: string | Error, ...args: any[]): void; abstract flush(): void; } export declare class ConsoleLogger extends AbstractLogger implements ILogger { private readonly useColors; constructor(logLevel?: LogLevel, useColors?: boolean); trace(message: string, ...args: any[]): void; debug(message: string, ...args: any[]): void; info(message: string, ...args: any[]): void; warn(message: string | Error, ...args: any[]): void; error(message: string, ...args: any[]): void; flush(): void; } export declare class MultiplexLogger extends AbstractLogger implements ILogger { private readonly loggers; constructor(loggers: ReadonlyArray); setLevel(level: LogLevel): void; trace(message: string, ...args: any[]): void; debug(message: string, ...args: any[]): void; info(message: string, ...args: any[]): void; warn(message: string, ...args: any[]): void; error(message: string | Error, ...args: any[]): void; flush(): void; dispose(): void; } export declare function LogLevelToString(logLevel: LogLevel): string; export declare const CONTEXT_LOG_LEVEL: RawContextKey;