import { Client, Hex, Prettify, UnionOmit, ReadContractParameters as ViemReadContractParameters, EstimateContractGasParameters, EstimateContractGasReturnType, Chain, SimulateContractParameters, SimulateContractReturnType, Account as ViemAccount, Address as ViemAddress, WriteContractParameters, WriteContractReturnType } from "viem"; import { EVMVaultABIType } from "../data"; export type EVMRFF = { sources: readonly { universe: number; chainID: bigint; tokenAddress: `0x${string}`; value: bigint; }[]; destinationUniverse: number; destinationChainID: bigint; destinations: readonly { tokenAddress: `0x${string}`; value: bigint; }[]; nonce: bigint; expiry: bigint; parties: readonly { universe: number; address_: `0x${string}`; }[]; }; type VRSArgs = readonly [EVMRFF, Hex]; type DepositArgs = readonly [EVMRFF, Hex, bigint]; type FillArgs = readonly [EVMRFF, Hex]; type OptionalChain = Chain | undefined; type OptionalAccount = ViemAccount | undefined; type AccountOverride = ViemAccount | ViemAddress | undefined; export type EVMVaultContractIface = { read: { verifyRequestSignature: (args: VRSArgs, options?: Prettify, "address" | "abi" | "args" | "functionName">> | undefined) => Promise; }; estimateGas: { deposit: (args: DepositArgs, options: Prettify, "address" | "abi" | "args" | "functionName">>) => Promise; fill: (args: FillArgs, options: Prettify, "address" | "abi" | "args" | "functionName">>) => Promise; }; simulate: { deposit: (args: DepositArgs, options?: Omit, "address" | "abi" | "args" | "functionName"> | undefined) => Promise>; fill: (args: FillArgs, options?: Omit, "address" | "abi" | "args" | "functionName"> | undefined) => Promise>; }; write: { deposit: (args: DepositArgs, options: UnionOmit, "address" | "abi" | "args" | "functionName">) => Promise; fill: (args: FillArgs, options: UnionOmit, "address" | "abi" | "args" | "functionName">) => Promise; }; }; export declare function createEVMVaultContract(address: Hex, client: Client): EVMVaultContractIface; export {};