UNPKG

@sailboat-computer/data-storage

Version:

Shared data storage library for sailboat computer v3

97 lines (96 loc) 2.4 kB
/** * PostgreSQL storage provider implementation */ import { StorageProvider, PostgreSQLConfig, DataQuery, StoredData, CleanupResult, StorageStatus, DataMetadata } from '../../types'; /** * PostgreSQL storage provider implementation */ export declare class PostgreSQLStorageProvider implements StorageProvider { private config; private client; private initialized; private lastOperation; private metrics; /** * Create a new PostgreSQL storage provider * * @param config - PostgreSQL configuration */ constructor(config: PostgreSQLConfig); /** * Initialize the provider */ initialize(): Promise<void>; /** * Create tables if they don't exist */ private createTables; /** * 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 PostgreSQL storage provider * * @param config - PostgreSQL configuration * @returns PostgreSQL storage provider */ export declare function createPostgreSQLProvider(config: PostgreSQLConfig): StorageProvider;