import { Address, Hex, PublicClient } from 'viem'; import { Wallet } from '../../clients/contracts'; import { MslV5 } from '../../clients/contracts/MslV5'; import { MslV6 } from '../../clients/contracts/MslV6'; import { purchaseBundlerAbi } from '../../generated/blockchain/v6'; import { BaseContract } from './BaseContract'; export declare class PurchaseBundlerV1 extends BaseContract { msl: MslV5 | MslV6; constructor({ address, walletClient, msl, publicClient, }: { address: Address; msl: MslV5 | MslV6; walletClient: Wallet; publicClient?: PublicClient; }); static EXECUTION_INFO: { readonly name: "executionInfo"; readonly type: "tuple"; readonly components: readonly [{ readonly name: "reservoirExecutionInfo"; readonly type: "tuple"; readonly components: readonly [{ readonly name: "module"; readonly type: "address"; }, { readonly name: "data"; readonly type: "bytes"; }, { readonly name: "value"; readonly type: "uint256"; }]; }, { readonly name: "contractMustBeOwner"; readonly type: "bool"; }]; }; buy({ emitCalldata, value }: { emitCalldata: Hex; value: bigint; }): Promise<{ txHash: `0x${string}`; waitTxInBlock: () => Promise; }>; sell({ repaymentCalldata }: { repaymentCalldata: Hex; }): Promise<{ txHash: `0x${string}`; waitTxInBlock: () => Promise; }>; executeSell({ repaymentCalldata, price }: { repaymentCalldata: Hex; price: bigint; }): Promise<{ txHash: `0x${string}`; waitTxInBlock: () => Promise; }>; executeSellWithLoan({ repaymentCalldata, emitCalldata, price, }: { repaymentCalldata: Hex; emitCalldata: Hex; price: bigint; }): Promise<{ txHash: `0x${string}`; waitTxInBlock: () => Promise; }>; }