import type { ContractMethodArgs } from './ContractMethodArgs.js' import type { BaseContract, ContractTransaction, ContractTransactionResponse, FunctionFragment, Result, } from 'ethers' export type BaseContractMethod< TArguments extends ReadonlyArray = ReadonlyArray, TReturnType = any, TExtendedReturnType extends | TReturnType | ContractTransactionResponse = ContractTransactionResponse, > = { (...args: ContractMethodArgs): Promise< TReturnType | TExtendedReturnType > name: string _contract: BaseContract _key: string getFragment: (...args: ContractMethodArgs) => FunctionFragment estimateGas: (...args: ContractMethodArgs) => Promise populateTransaction: ( ...args: ContractMethodArgs ) => Promise send: ( ...args: ContractMethodArgs ) => Promise staticCall: (...args: ContractMethodArgs) => Promise staticCallResult: (...args: ContractMethodArgs) => Promise readonly fragment: FunctionFragment }