import { ZeroEx } from '0x.js';
import * as Web3 from 'web3';
import { Server } from './lib/server';
import { Pair, Tokenlon as TokenlonInterface } from './types';
export default class Tokenlon {
    constructor();
    private _config;
    private _pairs;
    server: Server;
    web3Wrapper: Web3;
    zeroExWrapper: ZeroEx;
    utils: {
        getSimpleOrderWithBaseQuoteBySignedOrder: any;
        getSignedOrderBySimpleOrderAsync: any;
        orderStringToBN: any;
        orderBNToString: any;
    };
    getPairs(): Promise<Pair.ExchangePair[]>;
    getPairInfo(baseQuote: TokenlonInterface.BaseQuote): Promise<Pair.ExchangePair>;
    getTokenInfo(tokenName: string): Promise<Pair.ExchangePairToken>;
    getOrderBook(params: TokenlonInterface.BaseQuote): Promise<TokenlonInterface.OrderBookResult>;
    getOrders(params: TokenlonInterface.GetOrdersParams): Promise<TokenlonInterface.OrderBookItem[]>;
    getOrder(rawOrder: string): Promise<TokenlonInterface.OrderDetail>;
    getMakerTrades(params: TokenlonInterface.TradesParams): Promise<TokenlonInterface.MakerTradesItem[]>;
    getTakerTrades(params: TokenlonInterface.TradesParams): Promise<TokenlonInterface.TakerTradesItem[]>;
    placeOrder(params: TokenlonInterface.SimpleOrderWithBaseQuote): Promise<TokenlonInterface.OrderBookItem>;
    deposit(amount: number, opts?: TokenlonInterface.TxOpts): Promise<string>;
    withdraw(amount: number, opts?: TokenlonInterface.TxOpts): Promise<string>;
    getTokenBalance(tokenName: string, address?: string): Promise<number>;
    getAllowance(tokenName: string, address?: string): Promise<number>;
    setAllowance(tokenName: string, amount: number, opts?: TokenlonInterface.TxOpts): Promise<string>;
    setUnlimitedAllowance(tokenName: any, opts?: TokenlonInterface.TxOpts): Promise<string>;
    private fillOrderHelper({params, fill, validate});
    fillOrder(params: TokenlonInterface.FillOrderParams, opts?: TokenlonInterface.TxOpts): Promise<string>;
    fillOrKillOrder(params: TokenlonInterface.FillOrderParams, opts?: TokenlonInterface.TxOpts): Promise<string>;
    private batchFillOrdersHelper({batchFill, validate, orderFillReqs});
    batchFillOrders(orderFillReqs: TokenlonInterface.FillOrderParams[], opts?: TokenlonInterface.TxOpts): Promise<any>;
    batchFillOrKill(orderFillReqs: TokenlonInterface.FillOrderParams[], opts?: TokenlonInterface.TxOpts): Promise<any>;
    fillOrdersUpTo(params: TokenlonInterface.FillOrdersUpTo, opts?: TokenlonInterface.TxOpts): Promise<string>;
    cancelOrder(rawOrder: string, onChain?: boolean, opts?: TokenlonInterface.TxOpts): Promise<string>;
    batchCancelOrders(rawOrders: string[], onChain?: boolean, opts?: TokenlonInterface.TxOpts): Promise<string>;
}
