import type { H3Event } from 'h3';
import type { CacheItem, NuxtMultiCacheSSRContext } from './../types.js';
import type { NuxtMultiCacheCDNHelper } from './CDNHelper.js';
import type { NuxtMultiCacheRouteCacheHelper } from './RouteCacheHelper.js';
export declare const MULTI_CACHE_CONTEXT_KEY = "__MULTI_CACHE";
export declare const MULTI_CACHE_ROUTE_CONTEXT_KEY = "__MULTI_CACHE_ROUTE";
export declare const MULTI_CACHE_CDN_CONTEXT_KEY = "__MULTI_CACHE_CDN";
export declare const MULTI_CACHE_PREFIX_KEY = "__MULTI_CACHE_PREFIX";
export declare function getMultiCacheContext(event: H3Event): NuxtMultiCacheSSRContext | undefined;
export declare function getMultiCacheRouteHelper(event: H3Event): NuxtMultiCacheRouteCacheHelper | undefined;
export declare function getMultiCacheCDNHelper(event: H3Event): NuxtMultiCacheCDNHelper | undefined;
export declare function getExpiresValue(maxAge: number): number;
export declare function isExpired(item: CacheItem): boolean;
export declare function getCacheKeyWithPrefix(cacheKey: string, event: H3Event): string;
/**
 * Unstorage does some magic to the key if it contains / or ?. This method
 * handles this.
 */
export declare function encodeRouteCacheKey(path: string): string;
/**
 * Filter out duplicate array items.
 */
export declare function onlyUnique(value: string, index: number, self: Array<string>): boolean;
