import EventEmitter from 'events'; import type { KeyvStoreAdapter } from 'keyv'; export * from './make-field'; export interface Options { deserialize: (val: string | Buffer) => any; dialect: string; /** milliseconds */ expiredCheckDelay: number; filename: string; serialize: (val: any) => string | Buffer; /** milliseconds */ writeDelay: number; /** create lock file and check if exists */ checkFileLock: boolean; /** * default: false * if true, will store key values in seperated file as `opts.filename+key` */ separatedFile: boolean; } export declare const defaultOpts: Options; export interface WrappedValue { value: T; expire?: number; } export declare class KeyvFile extends EventEmitter implements KeyvStoreAdapter { ttlSupport: boolean; namespace?: string; opts: Options; private _data; private _lastExpire; private _separated; constructor(options?: Partial); private _loadDataSync; private get _lockFile(); acquireFileLock(): void; releaseFileLock(): void; get(key: string): Promise; getSync(key: string): Value | undefined; getMany(keys: string[]): Promise>; /** * Note: `await kv.set()` will wait millseconds to save to disk, it would be slow. Please remove `await` if you find performance issues. * @param key * @param value * @param ttl * @returns */ set(key: string, value: any, ttl?: number): Promise; delete(key: string): Promise; deleteMany(keys: string[]): Promise; clear(): Promise; has(key: string): Promise; private isExpired; private _getWithExpire; private _getWithExpireAsync; private clearExpire; private saveToDisk; private _savePromise?; private save; disconnect(): Promise; keys(): Promise>; iterator(namespace?: string): AsyncGenerator<(string | Awaited | undefined)[], void, any>; } export default KeyvFile;