/// <reference types="node" />
import { Completer } from './completer';
import { MessageBroker, MessageHandler } from './message-broker';
export declare class JsonMessageBroker extends MessageBroker {
    static instance: JsonMessageBroker;
    static request: Completer<JsonMessageBroker>;
    static getInstance(): Promise<JsonMessageBroker>;
    serialize(data: any): Buffer;
    deserialize(handler: MessageHandler): (data: any) => Promise<any>;
    send(queue: string, msg: any): Promise<boolean>;
    sendWithReply(queue: string, msg: any): Promise<any>;
    subscribe(queue: string, handler: MessageHandler): Promise<() => Promise<void>>;
}
export declare const jsonMessageBroker: JsonMessageBroker;
