import { UseStore } from 'idb-keyval'; import { OcapCache, OcapCacheOptions } from './types'; /** * Cache decorator options (IndexedDB) */ export interface CacheOptions { /** * The version of the cache, default is 1 */ version?: number; /** * The maximum age of the cache, in milliseconds */ maxAge: number; /** * The priority of the cache, the higher the priority, the lower the level */ level: number; } export declare const serializeArgs: (...args: unknown[]) => string; /** * Cache decorator (store in IndexedDB), use [money-clip](https://www.npmjs.com/package/money-clip) lib: * * Example: ```typescript @Cache('xmla-mdx:', { maxAge: 1000 * 60 * 60, level: 3 }) async execute(modelName: string, mdx: string, language = '', options: { skip: boolean | void }): Promise { } ``` * * @param key * @param param1 * @returns */ export declare function Cache(key: string, { maxAge, level }: CacheOptions): (_: unknown, __: string, descriptor: PropertyDescriptor) => void; /** * Cache service, manage cache using [idb-keyval](https://www.npmjs.com/package/idb-keyval) lib: * * 1. clear all cache * 2. change cache level * 3. get cache keys * 4. clear cache by key */ export declare class DSCacheService implements OcapCache { options: { maxAge: number; level: number; }; constructor(options?: CacheOptions); clearAllCache(): void; changeCacheLevel(level: number): void; getCacheLevel(): number; getCache({ key: cacheKey, level, version, maxAge }: OcapCacheOptions, { skip }?: { skip?: boolean | void; }): Promise; setCache({ key, level, version, maxAge }: OcapCacheOptions, data: unknown): void; keys(customStore?: UseStore): Promise; clear(key: IDBValidKey, customStore?: UseStore): Promise; } export declare function isBrowser(): boolean;