export declare enum LogLevel {
    TRACE = "TRACE",
    INFO = "INFO",
    ERROR = "ERROR",
    NONE = "NONE"
}
export declare enum Severity {
    TRACE = 0,
    INFO = 1,
    ERROR = 2,
    NONE = 3
}
export declare type LogEntryParameters = {
    [key: string]: any;
};
export interface ILogEntry {
    severity: Severity;
    message: string;
    error?: any;
    parameters?: LogEntryParameters;
    date: Date;
}
export declare class LogEntry implements ILogEntry {
    severity: Severity;
    message: string;
    error?: any;
    parameters?: {
        [key: string]: any;
    };
    date: Date;
    constructor(message: string, severity?: Severity, error?: any);
    setParameters(parameters?: LogEntryParameters): this;
    setParameter(key: string, value: any): this;
    setSeverity(severity: Severity): this;
    setError(error?: unknown): this;
    log(): void;
}
export declare class Logger {
    static filterLevel: Severity;
    static info(message: string, parameters?: LogEntryParameters): LogEntry;
    static trace(message: string, parameters?: LogEntryParameters): LogEntry;
    static error(message: string, error?: unknown): LogEntry;
    static log(logEvent: ILogEntry): void;
}
