import { Context, Effect, Layer } from "effect"; import type { Abi, Address, ContractFunctionArgs } from "viem"; import type { ClientNotFoundError, ContractReadError, MulticallError } from "../core/index.js"; import type { ContractFunctionName, ContractFunctionReturnType, MulticallCall, MulticallResult } from "../types/index.js"; import { ContractReader } from "./reader.js"; export type CrossChainCall = ContractFunctionName> = { readonly chainId: number; readonly address: Address; readonly abi: TAbi; readonly functionName: TFunctionName; readonly args?: ContractFunctionArgs; }; export type ChainMulticallBatch = { readonly chainId: number; readonly calls: readonly MulticallCall[]; }; export type CrossChainReaderShape = { readonly readAll: (calls: TCalls) => Effect.Effect, ContractReadError | ClientNotFoundError>; readonly readSame: >(params: { chainIds: readonly number[]; address: Address; abi: TAbi; functionName: TFunctionName; args?: ContractFunctionArgs; }) => Effect.Effect>, ContractReadError | ClientNotFoundError>; readonly multicallAll: (batches: TBatches) => Effect.Effect[]>, MulticallError | ClientNotFoundError>; }; declare const CrossChainReader_base: Context.TagClass; export declare class CrossChainReader extends CrossChainReader_base { } export declare const CrossChainReaderLive: Layer.Layer; export {}; //# sourceMappingURL=cross-chain-reader.d.ts.map