/**
 * Kafka transport.
 */
export declare class KafkaTransport {
    private _options?;
    private client;
    private producer;
    private consumer;
    private handlers;
    private closeHandler;
    /**
     * Create new Kafka transport.
     */
    constructor(_options?: any);
    /**
     * Transport listen.
     */
    listen(callback?: Function): Promise<void>;
    /**
     * Publish to a topic.
     */
    publish(topic: string, message: any): any;
    /**
     * Subscribe to a topic.
     */
    subscribe(topic: string, group: string, handle: Function): void;
    /**
     * Transport handle.
     */
    handle(route: string, group: string, callback: Function): void;
    request(route: string, payload: any, callback: Function, timeout?: number): void;
    /**
     * Close connection.
     */
    close(err?: Error): Promise<void>;
    /**
     * Connection closed handler
     * @param {(...args: any[]) => void} callback
     */
    onClose(callback: (...args: any[]) => void): void;
    private normalizeTopic;
    private createTopics;
}
