import type { Stream } from "effect"; import { Context, Effect, Layer } from "effect"; import type { Abi, ContractFunctionName } from "viem"; import type { ClientNotFoundError, ContractReadError, MulticallError } from "../core/index.js"; import { ChainHead } from "../query/chain-head.js"; import { QueryClient } from "../query/client.js"; import { MulticallBatcher } from "../query/multicall-batcher.js"; import type { ContractFunctionReturnType, ReadParams } from "../types/index.js"; export type ContractQueryReadOptions = { readonly ttl?: number | undefined; readonly blockScoped?: boolean | undefined; }; export type ContractQueryWatchOptions = ContractQueryReadOptions & { readonly refetchOn?: Stream.Stream | undefined; }; export type ContractQueryShape = { readonly read: >(params: ReadParams, options?: ContractQueryReadOptions | undefined) => Effect.Effect, ContractReadError | MulticallError | ClientNotFoundError>; readonly watchRead: >(params: ReadParams, options?: ContractQueryWatchOptions | undefined) => Effect.Effect, ContractReadError | MulticallError | ClientNotFoundError>, ClientNotFoundError>; }; declare const ContractQuery_base: Context.TagClass; export declare class ContractQuery extends ContractQuery_base { } export declare const ContractQueryLive: Layer.Layer; export {}; //# sourceMappingURL=contract-query.d.ts.map