import { Interface } from "@ethersproject/abi"; import { StaticJsonRpcProvider } from "@ethersproject/providers"; import { BlockOverrides } from "../order"; export type MulticallParams = { contractInterface: Interface; functionName: string; }; export type MulticallSameContractParams = MulticallParams & { address: string; functionParams: TFunctionParams[]; }; export type MulticallSameFunctionParams = MulticallParams & { addresses: string[]; functionParam: TFunctionParams; }; export type MulticallResult = { success: boolean; returnData: string; }; type Call = { target: string; callData: string; }; export declare function multicallSameContractManyFunctions(provider: StaticJsonRpcProvider, params: MulticallSameContractParams, stateOverrrides?: { code?: string; state?: any; }, blockOverrides?: BlockOverrides): Promise; export declare function multicallSameFunctionManyContracts(provider: StaticJsonRpcProvider, params: MulticallSameFunctionParams, stateOverrrides?: { code?: string; state?: any; }, blockOverrides?: BlockOverrides): Promise; export declare function multicall(provider: StaticJsonRpcProvider, calls: Call[], stateOverrides?: { code?: string; state?: any; }, blockOverrides?: BlockOverrides): Promise; export {};