import type { AbiStateMutability, Address } from 'abitype';
import type { Hex } from './misc.js';
import type { GetMulticallContractParameters } from './multicall.js';
import type { OneOf, Prettify } from './utils.js';
export type Call<call = unknown> = OneOf<{
    data?: Hex | undefined;
    to: Address;
    value?: bigint | undefined;
} | (Omit<GetMulticallContractParameters<call, AbiStateMutability>, 'address'> & {
    to: Address;
    value?: bigint | undefined;
})>;
export type Calls<calls extends readonly unknown[], result extends readonly any[] = []> = calls extends readonly [] ? readonly [] : calls extends readonly [infer call] ? readonly [...result, Prettify<Call<call>>] : calls extends readonly [infer call, ...infer rest] ? Calls<[...rest], [...result, Prettify<Call<call>>]> : readonly unknown[] extends calls ? calls : calls extends readonly (infer call extends OneOf<Call>)[] ? readonly Prettify<call>[] : readonly OneOf<Call>[];
//# sourceMappingURL=calls.d.ts.map