import type { ConstructFetchInput, OptimalRate } from '../../types';
import { BuildNFTOrderTxInput, BuildOptions, BuildSwapAndNFTOrderTxInput, TransactionParams } from '../swap/transaction';
import { GetRateInput } from '../swap/rates';
import type { NFTOrderData } from './buildOrder';
type MinBuildSwapAndNFTOrderTxInput = Omit<BuildSwapAndNFTOrderTxInput, 'srcToken' | 'srcAmount' | 'destToken' | 'destDecimals'>;
type BuildSwapAndNFTOrdersTx = (params: MinBuildSwapAndNFTOrderTxInput, options?: BuildOptions, signal?: AbortSignal) => Promise<TransactionParams>;
type MinBuildNFTOrderTxInput = Omit<BuildNFTOrderTxInput, 'srcToken' | 'srcAmount' | 'destToken' | 'slippage'>;
type BuildNFTOrdersTx = (params: MinBuildNFTOrderTxInput, options?: BuildOptions, signal?: AbortSignal) => Promise<TransactionParams>;
export type BuildNFTOrdersTxFunctions = {
    getNFTOrdersRate: GetNFTOrdersRate;
    buildNFTOrderTx: BuildNFTOrdersTx;
    buildSwapAndNFTOrderTx: BuildSwapAndNFTOrdersTx;
};
type GetNFTOrdersRate = (options: Omit<GetRateInput, 'amount' | 'side'> & {
    amount?: string;
}, orders: CheckableOrderData[], signal?: AbortSignal) => Promise<OptimalRate>;
export declare const constructBuildNFTOrderTx: ({ apiURL, version, chainId, fetcher, }: ConstructFetchInput) => BuildNFTOrdersTxFunctions;
type CheckableOrderData = Pick<NFTOrderData, 'takerAsset' | 'makerAsset' | 'takerAmount' | 'maker'> & {
    taker?: NFTOrderData['taker'];
};
export {};
//# sourceMappingURL=transaction.d.ts.map