fleeta-api-lib
Version:
A comprehensive library for fleet management applications - API, Auth, Device management
108 lines • 3.27 kB
TypeScript
/**
* Event WebSocket Event Manager
* Handles event subscription and emission for WebPush events
*/
import type { EventWsEvent, EventWsEventHandler, PsnFilterConfig } from './types';
/**
* Event Manager class
* Manages event subscriptions and notifications for WebPush events
*/
export declare class EventWebSocketEventManager {
private eventHandlers;
private psnFilter;
/**
* Create Event Manager with PSN filtering support
* @param psnFilter - PSN filter configuration
*/
constructor(psnFilter?: Partial<PsnFilterConfig>);
/**
* Add event listener
* @param event - Event type to listen for
* @param handler - Event handler function
*/
on<T = any>(event: EventWsEvent, handler: EventWsEventHandler<T>): void;
/**
* Remove specific event listener
* @param event - Event type
* @param handler - Event handler to remove
*/
off(event: EventWsEvent, handler: EventWsEventHandler): void;
/**
* Remove all listeners for a specific event
* @param event - Event type (optional - removes all if not specified)
*/
removeAllListeners(event?: EventWsEvent): void;
/**
* Emit event to all registered handlers
* @param event - Event type
* @param data - Event data
*/
emit<T = any>(event: EventWsEvent, data?: T): void;
/**
* Set PSN filters for event filtering
* @param psns - Array of PSNs to filter by
*/
setPsnFilters(psns: string[]): void;
/**
* Add PSN to filter list
* @param psn - PSN to add to filter
*/
addPsnFilter(psn: string): void;
/**
* Remove PSN from filter list
* @param psn - PSN to remove from filter
*/
removePsnFilter(psn: string): void;
/**
* Clear all PSN filters
*/
clearPsnFilters(): void;
/**
* Get current PSN filters
* @returns Array of current PSN filters
*/
getPsnFilters(): string[];
/**
* Check if PSN filtering is enabled
* @returns True if PSN filtering is active
*/
isPsnFilteringEnabled(): boolean;
/**
* Set custom PSN extraction function
* @param extractorFn - Custom PSN extraction function
*/
setPsnExtractor(extractorFn: (message: string) => string | null): void;
/**
* Test PSN extraction on a message
* @param message - Message to test PSN extraction on
* @returns Extracted PSN or null
*/
testPsnExtraction(message: string): string | null;
/**
* Get number of handlers for an event
* @param event - Event type
* @returns Number of registered handlers
*/
getHandlerCount(event: EventWsEvent): number;
/**
* Get all registered events
* @returns Array of event types that have handlers
*/
getRegisteredEvents(): EventWsEvent[];
/**
* Check if event has any handlers
* @param event - Event type
* @returns True if event has handlers
*/
hasHandlers(event: EventWsEvent): boolean;
/**
* Get total number of handlers across all events
* @returns Total handler count
*/
getTotalHandlerCount(): number;
/**
* Clear all event handlers
*/
destroy(): void;
}
//# sourceMappingURL=EventManager.d.ts.map