import { EventEmitter } from "@angular/core";
import { LogMessage } from "./log-message.model";
import { Logger } from "./logger.model";
import { LoggingServiceConfiguration } from "./logging-service.configuration";
import * as i0 from "@angular/core";
/**
 * Service for logging functionality.
 *
 * By default, the following settings are used:
 *  - logger: root with level WARN
 *  - appender: BrowserConsoleAppender with threshold DEBUG and MemoryAppender with threshold ALL
 *
 * Via [configure](#configure), it is possible to amend these settings.
 */
export declare class LoggingService {
    /**
     * Event triggered when the log messages got (potentially) change.
     * This can happen when:
     * - new message was added
     * - all message where removed from memory
     * - all massages where removed for one spcific LocalStorageAppender
     */
    logMessagesChanged: EventEmitter<void>;
    /**
     * Event triggered when ajax appender could not send log messages to the server.
     *
     * @param message error message
     */
    ajaxAppenderFailed: EventEmitter<string>;
    private memoryAppender;
    private browserConsoleAppender;
    /**
     * Creates a new instance of the service.
     */
    constructor();
    /**
     * Configures the logging depending on the given configuration.
     *
     * @param configuration configuration data.
     */
    configure(configuration?: LoggingServiceConfiguration): void;
    /**
     * Gets the root logger from which all other loggers derive.
     *
     * @return root logger
     */
    getRootLogger(): Logger;
    /**
     * Gets a logger with the specified name, creating it if a logger with that name does not already exist.
     *
     * @param loggerName name of the logger
     * @return logger
     */
    getLogger(loggerName: string): Logger;
    /**
     * Gets the last log messages.
     *
     * The log messages are retrieved from the internal [MemoryAppender](../memoryappender.html).
     * That means you will get only the most current messages. The number of the messages is limited
     * by its maxMessages value.
     *
     * @return log messages
     */
    getLogMessages(): LogMessage[];
    /**
     * Loads the log messages written by the LocalStorageAppender with the given key.
     *
     * @param localStorageKey key for the local storage
     * @returns log messages
     */
    getLogMessagesFromLocalStorage(localStorageKey: string): LogMessage[];
    /**
     * Remove all log messages.
     */
    removeLogMessages(): void;
    /**
     * Removes the log messages written by the LocalStorageAppender with the given key.
     *
     * @param localStorageKey key for the local storage
     */
    removeLogMessagesFromLocalStorage(localStorageKey: string): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<LoggingService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<LoggingService>;
}
