import { AuthParams, ID } from '@zeniai/client-epic-state'; /** * Stable key per tenant + attachment (preferred) or tenant + download URL. */ export declare function buildReceiptBlobCacheKey(tenantId: string, attachmentId: ID | undefined, fileDownloadUrl: string): string; /** * Returns a cached blob URL if present (updates LRU order). Does not fetch. */ export declare function getCachedReceiptBlobUrl(key: string): string | undefined; /** * Returns an object URL for the file, using the LRU cache when possible. * Callers must not revoke URLs returned from here — the cache owns them until LRU eviction. */ export declare function getOrFetchReceiptBlobObjectUrl(cacheKey: string, fileDownloadUrl: string, authParams: AuthParams, signal?: AbortSignal): Promise; /** Test-only: clear cache and revoke all URLs. */ export declare function __resetReceiptBlobCacheForTests(): void;