export declare type SignMethod = 'eth_signTypedData_v4' | 'eth_signTypedData_v3' | 'eth_signTypedData';
export interface EIP712Parameter {
    name: string;
    type: string;
}
export interface EIP712Types {
    [key: string]: EIP712Parameter[];
}
export declare type EIP712ObjectValue = string | number | EIP712Object;
export interface EIP712Object {
    [key: string]: EIP712ObjectValue;
}
export interface EIP712Domain {
    name: string;
    version: string;
    chainId: number;
    verifyingContract: string;
}
export interface EIP712TypedData {
    types: EIP712Types;
    domain: EIP712Domain;
    primaryType: string;
    message: EIP712Object;
}
export declare const EIP712_DOMAIN_ABI: EIP712Parameter[];
export declare const EIP712_DOMAIN_ABI_HASH: string;
export declare const EIP712_PERMIT_ABI: EIP712Parameter[];
export declare const EIP712_LIMIT_ORDER_ABI: EIP712Parameter[];
export declare const EIP712_LIMIT_ORDER_ABI_HASH: string;
export interface EIP712MessageForPermit extends EIP712Object {
    owner: string;
    spender: string;
    value: string;
    deadline: number;
    nonce: string;
}
export interface EIP712MessageForLimitOrder extends EIP712Object {
    makerToken: string;
    takerToken: string;
    makerAmount: string;
    takerAmount: string;
    takerTokenFeeAmount: string;
    maker: string;
    taker: string;
    sender: string;
    feeRecipient: string;
    pool: string;
    expiry: string;
    salt: string;
}
/**
 * Returns typed data for the issuing permission for the transfer of tokens (eth_signTypedData_v4)
 */
export declare function getEIP712TypedDataForPermit(domain: EIP712Domain, message: EIP712MessageForPermit): EIP712TypedData;
/**
 * Returns typed data for the create limit order (eth_signTypedData_v3, eth_signTypedData_v4)
 * @param domain
 * @param domain.name - Should by 'ZeroEx'
 * @param domain.version - Should by '1.0.0'
 * @param message
 */
export declare function getLimitOrderEIP712TypedData(domain: EIP712Domain, message: EIP712MessageForLimitOrder): EIP712TypedData;
