import { Context, Effect, Layer, Stream } from "effect"; import type { Address } from "viem"; import { ContractReader } from "../contract/index.js"; import type { ClientNotFoundError, ContractReadError, MulticallError } from "../core/index.js"; import { PublicClientService, TransportError } from "../core/index.js"; export type TokenBalance = { address: Address; balance: bigint; decimals: number; symbol?: string; name?: string; }; export type BalanceServiceShape = { readonly getBalance: (params: { chainId: number; address: Address; blockTag?: "latest" | "pending"; }) => Effect.Effect; readonly getTokenBalance: (params: { chainId: number; address: Address; tokenAddress: Address; }) => Effect.Effect; readonly getTokenBalances: (params: { chainId: number; address: Address; tokenAddresses: Address[]; }) => Effect.Effect; readonly watchBalance: (params: { chainId: number; address: Address; pollingInterval?: number; }) => Effect.Effect, ClientNotFoundError>; readonly watchTokenBalance: (params: { chainId: number; address: Address; tokenAddress: Address; pollingInterval?: number; }) => Effect.Effect, ClientNotFoundError>; readonly hasSufficientBalance: (params: { chainId: number; address: Address; required: bigint; }) => Effect.Effect; readonly hasSufficientTokenBalance: (params: { chainId: number; address: Address; tokenAddress: Address; required: bigint; }) => Effect.Effect; }; declare const BalanceService_base: Context.TagClass; export declare class BalanceService extends BalanceService_base { } export declare const BalanceServiceLive: Layer.Layer; export {}; //# sourceMappingURL=service.d.ts.map