import Decimal from "decimal.js";
import { IAccount, IAccountBalance, IAllocation, IApiKeyPermissions, IApiKeys, IAssetInsight, IBacktestAsset, IBacktestResult, ICandlestick, IExchangeAsset, IExchangeInfo, IHistoricalCandlestick, IHistoricalCount, IHistoricalOrderBook, IHistoricalInstrument, IHistoricalTrade, ILimitOrder, ILimitOrderStatus, IManagementCredits, IManagementStatus, IManagementUsage, IMarketOrderBooks, IPredictions, IStrategy, ITicker, ITotalBalanceHistoryItem, ITrade, ITradeChanges, ITradingPair, IUser } from "../models";
export declare class ShrimpyApiClient {
    private _accountBalanceDtoConverter;
    private _allocationDtoConverter;
    private _assetInsightDtoConverter;
    private _backtestAssetDtoConveter;
    private _backtestDataPointDtoConverter;
    private _candlestickDtoConverter;
    private _dateDtoConverter;
    private _decimalDtoConverter;
    private _historicalCandlestickDtoConverter;
    private _historicalOrderBooksDtoConverter;
    private _historicalInstrumentsDtoConverter;
    private _historicalTradesDtoConverter;
    private _limitOrderDtoConverter;
    private _limitOrderStatusDtoConverter;
    private _marketOrderBooksDtoConverter;
    private _predictionsDtoConverter;
    private _strategyDtoConverter;
    private _tickerDtoConverter;
    private _totalBalanceHistoryItemDtoConverter;
    private _tradeChangesDtoConverter;
    private _tradeDtoConverter;
    private _userDtoConverter;
    private _authenticationProvider;
    constructor(publicKey?: string, privateKey?: string);
    getSupportedExchanges(): Promise<IExchangeInfo[]>;
    getExchangeAssets(exchange: string): Promise<IExchangeAsset[]>;
    getTradingPairs(exchange: string): Promise<ITradingPair[]>;
    getTicker(exchange: string): Promise<ITicker[]>;
    getOrderBooks(exchange: string | string[], baseSymbol?: string | string[], quoteSymbol?: string | string[], limit?: number): Promise<IMarketOrderBooks[]>;
    getCandles(exchange: string, baseTradingSymbol: string, quoteTradingSymbol: string, interval: '1m' | '5m' | '15m' | '1h' | '6h' | '1d', startTime?: Date): Promise<ICandlestick[]>;
    getUsers(): Promise<IUser[]>;
    getUser(userId: string): Promise<IUser>;
    createUser(name?: string): Promise<string>;
    setUserName(userId: string, name: string): Promise<void>;
    removeUser(userId: string): Promise<void>;
    enableUser(userId: string): Promise<void>;
    disableUser(userId: string): Promise<void>;
    getApiKeys(userId: string): Promise<string[]>;
    createApiKeys(userId: string): Promise<IApiKeys>;
    deleteApiKeys(userId: string, publicKey: string): Promise<void>;
    getPermissions(userId: string, publicKey: string): Promise<IApiKeyPermissions>;
    setPermissions(userId: string, publicKey: string, account: boolean, trade: boolean): Promise<void>;
    getAccounts(userId: string): Promise<IAccount[]>;
    getAccount(userId: string, accountId: number): Promise<IAccount>;
    createAccount(userId: string, exchange: string, publicKey: string, privateKey: string, passphrase?: string): Promise<number>;
    deleteAccount(userId: string, accountId: number): Promise<void>;
    getIpWhitelistAddresses(userId: string): Promise<string[]>;
    createTrade(userId: string, accountId: number, fromSymbol: string, toSymbol: string, amount: Decimal, smartRouting?: boolean, maxSpreadPercent?: Decimal, maxSlippagePercent?: Decimal): Promise<string>;
    getTrade(userId: string, accountId: number, tradeId: string): Promise<ITradeChanges>;
    getActiveTrades(userId: string, accountId: number): Promise<ITrade[]>;
    getBalance(userId: string, accountId: number, date?: Date): Promise<IAccountBalance>;
    getTotalBalanceHistory(userId: string, accountId: number, startTime: Date | null, endTime: Date | null): Promise<ITotalBalanceHistoryItem[]>;
    rebalance(userId: string, accountId: number): Promise<void>;
    getRebalancePeriod(userId: string, accountId: number): Promise<number>;
    setRebalancePeriod(userId: string, accountId: number, rebalancePeriodHours: number): Promise<void>;
    getStrategy(userId: string, accountId: number): Promise<IStrategy>;
    setStrategy(userId: string, accountId: number, strategy: IStrategy): Promise<void>;
    clearStrategy(userId: string, accountId: number): Promise<void>;
    allocate(userId: string, accountId: number, strategy: IStrategy): Promise<void>;
    createOrder(userId: string, accountId: number, baseSymbol: string, quoteSymbol: string, quantity: Decimal, price: Decimal, side: "BUY" | "SELL", timeInForce: "GTC" | "IOC"): Promise<string>;
    getOrder(userId: string, accountId: number, orderId: string): Promise<ILimitOrderStatus>;
    getOrders(userId: string, accountId: number): Promise<ILimitOrder[]>;
    cancelOrder(userId: string, accountId: number, orderId: string): Promise<void>;
    getBacktestAssets(exchange: string, startTime?: Date, endTime?: Date): Promise<IBacktestAsset[]>;
    runBacktest(exchange: string, rebalancePeriodHours: number, fee: Decimal, startTime: Date, endTime: Date, initialValue: Decimal, allocations: IAllocation[]): Promise<IBacktestResult>;
    getPredictions(exchange: string, baseTradingSymbol: string, quoteTradingSymbol: string): Promise<IPredictions>;
    getAssetDominance(): Promise<IAssetInsight[]>;
    getAssetPopularity(): Promise<IAssetInsight[]>;
    getHistoricalTrades(exchange: string, baseTradingSymbol: string, quoteTradingSymbol: string, startTime: Date, endTime: Date, limit: number): Promise<IHistoricalTrade[]>;
    getHistoricalOrderBooks(exchange: string, baseTradingSymbol: string, quoteTradingSymbol: string, startTime: Date, endTime: Date, limit: number): Promise<IHistoricalOrderBook[]>;
    getHistoricalCandles(exchange: string, baseTradingSymbol: string, quoteTradingSymbol: string, startTime: Date, endTime: Date, limit: number, interval: '1m' | '5m' | '15m' | '1h' | '6h' | '1d'): Promise<IHistoricalCandlestick[]>;
    getHistoricalInstruments(exchange?: string, baseTradingSymbol?: string, quoteTradingSymbol?: string): Promise<IHistoricalInstrument[]>;
    getHistoricalCount(type: 'trade' | 'orderbook', exchange: string, baseTradingSymbol: string, quoteTradingSymbol: string, startTime: Date, endTime: Date): Promise<IHistoricalCount>;
    getStatus(): Promise<IManagementStatus>;
    getCredits(): Promise<IManagementCredits>;
    getUsage(): Promise<IManagementUsage>;
    getToken(): Promise<string>;
    private _setApiCredentials;
    private _callEndpoint;
}
