import { SchemaRegistry } from '@playtini/confluent-schema-registry';
import ISchema from '../schemas/ISchema';
import { Kafka, Producer } from 'kafkajs';
import { IBrokerMessage, IServiceBroker } from './index';
import { LoggerService, MetricsService } from '../services';
declare class ServiceBroker {
    readonly nodeID: string;
    readonly kafkaBrokers: string[];
    readonly schemas: {
        [key: string]: number;
    };
    readonly kafka: Kafka;
    readonly producer: Producer;
    readonly schemaRegistry: SchemaRegistry;
    readonly debug: LoggerService;
    readonly metrics: MetricsService;
    initialized: boolean;
    constructor(data: IServiceBroker);
    private initSchemaRegistry;
    private encodeMessage;
    private decodeMessage;
    registerSchema(schema: ISchema, options?: any): Promise<void>;
    sendMessage(topic: string, messages: IBrokerMessage | IBrokerMessage[]): Promise<void>;
    createService({ name, listeners }: {
        name: string;
        listeners: any;
    }): Promise<void>;
    start(): Promise<void>;
}
export default ServiceBroker;
