import type { Context } from '../context.js'; export interface CacheEntry { data: T; timestamp: number; ttl?: number; } export interface ResponseCacheEntry { status: number; headers: Record; body: any; } export interface CacheStore { get(key: string): Promise; set(key: string, value: T, ttl?: number): Promise; delete(key: string): Promise; clear(): Promise; has(key: string): Promise; size(): Promise; } export interface CacheOptions { store?: 'memory' | 'redis'; redis?: any; defaultTtl?: number; keyGenerator?: (ctx: Context) => string; skipCache?: (ctx: Context) => boolean; cacheHeaders?: boolean; compression?: boolean; maxSize?: number; } export declare function cachePlugin(options?: CacheOptions): { middleware: (ctx: Context, next: () => Promise) => Promise; get: (key: string) => Promise; set: (key: string, value: any, ttl?: number) => Promise; delete: (key: string) => Promise; clear: () => Promise; has: (key: string) => Promise; size: () => Promise; stats: () => { hits: number; misses: number; sets: number; deletes: number; }; }; export { cachePlugin as cache }; //# sourceMappingURL=cache.d.ts.map