import { DexOrderBNToString } from './base';
export declare namespace Server {
    type Transformer = {
        (data: any): any;
    };
    type RequestParams = {
        [propName: string]: any;
    };
    type RequestConfig = {
        url: string;
        method: string;
        baseURL?: string;
        transformRequest?: Transformer | Transformer[];
        transformResponse?: Transformer | Transformer[];
        headers?: any;
        params?: any;
        paramsSerializer?: (params: any) => string;
        data?: any;
        timeout?: number;
        withCredentials?: boolean;
        responseType?: string;
        xsrfCookieName?: string;
        xsrfHeaderName?: string;
        onUploadProgress?: (progressEvent: any) => void;
        onDownloadProgress?: (progressEvent: any) => void;
        maxContentLength?: number;
        validateStatus?: (status: number) => boolean;
    };
    type tradeType = 'ask' | 'bid';
    type GetTokenParams = {
        timestamp: number;
        signature: string;
    };
    type GetOrderBookParams = {
        baseTokenAddress: string;
        quoteTokenAddress: string;
    };
    type OrderBookItem = {
        rate: number;
        tradeType?: tradeType;
        amountRemaining: string;
        payload: DexOrderBNToString;
    };
    type OrderBookResult = {
        bids: OrderBookItem[];
        asks: OrderBookItem[];
    };
    type CancelOrderItem = {
        orderHash: string;
        txHash: string;
    };
    type FillOrderItem = {
        order: DexOrderBNToString;
        amount: string;
    };
    interface FillOrderParams extends FillOrderItem {
        txHash: string;
    }
    type BatchFillOrdersParams = {
        txHash: string;
        orders: FillOrderItem[];
    };
    type GetOrdersParams = {
        maker: string;
        page?: number;
        perpage?: number;
        tokenPair?: string[];
    };
    type GetTradesParams = {
        timeRange: number[];
        baseTokenAddress: string;
        quoteTokenAddress: string;
        page: number;
        perpage: number;
    };
    interface MakerTradesParams extends GetTradesParams {
        maker: string;
    }
    interface TakerTradesParams extends GetTradesParams {
        taker: string;
    }
    type TradesDetailItem = {
        id: number;
        price: number;
        amount: number;
        timestamp: number;
    };
    interface MakerTradesDetailItem extends TradesDetailItem {
        txHash: string;
    }
    interface MakerTradesItem extends TradesDetailItem {
        tradeType: tradeType;
        amountRemaining: number;
        expirationUnixTimestampSec: string;
        payload: DexOrderBNToString;
        trades: MakerTradesDetailItem[];
    }
    interface TakerTradesItem extends TradesDetailItem {
        tradeType: tradeType;
        payload: DexOrderBNToString;
        txHash: string;
    }
    interface OrderDetail extends OrderBookItem {
        trades: MakerTradesDetailItem[];
    }
}
