gaoluyang
2026-06-24 4112ec486a10cc01d6d64ca79912cbafb143f172
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
//#region src/cache/types.d.ts
interface IStorageDriver {
  clear(): Promise<void>;
  getItem<T>(key: string): Promise<null | T>;
  keys(): Promise<string[]>;
  removeItem(key: string): Promise<void>;
  setItem(key: string, value: unknown): Promise<void>;
}
interface StorageItem<T> {
  expiry?: number;
  value: T;
}
interface StorageManagerOptions {
  driver?: IStorageDriver;
  prefix?: string;
}
//#endregion
//#region src/cache/indexeddb-driver.d.ts
interface IndexedDBDriverOptions {
  dbName?: string;
  dbVersion?: number;
  storeName?: string;
}
declare class IndexedDBDriver implements IStorageDriver {
  private dbName;
  private dbPromise;
  private dbVersion;
  private storeName;
  constructor({
    dbName,
    dbVersion,
    storeName
  }?: IndexedDBDriverOptions);
  clear(): Promise<void>;
  getItem<T>(key: string): Promise<null | T>;
  keys(): Promise<string[]>;
  removeItem(key: string): Promise<void>;
  setItem(key: string, value: unknown): Promise<void>;
  private getDB;
  private openDB;
}
//#endregion
//#region src/cache/local-storage-driver.d.ts
type StorageType = 'localStorage' | 'sessionStorage';
interface LocalStorageDriverOptions {
  storageType?: StorageType;
}
declare class LocalStorageDriver implements IStorageDriver {
  private storage;
  constructor({
    storageType
  }?: LocalStorageDriverOptions);
  clear(): Promise<void>;
  getItem<T>(key: string): Promise<null | T>;
  keys(): Promise<string[]>;
  removeItem(key: string): Promise<void>;
  setItem(key: string, value: unknown): Promise<void>;
}
//#endregion
//#region src/cache/memory-storage-driver.d.ts
declare class MemoryStorageDriver implements IStorageDriver {
  private store;
  clear(): Promise<void>;
  getItem<T>(key: string): Promise<null | T>;
  keys(): Promise<string[]>;
  removeItem(key: string): Promise<void>;
  setItem(key: string, value: unknown): Promise<void>;
}
//#endregion
//#region src/cache/storage-manager.d.ts
declare class StorageManager {
  private driver;
  private prefix;
  constructor({
    driver,
    prefix
  }?: StorageManagerOptions);
  clear(): Promise<void>;
  clearExpiredItems(): Promise<void>;
  getItem<T>(key: string, defaultValue?: null | T): Promise<null | T>;
  keys(): Promise<string[]>;
  removeItem(key: string): Promise<void>;
  setItem(key: string, value: unknown, ttl?: number): Promise<void>;
  private createDefaultDriver;
  private getFullKey;
}
//#endregion
export { type IStorageDriver, IndexedDBDriver, type IndexedDBDriverOptions, LocalStorageDriver, type LocalStorageDriverOptions, MemoryStorageDriver, type StorageItem, StorageManager, type StorageManagerOptions };