import Packet from '../packets';
import { GenericObject } from '../../typings';
import Transit from '../transit';
import Star from '../star';
import { LoggerInstance } from '../../typings/logger';
import { PacketTypes } from '../../typings/packets';
export default class BaseTransporter {
    options: GenericObject;
    connected: boolean;
    hasBuiltInBalancer: boolean;
    transit: Transit | null;
    star: Star | null;
    nodeID: string;
    logger: LoggerInstance | null;
    prefix: string;
    messageHandler: ((cmd: string, msg: Packet) => any) | null;
    afterConnect: ((wasReconnect: boolean) => any) | null;
    constructor(options: GenericObject);
    init(transit: Transit, messageHandler: (cmd: string, msg: Packet) => any, afterConnect: (wasReconnect: boolean) => any): void;
    connect(): void;
    onConnected(wasReconnect?: boolean): Promise<any>;
    disconnect(): void;
    subscribe(cmd: PacketTypes, nodeID: string): void;
    subscribeBalancedRequest(action: string): void;
    subscribeBalancedEvent(event: string, group: string): void;
    unsubscribeFromBalancedCommands(): Promise<void>;
    publish(packet: Packet): void;
    publishBalancedRequest(packet: Packet): void;
    publishBalancedEvent(packet: Packet, group: string): void;
    makeBalancedSubscriptions(): void;
    prepublish(packet: Packet): void | Promise<void>;
    makeSubscriptions(topics: GenericObject[]): Promise<any>;
    incomingMessage(cmd: PacketTypes, msg: Buffer): any;
    receive(cmd: PacketTypes, data: Buffer): any;
    send(topic: string, data: Buffer, meta: object): void;
    serialize(packet: Packet): Buffer | null;
    deserialize(type: PacketTypes, buf: Buffer): Packet | null;
    getTopicName(cmd: string, nodeID: string): string;
}
