import { Logger as WinstonLogger } from 'winston';
export type ErrorSerializer = (error: Error) => Error | string;
export type LoggerLevel = 'debug' | 'info' | 'error';
export interface FakeEventEmitter {
    on(eventName: string, ...args: any[]): this;
}
export declare class Logger {
    protected native: WinstonLogger;
    protected errorSerializer?: ErrorSerializer | undefined;
    constructor(native: WinstonLogger, errorSerializer?: ErrorSerializer | undefined);
    private log;
    debug(message: string): void;
    info(message: string): void;
    error(message: string | Error, scope?: string): void;
    wrap(method: () => any, onError?: (error: Error | string) => void): any;
    wrapEventEmitter(emitter: FakeEventEmitter): void;
}
