import type { Ethereum } from "@rarible/ethereum-provider"; import type { Maybe } from "@rarible/types"; import type { SimpleOrder } from "../../types"; import type { SendFunction } from "../../../common/send-transaction"; import type { RaribleEthereumApis } from "../../../common/apis"; import type { IRaribleEthereumSdkConfig } from "../../../types"; import type { EthereumNetwork } from "../../../types"; import type { FillBatchOrderAction, FillBatchSingleOrderRequest } from "../types"; import { RaribleV2OrderHandler } from "../rarible-v2"; import { OpenSeaOrderHandler } from "../open-sea"; import { SeaportOrderHandler } from "../seaport"; import { LooksrareOrderHandler } from "../looksrare"; import { X2Y2OrderHandler } from "../x2y2"; import { AmmOrderHandler } from "../amm"; import { LooksrareV2OrderHandler } from "../looksrare-v2"; import type { GetConfigByChainId } from "../../../config"; export declare class BatchOrderFiller { private readonly ethereum; private readonly send; private readonly getConfig; private readonly getApis; private readonly getBaseOrderFee; private readonly env; private readonly sdkConfig?; v2Handler: RaribleV2OrderHandler; openSeaHandler: OpenSeaOrderHandler; seaportHandler: SeaportOrderHandler; looksrareHandler: LooksrareOrderHandler; looksrareV2Handler: LooksrareV2OrderHandler; x2Y2Handler: X2Y2OrderHandler; ammHandler: AmmOrderHandler; private checkAssetType; private checkLazyAssetType; constructor(ethereum: Maybe, send: SendFunction, getConfig: GetConfigByChainId, getApis: () => Promise, getBaseOrderFee: (type: SimpleOrder["type"]) => Promise, env: EthereumNetwork, sdkConfig?: IRaribleEthereumSdkConfig | undefined); /** * Buy batch of orders * * Note: Additional origin fees applied only for opensea orders */ buy: FillBatchOrderAction; private getFillAction; /** * Convert origin fees & invert and approve orders * @private */ private prepareOrders; private getApproveAsset; private invertOrder; private approveErc20Asset; /** * Prepare contract function call */ private getTransactionRequestData; private getOrderData; } export declare function validateBatchSupportedOrders(order: FillBatchSingleOrderRequest["order"]): void;