import Decimal from "decimal.js";
import { IAccount, IAccountBalance, IApiKeyPermissions, IApiKeys, IStrategy, ITicker, ITrade, ITradeChanges, IUser } from "../models";
export declare class ShrimpyApiClient {
    private _accountBalanceDtoConverter;
    private _decimalDtoConverter;
    private _userDtoConverter;
    private _strategyDtoConverter;
    private _tickerDtoConverter;
    private _tradeChangesDtoConverter;
    private _tradeDtoConverter;
    private _authenticationProvider;
    constructor(publicKey?: string, privateKey?: string);
    getTicker(exchange: string): Promise<ITicker[]>;
    getUsers(): Promise<IUser[]>;
    getUser(userId: string): Promise<IUser>;
    createUser(): Promise<string>;
    enableSubscription(userId: string): Promise<void>;
    disableSubscription(userId: string): Promise<void>;
    createApiKeys(userId: string): Promise<IApiKeys>;
    deleteApiKeys(userId: string, publicKey: string): Promise<void>;
    getApiKeys(userId: string): Promise<string[]>;
    setPermissions(userId: string, publicKey: string, account: boolean, trade: boolean): Promise<void>;
    getPermissions(userId: string, publicKey: string): Promise<IApiKeyPermissions>;
    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>;
    rebalance(userId: string, accountId: number): Promise<void>;
    getRebalancePeriod(userId: string, accountId: number): Promise<number>;
    setRebalancePeriod(userId: string, accountId: number, rebalancePeriodHours: number): Promise<void>;
    setStrategy(userId: string, accountId: number, strategy: IStrategy): Promise<void>;
    getStrategy(userId: string, accountId: number): Promise<IStrategy>;
    allocate(userId: string, accountId: number, strategy: IStrategy): Promise<void>;
    createTrade(userId: string, accountId: number, fromSymbol: string, toSymbol: string, amount: Decimal): Promise<string>;
    getActiveTrades(userId: string, accountId: number): Promise<ITrade[]>;
    getTrade(userId: string, accountId: number, tradeId: string): Promise<ITradeChanges>;
    getBalance(userId: string, accountId: number): Promise<IAccountBalance>;
    private _setApiCredentials;
    private _callEndpoint;
}
