import type { StrategyOptions } from "./Strategy.js";
import { Strategy } from "./Strategy.js";
import type { StrategyHandler } from "./StrategyHandler.js";
/**
 * An implementation of the
 * [stale-while-revalidate](https://developer.chrome.com/docs/workbox/caching-strategies-overview/#stale_while_revalidate)
 * request strategy.
 *
 * Resources are requested from both the cache and the network in parallel.
 * The strategy will respond with the cached version if available, otherwise
 * wait for the network response. The cache is updated with the network response
 * with each successful request.
 *
 * By default, this strategy will cache responses with a 200 status code as
 * well as [opaque responses](https://developer.chrome.com/docs/workbox/caching-resources-during-runtime/#opaque-responses).
 * Opaque responses are cross-origin requests where the response doesn't
 * support [CORS](https://enable-cors.org/).
 *
 * If the network request fails, and there is no cache match, this will throw
 * a {@linkcode SerwistError} exception.
 */
export declare class StaleWhileRevalidate extends Strategy {
    /**
     * @param options
     */
    constructor(options?: StrategyOptions);
    /**
     * @private
     * @param request A request to run this strategy for.
     * @param handler The event that triggered the request.
     * @returns
     */
    _handle(request: Request, handler: StrategyHandler): Promise<Response>;
}
//# sourceMappingURL=StaleWhileRevalidate.d.ts.map