import { Context, Effect, Layer } from "effect"; export type CacheConfig = { ttl?: number; maxSize?: number; blockScoped?: boolean; }; export type CacheEntry = { value: T; timestamp: number; blockNumber?: bigint; ttl?: number; }; export type RpcCacheShape = { readonly get: (key: string) => Effect.Effect; readonly set: (key: string, value: T, blockNumber?: bigint, ttl?: number) => Effect.Effect; readonly invalidate: (key: string) => Effect.Effect; readonly invalidateBlock: (blockNumber: bigint) => Effect.Effect; readonly clear: Effect.Effect; }; declare const RpcCache_base: Context.TagClass; export declare class RpcCache extends RpcCache_base { } export declare const makeRpcCacheLive: (config?: CacheConfig) => Layer.Layer; export {}; //# sourceMappingURL=cache.d.ts.map