import { default as TransportStream } from 'winston-transport';
import { ConsoleLike } from './transport';
/**
 * A log level.
 * @type {LogLevel}
 * @public
 */
export type LogLevel = 'error' | 'warn' | 'info' | 'verbose' | 'debug' | 'silly';
/**
 * Helper class for general logging.
 * @document docs/log-levels.md
 * @class
 * @public
 */
export declare class Logger {
    /**
     * The internal logger instance.
     * @type {Winston}
     * @private
     * @internal
     */
    private logger;
    /**
     * Create a new logger instance
     * @param {LogLevel} level - The log level to use.
     * @param {TransportStream[]} transports - The transports to use.
     * @returns {Logger} The logger instance.
     */
    constructor(level?: LogLevel, transports?: TransportStream[]);
    /**
     * Create a new logger instance
     *
     * @returns {void}
     */
    protected createLogger(level?: LogLevel, transports?: TransportStream[]): void;
    /**
     * On enable hook.
     * @group Lifecycle
     */
    enable(): Promise<void>;
    /**
     * On disable hook.
     * @group Lifecycle
     */
    disable(): Promise<void>;
    /**
     * Listen for log messages.
     * @param {(level: LogLevel, message: string) => void} listener - The listener to call when a log message is received.
     * @event
     */
    onLine(listener: (line: string) => void): void;
    /**
     * Set the console instance to use.
     * @param {ConsoleLike} console - The console instance to use.
     */
    setConsole(console?: ConsoleLike): void;
    /**
     * Get callee's namespace from the stack trace.
     * @private
     * @internal
     */
    private getNamespace;
    /**
     * @private
     * @internal
     */
    private parseMessage;
    /**
     * Log information messages.
     * @param {...string} message - The message to log.
     */
    info: (...message: string[]) => void;
    /**
     * Log warning messages.
     * @param {...string} message - The message to log.
     */
    warn: (...message: string[]) => void;
    /**
     * Log error messages.
     * @param {string | Error | any} message - The message to log.
     */
    error: (message: string | Error | any) => void;
    /**
     * Log verbose messages.
     * @param {...string} message - The message to log.
     */
    verbose: (...message: string[]) => void;
    /**
     * Log debug messages.
     * @param {...string} message - The message to log.
     */
    debug: (...message: string[]) => void;
    /**
     * Log silly messages.
     * @param {...string} message - The message to log.
     */
    silly: (...message: string[]) => void;
}
//# sourceMappingURL=logger.d.ts.map