import * as log4javascript from "log4javascript";
import { LogMessage } from "./log-message.model";
import { MemoryAppenderConfiguration } from "./memory-appender.configuration";
/**
 * An appender which stores the log messages in the browser's memory.
 *
 * The MemoryAppender is enabled by default.
 * If you do not specify anything else, it is using this configuration:
 *
 * ```JSON
 * {
 *   "memoryAppender": [
 *     {
 *       "maxMessages": 250,
 *       "threshold": "ALL"
 *     }
 * }
 * ```
 */
export declare class MemoryAppender extends log4javascript.Appender {
    private static maxMessagesDefault;
    private static thresholdDefault;
    private maxMessages;
    private logMessages;
    private onLogMessagesChangedCallback;
    /**
     * Creates a new instance of the appender.
     *
     * @param configuration configuration for the appender.
     */
    constructor(configuration?: MemoryAppenderConfiguration);
    /**
     * Configures the logging depending on the given configuration.
     * Only the defined properties get overwritten.
     *
     * @param configuration configuration data.
     */
    configure(configuration: MemoryAppenderConfiguration): void;
    /**
     * Appender-specific method to append a log message.
     *
     * @param loggingEvent event to be appended.
     */
    append(loggingEvent: log4javascript.LoggingEvent): void;
    /**
     * Gets the appender's name.
     * Mainly for unit testing purposes.
     *
     * @return appender's name
     */
    toString(): string;
    /**
     * Get the maximum number of messages which will be stored in memory.
     */
    getMaxMessages(): number;
    /**
     * Set the maximum number of messages which will be stored in memory.
     *
     * If the appender stores currently more messages than the new value allows, the oldest messages get removed.
     *
     * @param value new maximum number
     */
    setMaxMessages(value: number): void;
    /**
     * Gets all messages stored in memory.
     *
     * @return stored messages
     */
    getLogMessages(): LogMessage[];
    /**
     * Remove all messages stored in memory.
     */
    removeLogMessages(): void;
    /**
     * Registers a callback which will be called every time a new message is appended.
     * This could be useful if you want to show new messages in realtime.
     *
     * @param callback callback to be called
     */
    setOnLogMessagesChangedCallback(callback: (message: LogMessage) => void): void;
}
