import type { PrecacheRouteOptions, RuntimeCaching } from "../types.js";
import type { PrecacheController } from "./PrecacheController.js";
import type { PrecacheFallbackEntry } from "./PrecacheFallbackPlugin.js";
import type { Router } from "./Router.js";
export interface FallbackEntry extends PrecacheFallbackEntry {
    /**
     * The revision used for precaching.
     */
    revision: string;
}
export interface FallbacksOptions {
    /**
     * A list of fallback entries.
     */
    entries: FallbackEntry[];
    /**
     * Precache options that will be used for your
     * fallback entries.
     */
    precacheOptions?: PrecacheRouteOptions;
}
export interface FallbacksOptions {
    /**
     * An optional {@linkcode PrecacheController} instance. If not provided, the singleton
     * {@linkcode PrecacheController} will be used.
     */
    precacheController?: PrecacheController;
    /**
     * An optional {@linkcode Router} instance. If not provided, the singleton {@linkcode Router}
     * will be used.
     */
    router?: Router;
    /**
     * Your previous list of caching strategies.
     */
    runtimeCaching: RuntimeCaching[];
    /**
     * A list of fallback entries.
     */
    entries: FallbackEntry[];
    /**
     * Precache options that will be used for your
     * fallback entries.
     */
    precacheOptions?: PrecacheRouteOptions;
}
/**
 * Precaches routes so that they can be used as a fallback when
 * a Strategy fails to generate a response.
 *
 * Note: This function mutates `runtimeCaching`. It also precaches the URLs
 * defined in `entries`, so you must NOT precache any of them beforehand.
 *
 * @param options
 * @returns The modified `runtimeCaching` array.
 * @deprecated
 */
export declare const fallbacks: ({ precacheController, router, runtimeCaching, entries, precacheOptions, }: FallbacksOptions) => RuntimeCaching[];
//# sourceMappingURL=fallbacks.d.ts.map