import { ServiceWorker } from './classes.serviceworker.js';
export declare class CacheManager {
    losslessServiceWorkerRef: ServiceWorker;
    usedCacheNames: {
        runtimeCacheName: string;
    };
    private inFlightRequests;
    private readonly INFLIGHT_CLEANUP_INTERVAL;
    private cleanupIntervalId;
    constructor(losslessServiceWorkerRefArg: ServiceWorker);
    /**
     * Sets up periodic cleanup of stale in-flight request entries
     */
    private _setupInFlightCleanup;
    /**
     * Fetches a request with deduplication - coalesces identical concurrent requests
     */
    private fetchWithDeduplication;
    /**
     * Sets up the service worker's fetch event to intercept and cache responses.
     */
    private _setupCache;
    /**
     * Cleans all caches.
     * Should only be run when a new ServiceWorker is activated.
     */
    cleanCaches: (reasonArg?: string) => Promise<void>;
    /**
     * Revalidates the runtime cache by fetching fresh responses and updating the cache.
     */
    revalidateCache(): Promise<void>;
}
