declare type BasicLogHandler = (message: string) => void;
declare type DeviceTrafficHandler = (topic: string, payload: any) => void;
declare type Label = string;
declare type Message = string;
declare type MessageEntry = [Label, Message];
export interface Logger {
    error: BasicLogHandler;
    info: BasicLogHandler;
    success: BasicLogHandler;
    debug: BasicLogHandler;
    outgoing: DeviceTrafficHandler;
    incoming: DeviceTrafficHandler;
    prettify: (header: string, body: MessageEntry[]) => string;
}
export declare class Log implements Logger {
    private readonly verbose;
    constructor(verbose: boolean);
    error(message: string): void;
    info(message: string): void;
    success(message: string): void;
    debug(message: string): void;
    outgoing(topic: string, payload: any): void;
    incoming(topic: string, payload: any): void;
    prettify(header: string, body: MessageEntry[]): string;
    private log;
    private prettyPayload;
}
export {};
