import { LoggerService, RootLoggerService } from '@backstage/backend-plugin-api';
import { JsonObject } from '@backstage/types';
import { Format } from 'logform';
import { transport as Transport } from 'winston';
/**
 * @public
 */
export interface WinstonLoggerOptions {
    meta?: JsonObject;
    level?: string;
    format?: Format;
    transports?: Transport[];
}
/**
 * A {@link @backstage/backend-plugin-api#LoggerService} implementation based on winston.
 *
 * @public
 */
export declare class WinstonLogger implements RootLoggerService {
    #private;
    /**
     * Creates a {@link WinstonLogger} instance.
     */
    static create(options: WinstonLoggerOptions): WinstonLogger;
    /**
     * Creates a winston log formatter for redacting secrets.
     */
    static redacter(): {
        format: Format;
        add: (redactions: Iterable<string>) => void;
    };
    /**
     * Creates a pretty printed winston log formatter.
     */
    static colorFormat(): Format;
    private constructor();
    error(message: string, meta?: JsonObject): void;
    warn(message: string, meta?: JsonObject): void;
    info(message: string, meta?: JsonObject): void;
    debug(message: string, meta?: JsonObject): void;
    child(meta: JsonObject): LoggerService;
    addRedactions(redactions: Iterable<string>): void;
}
