export declare enum LogLevel {
    DEBUG = "DEBUG",
    INFO = "INFO",
    WARN = "WARN",
    ERROR = "ERROR"
}
export declare class Logger {
    private tracer?;
    private times;
    static debugMode: boolean;
    private level;
    private category;
    constructor(category: string, tracer?: (() => string) | undefined);
    shouldLog(level: LogLevel): boolean;
    private _log;
    log(msg: string | object, context?: string): void;
    debug(msg: string | object, context?: string): void;
    info(msg: string | object, context?: string): void;
    warn(msg: string | object, trace?: string, context?: string): void;
    error(msg: string | object | unknown, trace?: string, context?: string): void;
    time(label: string): void;
    timeEnd(label: string): void;
    timeLog(label: string): void;
}
export declare function getLogger(category: string, tracer?: () => string): Logger;
