import type { TransactionOptions, StorageMeta } from 'unstorage'; import type { MaybePromise } from '../types/index.js'; export interface MemoryOptions { /** * Optional prefix to use for all keys. Can be used for namespacing. */ base?: string; /** * Time-to-live for items in milliseconds. */ ttl?: number; /** * Whether to store metadata for each item. * @default true */ meta?: boolean; /** * Whether to automatically purge expired items. * @default true */ ttlAutoPurge?: boolean; /** * Whether to track the size of items in bytes. * @default false */ trackSize?: boolean; } export interface MemoryDriver { data: any; meta?: { ttl?: number; atime?: number; mtime?: number; ctime?: number; birthtime?: number; size?: number; timeoutId?: NodeJS.Timeout; }; } export interface MemoryDriverMeta extends StorageMeta { ttl?: number; atime?: Date; mtime?: Date; ctime?: Date; birthtime?: Date; size?: number; } export interface MemoryDriverInstance { getInstance: () => Map; options: MemoryOptions; has: (key: string) => boolean; hasItem: (key: string) => boolean; get: (key: string) => any; getItem: (key: string) => any; getItemRaw: (key: string) => any; set: (key: string, value: any, tOpts?: TransactionOptions) => void; setItem: (key: string, value: any, tOpts?: TransactionOptions) => void; setItemRaw: (key: string, value: any, tOpts?: TransactionOptions) => void; del: (key: string) => void; remove: (key: string) => void; removeItem: (key: string) => void; keys: () => string[]; getKeys: () => string[]; getMeta: (key: string) => MaybePromise; clear: () => void; dispose: () => void; } declare const _default: (opts: MemoryOptions) => import("unstorage").Driver>; export default _default;