import { BaseAccount } from './base-accounts';
import { RequestService } from '../services';
export declare class WEXAccount extends BaseAccount {
    protected $request: RequestService;
    constructor($request: RequestService);
    getInfo(): Promise<wex.AccountInfo>;
    trade(options: {
        pair: string;
        type: string;
        rate: number;
        amount: number;
    }): Promise<wex.TradeResult>;
    getActiveOrders(pair: string): Promise<wex.ActiveOrders>;
    getOrderInfo(orderId: number): Promise<wex.ActiveOrders>;
    cancelOrder(orderId: number): Promise<wex.CancelOrderResult>;
    getTradeHistory(options: {
        from?: number;
        count?: number;
        from_id?: number;
        end_id?: number;
        order?: string;
        since?: number;
        end?: number;
        pair?: string;
    }): Promise<{
        [orderId: string]: wex.TradeHistory;
    }>;
    getTransactionHistory(options: {
        from?: number;
        count?: number;
        from_id?: number;
        end_id?: number;
        order?: string;
        since?: number;
        end?: number;
    }): Promise<{
        [transactionId: string]: wex.TransactionHistory;
    }>;
    getCoinDepositAddress(coinName: string): Promise<{
        address: string;
    }>;
    withdrawCoin(options: {
        coinName: string;
        amount: number;
        address: string;
    }): Promise<wex.WithdrawResult>;
    createCoupon(options: {
        currency: string;
        amount: number;
        receiver: string;
    }): Promise<wex.CreateCouponResult>;
    redeemCoupon(coupon: string): Promise<wex.RedeemCouponResult>;
    static getPublicInfo(): Promise<wex.PublicInfo>;
    static getPublicTicker(pairs: string[]): Promise<{
        [pair: string]: wex.Ticker;
    }>;
    static getDepth(pairs: string[]): Promise<{
        [pair: string]: wex.Depth;
    }>;
    static getTrades(pairs: string[]): Promise<{
        [pair: string]: wex.Trade[];
    }>;
}
export declare namespace wex {
    const PUBLIC_API_PREFIX = "https://wex.nz/api/3";
    const COINS: {
        BTC: string;
        LTC: string;
        NMC: string;
        NVC: string;
        PPC: string;
        DSH: string;
        ETH: string;
        BCH: string;
        ZEC: string;
    };
    const CURRENCIES: {
        USD: string;
        EUR: string;
        RUR: string;
    };
    const PAIRS: {
        BTC_USD: string;
        BTC_RUR: string;
        BTC_EUR: string;
        LTC_BTC: string;
        LTC_USD: string;
        LTC_RUR: string;
        LTC_EUR: string;
        NMC_BTC: string;
        NMC_USD: string;
        NVC_BTC: string;
        NVC_USD: string;
        USD_RUR: string;
        EUR_USD: string;
        EUR_RUR: string;
        PPC_BTC: string;
        PPC_USD: string;
        DSH_BTC: string;
        DSH_USD: string;
        DSH_RUR: string;
        DSH_EUR: string;
        DSH_LTC: string;
        DSH_ETH: string;
        ETH_BTC: string;
        ETH_USD: string;
        ETH_EUR: string;
        ETH_LTC: string;
        ETH_RUR: string;
        BCH_USD: string;
        BCH_BTC: string;
        ZEC_BTC: string;
        ZEC_USD: string;
    };
    const ORDER_STATUS: {
        ACTIVE: number;
        EXECUTED_ORDER: number;
        CANCELED: number;
        CANCELED_WITH_PARTIAL_EXECUTION: number;
    };
    const TRANSACTION_TYPE: {
        DEPOSIT: number;
        WITHDRAWAL: number;
        CREDIT: number;
        DEBIT: number;
    };
    const TRANSACTION_STATUS: {
        CANCELED_OR_FAILED: number;
        WAITING_FOR_ACCEPTANCE: number;
        SUCCESSFUL: number;
        NOT_CONFIRMED: number;
    };
    const TRADE_TYPES: {
        SELL: string;
        BUY: string;
    };
    interface AccountInfo {
        funds: Funds;
        rights: {
            info: number;
            trade: number;
            withdraw: number;
        };
        open_orders: number;
        server_time: number;
    }
    interface TradeResult {
        received: number;
        remains: number;
        order_id: number;
        funds: Funds;
    }
    interface ActiveOrders {
        [orderId: string]: Order;
    }
    interface Order {
        pair: string;
        type: string;
        amount: number;
        rate: number;
        timestamp_created: number;
        status: number;
    }
    interface CancelOrderResult {
        order_id: number;
        funds: Funds;
    }
    interface TradeHistory {
        pair: string;
        type: string;
        amount: number;
        rate: number;
        order_id: number;
        is_your_order: number;
        timestamp: number;
    }
    interface TransactionHistory {
        type: number;
        amount: number;
        currency: string;
        desc: string;
        status: number;
        timestamp: number;
    }
    interface WithdrawResult {
        tId: string;
        amountSent: number;
        funds: Funds;
    }
    interface CreateCouponResult {
        coupon: string;
        transId: number;
        funds: Funds;
    }
    interface RedeemCouponResult {
        couponAmount: number;
        couponCurrency: string;
        transId: number;
        funds: Funds;
    }
    interface PublicInfo {
        server_time: number;
        pairs: {
            [pair: string]: PublicPairInfo;
        };
    }
    interface PublicPairInfo {
        decimal_places: number;
        min_price: number;
        max_price: number;
        min_amount: number;
        hidden: number;
        fee: number;
    }
    interface Ticker {
        high: number;
        low: number;
        avg: number;
        vol: number;
        vol_cur: number;
        last: number;
        buy: number;
        sell: number;
        updated: number;
    }
    interface Depth {
        asks: Array<[number, number]>;
        bids: Array<[number, number]>;
    }
    interface Trade {
        type: string;
        price: number;
        amount: number;
        tid: number;
        timestamp: number;
    }
    interface Funds {
        [name: string]: number;
    }
}
