@uplink-protocol/calendar-controller
Version:
Flexible calendar and time picker API supporting both calendar, date-picker, and time-picker integrations for any JavaScript framework or library
96 lines (95 loc) • 2.91 kB
TypeScript
/**
* 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<StorageResult<void>>;
/**
* Get all events
*/
getAllEvents(): Promise<StorageResult<CalendarEvent[]>>;
/**
* Get event by ID
*/
getEventById(id: string): Promise<StorageResult<CalendarEvent | null>>;
/**
* Query events with filters
*/
queryEvents(filter?: EventFilter, sort?: EventSort, page?: number, pageSize?: number): Promise<StorageResult<EventResults>>;
/**
* Create new event
*/
createEvent(input: CreateEventInput): Promise<StorageResult<CalendarEvent>>;
/**
* Update existing event
*/
updateEvent(input: UpdateEventInput): Promise<StorageResult<CalendarEvent>>;
/**
* Delete event
*/
deleteEvent(id: string): Promise<StorageResult<void>>;
/**
* Bulk operations
*/
bulkCreate(inputs: CreateEventInput[]): Promise<StorageResult<CalendarEvent[]>>;
bulkUpdate(inputs: UpdateEventInput[]): Promise<StorageResult<CalendarEvent[]>>;
bulkDelete(ids: string[]): Promise<StorageResult<void>>;
/**
* Import events
*/
importEvents(events: CalendarEvent[]): Promise<StorageResult<CalendarEvent[]>>;
/**
* Export events
*/
exportEvents(filter?: EventFilter): Promise<StorageResult<CalendarEvent[]>>;
/**
* Clear all events
*/
clearAll(): Promise<StorageResult<void>>;
/**
* Get storage statistics
*/
getStats(): Promise<StorageResult<StorageStats>>;
/**
* Get sync status
*/
getSyncStatus(): Promise<StorageResult<SyncStatus>>;
/**
* Trigger manual sync
*/
sync(): Promise<StorageResult<void>>;
/**
* Backup events
*/
backup(): Promise<StorageResult<string>>;
/**
* Restore from backup
*/
restore(backupData: string): Promise<StorageResult<void>>;
/**
* 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;
}