import type { StaticGenerationAsyncStorage, StaticGenerationStore } from '../../client/components/static-generation-async-storage.external';
import type { RequestAsyncStorage, RequestStore } from '../../client/components/request-async-storage.external';
type Fetcher = typeof fetch;
type PatchedFetcher = Fetcher & {
    readonly __nextPatched: true;
    readonly __nextGetStaticStore: () => StaticGenerationAsyncStorage;
    readonly _nextOriginalFetch: Fetcher;
};
export declare const NEXT_PATCH_SYMBOL: unique symbol;
export declare function validateRevalidate(revalidateVal: unknown, route: string): undefined | number | false;
export declare function validateTags(tags: any[], description: string): string[];
export declare function addImplicitTags(staticGenerationStore: StaticGenerationStore, requestStore: RequestStore | undefined): string[];
interface PatchableModule {
    staticGenerationAsyncStorage: StaticGenerationAsyncStorage;
    requestAsyncStorage: RequestAsyncStorage;
}
export declare function createPatchedFetcher(originFetch: Fetcher, { staticGenerationAsyncStorage, requestAsyncStorage }: PatchableModule): PatchedFetcher;
export declare function patchFetch(options: PatchableModule): void;
export {};
