/// import type RenderResult from '../render-result'; export interface ResponseCacheBase { get(key: string | null, responseGenerator: ResponseGenerator, context: { isManualRevalidate?: boolean; isPrefetch?: boolean; incrementalCache: IncrementalCache; }): Promise; } export interface CachedFetchValue { kind: 'FETCH'; data: { headers: { [k: string]: string; }; body: string; status?: number; }; revalidate: number; } export interface CachedRedirectValue { kind: 'REDIRECT'; props: Object; } interface CachedPageValue { kind: 'PAGE'; html: RenderResult; pageData: Object; } export interface CachedRouteValue { kind: 'ROUTE'; body: Buffer; status: number; headers: Record; } export interface CachedImageValue { kind: 'IMAGE'; etag: string; buffer: Buffer; extension: string; isMiss?: boolean; isStale?: boolean; } interface IncrementalCachedPageValue { kind: 'PAGE'; html: string; pageData: Object; } export declare type IncrementalCacheEntry = { curRevalidate?: number | false; revalidateAfter: number | false; isStale?: boolean; value: IncrementalCacheValue | null; }; export declare type IncrementalCacheValue = CachedRedirectValue | IncrementalCachedPageValue | CachedImageValue | CachedFetchValue | CachedRouteValue; export declare type ResponseCacheValue = CachedRedirectValue | CachedPageValue | CachedImageValue | CachedRouteValue; export declare type ResponseCacheEntry = { revalidate?: number | false; value: ResponseCacheValue | null; isStale?: boolean; isMiss?: boolean; }; export declare type ResponseGenerator = (hasResolved: boolean, hadCache: boolean) => Promise; export declare type IncrementalCacheItem = { revalidateAfter?: number | false; curRevalidate?: number | false; revalidate?: number | false; value: IncrementalCacheValue | null; isStale?: boolean; isMiss?: boolean; } | null; export interface IncrementalCache { get: (key: string) => Promise; set: (key: string, data: IncrementalCacheValue | null, revalidate?: number | false) => Promise; } export {};