export type TLogLevel = "error" | "warning" | "info" | "debug" | "none";
export type TDestination = "console";
export type Writer = {
    write: (message: string) => void;
};
export declare function getLogLevel(): TLogLevel;
export declare function setLogLevel(logLevel: TLogLevel): TLogLevel;
export declare function getLogger(writer?: TDestination): Logger;
declare class Logger {
    loglevel: TLogLevel;
    protected _writer: Writer;
    protected constructor(logLevel: TLogLevel, writer?: TDestination | Writer);
    static getLogger(logLevel: TLogLevel, writer?: TDestination): Logger;
    setLogLevel(level: TLogLevel): void;
    shouldWrite(logLevel: TLogLevel): boolean;
    formatMessage(level: TLogLevel, body: string): string;
    debug(msg: any): void;
    info(msg: any): void;
    warning(msg: any): void;
    error(msg: any): void;
}
export {};
