import type { CacheProvider } from './types.js'; export interface MemoryCacheQueryOptions { /** * Sort query parameters alphabetically so that parameter order does not * affect the cache key. Enabled by default. * @default true */ sort?: boolean; /** * Only include these query parameter names in the cache key. * All other parameters are ignored, including the default tracking * parameter exclusions. Cannot be used together with `exclude`. * * @example * ```js * memoryCache({ query: { include: ['page', 'sort', 'q'] } }) * ``` */ include?: string[]; /** * Exclude query parameters whose names match these patterns from the cache * key. Supports glob wildcards (e.g. `"utm_*"`). Cannot be used together * with `include`. * * By default, common tracking and analytics parameters (`utm_*`, `fbclid`, * `gclid`, etc.) are excluded. Set to `[]` to include all query parameters * in the cache key. * * @default ['utm_*', 'fbclid', 'gclid', 'gbraid', 'wbraid', 'dclid', 'msclkid', 'twclid', 'li_fat_id', 'mc_cid', 'mc_eid', '_ga', '_gl', '_hsenc', '_hsmi', '_ke', 'oly_anon_id', 'oly_enc_id', 'rb_clickid', 's_cid', 'vero_id', 'wickedid', 'yclid', '__s', 'ref'] * * @example * ```js * // Only exclude specific params (replaces defaults) * memoryCache({ query: { exclude: ['session_id', 'token'] } }) * ``` * * @example * ```js * // Include all query parameters (disable default exclusions) * memoryCache({ query: { exclude: [] } }) * ``` */ exclude?: string[]; } export interface MemoryCacheProviderOptions { /** Maximum number of entries to keep in cache. Defaults to 1000. */ max?: number; /** * Query parameter handling for cache keys. * By default, parameters are sorted alphabetically so that order does not * affect the cache key. */ query?: MemoryCacheQueryOptions; } declare const memoryProvider: (config: MemoryCacheProviderOptions | undefined) => CacheProvider; export default memoryProvider;