import { LogEvent, LogLevel } from './log.model';
import { LogAppender } from './log.appender';
/**
 * Logger
 */
export declare class Logger {
    protected name: string;
    protected level: LogLevel;
    protected appenders: LogAppender[];
    constructor(name: string, level: LogLevel, appenders: LogAppender[]);
    static isEnabledFor(enabledFromLevel: LogLevel, level: LogLevel): boolean;
    /**
     * Gets the logger name
     *
     * @returns the logger name
     */
    getName(): string;
    /**
     * Gets the log level
     *
     * @returns the log level
     */
    getLevel(): LogLevel;
    /**
     * Sets the log level
     *
     * @param level log level
     */
    setLevel(level: LogLevel): void;
    /**
     * Fatal log
     *
     * @param message mandatory message
     * @param additionalMessages optional messages
     */
    fatal<T, S>(message: T, ...additionalMessages: S[]): void;
    /**
     * Error log
     *
     * @param message mandatory message
     * @param additionalMessages optional messages
     */
    error<M, A>(message: M, ...additionalMessages: A[]): void;
    /**
     * Warning log
     *
     * @param message mandatory message
     * @param additionalMessages optional messages
     */
    warn<M, A>(message: M, ...additionalMessages: A[]): void;
    /**
     * Info log
     *
     * @param message mandatory message
     * @param additionalMessages optional messages
     */
    info<M, A>(message: M, ...additionalMessages: A[]): void;
    /**
     * Debug log
     *
     * @param message mandatory message
     * @param additionalMessages optional messages
     */
    debug<M, A>(message: M, ...additionalMessages: A[]): void;
    /**
     * Trace log
     *
     * @param message mandatory message
     * @param additionalMessages optional messages
     */
    trace<M, A>(message: M, ...additionalMessages: A[]): void;
    isDisabled: () => boolean;
    isEnabledFor: (level: LogLevel) => boolean;
    isFatalEnabled: () => boolean;
    isErrorEnabled: () => boolean;
    isWarnEnabled: () => boolean;
    isInfoEnabled: () => boolean;
    isDebugEnabled: () => boolean;
    isTraceEnabled: () => boolean;
    isAllEnabled: () => boolean;
    /**
     * Generic log method, checking the log level and calling the specified appenders
     *
     * @param event the log event
     */
    protected log(event: LogEvent): void;
}
//# sourceMappingURL=log.logger.d.ts.map