import { Meta } from "../next-types"; export type S3CachedFile = { type: "redirect"; props?: Object; meta?: Meta; } | { type: "page"; html: string; json: Object; meta?: Meta; } | { type: "app"; html: string; rsc: string; meta?: Meta; } | { type: "route"; body: string; meta?: Meta; }; export type S3FetchCache = Object; export type WithLastModified = { lastModified?: number; value?: T; }; export type CacheValue = (IsFetch extends true ? S3FetchCache : S3CachedFile) & { revalidate?: number | false; }; export type IncrementalCache = { get(key: string, isFetch?: IsFetch): Promise>>; set(key: string, value: CacheValue, isFetch?: IsFetch): Promise; delete(key: string): Promise; name: string; };