import * as p from '@subsquid/evm-codec'; import { ContractBase, type AbiFunction, type FunctionReturn, type FunctionArguments } from '@subsquid/evm-abi'; export type MulticallResult> = { success: true; value: FunctionReturn; } | { success: false; returnData?: string; value?: undefined; }; type AnyFunc = AbiFunction; type AggregateTuple = [ func: T, address: string, args: T extends AnyFunc ? FunctionArguments : never ]; export declare class Multicall extends ContractBase { static aggregate: AbiFunction<{ readonly calls: p.ArrayCodec<{ readonly target: string; readonly callData: string | Uint8Array; }, { readonly target: string; readonly callData: string; }>; }, p.StructCodec<{ readonly blockNumber: p.Codec; readonly returnData: p.ArrayCodec; }>>; static tryAggregate: AbiFunction<{ readonly requireSuccess: p.Codec; readonly calls: p.ArrayCodec<{ readonly target: string; readonly callData: string | Uint8Array; }, { readonly target: string; readonly callData: string; }>; }, p.ArrayCodec<{ readonly success: boolean; readonly returnData: string | Uint8Array; }, { readonly success: boolean; readonly returnData: string; }>>; aggregate(func: TF, address: string, calls: FunctionArguments[], pageSize?: number): Promise[]>; aggregate(func: TF, calls: (readonly [address: string, args: FunctionArguments])[], pageSize?: number): Promise[]>; aggregate(calls: AggregateTuple[], pageSize?: number): Promise; tryAggregate(func: TF, address: string, calls: FunctionArguments[], pageSize?: number): Promise[]>; tryAggregate(func: TF, calls: (readonly [address: string, args: FunctionArguments])[], pageSize?: number): Promise[]>; tryAggregate(calls: AggregateTuple[], pageSize?: number): Promise[]>; private makeCalls; } export {}; //# sourceMappingURL=multicall.d.ts.map