/** * Blockchain data caching utility * * Caches expensive blockchain GraphQL calls (dynamic field lookups and * multi-object fetches) since market data changes infrequently on-chain. */ interface CacheEntry { data: T; timestamp: number; ttl: number; } /** * Blockchain Cache Manager * Caches blockchain queries that don't change frequently */ declare class BlockchainCacheManager { private static instance; private cache; private static readonly DEFAULT_MARKETS_TTL; private constructor(); static getInstance(): BlockchainCacheManager; /** * Get cached data or execute fetcher if cache miss/expired */ getOrFetch(key: string, fetcher: () => Promise, options?: { ttl?: number; skipCache?: boolean; }): Promise; /** * Clear specific cache entry or all cache */ clearCache(key?: string): void; /** * Get cache statistics */ getCacheStats(): { size: number; entries: Array<{ key: string; age: number; ttl: number; }>; }; } export declare const blockchainCache: BlockchainCacheManager; export type { CacheEntry }; //# sourceMappingURL=blockchainCache.d.ts.map