/**
 * Material class that regroup the methods to make beautiful logs.
 *
 * @class
 * @memberof Scuti
 */
export class Logger {
    /**
     * @param {string} [name] - The logger name.
     */
    constructor(name) {
        this._name = name;
    }
    /**
     * Send a normal log message into the console.
     *
     * @param {string} [message] - The message that will be logged into the console.
     * @return {void}
     * @public
     */
    log(message) {
        this._log("#078000", "#FFFFFF", message);
    }
    /**
     * Send an error log message in the console.
     *
     * @param {string} [message] - The message that will be logged into the console.
     * @return {void}
     * @public
     */
    error(message) {
        this._log("#E86C5D", "#FFFFFF", message);
    }
    /**
     * Send a warning log message in the console.
     *
     * @param {string} [message] - The message that will be logged into the console.
     * @return {void}
     * @public
     */
    warn(message) {
        this._log("#FFD100", "#000000", message);
    }
    /**
     * Send an info log message in the console.
     *
     * @param {string} [message] - The message that will be logged into the console.
     * @return {void}
     * @public
     */
    info(message) {
        this._log("#EC3262", "#FFFFFF", message);
    }
    /**
     * Send a stylized message in the console.
     *
     * @param {string} [backgroundColor] - The color of the background of the message.
     * @param {string} [textColor] - The color of the message.
     * @param {string} [message] - The message that will be logged into the console.
     * @return {void}
     * @public
     */
    _log(backgroundColor, textColor, message) {
        console.log(`%c ${this.time} %c ${this._name} %c ${message} `, `background: #FFFFFF; color: #000000;`, `background: #000000;`, `background: ${backgroundColor}; color: ${textColor};`);
    }
    /**
     * Reference of the current time of the day formatted in a string.
     *
     * @member {string}
     * @readonly
     * @public
     */
    get time() {
        const date = new Date();
        return date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds();
    }
    /**
     * Reference of the logger name.
     *
     * @member {string}
     * @readonly
     * @public
     */
    get name() {
        return this._name;
    }
}
//# sourceMappingURL=Logger.js.map