import type { Address } from '../../../types';
import type { NFTOrderData } from './buildOrderData';
import type { AssetType } from './misc';
export type NFTOrderTransaction = {
    hash: string;
    event_type: 'OrderFilled' | 'OrderCancelled';
};
export type NFTOrderType = 'LIMIT' | 'P2P';
export type NFTOrderToSend = NFTOrderData & {
    signature: string;
    permitMakerAsset?: string;
};
export type NFTOrderState = 'PENDING' | 'FULFILLED' | 'CANCELLED' | 'EXPIRED';
export type NFTOrderFromAPI = NFTOrderToSend & {
    chainId: number;
    makerAsset: Address;
    takerAsset: Address;
    createdAt: number;
    updatedAt: number;
    makerAssetType: AssetTypeVariant;
    takerAssetType: AssetTypeVariant;
    makerBalance: string;
    fillableBalance: string;
    orderHash: string;
    permitMakerAsset: null | string;
    state: NFTOrderState;
    takerFromMeta: string;
    type: NFTOrderType;
    /** @description transaction with the last event pertaining to the order: OrderFilled or OrderCancelled */
    transactionHash: null | string;
};
export type NFTOrdersApiResponse = {
    orders: NFTOrderFromAPI[];
};
export type NFTOrderApiResponse = {
    order: NFTOrderFromAPI;
};
export type AssetTypeVariant = (typeof AssetType)[keyof typeof AssetType];
//# sourceMappingURL=types.d.ts.map