export interface CacheData { slot: number; isVyper: boolean; ts: number; expiresAt?: number; } export interface NegativeCacheData { negative: true; reason: NegativeLayoutReason; ts: number; expiresAt: number; maxSlots?: number; } export type CacheMapType = Map; export type StorageLayoutKind = "balance" | "approval"; export interface VerifiedStorageLayout { slot: number; isVyper: boolean; verifiedAt: number; } export type NegativeLayoutReason = "zero-allowance" | "no-balance" | "not-found"; export interface NegativeStorageLayout { status: "unverifiable"; reason: NegativeLayoutReason; failedAt: number; expiresAt?: number; maxSlots?: number; } export type StoredStorageLayout = VerifiedStorageLayout | NegativeStorageLayout; export interface StorageLayoutCacheAdapter { get(key: string): Promise; set(key: string, value: StoredStorageLayout, ttlSeconds: number): Promise; } export type StorageLayoutCacheEventType = "local_hit" | "external_hit" | "negative_hit" | "verified" | "discovery_failed" | "cache_error"; export interface StorageLayoutCacheEvent { type: StorageLayoutCacheEventType; kind: StorageLayoutKind; chainId: number; tokenAddress: string; reason?: NegativeLayoutReason; } export interface StorageLayoutCacheOptions { cache?: StorageLayoutCacheAdapter; chainId?: number; cacheTtlSeconds?: number; cacheTimeoutMs?: number; negativeCacheTtlSeconds?: number; onCacheEvent?: (event: StorageLayoutCacheEvent) => void | Promise; } //# sourceMappingURL=types.d.ts.map