import { LogEntryConfiguration } from '../models/log-entry';
import { LogPublisherService } from './log-publisher.service';
import { LogLevel } from './log-level';
import { ConfigurationService } from '../../configuration/configuration.service';
import * as i0 from "@angular/core";
export interface LoggerConfiguration extends LogEntryConfiguration {
    level?: LogLevel;
}
export declare abstract class AbstractLoggerService {
    private publisherService;
    protected readonly config: LoggerConfiguration;
    protected readonly publisher: LogPublisherService;
    protected constructor(publisherService: LogPublisherService, _config: ConfigurationService);
    get level(): LogLevel;
    protected shouldLog(level: LogLevel): boolean;
    protected writeToLog(level: LogLevel, message: string, params: object): void;
    info(message: string, ...params: Array<any>): void;
    debug(message: string, ...params: Array<any>): void;
    warn(message: string, ...params: Array<any>): void;
    error(message: string, ...params: Array<any>): void;
    log(level: LogLevel, message: string, ...param: Array<any>): void;
    private resolveLevel;
}
export declare class LoggerService extends AbstractLoggerService {
    constructor(publisherService: LogPublisherService, config: ConfigurationService);
    static ɵfac: i0.ɵɵFactoryDeclaration<LoggerService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<LoggerService>;
}
