@sailboat-computer/data-storage
Version:
Shared data storage library for sailboat computer v3
103 lines (102 loc) • 2.51 kB
TypeScript
/**
* 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;