import { Provider } from '0x.js';
import { BigNumber } from 'bignumber.js';
import { Aqueduct } from './generated/aqueduct';
import { Web3EnabledService } from './web3-enabled-service';
export interface ILimitOrderParams {
    provider: Provider;
    /**
     * Limit orders can be a buy or a sell order
     */
    type: 'buy' | 'sell';
    /**
     * "ZRX" in ZRX/WETH
     */
    baseTokenSymbol: string;
    /**
     * "WETH" in ZRX/WETH
     */
    quoteTokenSymbol: string;
    /**
     * Quantity of order - MUST BE IN BASE UNITS!!!
     */
    quantityInWei: number | string | BigNumber;
    /**
     * Price
     */
    price: number | string | BigNumber;
    /**
     * Ethereum wallet address
     */
    account: string;
    /**
     * Expiration of order - defaults to Good til Canceled
     */
    expirationDate?: Date;
    /**
     * https://github.com/0xProject/0x-monorepo/pull/349
     *
     * Some signers add the personal prefix themselves, some don't
     */
    shouldPrefix: boolean;
}
export declare const nullAddress = "0x0000000000000000000000000000000000000000";
export declare const denormalizedTokenPrice: (value: BigNumber, decimals: number) => BigNumber;
export declare class LimitOrder extends Web3EnabledService<Aqueduct.Api.Order> {
    private readonly params;
    constructor(params: ILimitOrderParams);
    protected run(): Promise<Aqueduct.Api.Order>;
    private validateRequest;
}
