@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
164 lines (163 loc) • 4.96 kB
TypeScript
/**
* Event Controller
*
* Main controller for comprehensive event management functionality
*/
import { ControllerAdapter } from "@uplink-protocol/core";
import { ControllerMetadata } from "@uplink-protocol/core/dist/uplink/interfaces/metadata/controller-metadata.interface";
import { CalendarEvent, EventFilter, EventSort } from './interfaces/event.interfaces';
import { TypedEventController, EventControllerBindings, EventControllerMethods, EventControllerEvents, EventControllerOptions } from './types/event-controller.types';
/**
* Event Controller Interface
*/
export interface EventControllerInterface extends TypedEventController {
_selectedEvent: CalendarEvent | null;
_allEvents: CalendarEvent[];
_filteredEvents: CalendarEvent[];
_currentFilter: EventFilter | null;
_currentSort: EventSort | null;
_searchQuery: string;
_searchResults: CalendarEvent[];
_isLoading: boolean;
_error: string | null;
_totalCount: number;
_currentPage: number;
_pageSize: number;
_dateRangeEvents: CalendarEvent[];
_currentDateRange: {
start: Date;
end: Date;
} | null;
_upcomingEvents: CalendarEvent[];
_overdueEvents: CalendarEvent[];
_conflicts: any[];
_validationErrors: string[];
_syncStatus: 'idle' | 'syncing' | 'success' | 'error';
_lastSyncTime: Date | null;
_categories: string[];
_tags: string[];
_statistics: any;
}
/**
* Event Controller Class
*/
export declare class EventControllerClass implements EventControllerInterface {
bindings: EventControllerBindings;
methods: EventControllerMethods;
events: EventControllerEvents;
meta?: ControllerMetadata;
__adapter?: ControllerAdapter;
options?: EventControllerOptions;
_selectedEvent: CalendarEvent | null;
_allEvents: CalendarEvent[];
_filteredEvents: CalendarEvent[];
_currentFilter: EventFilter | null;
_currentSort: EventSort | null;
_searchQuery: string;
_searchResults: CalendarEvent[];
_isLoading: boolean;
_error: string | null;
_totalCount: number;
_currentPage: number;
_pageSize: number;
_dateRangeEvents: CalendarEvent[];
_currentDateRange: {
start: Date;
end: Date;
} | null;
_upcomingEvents: CalendarEvent[];
_overdueEvents: CalendarEvent[];
_conflicts: any[];
_validationErrors: string[];
_syncStatus: 'idle' | 'syncing' | 'success' | 'error';
_lastSyncTime: Date | null;
_categories: string[];
_tags: string[];
_statistics: any;
private eventManager;
private initialized;
constructor(options?: EventControllerOptions);
/**
* Initialize the controller
*/
initialize(options?: EventControllerOptions): Promise<void>;
/**
* Get controller status
*/
getStatus(): {
initialized: boolean;
totalEvents: number;
health: "good" | "error";
lastError: string | null;
};
/**
* Destroy the controller
*/
destroy(): Promise<void>;
private initializeBindings;
private initializeMethods;
private initializeEvents;
private initializeMetadata;
private createEvent;
private updateEvent;
private deleteEvent;
private getEventById;
private getAllEvents;
private queryEvents;
private filterEvents;
private sortEvents;
private searchEvents;
private getEventsForDate;
private getEventsForDateRange;
private loadAllEvents;
private loadUpcomingEvents;
private loadCategories;
private setupEventSubscriptions;
private getEventsForWeek;
private getEventsForMonth;
private getUpcomingEvents;
private getOverdueEvents;
private bulkCreateEvents;
private bulkUpdateEvents;
private bulkDeleteEvents;
private validateEvent;
private validateEventConstraints;
private duplicateEvent;
private moveEvent;
private rescheduleEvent;
private cancelEvent;
private completeEvent;
private createRecurringEvent;
private updateRecurringEvent;
private deleteRecurringEvent;
private getRecurrenceOccurrences;
private checkConflicts;
private resolveConflict;
private findAlternativeTimeSlots;
private getCategories;
private addCategory;
private removeCategory;
private getTags;
private addTag;
private removeTag;
private importEvents;
private exportEvents;
private getStatistics;
private getEventAnalytics;
private syncWithProvider;
private getSyncStatus;
private configureSyncProvider;
private scheduleReminder;
private cancelReminder;
private saveSearch;
private getSavedSearches;
private executeSavedSearch;
private clearAllEvents;
private backup;
private restore;
private getHealth;
}
/**
* Event Controller Factory Function
*/
export declare const EventController: (options?: EventControllerOptions) => EventControllerClass;