import { LogLevel } from '../services/log-level';
/**
 * Log entry configuration.
 * All attributes are optional.
 * Attributes that are not present in the configuration object are set to their default value.
 */
export interface LogEntryConfiguration {
    logWithDate?: boolean;
    serializeParams?: boolean;
    includeLogLevel?: boolean;
    [k: string]: any;
}
export declare class LogEntry {
    readonly date: Date;
    readonly level: LogLevel;
    readonly message: string;
    readonly params: object;
    readonly config: LogEntryConfiguration;
    /**
     * Log entry class
     * @param level - Log level of this entry
     * @param message - message to write to the log
     * @param params - additional parameters to write into the log
     * @param config - extra class configuration
     */
    constructor(level: LogLevel, message: string, params?: object, config?: LogEntryConfiguration);
    get levelString(): string;
    /**
     * Serialization of additional parameters of the entry.
     * @return Serialized JSON
     */
    private serializeParams;
    /**
     * Stringify log entry. According to configuration entry can include time, log level and extra parameters
     * @return Log string
     */
    toString(): string;
}
