/// <reference types="node" />
import { Writable } from 'stream';
import { Logger } from 'winston';
/**
 * Creates a logger using the `options` provided.
 *
 * It's only expected that a single logger is created using this function and that any other loggers are created as a
 * child of that. For example;
 *
 * ```
 * const rootLogger = createLogger();
 * const childLogger = rootLogger.child({ name: 'Child' });
 * ```
 *
 * @param [options] - The options to be used.
 * @return A logger.
 */
export declare function createLogger(options?: CreateLoggerOptions): Logger;
/**
 * The options used by {@link createLogger}.
 */
export declare type CreateLoggerOptions = {
    /**
     * The logging level to be used. Defaults to "info".
     */
    readonly level?: string;
    /**
     * The `Writable` to which logging output should be written. Defaults to the standard output stream.
     */
    readonly outputStream?: Writable;
};
/**
 * Options that can be used to create a {@link Logger}.
 */
export declare type LoggableOptions = {
    /**
     * The `Writable` to which logging output should be written. Defaults to the standard output stream.
     */
    readonly outputStream?: Writable;
    /**
     * The parent logger to be used to create any children loggers. Creates a new root logger by default.
     */
    readonly parentLogger?: Logger;
};
