/** * Event Storage Service - Memory Implementation * * Simple in-memory storage for events */ import { CalendarEvent, CreateEventInput, UpdateEventInput, EventFilter, EventSort, EventResults } from '../interfaces/event.interfaces'; import { IEventStorageService, StorageResult, StorageConfig, StorageStats, SyncStatus } from '../interfaces/event-storage.interfaces'; /** * In-memory storage implementation */ export declare class EventStorageService implements IEventStorageService { private events; private config; private changeCallbacks; private errorCallbacks; /** * Initialize storage */ initialize(config: StorageConfig): Promise>; /** * Get all events */ getAllEvents(): Promise>; /** * Get event by ID */ getEventById(id: string): Promise>; /** * Query events with filters */ queryEvents(filter?: EventFilter, sort?: EventSort, page?: number, pageSize?: number): Promise>; /** * Create new event */ createEvent(input: CreateEventInput): Promise>; /** * Update existing event */ updateEvent(input: UpdateEventInput): Promise>; /** * Delete event */ deleteEvent(id: string): Promise>; /** * Bulk operations */ bulkCreate(inputs: CreateEventInput[]): Promise>; bulkUpdate(inputs: UpdateEventInput[]): Promise>; bulkDelete(ids: string[]): Promise>; /** * Import events */ importEvents(events: CalendarEvent[]): Promise>; /** * Export events */ exportEvents(filter?: EventFilter): Promise>; /** * Clear all events */ clearAll(): Promise>; /** * Get storage statistics */ getStats(): Promise>; /** * Get sync status */ getSyncStatus(): Promise>; /** * Trigger manual sync */ sync(): Promise>; /** * Backup events */ backup(): Promise>; /** * Restore from backup */ restore(backupData: string): Promise>; /** * Event change subscription */ onEventChanged(callback: (event: CalendarEvent, action: 'created' | 'updated' | 'deleted') => void): () => void; /** * Storage error subscription */ onError(callback: (error: string) => void): () => void; private generateId; private applyFilters; private applySorting; private loadFromLocalStorage; private saveToStorage; }