import { Signature } from '@ethersproject/bytes';
import { TokenAmount } from '../amounts';
import { ChainId } from '../constants/constants';
import { Signed0xOrder } from '../types';
import { EIP712TypedData } from '../utils';
export declare class LimitOrder0x {
    account: string;
    sell: TokenAmount;
    buy: TokenAmount;
    expiry: number;
    takerTokenFeeAmount: TokenAmount;
    feeRecipient: string;
    protected chainId: ChainId;
    protected verifyingContract: string;
    protected salt: string;
    static TYPE_HASH: string;
    static PROXY_DOMAIN_NAME: string;
    static PROXY_DOMAIN_VERSION: string;
    static toArray(order: Signed0xOrder): string[];
    constructor(chainId: ChainId, account: string, sell: TokenAmount, buy: TokenAmount, expiry: number, takerTokenFeeAmount?: TokenAmount, feeRecipient?: string);
    /**
     * Returns RAW order fields
     */
    raw(): {
        [key: string]: string;
    };
    /**
     * Calculates and returns order struct hash
     */
    getStructHash(): string;
    /**
     * Calculates and returns order hash
     */
    getHash(): string;
    /**
     * Returns order TypedData for sign
     */
    getEIP712TypedData(): EIP712TypedData;
    /**
     * Send signed order to exchange
     * @param signature
     */
    send(signature: Signature): Promise<string>;
}
