import NodeCache, { Key, ValueSetItem } from "node-cache"; export type CacheSerializer = { serialize: Function; deserialize: Function; }; export default class PersistentNodeCache extends NodeCache { private readonly interval; private readonly cacheName; private readonly emitter; private readonly backupFilePath; private readonly appendFilePath; private flushingToDisk; private appendFileDescriptor; private serializer; private changesSinceLastBackup; constructor(cacheName: string, period?: number, dir?: string, opts?: any, serializer?: CacheSerializer); set(key: Key, value: T, ttl?: number | string): boolean; mset(keyValueSet: ValueSetItem[]): boolean; del(keys: Key | Key[]): number; take(key: Key): T | undefined; ttl(key: Key, ttl?: number): boolean; flushAll(): void; close(): void; recover(): void; private appendExpiredEvent; private saveToDisk; private appendToFile; }