///
import { IAsset, ICandleChartIntervalKeys } from 'caeb-types';
import { EventEmitter } from 'events';
import { IBalance } from './IBalance';
import { ICandle } from './ICandle';
import { IOrder, IOrderMarketProps, TOrderSide } from './IOrder';
export declare enum TProviderTransferInnerType {
FUNDING_TRADE = "FUNDING_TRADE",
TRADE_FUNDING = "TRADE_FUNDING"
}
export interface IProvider extends EventEmitter {
id: string;
name: string;
apiKey: string;
apiSecret: string;
apiPassPhrase?: string;
subAccountId?: string | number;
testnet?: boolean;
getExchangeInfo(): Promise;
getPrice(baseAsset: string, quoteAsset: string): Promise;
getTickerInfo(baseAsset: string, quoteAsset: string): Promise;
getHistory(baseAsset: string, quoteAsset: string, intervalType?: ICandleChartIntervalKeys, opts?: {
startDate?: Date;
endDate?: Date;
limit?: number;
}): Promise;
getVolatility(candles: ICandle[]): [low: number, high: number, variation: number];
formatSymbol(baseAsset: string, quoteAsset: string): string;
getAccountBalances(): Promise;
getTradingBalances(): Promise;
getAssetBalance(asset: string): Promise;
getAllOrders(baseAsset: string, quoteAsset: string, daysRange?: number): Promise;
getActiveOrders(baseAsset: string, quoteAsset: string, daysRange?: number): Promise;
createOrderLimit(side: TOrderSide, quantity: number, price: number, baseAsset: string, quoteAsset: string): Promise;
createOrderMarket(props: IOrderMarketProps): Promise;
cancelOpenOrders(baseAsset: string, quoteAsset: string): Promise;
innerTransfer(clientOid: string, baseAsset: string, amount: number, transferType: keyof typeof TProviderTransferInnerType): Promise;
getApiRatioLimits(): Promise;
attachStreamAccount(): void;
attachStreamTicker(baseAsset: string, quoteAsset: string): void;
}