/**
 * 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;
}
