import { Getter, Provider } from '@inward/core';
import { Format } from 'logform';
import { Logger, LoggerOptions } from 'winston';
import * as Transport from 'winston-transport';
/**
 * Re-export logform/winston types
 */
export { Format as WinstonFormat, TransformableInfo as WinstonLogRecord, } from 'logform';
export { format, Logger as WinstonLogger, LoggerOptions as WinstonLoggerOptions, transports as WinstonTransports, } from 'winston';
/**
 * An extension point for winston transports
 */
export declare const WINSTON_TRANSPORT = "logging.winston.transport";
/**
 * An extension point for winston formats
 */
export declare const WINSTON_FORMAT = "logging.winston.format";
/**
 * A provider class that creates WinstonLogger instances
 */
export declare class WinstonLoggerProvider implements Provider<Logger> {
    /**
     * Getter for transports
     */
    private transports;
    /**
     * Getter for formats
     */
    private formats;
    /**
     * Configuration for the logger
     */
    private options;
    constructor(
    /**
     * Getter for transports
     */
    transports: Getter<Transport[]>, 
    /**
     * Getter for formats
     */
    formats: Getter<Format[]>, 
    /**
     * Configuration for the logger
     */
    options?: LoggerOptions);
    value(): Promise<Logger>;
}
