import { RpcServer } from './messaging/proxy-factory';
export declare const ILoggerServer: unique symbol;
export declare const loggerPath = "/services/logger";
export interface ILoggerServer extends RpcServer<ILoggerClient> {
    setLogLevel(name: string, logLevel: number): Promise<void>;
    getLogLevel(name: string): Promise<number>;
    log(name: string, logLevel: number, message: any, params: any[]): Promise<void>;
    child(name: string): Promise<void>;
}
export declare const ILoggerClient: unique symbol;
export interface ILogLevelChangedEvent {
    loggerName: string;
    newLogLevel: number;
}
export interface ILoggerClient {
    onLogLevelChanged(event: ILogLevelChangedEvent): void;
    onLogConfigChanged(): void;
}
export declare class DispatchingLoggerClient implements ILoggerClient {
    readonly clients: Set<ILoggerClient>;
    onLogLevelChanged(event: ILogLevelChangedEvent): void;
    onLogConfigChanged(): void;
}
export declare const rootLoggerName = "root";
export declare enum LogLevel {
    FATAL = 60,
    ERROR = 50,
    WARN = 40,
    INFO = 30,
    DEBUG = 20,
    TRACE = 10
}
export declare namespace LogLevel {
    const strings: Map<LogLevel, string>;
    function toString(level: LogLevel): string | undefined;
    function fromString(levelStr: string): LogLevel | undefined;
}
export declare namespace ConsoleLogger {
    function reset(): void;
    function log(name: string, logLevel: number, message: string, params: any[]): string;
}
//# sourceMappingURL=logger-protocol.d.ts.map