import winston from 'winston';
export interface LoggerOpt {
    service: string | false;
}
export declare enum LOG_LEVELS {
    EMERGENCY = "emergency",
    ALERT = "alert",
    CRITICAL = "critical",
    ERROR = "error",
    WARN = "warning",
    NOTICE = "notice",
    INFO = "info",
    DEBUG = "debug"
}
export declare type LOGGER_MODE = 'development' | 'production' | string;
export declare class Logger {
    private readonly mode;
    private readonly logger;
    private readonly opt;
    private formatter;
    constructor(mode: LOGGER_MODE, logger: winston.Logger, opt?: LoggerOpt);
    static new(mode?: LOGGER_MODE): Logger;
    addScope(scoping: object, force?: boolean): void;
    emergency(msg: any): Logger;
    alert(msg: any): Logger;
    critical(msg: any): Logger;
    error(msg: any): Logger;
    warn(msg: any): Logger;
    notice(msg: any): Logger;
    info(msg: any): Logger;
    debug(msg: any): Logger;
    setServiceLabel(label: string): void;
    setLevel(level: LOG_LEVELS): Logger;
    addTransport(transport: winston.transport): Logger;
    setTransport(transport: winston.transport): Logger;
    private log;
    private fmt;
    private productionFormatter;
    private addServiceLabel;
    private developmentFormatter;
    private createMachineParseableFormatter;
}
export declare const formats: typeof winston.format;
export declare const consoleTransport: winston.transports.ConsoleTransportInstance;
export declare const fileTransport: winston.transports.FileTransportInstance;
