import type { Binary, Erc20AssetType, EthAssetType, Order, OrderForm, Part, RaribleV2OrderForm } from "@rarible/ethereum-api-client"; import { Action } from "@rarible/action"; import type { EVMAddress, Word } from "@rarible/types"; import type { BigNumberValue } from "@rarible/utils"; import type { Ethereum } from "@rarible/ethereum-provider"; import type { Maybe } from "@rarible/types"; import type { EthereumTransaction } from "@rarible/ethereum-provider"; import type { SendFunction } from "../common/send-transaction"; import type { GetConfigByChainId } from "../config"; import type { RaribleEthereumApis } from "../common/apis"; import type { SimpleOrder } from "./types"; import type { ApproveFunction } from "./approve"; import type { OrderFiller } from "./fill-order"; import type { CheckLazyOrderPart } from "./check-lazy-order"; import type { SellUpdateRequest } from "./sell"; export type UpsertOrderStageId = "approve" | "sign"; export type UpsertOrderActionArg = { order: OrderForm; infinite?: boolean; }; export type UpsertOrderAction = Action; export type HasOrder = { orderHash: Word; } | { order: SimpleOrder; }; export type HasPrice = { price: BigNumberValue; } | { priceDecimal: BigNumberValue; }; export type OrderRequest = { type: "DATA_V2" | "DATA_V3"; maker?: EVMAddress; payouts: Part[]; originFees: Part[]; start?: number; end: number; }; export declare class UpsertOrder { private readonly orderFiller; private readonly send; private readonly getConfig; readonly checkLazyOrder: (form: CheckLazyOrderPart) => Promise; private readonly approveFn; private readonly signOrder; private readonly getApis; private readonly ethereum; constructor(orderFiller: OrderFiller, send: SendFunction, getConfig: GetConfigByChainId, checkLazyOrder: (form: CheckLazyOrderPart) => Promise, approveFn: ApproveFunction, signOrder: (order: SimpleOrder) => Promise, getApis: () => Promise, ethereum: Maybe); readonly upsert: Action<"approve" | "sign", UpsertOrderActionArg, Order>; getOrder(hasOrder: HasOrder): Promise; getPrice(hasPrice: HasPrice, assetType: Erc20AssetType | EthAssetType): Promise; approve(checkedOrder: OrderForm, infinite?: boolean): Promise; upsertRequest(checked: OrderForm): Promise; prepareOrderForm(request: OrderRequest, isMakeFill: boolean): Promise>; private getOrderMaker; static orderFormToSimpleOrder(form: OrderForm): SimpleOrder; updateCryptoPunkOrder(request: SellUpdateRequest): Promise; private updateCryptoPunkOrderByContract; }