import { BigNumber, BytesLike, ContractTransaction, PopulatedTransaction } from 'ethers'; import { CollectionContract } from '../..'; import type { Signerish, WriteOverrides } from '../types'; import { ContractFunction } from './features'; declare const MulticallPartitions: { v1: "IMulticallable.sol:IMulticallableV0"[]; }; type MulticallPartitions = typeof MulticallPartitions; declare const MulticallInterfaces: "IMulticallable.sol:IMulticallableV0"[]; type MulticallInterfaces = (typeof MulticallInterfaces)[number]; export type MulticallCallArgs = [signer: Signerish, data: BytesLike[], overrides?: WriteOverrides]; export type MulticallResponse = ContractTransaction; export declare class Multicall extends ContractFunction { readonly functionName = "multicall"; constructor(base: CollectionContract); execute(...args: MulticallCallArgs): Promise; multicall(signer: Signerish, data: BytesLike[], overrides?: WriteOverrides): Promise; estimateGas(signer: Signerish, data: BytesLike[], overrides?: WriteOverrides): Promise; populateTransaction(data: BytesLike[], overrides?: WriteOverrides): Promise; } export declare const multicall: (new (base: CollectionContract) => ((signer: Signerish, data: BytesLike[], overrides?: WriteOverrides | undefined) => Promise) & Multicall) & ((base: CollectionContract) => ((signer: Signerish, data: BytesLike[], overrides?: WriteOverrides | undefined) => Promise) & Multicall); export {};