@aituber-onair/kizuna
Version:
A sophisticated bond system (絆 - Kizuna) for managing relationships between users and AI characters in AITuber OnAir.
83 lines (82 loc) • 2.04 kB
TypeScript
/**
* LocalStorageProvider - Storage provider using LocalStorage
*
* Persists data using browser's LocalStorage
*/
import { StorageProvider, type StorageInfo } from "./StorageProvider";
/**
* LocalStorageProvider configuration
*/
export interface LocalStorageConfig {
/** Whether to enable compression */
enableCompression: boolean;
/** Whether to enable encryption */
enableEncryption: boolean;
/** Encryption key (when enableEncryption=true) */
encryptionKey?: string;
/** Maximum storage size (bytes, 0 for unlimited) */
maxStorageSize: number;
}
/**
* Storage provider using LocalStorage
*/
export declare class LocalStorageProvider extends StorageProvider {
private config;
constructor(config?: Partial<LocalStorageConfig>);
/**
* Save data
*/
save(key: string, data: unknown): Promise<void>;
/**
* Load data
*/
load<T>(key: string): Promise<T | null>;
/**
* Remove data
*/
remove(key: string): Promise<void>;
/**
* Get all keys starting with specified prefix
*/
getAllKeys(keyPrefix?: string): Promise<string[]>;
/**
* Clear storage with specified prefix
*/
clear(keyPrefix?: string): Promise<void>;
/**
* Check if LocalStorage is available
*/
isAvailable(): boolean;
/**
* Check if data can be stored
*/
canStore(data: unknown): Promise<boolean>;
/**
* Get storage information
*/
getStorageInfo(): Promise<StorageInfo>;
/**
* Process data for storage (compression/encryption)
*/
private processDataForStorage;
/**
* Process data from storage (decryption/decompression)
*/
private processDataFromStorage;
/**
* Compress data (simple implementation)
*/
private compressData;
/**
* Decompress data
*/
private decompressData;
/**
* Encrypt data (simple implementation)
*/
private encryptData;
/**
* Decrypt data
*/
private decryptData;
}