import { TokenAmount } from '../amounts';
import { BaseTrade } from '../types';
import { LimitOrder0x } from './limit-order-0x';
export interface Trade0xLimitOptions {
    inputAmount: TokenAmount;
    outputAmount: TokenAmount;
    /**
     * Limit order lifetime in seconds
     */
    duration: number;
    /**
     * Fee in taker tokens
     */
    takerTokenFeeAmount?: TokenAmount;
    /**
     * Address of fee recipient
     */
    feeRecipient?: string;
}
export declare class Trade0xLimit extends BaseTrade {
    private readonly _duration;
    private readonly _takerTokenFeeAmount?;
    private readonly _feeRecipient?;
    static getTrade(opts: Trade0xLimitOptions): Trade0xLimit;
    constructor(inputAmount: TokenAmount, outputAmount: TokenAmount, duration: number, takerTokenFeeAmount?: TokenAmount, feeRecipient?: string);
    /**
     * Returns limit order lifetime in seconds
     */
    getOrderDuration(): number;
    /**
     * Returns order finish timestamp (From current moment)
     */
    getOrderEstimate(): number;
    /**
     * Construct new limit order
     * @param account
     */
    getOrder(account: string): LimitOrder0x;
}
