UNPKG

@sailboat-computer/data-storage

Version:

Shared data storage library for sailboat computer v3

103 lines (102 loc) 2.51 kB
/** * Local file storage provider implementation */ import { StorageProvider, DataQuery, StoredData, CleanupResult, StorageStatus, DataMetadata } from '../../types'; /** * Local file provider options */ export interface LocalFileProviderOptions { directory: string; maxSizeBytes?: number; encrypt?: boolean; compressionLevel?: number; } /** * Local file storage provider implementation */ export declare class LocalFileProvider implements StorageProvider { private options; private initialized; private index; private indexPath; private lastOperation; private metrics; /** * Create a new local file storage provider * * @param options - Provider options */ constructor(options: LocalFileProviderOptions); /** * Initialize the provider */ initialize(): Promise<void>; /** * Store data * * @param data - Data to store * @param metadata - Data metadata * @returns Data ID */ store(data: any, metadata: DataMetadata): Promise<string>; /** * Retrieve data * * @param query - Data query * @returns Stored data */ retrieve(query: DataQuery): Promise<StoredData[]>; /** * Update data * * @param data - Data to update */ update(data: StoredData): Promise<void>; /** * Delete data * * @param id - Data ID */ delete(id: string): Promise<void>; /** * Store multiple data items * * @param items - Data items to store * @returns Data IDs */ storeBatch(items: Array<{ data: any; metadata: DataMetadata; }>): Promise<string[]>; /** * Clean up old data * * @param category - Data category * @param retentionDays - Retention period in days * @returns Cleanup result */ cleanup(category: string, retentionDays: number): Promise<CleanupResult>; /** * Get storage status * * @returns Storage status */ getStatus(): Promise<StorageStatus>; /** * Shutdown the provider */ shutdown(): Promise<void>; /** * Ensure provider is initialized * * @throws StorageError if not initialized */ private ensureInitialized; } /** * Create a new local file storage provider * * @param options - Provider options * @returns Local file storage provider */ export declare function createLocalFileProvider(options: LocalFileProviderOptions): StorageProvider;