import type { Abi, AbiStateMutability } from "abitype"; import type { ContractFunctionArgs, ContractFunctionName, ContractFunctionParameters } from "./contract"; export type GetMulticallContractParameters = contract extends { abi: infer abi extends Abi; } ? contract extends { functionName: infer functionName extends ContractFunctionName; } ? contract extends { args: infer args extends ContractFunctionArgs; } ? ContractFunctionParameters : ContractFunctionParameters : Abi extends abi ? ContractFunctionParameters : ContractFunctionParameters : ContractFunctionParameters;