import { Maybe } from 'graphql/jsutils/Maybe'; import { Address, Hex, PublicClient } from 'viem'; import { Wallet } from '../../clients/contracts'; import { MslV5 } from '../../clients/contracts/MslV5'; import { MslV6 } from '../../clients/contracts/MslV6'; import { purchaseBundlerV2ABI } from '../../generated/blockchain/v7'; import { BaseContract } from './BaseContract'; export declare class PurchaseBundlerV2 extends BaseContract { msl: MslV5 | MslV6; static AAVE_PREMIUM_BPS: bigint; 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"; }, { readonly name: "purchaseCurrency"; readonly type: "address"; }, { readonly name: "amount"; readonly type: "uint256"; }, { readonly name: "swapData"; readonly type: "bytes"; }, { readonly name: "swapValue"; readonly type: "uint256"; }, { readonly name: "maxSlippage"; readonly type: "uint256"; }]; }; static ETH_SENTINEL: string; buy({ emitCalldata, value }: { emitCalldata: Hex; value: bigint; }): Promise<{ txHash: `0x${string}`; waitTxInBlock: () => Promise; }>; sell({ repaymentCalldata, swapData }: { repaymentCalldata: Hex; swapData?: Hex; }): Promise<{ txHash: `0x${string}`; waitTxInBlock: () => Promise; }>; executeSell({ repaymentCalldata, price, swapData, }: { repaymentCalldata: Hex; price: bigint; swapData: Maybe; }): Promise<{ txHash: `0x${string}`; waitTxInBlock: () => Promise; }>; executeSellWithLoan({ repaymentCalldata, emitCalldata, price, initialPayment, executeSellSwapData, repayFlashLoanSwapParams, }: { repaymentCalldata: Hex; emitCalldata: Hex; price: bigint; initialPayment: bigint; executeSellSwapData: Maybe; repayFlashLoanSwapParams: Maybe<{ inputCurrency: Address; inputAmount: bigint; swapData: Hex; }>; }): Promise<{ txHash: `0x${string}`; waitTxInBlock: () => Promise; }>; }