import type { Abi, Address, BlockTag, ContractFunctionArgs, ContractFunctionName, GetValue, Hash, TransactionReceipt } from "viem"; import type { TxOverrides } from "../types/index.js"; type ValueField = Readonly>; type ArgsField = { readonly args?: TArgs | undefined; } & (readonly [] extends TArgs ? unknown : { readonly args: TArgs; }); type BlockRef = { readonly blockNumber?: bigint | undefined; readonly blockTag?: never; } | { readonly blockNumber?: never; readonly blockTag?: BlockTag | undefined; } | { readonly blockNumber?: never; readonly blockTag?: never; }; export type ReadParams> = { readonly account?: Address | undefined; readonly chainId: number; readonly address: Address; readonly abi: TAbi; readonly functionName: TFunctionName; } & BlockRef & ArgsField>; export type WriteParams> = { readonly chainId: number; readonly address: Address; readonly abi: TAbi; readonly functionName: TFunctionName; readonly account: Address; readonly gas?: bigint | undefined; readonly overrides?: TxOverrides | undefined; } & ArgsField> & ValueField; export type SimulateResult = { readonly result: TResult; readonly request: unknown; }; export type MulticallCall = ContractFunctionName> = { readonly address: Address; readonly abi: TAbi; readonly functionName: TFunctionName; } & ArgsField>; export type MulticallResult = { readonly status: "success"; readonly result: TResult; } | { readonly status: "failure"; readonly error: Error; }; export type TransactionResult = { readonly hash: Hash; readonly receipt: TransactionReceipt; }; export {}; //# sourceMappingURL=params.d.ts.map