/**
 * @file swap.ts
 * @author astra <astra@volare.finance>
 * @date 2022
 */
import { Address, Hash, IFilter, Sym } from '@volare.finance/utils.js';
import { Axios } from 'axios';
import { INativeOrder, OrderStatus } from '../volare';
import { IHistory, IOrder, IOrderDetails, IPair, IProduct, Orderbook, OrderSide, OrderType, Trades } from './interfaces';
import { VToken } from './vToken';
import { Whitelist } from './whitelist';
export declare class Swap {
    instance: Axios;
    whitelist: Whitelist;
    vToken: VToken;
    constructor(instance: Axios);
    private o;
    private p;
    products(filter?: IFilter): Promise<Array<IProduct>>;
    expires(product?: Sym, isExpired?: boolean, filter?: IFilter): Promise<Array<number>>;
    pairs(product?: Sym, isExpired?: boolean, expiry?: number, owner?: Address, filter?: IFilter): Promise<Array<IPair>>;
    pair(asset: Sym, owner?: Address): Promise<IPair>;
    orderbook(asset: Sym, side: OrderSide, filter?: IFilter): Promise<Orderbook>;
    trades(asset: Sym, filter?: IFilter): Promise<Trades>;
    putLimit(order: INativeOrder): Promise<'OK'>;
    orders(asset?: Sym, owner?: Address, type?: OrderType, side?: OrderSide, filter?: IFilter): Promise<Array<IOrder>>;
    order(hash: Hash): Promise<IOrderDetails>;
    history(asset?: Sym, owner?: Address, type?: OrderType, side?: OrderSide, status?: OrderStatus, filter?: IFilter): Promise<Array<IHistory>>;
}
