/// <reference types="node" />
import BigNumber from '@0xproject/utils';
import { ECSignature } from '0x.js';
import { SimpleOrder, DexOrderBNToString, GlobalConfig } from './base';
import { Server } from './server';
import { Pair } from './pair';
export declare namespace Dex {
    type ECSignatureBuffer = {
        v: number;
        r: Buffer;
        s: Buffer;
    };
    type GetSimpleOrderParams = {
        amountRemaining?: string;
        order: DexOrderBNToString;
        pair: Pair.ExchangePair;
    };
    type GenerateDexOrderWithoutSaltParams = {
        simpleOrder: SimpleOrder;
        pair: Pair.ExchangePair;
        config: GlobalConfig;
    };
    type DexOrderWithoutSalt = {
        exchangeContractAddress: string;
        expirationUnixTimestampSec: BigNumber.BigNumber;
        feeRecipient: string;
        maker: string;
        makerFee: BigNumber.BigNumber;
        makerTokenAddress: string;
        makerTokenAmount: BigNumber.BigNumber;
        taker: string;
        takerFee: BigNumber.BigNumber;
        takerTokenAddress: string;
        takerTokenAmount: BigNumber.BigNumber;
    };
    interface DexOrder extends DexOrderWithoutSalt {
        salt: BigNumber.BigNumber;
    }
    interface SignedDexOrder extends DexOrder {
        ecSignature: ECSignature;
    }
    interface TranslateOrderBookToSimpleParams {
        orderbookItems: Server.OrderBookItem[];
        pair: Pair.ExchangePair;
        wallet?: {
            address: string;
        };
    }
}
