///
import { EventEmitter } from "events";
import { Market } from "../interface/Market";
import { IClient } from "../interface/IClient";
import { SubscriptionType } from "../interface/SubscriptionType";
export declare abstract class BasicMultiClient extends EventEmitter {
name: string;
hasTickers: boolean;
hasTrades: boolean;
hasCandles: boolean;
hasLevel2Snapshots: boolean;
hasLevel2Updates: boolean;
hasLevel3Snapshots: boolean;
hasLevel3Updates: boolean;
throttle_ms: number;
sem: any;
auth: any;
protected _clients: Map>;
constructor();
reconnect(): Promise;
close(): Promise;
protected abstract _createBasicClient(clientArgs: any): IClient;
subscribeTicker(market: Market): Promise;
unsubscribeTicker(market: Market): Promise;
subscribeCandles(market: Market): Promise;
unsubscribeCandles(market: Market): Promise;
subscribeTrades(market: any): Promise;
unsubscribeTrades(market: Market): Promise;
subscribeLevel2Updates(market: Market): Promise;
unsubscribeLevel2Updates(market: Market): Promise;
subscribeLevel2Snapshots(market: Market): Promise;
unsubscribeLevel2Snapshots(market: Market): Promise;
subscribeLevel3Snapshots: (...args: any[]) => any;
unsubscribeLevel3Snapshots: (...args: any[]) => any;
subscribeLevel3Updates: (...args: any[]) => any;
unsubscribeLevel3Updates: (...args: any[]) => any;
protected _createBasicClientThrottled(clientArgs: any): Promise;
protected _subscribe(market: Market, map: Map>, subscriptionType: SubscriptionType): Promise;
}