import { EventHandler } from "h3"; import type { H3Event } from "h3"; export interface CacheEntry { value?: T; expires?: number; mtime?: number; integrity?: string; } export interface CacheOptions { name?: string; getKey?: (...args: any[]) => string; transform?: (entry: CacheEntry, ...args: any[]) => any; validate?: (entry: CacheEntry) => boolean; group?: string; integrity?: any; maxAge?: number; static?: boolean; swr?: boolean; staleMaxAge?: number; base?: string; } export declare function defineCachedFunction(fn: (...args: any[]) => T | Promise, opts: CacheOptions): (...args: any[]) => Promise; export declare const cachedFunction: typeof defineCachedFunction; export interface ResponseCacheEntry { body: T; code: number; headers: Record; } export interface CachedEventHandlerOptions extends Omit>, "transform" | "validate"> { getKey?: (event: H3Event) => string; headersOnly?: boolean; } export declare function defineCachedEventHandler(handler: EventHandler, opts?: CachedEventHandlerOptions): EventHandler; export declare const cachedEventHandler: typeof defineCachedEventHandler;