import { LogType, Logger, LoggingProvider } from './types';
/**
 * Write logs
 * @class Logger
 */
export declare class ConsoleLogger implements Logger {
    name: string;
    level: LogType | string;
    private _pluggables;
    private _config?;
    /**
     * @constructor
     * @param {string} name - Name of the logger
     */
    constructor(name: string, level?: LogType | string);
    static LOG_LEVEL: string | null;
    static BIND_ALL_LOG_LEVELS: boolean;
    _padding(n: number): string;
    _ts(): string;
    configure(config?: object): object | undefined;
    /**
     * Write log
     * @method
     * @memeberof Logger
     * @param {LogType|string} type - log type, default INFO
     * @param {string|object} msg - Logging message or object
     */
    _log(type: LogType | string, ...msg: any): void;
    /**
     * Write General log. Default to INFO
     * @method
     * @memeberof Logger
     * @param {string|object} msg - Logging message or object
     */
    log(...msg: any): void;
    /**
     * Write INFO log
     * @method
     * @memeberof Logger
     * @param {string|object} msg - Logging message or object
     */
    info(...msg: any): void;
    /**
     * Write WARN log
     * @method
     * @memeberof Logger
     * @param {string|object} msg - Logging message or object
     */
    warn(...msg: any): void;
    /**
     * Write ERROR log
     * @method
     * @memeberof Logger
     * @param {string|object} msg - Logging message or object
     */
    error(...msg: any): void;
    /**
     * Write DEBUG log
     * @method
     * @memeberof Logger
     * @param {string|object} msg - Logging message or object
     */
    debug(...msg: any): void;
    /**
     * Write VERBOSE log
     * @method
     * @memeberof Logger
     * @param {string|object} msg - Logging message or object
     */
    verbose(...msg: any): void;
    addPluggable(pluggable: LoggingProvider): void;
    listPluggables(): LoggingProvider[];
}
